use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "event")]
pub enum AccountStreamMessage {
#[serde(rename="AccountAggregatedTradeUpdate")]
AccountAggregatedTradeUpdate {
#[serde(rename = "reason")]
reason: models::AccountEventReason,
#[serde(rename = "payload")]
payload: models::AccountStreamMessagePayload,
},
#[serde(rename="AccountCommandFailureUpdate")]
AccountCommandFailureUpdate {
#[serde(rename = "reason")]
reason: models::AccountEventReason,
#[serde(rename = "payload")]
payload: models::AccountStreamMessagePayload,
},
#[serde(rename="AccountOrderUpdate")]
AccountOrderUpdate {
#[serde(rename = "reason")]
reason: models::AccountEventReason,
#[serde(rename = "payload")]
payload: models::AccountStreamMessagePayload,
},
#[serde(rename="AccountPositionUpdate")]
AccountPositionUpdate {
#[serde(rename = "reason")]
reason: models::AccountEventReason,
#[serde(rename = "payload")]
payload: models::AccountStreamMessagePayload,
},
#[serde(rename="AccountTradeUpdate")]
AccountTradeUpdate {
#[serde(rename = "reason")]
reason: models::AccountEventReason,
#[serde(rename = "payload")]
payload: models::AccountStreamMessagePayload,
},
#[serde(rename="AccountTransactionUpdate")]
AccountTransactionUpdate {
#[serde(rename = "reason")]
reason: models::AccountEventReason,
#[serde(rename = "payload")]
payload: models::AccountStreamMessagePayload,
},
#[serde(rename="AccountUpdate")]
AccountUpdate {
#[serde(rename = "reason")]
reason: models::AccountEventReason,
#[serde(rename = "payload")]
payload: models::AccountStreamMessagePayload,
},
}
impl Default for AccountStreamMessage {
fn default() -> Self {
Self::AccountAggregatedTradeUpdate {
reason: Default::default(),
payload: Default::default(),
}
}
}