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