apple_quant_algorithmic/order/dependency/
client.rs1use bevy::prelude::{Deref, DerefMut};
2
3use crate::instrument::InstrumentSpec;
4
5mod cancel;
6mod submit;
7
8pub use cancel::*;
9pub use submit::*;
10
11use super::{
12 OrderAction,
13 remote::{CancelRemoteOrder, SubmitRemoteOrder},
14};
15
16#[derive(Deref, DerefMut, Debug, Clone, PartialEq, Eq, Hash)]
17pub struct ClientDeployedRemoteDependency<IS: InstrumentSpec>(SubmitRemoteOrder<IS>);
18
19impl<IS: InstrumentSpec> ClientDeployedRemoteDependency<IS> {
20 pub fn new(submit_remote_order: SubmitRemoteOrder<IS>) -> Self {
21 Self(submit_remote_order)
22 }
23
24 pub(crate) fn into_order_action(self) -> OrderAction<IS> {
25 self.0.into_order_action()
26 }
27}
28
29#[derive(Debug, Clone, PartialEq, Eq, Hash)]
30pub enum ClientOrderAction<IS: InstrumentSpec> {
31 SubmitRemoteOrder(SubmitRemoteOrder<IS>),
32 SubmitClientOrder(SubmitClientOrder<IS>),
33 CancelRemoteOrder(CancelRemoteOrder),
34 CancelClientOrder(CancelClientOrder),
35}
36
37impl<IS: InstrumentSpec> ClientOrderAction<IS> {
38 pub fn into_order_action(self) -> OrderAction<IS> {
39 self.into()
40 }
41}