nautilus_model/identifiers/
mod.rs1use serde::{Deserialize, Deserializer, Serialize, Serializer};
29
30#[macro_use]
31mod macros;
32
33pub mod account_id;
34pub mod actor_id;
35pub mod client_id;
36pub mod client_order_id;
37pub mod component_id;
38pub mod exec_algorithm_id;
39pub mod instrument_id;
40pub mod option_series_id;
41pub mod order_list_id;
42pub mod position_id;
43pub mod strategy_id;
44pub mod symbol;
45pub mod trade_id;
46pub mod trader_id;
47pub mod venue;
48pub mod venue_order_id;
49
50#[cfg(any(test, feature = "stubs"))]
51pub mod stubs;
52
53pub use crate::identifiers::{
55 account_id::AccountId,
56 actor_id::ActorId,
57 client_id::ClientId,
58 client_order_id::ClientOrderId,
59 component_id::ComponentId,
60 exec_algorithm_id::ExecAlgorithmId,
61 instrument_id::{GENERIC_SPREAD_ID_SEPARATOR, InstrumentId, InstrumentIdError},
62 option_series_id::{OptionSeriesId, OptionSeriesIdError},
63 order_list_id::OrderListId,
64 position_id::PositionId,
65 strategy_id::{
66 StrategyId, UNASSIGNED_ORDER_ID_TAG, check_order_id_tag, normalize_order_id_tag,
67 },
68 symbol::Symbol,
69 trade_id::TradeId,
70 trader_id::TraderId,
71 venue::Venue,
72 venue_order_id::VenueOrderId,
73};
74
75impl_from_str_for_identifier!(account_id::AccountId);
76impl_from_str_for_identifier!(actor_id::ActorId);
77impl_from_str_for_identifier!(client_id::ClientId);
78impl_from_str_for_identifier!(client_order_id::ClientOrderId);
79impl_from_str_for_identifier!(component_id::ComponentId);
80impl_from_str_for_identifier!(exec_algorithm_id::ExecAlgorithmId);
81impl_from_str_for_identifier!(order_list_id::OrderListId);
82impl_from_str_for_identifier!(position_id::PositionId);
83impl_from_str_for_identifier!(strategy_id::StrategyId);
84impl_from_str_for_identifier!(symbol::Symbol);
85impl_from_str_for_identifier!(trade_id::TradeId);
86impl_from_str_for_identifier!(trader_id::TraderId);
87impl_from_str_for_identifier!(venue::Venue);
88impl_from_str_for_identifier!(venue_order_id::VenueOrderId);
89
90impl_serialization_for_identifier!(account_id::AccountId);
91impl_serialization_for_identifier!(actor_id::ActorId);
92impl_serialization_for_identifier!(client_id::ClientId);
93impl_serialization_for_identifier!(client_order_id::ClientOrderId);
94impl_serialization_for_identifier!(component_id::ComponentId);
95impl_serialization_for_identifier!(exec_algorithm_id::ExecAlgorithmId);
96impl_serialization_for_identifier!(order_list_id::OrderListId);
97impl_serialization_for_identifier!(position_id::PositionId);
98impl_serialization_for_identifier!(strategy_id::StrategyId);
99impl_serialization_for_identifier!(symbol::Symbol);
100impl_serialization_for_identifier!(trader_id::TraderId);
101impl_serialization_for_identifier!(venue::Venue);
102impl_serialization_for_identifier!(venue_order_id::VenueOrderId);
103
104impl_as_ref_for_identifier!(account_id::AccountId);
105impl_as_ref_for_identifier!(actor_id::ActorId);
106impl_as_ref_for_identifier!(client_id::ClientId);
107impl_as_ref_for_identifier!(client_order_id::ClientOrderId);
108impl_as_ref_for_identifier!(component_id::ComponentId);
109impl_as_ref_for_identifier!(exec_algorithm_id::ExecAlgorithmId);
110impl_as_ref_for_identifier!(order_list_id::OrderListId);
111impl_as_ref_for_identifier!(position_id::PositionId);
112impl_as_ref_for_identifier!(strategy_id::StrategyId);
113impl_as_ref_for_identifier!(symbol::Symbol);
114impl_as_ref_for_identifier!(trader_id::TraderId);
115impl_as_ref_for_identifier!(venue::Venue);
116impl_as_ref_for_identifier!(venue_order_id::VenueOrderId);
117
118pub fn interned_string_stats() {
120 ustr::total_allocated();
121 ustr::total_capacity();
122
123 ustr::string_cache_iter().for_each(|s| println!("{s}"));
124}