tetrio_api/models/users/
user_rank.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq, Hash)]
4#[serde(rename_all = "lowercase")]
5pub enum UserRank {
6    #[serde(rename = "x+")]
7    XPlus,
8    X,
9    U,
10    SS,
11    #[serde(rename = "s+")]
12    SPlus,
13    #[serde(rename = "s")]
14    S,
15    #[serde(rename = "s-")]
16    SMinus,
17    #[serde(rename = "a+")]
18    APlus,
19    #[serde(rename = "a")]
20    A,
21    #[serde(rename = "a-")]
22    AMinus,
23    #[serde(rename = "b+")]
24    BPlus,
25    #[serde(rename = "b")]
26    B,
27    #[serde(rename = "b-")]
28    BMinus,
29    #[serde(rename = "c+")]
30    CPlus,
31    #[serde(rename = "c")]
32    C,
33    #[serde(rename = "c-")]
34    CMinus,
35    #[serde(rename = "d+")]
36    DPlus,
37    #[serde(rename = "d")]
38    D,
39    #[serde(rename = "z")]
40    Z,
41    #[serde(untagged)]
42    Unknown(String)
43}
44
45impl std::fmt::Display for UserRank {
46    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
47        match self {
48            UserRank::XPlus => f.write_str("X+"),
49            UserRank::X => f.write_str("X"),
50            UserRank::U => f.write_str("U"),
51            UserRank::SS => f.write_str("SS"),
52            UserRank::SPlus => f.write_str("S+"),
53            UserRank::S => f.write_str("S"),
54            UserRank::SMinus => f.write_str("S-"),
55            UserRank::APlus => f.write_str("A+"),
56            UserRank::A => f.write_str("A"),
57            UserRank::AMinus => f.write_str("A-"),
58            UserRank::BPlus => f.write_str("B+"),
59            UserRank::B => f.write_str("B"),
60            UserRank::BMinus => f.write_str("B-"),
61            UserRank::CPlus => f.write_str("C+"),
62            UserRank::C => f.write_str("C"),
63            UserRank::CMinus => f.write_str("C-"),
64            UserRank::DPlus => f.write_str("D+"),
65            UserRank::D => f.write_str("D"),
66            UserRank::Z => f.write_str("Z"),
67            UserRank::Unknown(rank) => f.write_str(&rank)
68        }
69    }
70}