deribit 0.3.3

Rust client for deribit. Please look at tests/examples for detailed usages.
Documentation
use crate::models::Request;
use serde::{Deserialize, Serialize};

#[derive(Deserialize, Serialize, Clone, Debug)]
pub struct SetHeartbeatRequest {
    pub interval: u64,
}

impl SetHeartbeatRequest {
    pub fn with_interval(interval: u64) -> SetHeartbeatRequest {
        SetHeartbeatRequest { interval }
    }
}

#[derive(Deserialize, Serialize, Debug, Clone, Copy)]
#[serde(rename_all = "snake_case")]
pub enum SetHeartbeatResponse {
    Ok,
}

impl Request for SetHeartbeatRequest {
    const METHOD: &'static str = "public/set_heartbeat";
    type Response = SetHeartbeatResponse;
}

#[derive(Deserialize, Serialize, Clone, Debug)]
pub struct DisableHeartbeatRequest;

#[derive(Deserialize, Serialize, Debug, Clone, Copy)]
#[serde(rename_all = "snake_case")]
pub enum DisableHeartbeatResponse {
    Ok,
}

impl Request for DisableHeartbeatRequest {
    const METHOD: &'static str = "public/disable_heartbeat";
    const HAS_PAYLOAD: bool = false;
    type Response = DisableHeartbeatResponse;
}

#[derive(Deserialize, Serialize, Debug, Clone, Copy)]
#[serde(rename_all = "snake_case")]
pub enum CancelOnDisconnectScope {
    Connection,
    Account,
}

#[derive(Deserialize, Serialize, Clone, Debug, Default)]
pub struct EnableCancelOnDisconnectRequest {
    #[serde(skip_serializing_if = "Option::is_none")]
    scope: Option<CancelOnDisconnectScope>,
}

impl EnableCancelOnDisconnectRequest {
    pub fn new() -> Self {
        Self::default()
    }
    pub fn with_scope(scope: CancelOnDisconnectScope) -> Self {
        Self { scope: Some(scope) }
    }
}

#[derive(Deserialize, Serialize, Debug, Clone, Copy)]
#[serde(rename_all = "snake_case")]
pub enum EnableCancelOnDisconnectResponse {
    Ok,
}

impl Request for EnableCancelOnDisconnectRequest {
    const METHOD: &'static str = "private/enable_cancel_on_disconnect";
    type Response = EnableCancelOnDisconnectResponse;
}

#[derive(Deserialize, Serialize, Clone, Debug, Default)]
pub struct DisableCancelOnDisconnectRequest {
    #[serde(skip_serializing_if = "Option::is_none")]
    scope: Option<CancelOnDisconnectScope>,
}

impl DisableCancelOnDisconnectRequest {
    pub fn new() -> Self {
        Self::default()
    }
    pub fn with_scope(scope: CancelOnDisconnectScope) -> Self {
        Self { scope: Some(scope) }
    }
}
#[derive(Deserialize, Serialize, Debug, Clone, Copy)]
#[serde(rename_all = "snake_case")]
pub enum DisableCancelOnDisconnectResponse {
    Ok,
}

impl Request for DisableCancelOnDisconnectRequest {
    const METHOD: &'static str = "private/disable_cancel_on_disconnect";
    type Response = DisableCancelOnDisconnectRequest;
}

#[derive(Deserialize, Serialize, Clone, Debug, Default)]
pub struct GetCancelOnDisconnectRequest {
    #[serde(skip_serializing_if = "Option::is_none")]
    scope: Option<CancelOnDisconnectScope>,
}

impl GetCancelOnDisconnectRequest {
    pub fn new() -> Self {
        Self::default()
    }
    pub fn with_scope(scope: CancelOnDisconnectScope) -> Self {
        Self { scope: Some(scope) }
    }
}

#[derive(Deserialize, Serialize, Debug, Clone, Copy)]
pub struct GetCancelOnDisconnectResponse {
    enabled: bool,
    scope: CancelOnDisconnectScope,
}

impl Request for GetCancelOnDisconnectRequest {
    const METHOD: &'static str = "private/get_cancel_on_disconnect";
    type Response = GetCancelOnDisconnectResponse;
}