aboutsummaryrefslogtreecommitdiff
path: root/src/string_utils.rs
blob: 7a02f25e70dd0a2e04c1ed14d20167ba4004cc95 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
pub fn process_id_text(input: String) -> String {
    let s = input.trim().to_lowercase();
    let mut result = String::new();

    for c in s.chars() {
        match c {
            '\n' | '_' => continue,
            '-' | '.' | ',' | ' ' => result.push('_'),
            _ => result.push(c),
        }
    }

    result.chars()
        .filter(|&c| c.is_ascii_alphanumeric() || c == '_')
        .collect()
}