toasty_core/schema/
name.rs1use 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 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}