lichess_api/model/external_engine/
create.rs1use 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}