1use serde::{Deserialize, Serialize};
2use strum::{Display, EnumIs, EnumIter, EnumString, IntoStaticStr, VariantArray};
3
4#[remain::sorted]
5#[derive(Clone, Debug, Default, Deserialize, Serialize)]
6#[cfg_attr(feature = "specta", derive(specta::Type))]
7#[serde(default)]
8pub struct BanlistInfo {
9 pub ban_ocg: Option<BanlistStatus>,
10 pub ban_tcg: Option<BanlistStatus>,
11}
12
13#[derive(
14 Clone,
15 Copy,
16 Debug,
17 Display,
18 EnumIs,
19 EnumIter,
20 EnumString,
21 IntoStaticStr,
22 VariantArray,
23 Deserialize,
24 Serialize,
25)]
26#[cfg_attr(feature = "specta", derive(specta::Type))]
27pub enum BanlistStatus {
28 #[serde(rename = "Forbidden")]
29 #[strum(serialize = "Forbidden")]
30 Forbidden,
31
32 #[serde(rename = "Limited")]
33 #[strum(serialize = "Limited")]
34 Limited,
35
36 #[serde(rename = "Semi-Limited")]
37 #[strum(serialize = "Semi-Limited")]
38 SemiLimited,
39}