toasty_core/schema/
name.rs

1use std_util::str;
2
3#[derive(Debug, Clone, Eq, PartialEq, Hash)]
4pub struct Name {
5    pub parts: Vec<String>,
6}
7
8impl Name {
9    pub fn new(src: &str) -> Self {
10        // TODO: make better
11        let snake = str::snake_case(src);
12        let parts = snake.split("_").map(String::from).collect();
13        Self { parts }
14    }
15
16    pub fn camel_case(&self) -> String {
17        str::camel_case(&self.snake_case())
18    }
19
20    pub fn upper_camel_case(&self) -> String {
21        str::upper_camel_case(&self.snake_case())
22    }
23
24    pub fn snake_case(&self) -> String {
25        self.parts.join("_")
26    }
27
28    pub fn upper_snake_case(&self) -> String {
29        str::upper_snake_case(&self.snake_case())
30    }
31}