scsys_utils/casing/
kind.rs1#[derive(
7 Clone,
8 Copy,
9 Debug,
10 Default,
11 Eq,
12 Hash,
13 Ord,
14 PartialEq,
15 PartialOrd,
16 strum::AsRefStr,
17 strum::Display,
18 strum::EnumCount,
19 strum::EnumIs,
20 strum::EnumIter,
21 strum::EnumString,
22 strum::VariantArray,
23 strum::VariantNames,
24)]
25#[cfg_attr(
26 feature = "serde",
27 derive(serde::Deserialize, serde::Serialize,),
28 serde(rename_all = "snake_case")
29)]
30#[strum(serialize_all = "snake_case")]
31pub enum CaseType {
32 CamelCase,
33 KebabCase,
34 PascalCase,
35 #[default]
36 SnakeCase,
37}
38
39impl CaseType {
40 #[cfg(feature = "alloc")]
41 pub fn convert(&self, s: &str) -> alloc::string::String {
43 use super::utils;
44 match self {
45 Self::CamelCase => utils::to_camelcase(s),
46 Self::KebabCase => utils::to_kebabcase(s),
47 Self::PascalCase => utils::to_pascalcase(s),
48 Self::SnakeCase => utils::to_snakecase(s),
49 }
50 }
51}