use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "event")]
pub enum MarketStreamMessage {
#[serde(rename="CandlestickUpdate")]
CandlestickUpdate {
#[serde(rename = "payload")]
payload: models::MarketStreamMessagePayload,
},
#[serde(rename="MarkPriceUpdate")]
MarkPriceUpdate {
#[serde(rename = "payload")]
payload: models::MarketStreamMessagePayload,
},
#[serde(rename="MarketPriceUpdate")]
MarketPriceUpdate {
#[serde(rename = "payload")]
payload: models::MarketStreamMessagePayload,
},
#[serde(rename="OraclePriceUpdate")]
OraclePriceUpdate {
#[serde(rename = "payload")]
payload: models::MarketStreamMessagePayload,
},
#[serde(rename="OrderbookDiffDepthUpdate")]
OrderbookDiffDepthUpdate {
#[serde(rename = "payload")]
payload: models::MarketStreamMessagePayload,
},
#[serde(rename="OrderbookPartialDepthUpdate")]
OrderbookPartialDepthUpdate {
#[serde(rename = "payload")]
payload: models::MarketStreamMessagePayload,
},
#[serde(rename="RecentTradesUpdates")]
RecentTradesUpdates {
#[serde(rename = "payload")]
payload: models::MarketStreamMessagePayload,
},
#[serde(rename="TickerAllUpdate")]
TickerAllUpdate {
#[serde(rename = "payload")]
payload: models::MarketStreamMessagePayload,
},
#[serde(rename="TickerUpdate")]
TickerUpdate {
#[serde(rename = "payload")]
payload: models::MarketStreamMessagePayload,
},
}
impl Default for MarketStreamMessage {
fn default() -> Self {
Self::CandlestickUpdate {
payload: Default::default(),
}
}
}