use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum CommandFailureReasonCode {
#[serde(rename = "UNSPECIFIED")]
Unspecified,
#[serde(rename = "UNKNOWN_ADDRESS")]
UnknownAddress,
#[serde(rename = "UNKNOWN_SYMBOL")]
UnknownSymbol,
#[serde(rename = "NO_POSITION")]
NoPosition,
#[serde(rename = "INSUFFICIENT_BALANCE")]
InsufficientBalance,
#[serde(rename = "DUPLICATE_COMMAND_HASH")]
DuplicateCommandHash,
#[serde(rename = "INVALID_LEVERAGE")]
InvalidLeverage,
#[serde(rename = "UNKNOWN_MARKET")]
UnknownMarket,
#[serde(rename = "WITHDRAW_ZERO")]
WithdrawZero,
#[serde(rename = "UNEXPECTED")]
Unexpected,
}
impl std::fmt::Display for CommandFailureReasonCode {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::Unspecified => write!(f, "UNSPECIFIED"),
Self::UnknownAddress => write!(f, "UNKNOWN_ADDRESS"),
Self::UnknownSymbol => write!(f, "UNKNOWN_SYMBOL"),
Self::NoPosition => write!(f, "NO_POSITION"),
Self::InsufficientBalance => write!(f, "INSUFFICIENT_BALANCE"),
Self::DuplicateCommandHash => write!(f, "DUPLICATE_COMMAND_HASH"),
Self::InvalidLeverage => write!(f, "INVALID_LEVERAGE"),
Self::UnknownMarket => write!(f, "UNKNOWN_MARKET"),
Self::WithdrawZero => write!(f, "WITHDRAW_ZERO"),
Self::Unexpected => write!(f, "UNEXPECTED"),
}
}
}
impl Default for CommandFailureReasonCode {
fn default() -> CommandFailureReasonCode {
Self::Unspecified
}
}