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