diff --git a/pbjson-build/src/descriptor.rs b/pbjson-build/src/descriptor.rs index 11ea0ad..7ecdb37 100644 --- a/pbjson-build/src/descriptor.rs +++ b/pbjson-build/src/descriptor.rs @@ -19,9 +19,9 @@ pub struct Package { impl Display for Package { fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { - write!(f, "{}", self.path[0])?; + write!(f, "{}", self.path[0].to_snake_case())?; for element in &self.path[1..self.path.len()] { - write!(f, ".{}", element)?; + write!(f, ".{}", element.to_snake_case())?; } Ok(()) } @@ -291,4 +291,12 @@ mod tests { assert_eq!(t.prefix_match(".foo.bar.Baz.Bar"), Some(4)); assert_eq!(t.prefix_match(".foo.bar.Baz.Bar.Boo"), None); } + + #[test] + fn test_handle_camel_case_in_package() { + assert_eq!( + Package::new("fooBar.baz.boo").to_string(), + String::from("foo_bar.baz.boo") + ) + } }