tetrio_api/models/users/
user_rank.rs1use 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}