@@ -48,6 +48,21 @@ where
48 .transpose()
48 .transpose()
51+fn deserialize_tab_width<'de, D>(deserializer: D) -> Result<usize, D::Error>
53+ D: serde::Deserializer<'de>,
55+ usize::deserialize(deserializer).and_then(|n| {
56+ if n > 0 && n <= 16 {
59+ Err(serde::de::Error::custom(
60+ "tab width must be a value from 1 to 16 inclusive",
51pub fn deserialize_auto_pairs<'de, D>(deserializer: D) -> Result<Option<AutoPairs>, D::Error>
66pub fn deserialize_auto_pairs<'de, D>(deserializer: D) -> Result<Option<AutoPairs>, D::Error>
53 D: serde::Deserializer<'de>,
68 D: serde::Deserializer<'de>,
@@ -424,6 +439,7 @@ pub struct DebuggerQuirks {
424#[derive(Debug, Serialize, Deserialize)]
439#[derive(Debug, Serialize, Deserialize)]
425#[serde(rename_all = "kebab-case")]
440#[serde(rename_all = "kebab-case")]
426pub struct IndentationConfiguration {
441pub struct IndentationConfiguration {
442+ #[serde(deserialize_with = "deserialize_tab_width")]
427 pub tab_width: usize,
443 pub tab_width: usize,
428 pub unit: String,
444 pub unit: String,