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 funding;
20pub mod order;
21pub mod portfolio;
22pub mod position;
23
24use nautilus_core::UnixNanos;
25
26use crate::data::HasTsInit;
27// Re-exports
28pub use crate::events::{
29    account::state::AccountState,
30    funding::settlement::FundingSettlement,
31    order::{
32        OrderEvent, OrderEventType,
33        accepted::OrderAccepted,
34        accepted_batch::OrderAcceptedBatch,
35        any::OrderEventAny,
36        cancel_rejected::OrderCancelRejected,
37        canceled::OrderCanceled,
38        canceled_batch::OrderCanceledBatch,
39        denied::OrderDenied,
40        denied_reason::{OrderDeniedCode, OrderDeniedReason},
41        emulated::OrderEmulated,
42        expired::OrderExpired,
43        filled::OrderFilled,
44        initialized::OrderInitialized,
45        modify_rejected::OrderModifyRejected,
46        pending_cancel::OrderPendingCancel,
47        pending_update::OrderPendingUpdate,
48        rejected::OrderRejected,
49        released::OrderReleased,
50        snapshot::OrderSnapshot,
51        submitted::OrderSubmitted,
52        submitted_batch::OrderSubmittedBatch,
53        triggered::OrderTriggered,
54        updated::OrderUpdated,
55    },
56    portfolio::snapshot::PortfolioSnapshot,
57    position::{
58        PositionEvent, adjusted::PositionAdjusted, changed::PositionChanged,
59        closed::PositionClosed, opened::PositionOpened, snapshot::PositionSnapshot,
60    },
61};
62
63impl HasTsInit for AccountState {
64    fn ts_init(&self) -> UnixNanos {
65        self.ts_init
66    }
67}
68
69impl HasTsInit for FundingSettlement {
70    fn ts_init(&self) -> UnixNanos {
71        self.ts_init
72    }
73}
74
75impl HasTsInit for OrderInitialized {
76    fn ts_init(&self) -> UnixNanos {
77        self.ts_init
78    }
79}
80
81impl HasTsInit for OrderDenied {
82    fn ts_init(&self) -> UnixNanos {
83        self.ts_init
84    }
85}
86
87impl HasTsInit for OrderEmulated {
88    fn ts_init(&self) -> UnixNanos {
89        self.ts_init
90    }
91}
92
93impl HasTsInit for OrderSubmitted {
94    fn ts_init(&self) -> UnixNanos {
95        self.ts_init
96    }
97}
98
99impl HasTsInit for OrderAccepted {
100    fn ts_init(&self) -> UnixNanos {
101        self.ts_init
102    }
103}
104
105impl HasTsInit for OrderRejected {
106    fn ts_init(&self) -> UnixNanos {
107        self.ts_init
108    }
109}
110
111impl HasTsInit for OrderPendingCancel {
112    fn ts_init(&self) -> UnixNanos {
113        self.ts_init
114    }
115}
116
117impl HasTsInit for OrderCanceled {
118    fn ts_init(&self) -> UnixNanos {
119        self.ts_init
120    }
121}
122
123impl HasTsInit for OrderCancelRejected {
124    fn ts_init(&self) -> UnixNanos {
125        self.ts_init
126    }
127}
128
129impl HasTsInit for OrderExpired {
130    fn ts_init(&self) -> UnixNanos {
131        self.ts_init
132    }
133}
134
135impl HasTsInit for OrderTriggered {
136    fn ts_init(&self) -> UnixNanos {
137        self.ts_init
138    }
139}
140
141impl HasTsInit for OrderPendingUpdate {
142    fn ts_init(&self) -> UnixNanos {
143        self.ts_init
144    }
145}
146
147impl HasTsInit for OrderReleased {
148    fn ts_init(&self) -> UnixNanos {
149        self.ts_init
150    }
151}
152
153impl HasTsInit for OrderModifyRejected {
154    fn ts_init(&self) -> UnixNanos {
155        self.ts_init
156    }
157}
158
159impl HasTsInit for OrderUpdated {
160    fn ts_init(&self) -> UnixNanos {
161        self.ts_init
162    }
163}
164
165impl HasTsInit for OrderFilled {
166    fn ts_init(&self) -> UnixNanos {
167        self.ts_init
168    }
169}
170
171impl HasTsInit for OrderSnapshot {
172    fn ts_init(&self) -> UnixNanos {
173        self.ts_init
174    }
175}
176
177impl HasTsInit for PositionOpened {
178    fn ts_init(&self) -> UnixNanos {
179        self.ts_init
180    }
181}
182
183impl HasTsInit for PositionChanged {
184    fn ts_init(&self) -> UnixNanos {
185        self.ts_init
186    }
187}
188
189impl HasTsInit for PositionClosed {
190    fn ts_init(&self) -> UnixNanos {
191        self.ts_init
192    }
193}
194
195impl HasTsInit for PositionAdjusted {
196    fn ts_init(&self) -> UnixNanos {
197        self.ts_init
198    }
199}
200
201impl HasTsInit for PositionSnapshot {
202    fn ts_init(&self) -> UnixNanos {
203        self.ts_init
204    }
205}
206
207impl HasTsInit for PortfolioSnapshot {
208    fn ts_init(&self) -> UnixNanos {
209        self.ts_init
210    }
211}
212
213crate::impl_catalog_path_prefix!(AccountState, "account_state");
214crate::impl_catalog_path_prefix!(OrderInitialized, "order_initialized");
215crate::impl_catalog_path_prefix!(OrderDenied, "order_denied");
216crate::impl_catalog_path_prefix!(OrderEmulated, "order_emulated");
217crate::impl_catalog_path_prefix!(OrderSubmitted, "order_submitted");
218crate::impl_catalog_path_prefix!(OrderAccepted, "order_accepted");
219crate::impl_catalog_path_prefix!(OrderRejected, "order_rejected");
220crate::impl_catalog_path_prefix!(OrderPendingCancel, "order_pending_cancel");
221crate::impl_catalog_path_prefix!(OrderCanceled, "order_canceled");
222crate::impl_catalog_path_prefix!(OrderCancelRejected, "order_cancel_rejected");
223crate::impl_catalog_path_prefix!(OrderExpired, "order_expired");
224crate::impl_catalog_path_prefix!(OrderTriggered, "order_triggered");
225crate::impl_catalog_path_prefix!(OrderPendingUpdate, "order_pending_update");
226crate::impl_catalog_path_prefix!(OrderReleased, "order_released");
227crate::impl_catalog_path_prefix!(OrderModifyRejected, "order_modify_rejected");
228crate::impl_catalog_path_prefix!(OrderUpdated, "order_updated");
229crate::impl_catalog_path_prefix!(OrderFilled, "order_filled");
230crate::impl_catalog_path_prefix!(PositionOpened, "position_opened");
231crate::impl_catalog_path_prefix!(PositionChanged, "position_changed");
232crate::impl_catalog_path_prefix!(PositionClosed, "position_closed");
233crate::impl_catalog_path_prefix!(PositionAdjusted, "position_adjusted");
234crate::impl_catalog_path_prefix!(OrderSnapshot, "order_snapshot");
235crate::impl_catalog_path_prefix!(PositionSnapshot, "position_snapshot");
236crate::impl_catalog_path_prefix!(PortfolioSnapshot, "portfolio_snapshot");