diff --git a/serde_derive/src/internals/case.rs b/serde_derive/src/internals/case.rs index 199fd4bc..a06ae586 100644 --- a/serde_derive/src/internals/case.rs +++ b/serde_derive/src/internals/case.rs @@ -120,11 +120,18 @@ pub struct ParseError<'a> { impl<'a> Display for ParseError<'a> { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - write!( - f, - "unknown rename rule for #[serde(rename_all = {:?})]", - self.unknown, - ) + f.write_str("unknown rename rule `rename_all = \"")?; + self.unknown.escape_debug().fmt(f)?; + f.write_str("\"`, expected one of ")?; + for (i, (name, _rule)) in RENAME_RULES.iter().enumerate() { + if i > 0 { + f.write_str(", ")?; + } + f.write_str("\"")?; + name.escape_debug().fmt(f)?; + f.write_str("\"")?; + } + Ok(()) } } diff --git a/test_suite/tests/ui/rename/container_unknown_rename_rule.stderr b/test_suite/tests/ui/rename/container_unknown_rename_rule.stderr index 728d71ca..3fd68f3f 100644 --- a/test_suite/tests/ui/rename/container_unknown_rename_rule.stderr +++ b/test_suite/tests/ui/rename/container_unknown_rename_rule.stderr @@ -1,4 +1,4 @@ -error: unknown rename rule for #[serde(rename_all = "abc")] +error: unknown rename rule `rename_all = "abc"`, expected one of "lowercase", "UPPERCASE", "PascalCase", "camelCase", "snake_case", "SCREAMING_SNAKE_CASE", "kebab-case", "SCREAMING-KEBAB-CASE" --> $DIR/container_unknown_rename_rule.rs:4:22 | 4 | #[serde(rename_all = "abc")] diff --git a/test_suite/tests/ui/rename/variant_unknown_rename_rule.stderr b/test_suite/tests/ui/rename/variant_unknown_rename_rule.stderr index 7a52f37a..48f53f89 100644 --- a/test_suite/tests/ui/rename/variant_unknown_rename_rule.stderr +++ b/test_suite/tests/ui/rename/variant_unknown_rename_rule.stderr @@ -1,4 +1,4 @@ -error: unknown rename rule for #[serde(rename_all = "abc")] +error: unknown rename rule `rename_all = "abc"`, expected one of "lowercase", "UPPERCASE", "PascalCase", "camelCase", "snake_case", "SCREAMING_SNAKE_CASE", "kebab-case", "SCREAMING-KEBAB-CASE" --> $DIR/variant_unknown_rename_rule.rs:5:26 | 5 | #[serde(rename_all = "abc")]