xavier-derive 0.1.7

Derive module of Xavier. Xavier is a lightweight and versatile XML parsing library designed to streamline the process of handling XML data with ease and efficiency.
Documentation
use convert_case::Case;

pub trait CaseFromStr {
    fn value_from_str(input: &str) -> Option<Case>;
}

impl CaseFromStr for Case {
    fn value_from_str(input: &str) -> Option<Case> {
        match input {
            "Upper" => Some(Case::Upper),
            "Lower" => Some(Case::Lower),
            "Title" => Some(Case::Title),
            "Toggle" => Some(Case::Toggle),
            "Alternating" => Some(Case::Alternating),
            "Camel" => Some(Case::Camel),
            "Pascal" => Some(Case::Pascal),
            "UpperCamel" => Some(Case::UpperCamel),
            "Snake" => Some(Case::Snake),
            "UpperSnake" => Some(Case::UpperSnake),
            "ScreamingSnake" => Some(Case::ScreamingSnake),
            "Kebab" => Some(Case::Kebab),
            "Cobol" => Some(Case::Cobol),
            "Train" => Some(Case::Train),
            "Flat" => Some(Case::Flat),
            "UpperFlat" => Some(Case::UpperFlat),
            _ => None,
        }
    }
}