use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum MarketStreamMessagePayload {
RecentTradesUpdates(models::RecentTradesUpdates),
TickerUpdate(models::TickerUpdate),
TickerAllUpdate(models::TickerAllUpdate),
OraclePriceUpdate(models::OraclePriceUpdate),
MarkPriceUpdate(models::MarkPriceUpdate),
MarketPriceUpdate(models::MarketPriceUpdate),
CandlestickUpdate(models::CandlestickUpdate),
OrderbookDiffDepthUpdate(models::OrderbookDiffDepthUpdate),
OrderbookPartialDepthUpdate(models::OrderbookPartialDepthUpdate),
}
impl Default for MarketStreamMessagePayload {
fn default() -> Self {
Self::RecentTradesUpdates(Default::default())
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Source {
#[serde(rename = "Market")]
Market,
}
impl Default for Source {
fn default() -> Source {
Self::Market
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum DepthLevel {
#[serde(rename = "5")]
Variant5,
#[serde(rename = "10")]
Variant10,
#[serde(rename = "20")]
Variant20,
}
impl Default for DepthLevel {
fn default() -> DepthLevel {
Self::Variant5
}
}