apple_quant_algorithmic/order/dependency/
remote.rs1mod cancel;
2mod submit;
3
4use std::ops::{Deref, DerefMut};
5
6use crate::{instrument::InstrumentSpec, price::BidAskPriceSpread};
7
8use super::{
9 client::{CancelClientOrder, SubmitClientOrder},
10 OrderAction,
11};
12
13pub use cancel::*;
14pub use submit::*;
15
16#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17pub struct RemoteOrderAction<IS: InstrumentSpec>(OrderAction<IS>);
18
19impl<IS: InstrumentSpec> RemoteOrderAction<IS> {
20 pub fn new(
21 order_action: OrderAction<IS>,
22 ) -> Self {
23 Self(order_action)
24 }
25
26 pub fn into_order_action(
27 self,
28 ) -> OrderAction<IS> {
29 self.0
30 }
31
32 pub fn as_order_action(
33 &self,
34 ) -> &OrderAction<IS> {
35 &self.0
36 }
37}
38
39impl<IS: InstrumentSpec> Deref for RemoteOrderAction<IS> {
40 type Target = OrderAction<IS>;
41
42 fn deref(
43 &self,
44 ) -> &Self::Target {
45 &self.0
46 }
47}
48
49impl<IS: InstrumentSpec> DerefMut for RemoteOrderAction<IS> {
50 fn deref_mut(
51 &mut self,
52 ) -> &mut Self::Target {
53 &mut self.0
54 }
55}