lichess_api/model/tv/
mod.rs1pub mod channels;
2pub mod games;
3pub mod stream;
4
5use crate::model::{Color, LightUser};
6use serde::{Deserialize, Serialize};
7
8#[derive(Clone, Debug, Serialize, Deserialize)]
9#[serde(rename_all = "camelCase")]
10pub struct Champion {
11 pub user: LightUser,
12 pub rating: u32,
13 pub game_id: String,
14 #[serde(skip_serializing_if = "Option::is_none")]
15 pub color: Option<Color>,
16}
17
18#[derive(Clone, Debug, Serialize, Deserialize)]
19#[serde(rename_all = "camelCase")]
20pub struct Channels {
21 bot: Champion,
22 blitz: Champion,
23 racing_kings: Champion,
24 ultra_bullet: Champion,
25 bullet: Champion,
26 classical: Champion,
27 three_check: Champion,
28 antichess: Champion,
29 computer: Champion,
30 horde: Champion,
31 rapid: Champion,
32 atomic: Champion,
33 crazyhouse: Champion,
34 chess960: Champion,
35 king_of_the_hill: Champion,
36 best: Champion,
37}
38
39#[derive(Clone, Copy, Debug, Serialize, Deserialize)]
40#[serde(rename_all = "camelCase")]
41pub enum ChannelName {
42 Bot,
43 Blitz,
44 RacingKings,
45 UltraBullet,
46 Bullet,
47 Classical,
48 ThreeCheck,
49 Antichess,
50 Computer,
51 Horde,
52 Rapid,
53 Atomic,
54 Crazyhouse,
55 Chess960,
56 KingOfTheHill,
57 Best,
58}
59
60impl ChannelName {
61 pub const fn as_str(self) -> &'static str {
62 match self {
63 ChannelName::Bot => "bot",
64 ChannelName::Blitz => "blitz",
65 ChannelName::RacingKings => "racingKings",
66 ChannelName::UltraBullet => "ultraBullet",
67 ChannelName::Bullet => "bullet",
68 ChannelName::Classical => "classical",
69 ChannelName::ThreeCheck => "threeCheck",
70 ChannelName::Antichess => "antichess",
71 ChannelName::Computer => "computer",
72 ChannelName::Horde => "horde",
73 ChannelName::Rapid => "rapid",
74 ChannelName::Atomic => "atomic",
75 ChannelName::Crazyhouse => "crazyhouse",
76 ChannelName::Chess960 => "chess960",
77 ChannelName::KingOfTheHill => "kingOfTheHill",
78 ChannelName::Best => "best",
79 }
80 }
81}
82
83impl std::fmt::Display for ChannelName {
84 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
85 f.write_str(self.as_str())
86 }
87}