blob: a04a021953a8dcd54f03aa7105ada081b10248c8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
  | 
use once_cell::sync::Lazy;
use regex::Regex;
static CAMELCASE_RE: Lazy<Regex> = Lazy::new(|| Regex::new(r"([a-z])([A-Z])").unwrap());
pub fn camelcase_to_snakecase(camelcased: &str) -> String
{
    CAMELCASE_RE
        .replace(camelcased, "${1}_$2")
        .to_string()
        .to_lowercase()
}
#[cfg(test)]
mod tests
{
    use super::*;
    #[test]
    fn camelcase_to_snakecase_works()
    {
        assert_eq!(camelcase_to_snakecase("LoginHandler"), "login_handler");
        assert_eq!(camelcase_to_snakecase("Regex"), "regex");
    }
}
 
  |