use pretty_simple_display::DisplaySimple;
use serde::{Deserialize, Serialize};
#[repr(u8)]
#[derive(
Debug, Clone, Copy, DisplaySimple, Serialize, Deserialize, PartialEq, Eq, Hash, Default,
)]
#[serde(rename_all = "UPPERCASE")]
pub enum Direction {
#[default]
Buy,
Sell,
}
#[repr(u8)]
#[derive(
Debug, Clone, Copy, DisplaySimple, Serialize, Deserialize, PartialEq, Eq, Hash, Default,
)]
#[serde(rename_all = "UPPERCASE")]
pub enum OrderType {
#[default]
Limit,
Market,
Quote,
Stop,
StopLimit,
}
#[repr(u8)]
#[derive(
Debug, Clone, Copy, DisplaySimple, Serialize, Deserialize, PartialEq, Eq, Hash, Default,
)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum Status {
Amended,
Deleted,
FullyClosed,
Opened,
PartiallyClosed,
Closed,
#[default]
Open,
Updated,
Accepted,
Rejected,
Working,
Filled,
Cancelled,
Expired,
}
#[repr(u8)]
#[derive(
Debug, Clone, Copy, DisplaySimple, Serialize, Deserialize, PartialEq, Eq, Hash, Default,
)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum TimeInForce {
#[default]
GoodTillCancelled,
GoodTillDate,
ImmediateOrCancel,
FillOrKill,
}