diff --git a/juniper/src/util.rs b/juniper/src/util.rs index 3a11108e..6642b0ab 100644 --- a/juniper/src/util.rs +++ b/juniper/src/util.rs @@ -7,7 +7,13 @@ use std::borrow::Cow; pub fn to_camel_case(s: &'_ str) -> Cow<'_, str> { let mut dest = Cow::Borrowed(s); - for (i, part) in s.split('_').enumerate() { + // handle '_' to be more friendly with the + // _var convention for unused variables + let s_iter = if s.starts_with('_') { &s[1..] } else { s } + .split('_') + .enumerate(); + + for (i, part) in s_iter { if i > 0 && part.len() == 1 { dest += Cow::Owned(part.to_uppercase()); } else if i > 0 && part.len() > 1 { @@ -32,7 +38,7 @@ pub fn to_camel_case(s: &'_ str) -> Cow<'_, str> { #[test] fn test_to_camel_case() { assert_eq!(&to_camel_case("test")[..], "test"); - assert_eq!(&to_camel_case("_test")[..], "Test"); + assert_eq!(&to_camel_case("_test")[..], "test"); assert_eq!(&to_camel_case("first_second")[..], "firstSecond"); assert_eq!(&to_camel_case("first_")[..], "first"); assert_eq!(&to_camel_case("a_b_c")[..], "aBC"); diff --git a/juniper_codegen/src/util/mod.rs b/juniper_codegen/src/util/mod.rs index 82351e61..03395b26 100644 --- a/juniper_codegen/src/util/mod.rs +++ b/juniper_codegen/src/util/mod.rs @@ -233,7 +233,13 @@ fn get_doc_attr(attrs: &[Attribute]) -> Option<Vec<MetaNameValue>> { pub fn to_camel_case(s: &str) -> String { let mut dest = String::new(); - for (i, part) in s.split('_').enumerate() { + // handle '_' to be more friendly with the + // _var convention for unused variables + let s_iter = if s.starts_with('_') { &s[1..] } else { s } + .split('_') + .enumerate(); + + for (i, part) in s_iter { if i > 0 && part.len() == 1 { dest.push_str(&part.to_uppercase()); } else if i > 0 && part.len() > 1 { @@ -1874,7 +1880,7 @@ mod test { #[test] fn test_to_camel_case() { assert_eq!(&to_camel_case("test")[..], "test"); - assert_eq!(&to_camel_case("_test")[..], "Test"); + assert_eq!(&to_camel_case("_test")[..], "test"); assert_eq!(&to_camel_case("first_second")[..], "firstSecond"); assert_eq!(&to_camel_case("first_")[..], "first"); assert_eq!(&to_camel_case("a_b_c")[..], "aBC");