Skip to main content

ToLowerSnake

Trait ToLowerSnake 

Source
pub trait ToLowerSnake {
    // Required methods
    fn to_lower_snake_canonical(&self) -> String;
    fn to_lower_snake_decorated(&self) -> String;
}
Expand description

Converts an identifier into a preset lower-snake identifier string.

See the convert module for more details.

§Examples

assert_eq!(
    LowerCamelIdent::new("lowerCamel")?.to_lower_snake_canonical(),
    "lower_camel"
);
assert_eq!(
    LowerHybridIdent::new("lowerHybrid")?.to_lower_snake_canonical(),
    "lower_hybrid"
);
assert_eq!(
    LowerKebabIdent::new("lower-kebab")?.to_lower_snake_canonical(),
    "lower_kebab"
);
assert_eq!(
    LowerSnakeIdent::new("lower_snake")?.to_lower_snake_canonical(),
    "lower_snake"
);
assert_eq!(
    UpperCamelIdent::new("UpperCamel")?.to_lower_snake_canonical(),
    "upper_camel"
);
assert_eq!(
    UpperHybridIdent::new("UpperHybrid")?.to_lower_snake_canonical(),
    "upper_hybrid"
);
assert_eq!(
    UpperKebabIdent::new("UPPER-KEBAB")?.to_lower_snake_canonical(),
    "upper_kebab"
);
assert_eq!(
    UpperSnakeIdent::new("UPPER_SNAKE")?.to_lower_snake_canonical(),
    "upper_snake"
);

Required Methods§

Source

fn to_lower_snake_canonical(&self) -> String

Returns a displayable type that converts the provided input to lower snake in canonical form.

See the fmt module documentation for details on different forms.

§Examples

Basic Usage:

assert_eq!(
    LowerCamelIdent::new("__lower__camel_case__")?
        .to_lower_snake_canonical(),
    "lower_camel_case"
);
assert_eq!(
    LowerHybridIdent::new("_-lower-_hybrid-case-_")?
        .to_lower_snake_canonical(),
    "lower_hybrid_case"
);
assert_eq!(
    LowerKebabIdent::new("--lower--kebab-case--")?
        .to_lower_snake_canonical(),
    "lower_kebab_case"
);
assert_eq!(
    LowerSnakeIdent::new("__lower__snake_case__")?
        .to_lower_snake_canonical(),
    "lower_snake_case"
);
assert_eq!(
    UpperCamelIdent::new("__Upper__Camel_Case__")?
        .to_lower_snake_canonical(),
    "upper_camel_case"
);
assert_eq!(
    UpperHybridIdent::new("-_Upper_-Hybrid_Case_-")?
        .to_lower_snake_canonical(),
    "upper_hybrid_case"
);
assert_eq!(
    UpperKebabIdent::new("--UPPER--KEBAB-CASE--")?
        .to_lower_snake_canonical(),
    "upper_kebab_case"
);
assert_eq!(
    UpperSnakeIdent::new("__UPPER__SNAKE_CASE__")?
        .to_lower_snake_canonical(),
    "upper_snake_case"
);

Notice that it will attempt to keep necessary prefix delimiters.

assert_eq!(
    UpperCamelIdent::new("_____")?
        .to_lower_snake_canonical(),
    "_"
);
assert_eq!(
    UpperCamelIdent::new("__2__Example__Camel__")?
        .to_lower_snake_canonical(),
    "_2_example_camel"
);
Source

fn to_lower_snake_decorated(&self) -> String

Returns a displayable type that converts the provided input to lower snake in decorated form.

See the fmt module documentation for details on different forms.

§Examples

Basic Usage:

assert_eq!(
    LowerCamelIdent::new("__lower__camel_case__")?
        .to_lower_snake_decorated(),
    "__lower__camel_case__"
);
assert_eq!(
    LowerHybridIdent::new("_-lower-_hybrid-case-_")?
        .to_lower_snake_decorated(),
    "__lower__hybrid_case__"
);
assert_eq!(
    LowerKebabIdent::new("--lower--kebab-case--")?
        .to_lower_snake_decorated(),
    "__lower__kebab_case__"
);
assert_eq!(
    LowerSnakeIdent::new("__lower__snake_case__")?
        .to_lower_snake_decorated(),
    "__lower__snake_case__"
);
assert_eq!(
    UpperCamelIdent::new("__Upper__Camel_Case__")?
        .to_lower_snake_decorated(),
    "__upper__camel_case__"
);
assert_eq!(
    UpperHybridIdent::new("-_Upper_-Hybrid_Case_-")?
        .to_lower_snake_decorated(),
    "__upper__hybrid_case__"
);
assert_eq!(
    UpperKebabIdent::new("--UPPER--KEBAB-CASE--")?
        .to_lower_snake_decorated(),
    "__upper__kebab_case__"
);
assert_eq!(
    UpperSnakeIdent::new("__UPPER__SNAKE_CASE__")?
        .to_lower_snake_decorated(),
    "__upper__snake_case__"
);

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<B: Boundary, D: Delimiter, P: Profile> ToLowerSnake for Ident<B, D, P>