lichess_api/model/external_engine/
create.rs

1use crate::model::external_engine::CreateExternalEngine;
2use crate::model::{Body, Request};
3use serde::{Deserialize, Serialize};
4
5#[derive(Default, Clone, Debug, Serialize)]
6#[serde(rename_all = "camelCase")]
7pub struct PostQuery;
8
9pub type PostRequest = Request<PostQuery, CreateExternalEngine>;
10
11impl PostRequest {
12    pub fn new(engine: CreateExternalEngine) -> Self {
13        Self::post("/api/external-engine", None, Body::Json(engine), None)
14    }
15}
16
17impl From<CreateExternalEngine> for PostRequest {
18    fn from(engine: CreateExternalEngine) -> Self {
19        Self::new(engine)
20    }
21}
22
23#[derive(Clone, Debug, Deserialize, Serialize)]
24#[serde(rename_all = "camelCase")]
25pub struct ExternalEngine {
26    pub id: String,
27    pub name: String,
28    pub client_secret: String,
29    pub user_id: String,
30    pub max_threads: u32,
31    pub max_hash: u32,
32    pub default_depth: u8,
33    pub variants: Vec<String>,
34    pub provider_data: Option<String>,
35}