nautilus_common/messages/execution/
query.rs1use std::fmt::Display;
17
18use derive_builder::Builder;
19use nautilus_core::{UUID4, UnixNanos};
20use nautilus_model::identifiers::{
21 ClientId, ClientOrderId, InstrumentId, StrategyId, TraderId, VenueOrderId,
22};
23use serde::{Deserialize, Serialize};
24
25#[derive(Clone, PartialEq, Eq, Debug, Default, Serialize, Deserialize, Builder)]
26#[builder(default)]
27#[serde(tag = "type")]
28pub struct QueryOrder {
29 pub trader_id: TraderId,
30 pub client_id: ClientId,
31 pub strategy_id: StrategyId,
32 pub instrument_id: InstrumentId,
33 pub client_order_id: ClientOrderId,
34 pub venue_order_id: VenueOrderId,
35 pub command_id: UUID4,
36 pub ts_init: UnixNanos,
37}
38
39impl QueryOrder {
40 #[allow(clippy::too_many_arguments)]
46 pub const fn new(
47 trader_id: TraderId,
48 client_id: ClientId,
49 strategy_id: StrategyId,
50 instrument_id: InstrumentId,
51 client_order_id: ClientOrderId,
52 venue_order_id: VenueOrderId,
53 command_id: UUID4,
54 ts_init: UnixNanos,
55 ) -> anyhow::Result<Self> {
56 Ok(Self {
57 trader_id,
58 client_id,
59 strategy_id,
60 instrument_id,
61 client_order_id,
62 venue_order_id,
63 command_id,
64 ts_init,
65 })
66 }
67}
68
69impl Display for QueryOrder {
70 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
71 write!(
72 f,
73 "QueryOrder(instrument_id={}, client_order_id={}, venue_order_id={})",
74 self.instrument_id, self.client_order_id, self.venue_order_id,
75 )
76 }
77}
78
79#[cfg(test)]
83mod tests {}