mod cancel;
mod submit;
use std::ops::{Deref, DerefMut};
use crate::{instrument::InstrumentSpec, price::BidAskPriceSpread};
use super::{
client::{CancelClientOrder, SubmitClientOrder},
OrderAction,
};
pub use cancel::*;
pub use submit::*;
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct RemoteOrderAction<IS: InstrumentSpec>(OrderAction<IS>);
impl<IS: InstrumentSpec> RemoteOrderAction<IS> {
pub fn new(
order_action: OrderAction<IS>,
) -> Self {
Self(order_action)
}
pub fn into_order_action(
self,
) -> OrderAction<IS> {
self.0
}
pub fn as_order_action(
&self,
) -> &OrderAction<IS> {
&self.0
}
}
impl<IS: InstrumentSpec> Deref for RemoteOrderAction<IS> {
type Target = OrderAction<IS>;
fn deref(
&self,
) -> &Self::Target {
&self.0
}
}
impl<IS: InstrumentSpec> DerefMut for RemoteOrderAction<IS> {
fn deref_mut(
&mut self,
) -> &mut Self::Target {
&mut self.0
}
}