use crate::{HasRType, SecurityUpdateAction, StatType, StatUpdateAction};
pub trait SymbolMappingRec: HasRType {
fn stype_in_symbol(&self) -> crate::Result<&str>;
fn stype_out_symbol(&self) -> crate::Result<&str>;
fn start_ts(&self) -> Option<time::OffsetDateTime>;
fn end_ts(&self) -> Option<time::OffsetDateTime>;
}
pub trait InstrumentDefRec: HasRType {
fn raw_symbol(&self) -> crate::Result<&str>;
fn asset(&self) -> crate::Result<&str>;
fn security_type(&self) -> crate::Result<&str>;
fn security_update_action(&self) -> crate::Result<SecurityUpdateAction>;
fn channel_id(&self) -> u16;
}
pub trait StatRec: HasRType {
const UNDEF_STAT_QUANTITY: i64;
fn stat_type(&self) -> crate::Result<StatType>;
fn ts_recv(&self) -> Option<time::OffsetDateTime>;
fn ts_ref(&self) -> Option<time::OffsetDateTime>;
fn update_action(&self) -> crate::Result<StatUpdateAction>;
fn price(&self) -> i64;
fn quantity(&self) -> i64;
}