lichess_api/model/tv/stream/
mod.rs

1pub mod channel;
2pub mod current;
3
4use crate::model::{Color, LightUser};
5use serde::{Deserialize, Serialize};
6
7#[derive(Clone, Debug, Serialize, Deserialize)]
8#[serde(rename_all = "camelCase")]
9pub struct StreamUser {
10    #[serde(skip_serializing_if = "Option::is_none")]
11    pub color: Option<Color>,
12    pub user: LightUser,
13    pub rating: u32,
14    pub seconds: u32,
15}
16
17#[derive(Clone, Debug, Deserialize, Serialize)]
18#[serde(tag = "t", content = "d", rename_all = "camelCase")]
19pub enum Event {
20    Featured {
21        id: String,
22        orientation: Color,
23        players: [StreamUser; 2],
24        fen: String,
25    },
26
27    Fen {
28        fen: String,
29        #[serde(rename = "lm")]
30        #[serde(skip_serializing_if = "Option::is_none")]
31        last_move: Option<String>,
32        #[serde(rename = "wc")]
33        #[serde(skip_serializing_if = "Option::is_none")]
34        white_centipawns: Option<u32>,
35        #[serde(rename = "bc")]
36        #[serde(skip_serializing_if = "Option::is_none")]
37        black_centipawns: Option<u32>,
38    },
39}