use serde::{Deserialize, Serialize};
use crate::RequestId;
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct OrderParams {
pub tx: String,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
#[serde(tag = "method", rename_all = "SCREAMING_SNAKE_CASE")]
pub enum ClientMessage {
#[serde(alias = "subscribe")]
Subscribe {
id: Option<RequestId>,
#[serde(default)]
params: Vec<String>,
},
#[serde(alias = "unsubscribe")]
Unsubscribe {
id: Option<RequestId>,
#[serde(default)]
params: Vec<String>,
},
#[serde(alias = "list_subscriptions")]
ListSubscriptions { id: Option<RequestId> },
#[serde(alias = "ping")]
Ping { id: Option<RequestId> },
#[serde(alias = "order.place", rename = "ORDER.PLACE")]
OrderPlace {
id: Option<RequestId>,
params: OrderParams,
},
#[serde(alias = "order.cancel", rename = "ORDER.CANCEL")]
OrderCancel {
id: Option<RequestId>,
params: OrderParams,
},
#[serde(alias = "order.amend", alias = "order.modify", rename = "ORDER.AMEND")]
OrderAmend {
id: Option<RequestId>,
params: OrderParams,
},
#[serde(alias = "order.cancelAll", rename = "ORDER.CANCEL_ALL")]
OrderCancelAll {
id: Option<RequestId>,
params: OrderParams,
},
}