Skip to main content

apple_quant_algorithmic/order/dependency/
remote.rs

1mod 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}