use crate::{design::prelude::*, traits::Sanitizer};
use icydb_utils::{Case, Casing};
#[sanitizer]
pub struct Kebab;
impl Sanitizer<String> for Kebab {
fn sanitize(&self, value: &mut String) -> Result<(), String> {
*value = value.to_case(Case::Kebab);
Ok(())
}
}
#[sanitizer]
pub struct Lower;
impl Sanitizer<String> for Lower {
fn sanitize(&self, value: &mut String) -> Result<(), String> {
*value = value.to_lowercase();
Ok(())
}
}
#[sanitizer]
pub struct Snake;
impl Sanitizer<String> for Snake {
fn sanitize(&self, value: &mut String) -> Result<(), String> {
*value = value.to_case(Case::Snake);
Ok(())
}
}
#[sanitizer]
pub struct Title;
impl Sanitizer<String> for Title {
fn sanitize(&self, value: &mut String) -> Result<(), String> {
*value = value.to_case(Case::Title);
Ok(())
}
}
#[sanitizer]
pub struct Upper;
impl Sanitizer<String> for Upper {
fn sanitize(&self, value: &mut String) -> Result<(), String> {
*value = value.to_uppercase();
Ok(())
}
}
#[sanitizer]
pub struct UpperCamel;
impl Sanitizer<String> for UpperCamel {
fn sanitize(&self, value: &mut String) -> Result<(), String> {
*value = value.to_case(Case::UpperCamel);
Ok(())
}
}
#[sanitizer]
pub struct UpperSnake;
impl Sanitizer<String> for UpperSnake {
fn sanitize(&self, value: &mut String) -> Result<(), String> {
*value = value.to_case(Case::UpperSnake);
Ok(())
}
}