Skip to main content

nautilus_model/events/
mod.rs

1// -------------------------------------------------------------------------------------------------
2//  Copyright (C) 2015-2026 Nautech Systems Pty Ltd. All rights reserved.
3//  https://nautechsystems.io
4//
5//  Licensed under the GNU Lesser General Public License Version 3.0 (the "License");
6//  You may not use this file except in compliance with the License.
7//  You may obtain a copy of the License at https://www.gnu.org/licenses/lgpl-3.0.en.html
8//
9//  Unless required by applicable law or agreed to in writing, software
10//  distributed under the License is distributed on an "AS IS" BASIS,
11//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12//  See the License for the specific language governing permissions and
13//  limitations under the License.
14// -------------------------------------------------------------------------------------------------
15
16//! Events for the trading domain model.
17
18pub mod account;
19pub mod order;
20pub mod portfolio;
21pub mod position;
22
23use nautilus_core::UnixNanos;
24
25use crate::data::HasTsInit;
26// Re-exports
27pub use crate::events::{
28    account::state::AccountState,
29    order::{
30        OrderEvent, OrderEventType, accepted::OrderAccepted, accepted_batch::OrderAcceptedBatch,
31        any::OrderEventAny, cancel_rejected::OrderCancelRejected, canceled::OrderCanceled,
32        canceled_batch::OrderCanceledBatch, denied::OrderDenied, emulated::OrderEmulated,
33        expired::OrderExpired, filled::OrderFilled, initialized::OrderInitialized,
34        modify_rejected::OrderModifyRejected, pending_cancel::OrderPendingCancel,
35        pending_update::OrderPendingUpdate, rejected::OrderRejected, released::OrderReleased,
36        snapshot::OrderSnapshot, submitted::OrderSubmitted, submitted_batch::OrderSubmittedBatch,
37        triggered::OrderTriggered, updated::OrderUpdated,
38    },
39    portfolio::snapshot::PortfolioSnapshot,
40    position::{
41        PositionEvent, adjusted::PositionAdjusted, changed::PositionChanged,
42        closed::PositionClosed, opened::PositionOpened, snapshot::PositionSnapshot,
43    },
44};
45
46impl HasTsInit for AccountState {
47    fn ts_init(&self) -> UnixNanos {
48        self.ts_init
49    }
50}
51
52impl HasTsInit for OrderInitialized {
53    fn ts_init(&self) -> UnixNanos {
54        self.ts_init
55    }
56}
57
58impl HasTsInit for OrderDenied {
59    fn ts_init(&self) -> UnixNanos {
60        self.ts_init
61    }
62}
63
64impl HasTsInit for OrderEmulated {
65    fn ts_init(&self) -> UnixNanos {
66        self.ts_init
67    }
68}
69
70impl HasTsInit for OrderSubmitted {
71    fn ts_init(&self) -> UnixNanos {
72        self.ts_init
73    }
74}
75
76impl HasTsInit for OrderAccepted {
77    fn ts_init(&self) -> UnixNanos {
78        self.ts_init
79    }
80}
81
82impl HasTsInit for OrderRejected {
83    fn ts_init(&self) -> UnixNanos {
84        self.ts_init
85    }
86}
87
88impl HasTsInit for OrderPendingCancel {
89    fn ts_init(&self) -> UnixNanos {
90        self.ts_init
91    }
92}
93
94impl HasTsInit for OrderCanceled {
95    fn ts_init(&self) -> UnixNanos {
96        self.ts_init
97    }
98}
99
100impl HasTsInit for OrderCancelRejected {
101    fn ts_init(&self) -> UnixNanos {
102        self.ts_init
103    }
104}
105
106impl HasTsInit for OrderExpired {
107    fn ts_init(&self) -> UnixNanos {
108        self.ts_init
109    }
110}
111
112impl HasTsInit for OrderTriggered {
113    fn ts_init(&self) -> UnixNanos {
114        self.ts_init
115    }
116}
117
118impl HasTsInit for OrderPendingUpdate {
119    fn ts_init(&self) -> UnixNanos {
120        self.ts_init
121    }
122}
123
124impl HasTsInit for OrderReleased {
125    fn ts_init(&self) -> UnixNanos {
126        self.ts_init
127    }
128}
129
130impl HasTsInit for OrderModifyRejected {
131    fn ts_init(&self) -> UnixNanos {
132        self.ts_init
133    }
134}
135
136impl HasTsInit for OrderUpdated {
137    fn ts_init(&self) -> UnixNanos {
138        self.ts_init
139    }
140}
141
142impl HasTsInit for OrderFilled {
143    fn ts_init(&self) -> UnixNanos {
144        self.ts_init
145    }
146}
147
148impl HasTsInit for OrderSnapshot {
149    fn ts_init(&self) -> UnixNanos {
150        self.ts_init
151    }
152}
153
154impl HasTsInit for PositionOpened {
155    fn ts_init(&self) -> UnixNanos {
156        self.ts_init
157    }
158}
159
160impl HasTsInit for PositionChanged {
161    fn ts_init(&self) -> UnixNanos {
162        self.ts_init
163    }
164}
165
166impl HasTsInit for PositionClosed {
167    fn ts_init(&self) -> UnixNanos {
168        self.ts_init
169    }
170}
171
172impl HasTsInit for PositionAdjusted {
173    fn ts_init(&self) -> UnixNanos {
174        self.ts_init
175    }
176}
177
178impl HasTsInit for PositionSnapshot {
179    fn ts_init(&self) -> UnixNanos {
180        self.ts_init
181    }
182}
183
184impl HasTsInit for PortfolioSnapshot {
185    fn ts_init(&self) -> UnixNanos {
186        self.ts_init
187    }
188}
189
190crate::impl_catalog_path_prefix!(AccountState, "account_state");
191crate::impl_catalog_path_prefix!(OrderInitialized, "order_initialized");
192crate::impl_catalog_path_prefix!(OrderDenied, "order_denied");
193crate::impl_catalog_path_prefix!(OrderEmulated, "order_emulated");
194crate::impl_catalog_path_prefix!(OrderSubmitted, "order_submitted");
195crate::impl_catalog_path_prefix!(OrderAccepted, "order_accepted");
196crate::impl_catalog_path_prefix!(OrderRejected, "order_rejected");
197crate::impl_catalog_path_prefix!(OrderPendingCancel, "order_pending_cancel");
198crate::impl_catalog_path_prefix!(OrderCanceled, "order_canceled");
199crate::impl_catalog_path_prefix!(OrderCancelRejected, "order_cancel_rejected");
200crate::impl_catalog_path_prefix!(OrderExpired, "order_expired");
201crate::impl_catalog_path_prefix!(OrderTriggered, "order_triggered");
202crate::impl_catalog_path_prefix!(OrderPendingUpdate, "order_pending_update");
203crate::impl_catalog_path_prefix!(OrderReleased, "order_released");
204crate::impl_catalog_path_prefix!(OrderModifyRejected, "order_modify_rejected");
205crate::impl_catalog_path_prefix!(OrderUpdated, "order_updated");
206crate::impl_catalog_path_prefix!(OrderFilled, "order_filled");
207crate::impl_catalog_path_prefix!(PositionOpened, "position_opened");
208crate::impl_catalog_path_prefix!(PositionChanged, "position_changed");
209crate::impl_catalog_path_prefix!(PositionClosed, "position_closed");
210crate::impl_catalog_path_prefix!(PositionAdjusted, "position_adjusted");
211crate::impl_catalog_path_prefix!(OrderSnapshot, "order_snapshot");
212crate::impl_catalog_path_prefix!(PositionSnapshot, "position_snapshot");
213crate::impl_catalog_path_prefix!(PortfolioSnapshot, "portfolio_snapshot");