use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum EventStatus {
Pending,
Confirmed,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum TradeSide {
BUY,
SELL,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum Exchange {
CtfExchange,
NegRiskCtfExchange,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum TransferType {
Single,
Batch,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum DepositDirection {
Deposit,
Withdrawal,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum OracleEventType {
Initialization,
Proposal,
Dispute,
Resolution,
Settled,
Flag,
Unflag,
Pause,
Unpause,
ManualResolution,
Reset,
ConditionResolution,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum CandleResolution {
#[serde(rename = "1m")]
OneMinute,
#[serde(rename = "5m")]
FiveMinute,
#[serde(rename = "15m")]
FifteenMinute,
#[serde(rename = "1h")]
OneHour,
#[serde(rename = "4h")]
FourHour,
#[serde(rename = "1d")]
OneDay,
}
impl std::fmt::Display for EventStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Self::Pending => write!(f, "pending"),
Self::Confirmed => write!(f, "confirmed"),
}
}
}
impl std::fmt::Display for TradeSide {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Self::BUY => write!(f, "BUY"),
Self::SELL => write!(f, "SELL"),
}
}
}
impl std::fmt::Display for CandleResolution {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Self::OneMinute => write!(f, "1m"),
Self::FiveMinute => write!(f, "5m"),
Self::FifteenMinute => write!(f, "15m"),
Self::OneHour => write!(f, "1h"),
Self::FourHour => write!(f, "4h"),
Self::OneDay => write!(f, "1d"),
}
}
}