Skip to main content

dbc_codegen2/
utils.rs

1pub trait ToUpperCamelCase {
2    fn to_upper_camelcase(&self) -> String;
3}
4
5impl ToUpperCamelCase for str {
6    fn to_upper_camelcase(&self) -> String {
7        let mut result = String::with_capacity(self.len());
8        let mut capitalize_next = true;
9
10        for c in self.chars() {
11            if c == '_' {
12                capitalize_next = true;
13            } else if capitalize_next {
14                result.extend(c.to_uppercase());
15                capitalize_next = false;
16            } else {
17                result.extend(c.to_lowercase());
18            }
19        }
20
21        result
22    }
23}
24
25pub enum Language {
26    Rust,
27    Cpp,
28}
29impl Language {
30    pub fn file_extension(&self) -> &'static str {
31        match self {
32            Language::Rust => "rs",
33            Language::Cpp  => "cpp",
34        }
35    }
36}