/// 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 | |
} |