lichess_api/model/openings/
lichess.rs

1use serde::{Deserialize, Serialize};
2
3use crate::model::{Domain, Request, VariantKey};
4
5#[derive(Default, Clone, Debug, Deserialize, Serialize)]
6#[serde_with::skip_serializing_none]
7pub struct GetQuery {
8    pub variant: VariantKey,
9    pub fen: String,
10    pub play: String,
11    pub speeds: Option<String>,
12    pub ratings: Option<String>,
13    pub since: Option<String>,
14    pub until: Option<String>,
15    pub moves: Option<u32>,
16    pub top_games: Option<u32>,
17    pub recent_games: Option<u32>,
18    pub history: Option<bool>,
19}
20
21pub type GetRequest = Request<GetQuery>;
22
23impl GetRequest {
24    pub fn new(query: GetQuery) -> Self {
25        Self::get("/lichess", query, Domain::Explorer)
26    }
27}
28
29impl From<GetQuery> for GetRequest {
30    fn from(query: GetQuery) -> Self {
31        Self::new(query)
32    }
33}