mod decimal;
mod floating_point;
mod xspec;
use std::fmt::Debug;
use std::hash::Hash;
use crate::{price::PriceType, volume::VolumeType};
use super::InstrumentKind;
pub use decimal::*;
pub use floating_point::*;
pub use xspec::*;
pub trait InstrumentSpec:
'static
+ Debug
+ Clone
+ Copy
+ PartialEq
+ Eq
+ PartialOrd
+ Ord
+ Hash
+ Send
+ Sync
{
const INSTRUMENT_KIND: InstrumentKind;
const BARE_SYMBOL: &'static str;
type PriceSpec: XSpec;
type VolumeSpec: XSpec;
type PriceType: PriceType<Self::PriceSpec>;
type VolumeType: VolumeType<Self::VolumeSpec>;
}