icydb_model/base/normalizer/text/
case.rs1use crate::{prelude::*, visitor::Normalizer};
8
9use convert_case::{Case, Casing};
10
11#[normalizer]
16pub struct Kebab;
17
18impl Normalizer<String> for Kebab {
19 fn normalize(&self, value: &mut String) -> Result<(), String> {
20 *value = value.to_case(Case::Kebab);
21
22 Ok(())
23 }
24}
25
26#[normalizer]
31pub struct Lower;
32
33impl Normalizer<String> for Lower {
34 fn normalize(&self, value: &mut String) -> Result<(), String> {
35 *value = value.to_lowercase();
37
38 Ok(())
39 }
40}
41
42#[normalizer]
47pub struct Snake;
48
49impl Normalizer<String> for Snake {
50 fn normalize(&self, value: &mut String) -> Result<(), String> {
51 *value = value.to_case(Case::Snake);
52
53 Ok(())
54 }
55}
56
57#[normalizer]
62pub struct Title;
63
64impl Normalizer<String> for Title {
65 fn normalize(&self, value: &mut String) -> Result<(), String> {
66 *value = value.to_case(Case::Title);
67
68 Ok(())
69 }
70}
71
72#[normalizer]
77pub struct Upper;
78
79impl Normalizer<String> for Upper {
80 fn normalize(&self, value: &mut String) -> Result<(), String> {
81 *value = value.to_uppercase();
83
84 Ok(())
85 }
86}
87
88#[normalizer]
93pub struct UpperCamel;
94
95impl Normalizer<String> for UpperCamel {
96 fn normalize(&self, value: &mut String) -> Result<(), String> {
97 *value = value.to_case(Case::UpperCamel);
98
99 Ok(())
100 }
101}
102
103#[normalizer]
108pub struct UpperSnake;
109
110impl Normalizer<String> for UpperSnake {
111 fn normalize(&self, value: &mut String) -> Result<(), String> {
112 *value = value.to_case(Case::UpperSnake);
113
114 Ok(())
115 }
116}