pub mod historical;
pub mod realtime;
use serde::{Deserialize, Serialize};
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)]
pub enum TradingHours {
#[default]
Regular,
Extended,
}
impl TradingHours {
pub fn use_rth(&self) -> bool {
matches!(self, TradingHours::Regular)
}
pub fn from_use_rth(use_rth: bool) -> Self {
if use_rth {
TradingHours::Regular
} else {
TradingHours::Extended
}
}
}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum IgnoreSize {
Yes,
No,
}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Default)]
pub enum SmartDepth {
Yes,
#[default]
No,
}
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum MarketDataType {
Unknown = 0,
Realtime = 1,
Frozen = 2,
Delayed = 3,
DelayedFrozen = 4,
}
impl From<i32> for MarketDataType {
fn from(value: i32) -> Self {
match value {
1 => Self::Realtime,
2 => Self::Frozen,
3 => Self::Delayed,
4 => Self::DelayedFrozen,
_ => Self::Unknown,
}
}
}
#[cfg(test)]
#[path = "mod_tests.rs"]
mod tests;