weer_api 0.1.1

A wrapper library for using Weather API
Documentation
use std::fmt::{self, Display};
use serde::{Serialize, Deserialize};


#[derive(Debug, Serialize, Deserialize, PartialEq, Clone, Copy)]
pub enum Language {
    #[serde(rename="ar")]
    Arabic,
    #[serde(rename="bn")]
    Bengali,
    #[serde(rename="bg")]
    Bulgarian,
    #[serde(rename="zh")]
    ChineseSimplified,
    #[serde(rename="zh_tw")]
    ChineseTraditional,
    #[serde(rename="cs")]
    Czech,
    #[serde(rename="da")]
    Danish,
    #[serde(rename="nl")]
    Dutch,
    #[serde(rename="fi")]
    Finnish,
    #[serde(rename="fr")]
    French,
    #[serde(rename="de")]
    German,
    #[serde(rename="el")]
    Greek,
    #[serde(rename="hi")]
    Hindi,
    #[serde(rename="hu")]
    Hungarian,
    #[serde(rename="it")]
    Italian,
    #[serde(rename="ja")]
    Japanese,
    #[serde(rename="jv")]
    Javanese,
    #[serde(rename="ko")]
    Korean,
    #[serde(rename="zh_cmn")]
    Mandarin,
    #[serde(rename="mr")]
    Marathi,
    #[serde(rename="pl")]
    Polish,
    #[serde(rename="pt")]
    Portuguese,
    #[serde(rename="pa")]
    Punjabi,
    #[serde(rename="ro")]
    Romanian,
    #[serde(rename="ru")]
    Russian,
    #[serde(rename="sr")]
    Serbian,
    #[serde(rename="si")]
    Sinhalese,
    #[serde(rename="sk")]
    Slovak,
    #[serde(rename="es")]
    Spanish,
    #[serde(rename="sv")]
    Swedish,
    #[serde(rename="ta")]
    Tamil,
    #[serde(rename="te")]
    Telugu,
    #[serde(rename="tr")]
    Turkish,
    #[serde(rename="uk")]
    Ukrainian,
    #[serde(rename="ur")]
    Urdu,
    #[serde(rename="vi")]
    Vietnamese,
    #[serde(rename="zh_wuu")]
    WuShanghainese,
    #[serde(rename="zh_hsn")]
    Xiang,
    #[serde(rename="zh_yue")]
    YueCantonese,
    #[serde(rename="zu")]
    Zulu
}

impl Language {
    pub fn new(lang: &str) -> Result<Self, serde_json::Error> {
        serde_json::from_value(serde_json::json![lang])
    }

    pub fn content(&self) -> &str {
        match self {
            Language::Arabic => "ar",
            Language::Bengali => "bn",
            Language::Bulgarian => "bg",
            Language::ChineseSimplified => "zh",
            Language::ChineseTraditional => "zh_tw",
            Language::Czech => "cs",
            Language::Danish => "da",
            Language::Dutch => "nl",
            Language::Finnish => "fi",
            Language::French => "fr",
            Language::German => "de",
            Language::Greek => "el",
            Language::Hindi => "hi",
            Language::Hungarian => "hu",
            Language::Italian => "it",
            Language::Japanese => "ja",
            Language::Javanese => "jv",
            Language::Korean => "ko",
            Language::Mandarin => "zh_cmn",
            Language::Marathi => "mr",
            Language::Polish => "pl",
            Language::Portuguese => "pt",
            Language::Punjabi => "pa",
            Language::Romanian => "ro",
            Language::Russian => "ru",
            Language::Serbian => "sr",
            Language::Sinhalese => "si",
            Language::Slovak => "sk",
            Language::Spanish => "es",
            Language::Swedish => "sv",
            Language::Tamil => "ta",
            Language::Telugu => "te",
            Language::Turkish => "tr",
            Language::Ukrainian => "uk",
            Language::Urdu => "ur",
            Language::Vietnamese => "vi",
            Language::WuShanghainese => "zh_wuu",
            Language::Xiang => "zh_hsn",
            Language::YueCantonese => "zh_yue",
            Language::Zulu => "zu"
        }
    }
}

impl Display for Language {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        write!(f, "{}", self.content())
    }
}