lichess_api/model/puzzles/
next.rs1use 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;