use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum AccountEventReason {
#[serde(rename = "Deposit")]
Deposit,
#[serde(rename = "Withdraw")]
Withdraw,
#[serde(rename = "OrderCreated")]
OrderCreated,
#[serde(rename = "OrderMatched")]
OrderMatched,
#[serde(rename = "OrderCancelled")]
OrderCancelled,
#[serde(rename = "OrdersForMarketCancelled")]
OrdersForMarketCancelled,
#[serde(rename = "LeverageUpdated")]
LeverageUpdated,
#[serde(rename = "IsolatedMarginUpdated")]
IsolatedMarginUpdated,
#[serde(rename = "FundingRatePayment")]
FundingRatePayment,
#[serde(rename = "AccountGroupUpdated")]
AccountGroupUpdated,
#[serde(rename = "Unspecified")]
Unspecified,
}
impl std::fmt::Display for AccountEventReason {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::Deposit => write!(f, "Deposit"),
Self::Withdraw => write!(f, "Withdraw"),
Self::OrderCreated => write!(f, "OrderCreated"),
Self::OrderMatched => write!(f, "OrderMatched"),
Self::OrderCancelled => write!(f, "OrderCancelled"),
Self::OrdersForMarketCancelled => write!(f, "OrdersForMarketCancelled"),
Self::LeverageUpdated => write!(f, "LeverageUpdated"),
Self::IsolatedMarginUpdated => write!(f, "IsolatedMarginUpdated"),
Self::FundingRatePayment => write!(f, "FundingRatePayment"),
Self::AccountGroupUpdated => write!(f, "AccountGroupUpdated"),
Self::Unspecified => write!(f, "Unspecified"),
}
}
}
impl Default for AccountEventReason {
fn default() -> AccountEventReason {
Self::Deposit
}
}