apple_quant_algorithmic/order/dependency/
client.rs1mod cancel;
2mod submit;
3
4use std::ops::{Deref, DerefMut};
5
6use crate::instrument::InstrumentSpec;
7
8use super::{
9 remote::{CancelRemoteOrder, SubmitRemoteOrder},
10 OrderAction,
11};
12
13pub use cancel::*;
14pub use submit::*;
15
16#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17pub struct ClientDeployedRemoteDependency<IS: InstrumentSpec>(SubmitRemoteOrder<IS>);
18
19impl<IS: InstrumentSpec> ClientDeployedRemoteDependency<IS> {
20 pub fn new(
21 submit_remote_order: SubmitRemoteOrder<IS>,
22 ) -> Self {
23 Self(submit_remote_order)
24 }
25
26 pub(crate) fn into_order_action(
27 self,
28 ) -> OrderAction<IS> {
29 self.0.into_order_action()
30 }
31}
32
33impl<IS: InstrumentSpec> Deref for ClientDeployedRemoteDependency<IS> {
34 type Target = SubmitRemoteOrder<IS>;
35
36 fn deref(
37 &self,
38 ) -> &Self::Target {
39 &self.0
40 }
41}
42
43impl<IS: InstrumentSpec> DerefMut for ClientDeployedRemoteDependency<IS> {
44 fn deref_mut(
45 &mut self,
46 ) -> &mut Self::Target {
47 &mut self.0
48 }
49}
50
51#[derive(Debug, Clone, PartialEq, Eq, Hash)]
52pub struct ClientOrderAction<IS: InstrumentSpec>(OrderAction<IS>);
53
54impl<IS: InstrumentSpec> ClientOrderAction<IS> {
55 pub fn new(
56 order_action: OrderAction<IS>,
57 ) -> Self {
58 Self(order_action)
59 }
60
61 pub fn into_order_action(
62 self,
63 ) -> OrderAction<IS> {
64 self.0
65 }
66}
67
68impl<IS: InstrumentSpec> Deref for ClientOrderAction<IS> {
69 type Target = OrderAction<IS>;
70
71 fn deref(
72 &self,
73 ) -> &Self::Target {
74 &self.0
75 }
76}
77
78impl<IS: InstrumentSpec> DerefMut for ClientOrderAction<IS> {
79 fn deref_mut(
80 &mut self,
81 ) -> &mut Self::Target {
82 &mut self.0
83 }
84}