lichess_api/model/analysis/
cloud.rs

1use crate::model::VariantKey;
2
3use serde::{Deserialize, Serialize};
4use serde_with::skip_serializing_none;
5
6#[derive(Default, Clone, Debug, Serialize)]
7#[skip_serializing_none]
8pub struct GetQuery {
9    pub fen: String,
10    #[serde(rename = "multiPv")]
11    pub variation_count: Option<u32>,
12    pub variant: Option<VariantKey>,
13}
14
15pub type GetRequest = crate::model::Request<GetQuery>;
16
17impl GetRequest {
18    pub fn new(query: GetQuery) -> Self {
19        Self::get("/api/cloud-eval", query, None)
20    }
21}
22
23impl From<GetQuery> for GetRequest {
24    fn from(query: GetQuery) -> Self {
25        Self::new(query)
26    }
27}
28
29#[derive(Clone, Debug, Serialize, Deserialize)]
30pub struct Evaluation {
31    pub fen: String,
32    #[serde(rename = "knodes")]
33    pub k_nodes: u32,
34    pub depth: u32,
35    #[serde(rename = "pvs")]
36    pub principal_variations: Vec<PrincipalVariation>,
37}
38
39#[derive(Clone, Debug, Serialize, Deserialize)]
40pub struct PrincipalVariation {
41    pub moves: String,
42    #[serde(rename = "cp")]
43    pub centipawns: i32,
44}