sanitizer_macros 0.2.1

Derive macro for the sanitizer crate
Documentation
use sanitizer::prelude::*;

#[derive(Sanitize)]
struct SanitizerTest {
    #[sanitize(trim)]
    trim: String,
    #[sanitize(numeric)]
    numeric: String,
    #[sanitize(alphanumeric)]
    alphanumeric: String,
    #[sanitize(lower_case)]
    lower_case: String,
    #[sanitize(upper_case)]
    upper_case: String,
    #[sanitize(camel_case)]
    camel_case: String,
    #[sanitize(snake_case)]
    snake_case: String,
    #[sanitize(screaming_snake_case)]
    screaming_snake_case: String,
    #[sanitize(kebab_case)]
    kebab_case: String,
    #[sanitize(screaming_kebab_case)]
    screaming_kebab_case: String,
    #[sanitize(clamp(10))]
    clamp_str: String,
    #[sanitize(clamp(10, 50))]
    clamp_int: u8,
    #[sanitize(e164)]
    phone_number: String,
    #[sanitize(trim, screaming_snake_case)]
    multiple_sanitizers: String,
}

#[test]
fn sanitizer_check() {
    let mut instance = SanitizerTest {
        trim: String::from("    test     "),
        numeric: String::from("HelloWorld8130"),
        alphanumeric: String::from("Hello,藏World&&"),
        lower_case: String::from("HELLO, WORLD"),
        upper_case: String::from("hello, world"),
        camel_case: String::from("hello_world"),
        snake_case: String::from("helloWorld"),
        screaming_kebab_case: String::from("helloWorld"),
        kebab_case: String::from("hello-World"),
        screaming_snake_case: String::from("HELLO-WORLD"),
        clamp_str: String::from("Hello, World"),
        clamp_int: 9,
        phone_number: String::from("+1 (454)"),
        multiple_sanitizers: String::from("    helloWorld123  "),
    };
    instance.sanitize();
    assert_eq!(instance.trim, "test");
    assert_eq!(instance.numeric, "8130");
    assert_eq!(instance.alphanumeric, "Hello藏World");
    assert_eq!(instance.lower_case, "hello, world");
    assert_eq!(instance.upper_case, "HELLO, WORLD");
    assert_eq!(instance.camel_case, "helloWorld");
    assert_eq!(instance.snake_case, "hello_world");
    assert_eq!(instance.screaming_snake_case, "HELLO_WORLD");
    assert_eq!(instance.clamp_str, "Hello, Wor");

    assert_eq!(instance.kebab_case, "hello-world");
    assert_eq!(instance.clamp_str, "Hello, Wor");
    assert_eq!(instance.clamp_int, 10);
    assert_eq!(instance.phone_number, "+1454");
    assert_eq!(instance.multiple_sanitizers, "HELLO_WORLD123");
}