Skip to content

Commit

Permalink
Merge pull request #1961 from serde-rs/renamerule
Browse files Browse the repository at this point in the history
Provide list of recognized rename rules on parse error
  • Loading branch information
dtolnay committed Jan 23, 2021
2 parents eaccae2 + b7bad3a commit 6670a30
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 8 deletions.
17 changes: 11 additions & 6 deletions serde_derive/src/internals/case.rs
Expand Up @@ -5,7 +5,7 @@
#[allow(deprecated, unused_imports)]
use std::ascii::AsciiExt;

use std::fmt::{self, Display};
use std::fmt::{self, Debug, Display};

use self::RenameRule::*;

Expand Down Expand Up @@ -120,11 +120,16 @@ 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 = ")?;
Debug::fmt(self.unknown, f)?;
f.write_str("`, expected one of ")?;
for (i, (name, _rule)) in RENAME_RULES.iter().enumerate() {
if i > 0 {
f.write_str(", ")?;
}
Debug::fmt(name, f)?;
}
Ok(())
}
}

Expand Down
@@ -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")]
Expand Down
@@ -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")]
Expand Down

0 comments on commit 6670a30

Please sign in to comment.