Skip to main content

mecha10_cli_core/utils/
string_case.rs

1//! String case conversion utilities
2
3/// Convert snake_case to PascalCase
4pub fn to_pascal_case(s: &str) -> String {
5    s.split('_')
6        .map(|word| {
7            let mut c = word.chars();
8            match c.next() {
9                None => String::new(),
10                Some(f) => f.to_uppercase().collect::<String>() + c.as_str(),
11            }
12        })
13        .collect()
14}
15
16/// Convert PascalCase to snake_case
17pub fn to_snake_case(s: &str) -> String {
18    let mut result = String::new();
19    for (i, ch) in s.chars().enumerate() {
20        if ch.is_uppercase() && i > 0 {
21            result.push('_');
22        }
23        result.push(ch.to_lowercase().next().unwrap());
24    }
25    result
26}