lichess_api/model/openings/
lichess.rs1use 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}