valorant_api 0.0.4

A library for interacting with the ingame Valorant-API.
Documentation
#![cfg(feature = "puuid")]

use serde::{Deserialize, Serialize};
use std::fmt::Display;
use std::str::FromStr;

#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Hash, Clone, Copy)]
#[serde(rename_all = "lowercase")]
pub enum Affinity {
    AS2,
    ASIA,
    BR1,
    EU,
    EU3,
    EUN1,
    EUW1,
    JP1,
    KR1,
    LA1,
    LA2,
    NA1,
    OC1,
    PBE1,
    RU1,
    SEA1,
    SEA2,
    SEA3,
    SEA4,
    TR1,
    US,
    #[serde(rename = "us-br1")]
    UsBr1,
    #[serde(rename = "us-la2")]
    UsLa2,
    US2,
}

impl Display for Affinity {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let str = match self {
            Affinity::AS2 => "as2",
            Affinity::ASIA => "asia",
            Affinity::BR1 => "br1",
            Affinity::EU => "eu",
            Affinity::EU3 => "eu3",
            Affinity::EUN1 => "eun1",
            Affinity::EUW1 => "euw1",
            Affinity::JP1 => "jp1",
            Affinity::KR1 => "kr1",
            Affinity::LA1 => "la1",
            Affinity::LA2 => "la2",
            Affinity::NA1 => "na1",
            Affinity::OC1 => "oc1",
            Affinity::PBE1 => "pbe1",
            Affinity::RU1 => "ru1",
            Affinity::SEA1 => "sea1",
            Affinity::SEA2 => "sea2",
            Affinity::SEA3 => "sea3",
            Affinity::SEA4 => "sea4",
            Affinity::TR1 => "tr1",
            Affinity::US => "us",
            Affinity::UsBr1 => "us-br1",
            Affinity::UsLa2 => "us-la2",
            Affinity::US2 => "us2",
        }
        .to_string();
        write!(f, "{}", str)
    }
}

impl FromStr for Affinity {
    type Err = ();

    fn from_str(s: &str) -> Result<Affinity, ()> {
        match s.to_lowercase().as_str() {
            "as2" => Ok(Affinity::AS2),
            "asia" => Ok(Affinity::ASIA),
            "br1" => Ok(Affinity::BR1),
            "eu" => Ok(Affinity::EU),
            "eu3" => Ok(Affinity::EU3),
            "eun1" => Ok(Affinity::EUN1),
            "euw1" => Ok(Affinity::EUW1),
            "jp1" => Ok(Affinity::JP1),
            "kr1" => Ok(Affinity::KR1),
            "la1" => Ok(Affinity::LA1),
            "la2" => Ok(Affinity::LA2),
            "na1" => Ok(Affinity::NA1),
            "oc1" => Ok(Affinity::OC1),
            "pbe1" => Ok(Affinity::PBE1),
            "ru1" => Ok(Affinity::RU1),
            "sea1" => Ok(Affinity::SEA1),
            "sea2" => Ok(Affinity::SEA2),
            "sea3" => Ok(Affinity::SEA3),
            "sea4" => Ok(Affinity::SEA4),
            "tr1" => Ok(Affinity::TR1),
            "us" => Ok(Affinity::US),
            "us-br1" => Ok(Affinity::UsBr1),
            "us-la2" => Ok(Affinity::UsLa2),
            "us2" => Ok(Affinity::US2),
            _ => Err(()),
        }
    }
}