Skip to main content

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");