use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct OrderBook {
#[serde(rename = "symbol")]
pub symbol: String,
#[serde(rename = "market_id")]
pub market_id: i32,
#[serde(rename = "status")]
pub status: Status,
#[serde(rename = "taker_fee")]
pub taker_fee: String,
#[serde(rename = "maker_fee")]
pub maker_fee: String,
#[serde(rename = "liquidation_fee")]
pub liquidation_fee: String,
#[serde(rename = "min_base_amount")]
pub min_base_amount: String,
#[serde(rename = "min_quote_amount")]
pub min_quote_amount: String,
#[serde(rename = "supported_size_decimals")]
pub supported_size_decimals: i32,
#[serde(rename = "supported_price_decimals")]
pub supported_price_decimals: i32,
#[serde(rename = "supported_quote_decimals")]
pub supported_quote_decimals: i32,
}
impl OrderBook {
pub fn new(
symbol: String,
market_id: i32,
status: Status,
taker_fee: String,
maker_fee: String,
liquidation_fee: String,
min_base_amount: String,
min_quote_amount: String,
supported_size_decimals: i32,
supported_price_decimals: i32,
supported_quote_decimals: i32,
) -> OrderBook {
OrderBook {
symbol,
market_id,
status,
taker_fee,
maker_fee,
liquidation_fee,
min_base_amount,
min_quote_amount,
supported_size_decimals,
supported_price_decimals,
supported_quote_decimals,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "inactive")]
Inactive,
#[serde(rename = "frozen")]
Frozen,
#[serde(rename = "active")]
Active,
}
impl Default for Status {
fn default() -> Status {
Self::Inactive
}
}