Skip to main content

ygo_core/card/
banlist.rs

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}