valorant_api_official 0.2.2

A library for interacting with the Official Valorant API.
Documentation
use std::fmt::Display;
use std::str::FromStr;

use serde::{Deserialize, Serialize};

#[derive(PartialEq, Eq, Hash, Serialize, Deserialize, Debug, Clone, Copy)]
#[serde(rename_all = "lowercase")]
pub enum Region {
    EU,
    AP,
    NA,
    BR,
    LATAM,
    KR,
    ESPORTS,
    PBE,
}

impl Display for Region {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        let str = match self {
            Region::EU => "eu",
            Region::AP => "ap",
            Region::NA => "na",
            Region::BR => "br",
            Region::LATAM => "latam",
            Region::KR => "kr",
            Region::ESPORTS => "esports",
            Region::PBE => "pbe",
        }
        .to_string();
        write!(f, "{str}")
    }
}

impl FromStr for Region {
    type Err = ();

    fn from_str(s: &str) -> Result<Region, ()> {
        match s.to_lowercase().as_str() {
            "eu" => Ok(Region::EU),
            "ap" => Ok(Region::AP),
            "na" => Ok(Region::NA),
            "br" => Ok(Region::BR),
            "latam" => Ok(Region::LATAM),
            "kr" => Ok(Region::KR),
            "esports" => Ok(Region::ESPORTS),
            "pbe" => Ok(Region::PBE),
            _ => Err(()),
        }
    }
}