nautilus_model/reports/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//! Status report types for trading operations.
17//!
18//! This module provides report types for tracking and communicating the status
19//! of various trading operations, including order fills, order status, position
20//! status, and mass status requests.
21
22pub mod fill;
23pub mod mass_status;
24pub mod order;
25pub mod position;
26
27// Re-exports
28pub use fill::FillReport;
29pub use mass_status::ExecutionMassStatus;
30use nautilus_core::UnixNanos;
31pub use order::OrderStatusReport;
32pub use position::PositionStatusReport;
33
34use crate::data::HasTsInit;
35
36impl HasTsInit for FillReport {
37 fn ts_init(&self) -> UnixNanos {
38 self.ts_init
39 }
40}
41
42impl HasTsInit for OrderStatusReport {
43 fn ts_init(&self) -> UnixNanos {
44 self.ts_init
45 }
46}
47
48impl HasTsInit for PositionStatusReport {
49 fn ts_init(&self) -> UnixNanos {
50 self.ts_init
51 }
52}
53
54impl HasTsInit for ExecutionMassStatus {
55 fn ts_init(&self) -> UnixNanos {
56 self.ts_init
57 }
58}
59
60crate::impl_catalog_path_prefix!(FillReport, "fill_report");
61crate::impl_catalog_path_prefix!(OrderStatusReport, "order_status_report");
62crate::impl_catalog_path_prefix!(PositionStatusReport, "position_status_report");
63crate::impl_catalog_path_prefix!(ExecutionMassStatus, "execution_mass_status");