zugferd 0.1.0

Generate a ZUGFeRD XML for European e-invoices.
Documentation
use serde::{Serialize,Serializer};

#[derive(Clone, Copy)]
pub enum CountryCode {
    Germany,
    France,
    UnitedStates,
    UnitedKingdom,
    Italy,
    Spain,
}

impl CountryCode {
    pub fn as_str(&self) -> &str {
        match self {
            CountryCode::Germany => "DE",
            CountryCode::France => "FR",
            CountryCode::UnitedStates => "US",
            CountryCode::UnitedKingdom => "GB",
            CountryCode::Italy => "IT",
            CountryCode::Spain => "ES",
        }
    }
}

impl Serialize for CountryCode {
    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
    where
        S: Serializer,
    {
        serializer.serialize_str(self.as_str())
    }
}