/// Implementation must match exactly
/// `ToJsonName()` function in C++ `descriptor.cc`.
pub fn json_name(input: &str) -> String {
let mut capitalize_next = false;
let mut result = String::with_capacity(input.len());
for c in input.chars() {
if c == '_' {
capitalize_next = true;
} else if capitalize_next {
result.extend(c.to_uppercase());
capitalize_next = false;
} else {
result.push(c);
}
}
result
}