nautilus_model/identifiers/
mod.rs1use serde::{Deserialize, Deserializer, Serialize, Serializer};
19
20#[macro_use]
21mod macros;
22
23pub mod account_id;
24pub mod actor_id;
25pub mod client_id;
26pub mod client_order_id;
27pub mod component_id;
28pub mod exec_algorithm_id;
29pub mod instrument_id;
30pub mod order_list_id;
31pub mod position_id;
32pub mod strategy_id;
33pub mod symbol;
34pub mod trade_id;
35pub mod trader_id;
36pub mod venue;
37pub mod venue_order_id;
38
39#[cfg(any(test, feature = "stubs"))]
40pub mod stubs;
41
42pub use crate::identifiers::{
44 account_id::AccountId, actor_id::ActorId, client_id::ClientId, client_order_id::ClientOrderId,
45 component_id::ComponentId, exec_algorithm_id::ExecAlgorithmId, instrument_id::InstrumentId,
46 order_list_id::OrderListId, position_id::PositionId, strategy_id::StrategyId, symbol::Symbol,
47 trade_id::TradeId, trader_id::TraderId, venue::Venue, venue_order_id::VenueOrderId,
48};
49
50impl_from_str_for_identifier!(account_id::AccountId);
51impl_from_str_for_identifier!(actor_id::ActorId);
52impl_from_str_for_identifier!(client_id::ClientId);
53impl_from_str_for_identifier!(client_order_id::ClientOrderId);
54impl_from_str_for_identifier!(component_id::ComponentId);
55impl_from_str_for_identifier!(exec_algorithm_id::ExecAlgorithmId);
56impl_from_str_for_identifier!(order_list_id::OrderListId);
57impl_from_str_for_identifier!(position_id::PositionId);
58impl_from_str_for_identifier!(strategy_id::StrategyId);
59impl_from_str_for_identifier!(symbol::Symbol);
60impl_from_str_for_identifier!(trade_id::TradeId);
61impl_from_str_for_identifier!(trader_id::TraderId);
62impl_from_str_for_identifier!(venue::Venue);
63impl_from_str_for_identifier!(venue_order_id::VenueOrderId);
64
65impl_serialization_for_identifier!(account_id::AccountId);
66impl_serialization_for_identifier!(actor_id::ActorId);
67impl_serialization_for_identifier!(client_id::ClientId);
68impl_serialization_for_identifier!(client_order_id::ClientOrderId);
69impl_serialization_for_identifier!(component_id::ComponentId);
70impl_serialization_for_identifier!(exec_algorithm_id::ExecAlgorithmId);
71impl_serialization_for_identifier!(order_list_id::OrderListId);
72impl_serialization_for_identifier!(position_id::PositionId);
73impl_serialization_for_identifier!(strategy_id::StrategyId);
74impl_serialization_for_identifier!(symbol::Symbol);
75impl_serialization_for_identifier!(trader_id::TraderId);
76impl_serialization_for_identifier!(venue::Venue);
77impl_serialization_for_identifier!(venue_order_id::VenueOrderId);
78
79impl_as_ref_for_identifier!(account_id::AccountId);
80impl_as_ref_for_identifier!(actor_id::ActorId);
81impl_as_ref_for_identifier!(client_id::ClientId);
82impl_as_ref_for_identifier!(client_order_id::ClientOrderId);
83impl_as_ref_for_identifier!(component_id::ComponentId);
84impl_as_ref_for_identifier!(exec_algorithm_id::ExecAlgorithmId);
85impl_as_ref_for_identifier!(order_list_id::OrderListId);
86impl_as_ref_for_identifier!(position_id::PositionId);
87impl_as_ref_for_identifier!(strategy_id::StrategyId);
88impl_as_ref_for_identifier!(symbol::Symbol);
89impl_as_ref_for_identifier!(trader_id::TraderId);
90impl_as_ref_for_identifier!(venue::Venue);
91impl_as_ref_for_identifier!(venue_order_id::VenueOrderId);
92
93pub fn interned_string_stats() {
95 ustr::total_allocated();
96 ustr::total_capacity();
97
98 ustr::string_cache_iter().for_each(|s| println!("{s}"));
99}