spider-client 0.1.87

Spider Cloud client
Documentation
use serde::{Deserialize, Serialize};
use strum::{Display, EnumIter, EnumString, IntoStaticStr};

#[derive(
    Debug,
    Clone,
    Copy,
    Serialize,
    Deserialize,
    EnumString,
    Display,
    IntoStaticStr,
    EnumIter,
    PartialEq,
    Eq,
    Hash,
)]
#[strum(serialize_all = "UPPERCASE")]
#[serde(rename_all = "UPPERCASE")]
pub enum CountryCode {
    AD,
    AE,
    AF,
    AL,
    AM,
    AO,
    AR,
    AS,
    AT,
    AU,
    AZ,
    BA,
    BD,
    BE,
    BF,
    BG,
    BH,
    BI,
    BJ,
    BN,
    BO,
    BR,
    BS,
    BT,
    BW,
    BY,
    BZ,
    CA,
    CD,
    CF,
    CG,
    CH,
    CI,
    CL,
    CM,
    CN,
    CO,
    CR,
    CU,
    CV,
    CY,
    CZ,
    DE,
    DJ,
    DK,
    DM,
    DO,
    DZ,
    EC,
    EE,
    EG,
    EH,
    ER,
    ES,
    ET,
    FI,
    FJ,
    FM,
    FR,
    GA,
    GB,
    GD,
    GE,
    GH,
    GM,
    GN,
    GQ,
    GR,
    GT,
    GW,
    GY,
    HK,
    HN,
    HR,
    HT,
    HU,
    ID,
    IE,
    IL,
    IN,
    IQ,
    IR,
    IS,
    IT,
    JM,
    JO,
    JP,
    KE,
    KG,
    KH,
    KI,
    KM,
    KN,
    KR,
    KW,
    KZ,
    LA,
    LB,
    LC,
    LK,
    LR,
    LS,
    LT,
    LU,
    LV,
    LY,
    MA,
    MC,
    MD,
    ME,
    MG,
    MH,
    MK,
    ML,
    MM,
    MN,
    MO,
    MR,
    MT,
    MU,
    MV,
    MW,
    MX,
    MY,
    MZ,
    NA,
    NE,
    NG,
    NI,
    NL,
    NO,
    NP,
    NR,
    NU,
    NZ,
    OM,
    PA,
    PE,
    PG,
    PH,
    PK,
    PL,
    PR,
    PS,
    PT,
    PW,
    PY,
    QA,
    RE,
    RO,
    RS,
    RU,
    RW,
    SA,
    SB,
    SC,
    SD,
    SE,
    SG,
    SI,
    SK,
    SL,
    SM,
    SN,
    SO,
    SR,
    SS,
    ST,
    SV,
    SY,
    SZ,
    TD,
    TG,
    TH,
    TJ,
    TL,
    TM,
    TN,
    TO,
    TR,
    TT,
    TV,
    TZ,
    UA,
    UG,
    US,
    UY,
    UZ,
    VC,
    VE,
    VN,
    VU,
    WS,
    YE,
    YT,
    ZA,
    ZM,
    ZW,
}

#[test]
fn test_country_code_serialization() {
    let json = r#""US""#;
    let code: CountryCode = serde_json::from_str(json).expect("Failed to deserialize");
    assert_eq!(code, CountryCode::US);
    assert_eq!(code.to_string().to_lowercase(), "us");
}