lichess-api 1.0.0

A client library for the Lichess API
Documentation
use crate::model::{LightUser, Request};
use serde::{Deserialize, Serialize};

#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct Autocompletions {
    pub result: Vec<LightUser>,
}

#[serde_with::skip_serializing_none]
#[derive(Default, Clone, Debug, Serialize)]
pub struct GetQuery {
    term: String,
    object: bool,
    friend: Option<bool>,
}

pub type GetRequest = Request<GetQuery>;

impl GetRequest {
    pub fn new(term: impl Into<String>, friend: Option<bool>) -> Self {
        let query = GetQuery {
            term: term.into(),
            object: true,
            friend,
        };

        Self::get("/api/player/autocomplete", query, None)
    }
}

impl<S: Into<String>> From<S> for GetRequest {
    fn from(s: S) -> Self {
        Self::new(s, None)
    }
}