lichess_api/model/puzzles/
next.rs

1use serde::{Deserialize, Serialize};
2
3#[serde_with::skip_serializing_none]
4#[derive(Default, Clone, Debug, Serialize)]
5pub struct GetQuery {
6    pub angle: Option<String>,
7    pub difficulty: Option<Difficulty>,
8}
9
10#[derive(Clone, Debug, Serialize, Deserialize)]
11#[serde(rename_all = "lowercase")]
12pub enum Difficulty {
13    Easiest,
14    Easier,
15    Normal,
16    Harder,
17    Hardest,
18}
19
20pub type GetRequest = crate::model::Request<GetQuery>;
21
22impl GetRequest {
23    pub fn new(angle: Option<String>, difficulty: Option<Difficulty>) -> Self {
24        let query = GetQuery { angle, difficulty };
25        Self::get("/api/puzzle/next", query, None)
26    }
27}
28
29impl Default for GetRequest {
30    fn default() -> Self {
31        Self::new(None, None)
32    }
33}
34
35pub type Puzzle = super::PuzzleAndGame;