talmudifier 0.2.0

Convert markdown text into Talmud-like PDFs
Documentation
use serde::{Deserialize, Serialize};
use std::fmt::{Display, Formatter};

/// A column's language. See: <https://texdoc.org/serve/polyglossia/0>
#[derive(Copy, Clone, Debug, Default, Eq, PartialEq, Hash, Deserialize, Serialize)]
#[serde(rename_all = "lowercase")]
pub enum Language {
    Afrikaans,
    Albanian,
    Amharic,
    Arabic,
    Armenian,
    Asturian,
    Basque,
    Belarusian,
    Bengali,
    Bosnian,
    Breton,
    Bulgarian,
    Catalan,
    Chinese,
    Coptic,
    Croatian,
    Czech,
    Danish,
    Divehi,
    Dutch,
    #[default]
    English,
    Esperanto,
    Estonian,
    Finnish,
    French,
    Friulian,
    Gaelic,
    Galician,
    Georgian,
    German,
    Greek,
    Hebrew,
    Hindi,
    Hungarian,
    Icelandic,
    Interlingua,
    Italian,
    Japanese,
    Kannada,
    Khmer,
    Korean,
    Kurdish,
    Lao,
    Latin,
    Latvian,
    Lithuanian,
    Macedonian,
    Malay,
    Malayalam,
    Marathi,
    Mongolian,
    Nko,
    Norwegian,
    Occitan,
    Odia,
    Persian,
    Piedmontese,
    Polish,
    Portuguese,
    Punjabi,
    Romanian,
    Romansh,
    Russian,
    Sami,
    Sanskrit,
    Serbian,
    Slovak,
    Slovenian,
    Sorbian,
    Spanish,
    Swedish,
    Syriac,
    Tamil,
    Telugu,
    Thai,
    Tibetan,
    Turkish,
    Turkmen,
    Ukrainian,
    Urdu,
    Uyghur,
    Vietnamese,
    Welsh,
}

impl Display for Language {
    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
        let s = match self {
            Self::Afrikaans => "afrikaans",
            Self::Albanian => "albanian",
            Self::Amharic => "amharic",
            Self::Arabic => "arabic",
            Self::Armenian => "armenian",
            Self::Asturian => "asturian",
            Self::Basque => "basque",
            Self::Belarusian => "belarusian",
            Self::Bengali => "bengali",
            Self::Bosnian => "bosnian",
            Self::Breton => "breton",
            Self::Bulgarian => "bulgarian",
            Self::Catalan => "catalan",
            Self::Chinese => "chinese",
            Self::Coptic => "coptic",
            Self::Croatian => "croatian",
            Self::Czech => "czech",
            Self::Danish => "danish",
            Self::Divehi => "divehi",
            Self::Dutch => "dutch",
            Self::English => "english",
            Self::Esperanto => "esperanto",
            Self::Estonian => "estonian",
            Self::Finnish => "finnish",
            Self::French => "french",
            Self::Friulian => "friulian",
            Self::Gaelic => "gaelic",
            Self::Galician => "galician",
            Self::Georgian => "georgian",
            Self::German => "german",
            Self::Greek => "greek",
            Self::Hebrew => "hebrew",
            Self::Hindi => "hindi",
            Self::Hungarian => "hungarian",
            Self::Icelandic => "icelandic",
            Self::Interlingua => "interlingua",
            Self::Italian => "italian",
            Self::Japanese => "japanese",
            Self::Kannada => "kannada",
            Self::Khmer => "khmer",
            Self::Korean => "korean",
            Self::Kurdish => "kurdish",
            Self::Lao => "lao",
            Self::Latin => "latin",
            Self::Latvian => "latvian",
            Self::Lithuanian => "lithuanian",
            Self::Macedonian => "macedonian",
            Self::Malay => "malay",
            Self::Malayalam => "malayalam",
            Self::Marathi => "marathi",
            Self::Mongolian => "mongolian",
            Self::Nko => "nko",
            Self::Norwegian => "norwegian",
            Self::Occitan => "occitan",
            Self::Odia => "odia",
            Self::Persian => "persian",
            Self::Piedmontese => "piedmontese",
            Self::Polish => "polish",
            Self::Portuguese => "portuguese",
            Self::Punjabi => "punjabi",
            Self::Romanian => "romanian",
            Self::Romansh => "romansh",
            Self::Russian => "russian",
            Self::Sami => "sami",
            Self::Sanskrit => "sanskrit",
            Self::Serbian => "serbian",
            Self::Slovak => "slovak",
            Self::Slovenian => "slovenian",
            Self::Sorbian => "sorbian",
            Self::Spanish => "spanish",
            Self::Swedish => "swedish",
            Self::Syriac => "syriac",
            Self::Tamil => "tamil",
            Self::Telugu => "telugu",
            Self::Thai => "thai",
            Self::Tibetan => "tibetan",
            Self::Turkish => "turkish",
            Self::Turkmen => "turkmen",
            Self::Ukrainian => "ukrainian",
            Self::Urdu => "urdu",
            Self::Uyghur => "uyghur",
            Self::Vietnamese => "vietnamese",
            Self::Welsh => "welsh",
        };
        write!(f, "{s}")
    }
}