slugrs 0.3.2

A fast, locale-aware slugify library for Rust
Documentation
/// Supported locales for special-case transliterations.
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Locale {
    /// German
    De,
    /// Turkish
    Tr,
}

impl Locale {
    /// Apply language-specific character replacements.
    pub fn apply(self, input: &str) -> String {
        match self {
            Locale::De => apply_de(input),
            Locale::Tr => apply_tr(input),
        }
    }
}

fn apply_de(input: &str) -> String {
    input
        .replace('ä', "ae")
        .replace('ö', "oe")
        .replace('ü', "ue")
        .replace('ß', "ss")
        .replace('Ä', "Ae")
        .replace('Ö', "Oe")
        .replace('Ü', "Ue")
}

fn apply_tr(input: &str) -> String {
    input
        .replace('ı', "i")
        .replace('İ', "I")
        .replace('ğ', "g")
        .replace('Ğ', "G")
        .replace('ş', "s")
        .replace('Ş', "S")
        .replace('ç', "c")
        .replace('Ç', "C")
        .replace('ö', "o")
        .replace('Ö', "O")
        .replace('ü', "u")
        .replace('Ü', "U")
}