1#![allow(clippy::all, unused_imports, unused_mut, dead_code, non_upper_case_globals)]
3
4pub mod fields;
7pub mod messages;
8pub use messages::*;
9
10pub const BEGIN_STRING: &str = "FIX.4.4";
11
12#[derive(Debug, Clone)]
14pub enum AnyMessage {
15 Advertisement(messages::advertisement::Advertisement),
16 AllocationInstruction(messages::allocation_instruction::AllocationInstruction),
17 AllocationInstructionAck(messages::allocation_instruction_ack::AllocationInstructionAck),
18 AllocationReport(messages::allocation_report::AllocationReport),
19 AllocationReportAck(messages::allocation_report_ack::AllocationReportAck),
20 AssignmentReport(messages::assignment_report::AssignmentReport),
21 BidRequest(messages::bid_request::BidRequest),
22 BidResponse(messages::bid_response::BidResponse),
23 BusinessMessageReject(messages::business_message_reject::BusinessMessageReject),
24 CollateralAssignment(messages::collateral_assignment::CollateralAssignment),
25 CollateralInquiry(messages::collateral_inquiry::CollateralInquiry),
26 CollateralInquiryAck(messages::collateral_inquiry_ack::CollateralInquiryAck),
27 CollateralReport(messages::collateral_report::CollateralReport),
28 CollateralRequest(messages::collateral_request::CollateralRequest),
29 CollateralResponse(messages::collateral_response::CollateralResponse),
30 Confirmation(messages::confirmation::Confirmation),
31 ConfirmationAck(messages::confirmation_ack::ConfirmationAck),
32 ConfirmationRequest(messages::confirmation_request::ConfirmationRequest),
33 CrossOrderCancelReplaceRequest(messages::cross_order_cancel_replace_request::CrossOrderCancelReplaceRequest),
34 CrossOrderCancelRequest(messages::cross_order_cancel_request::CrossOrderCancelRequest),
35 DerivativeSecurityList(messages::derivative_security_list::DerivativeSecurityList),
36 DerivativeSecurityListRequest(messages::derivative_security_list_request::DerivativeSecurityListRequest),
37 DontKnowTrade(messages::dont_know_trade::DontKnowTrade),
38 Email(messages::email::Email),
39 ExecutionReport(messages::execution_report::ExecutionReport),
40 Heartbeat(messages::heartbeat::Heartbeat),
41 IOI(messages::ioi::IOI),
42 ListCancelRequest(messages::list_cancel_request::ListCancelRequest),
43 ListExecute(messages::list_execute::ListExecute),
44 ListStatus(messages::list_status::ListStatus),
45 ListStatusRequest(messages::list_status_request::ListStatusRequest),
46 ListStrikePrice(messages::list_strike_price::ListStrikePrice),
47 Logon(messages::logon::Logon),
48 Logout(messages::logout::Logout),
49 MarketDataIncrementalRefresh(messages::market_data_incremental_refresh::MarketDataIncrementalRefresh),
50 MarketDataRequest(messages::market_data_request::MarketDataRequest),
51 MarketDataRequestReject(messages::market_data_request_reject::MarketDataRequestReject),
52 MarketDataSnapshotFullRefresh(messages::market_data_snapshot_full_refresh::MarketDataSnapshotFullRefresh),
53 MassQuote(messages::mass_quote::MassQuote),
54 MassQuoteAcknowledgement(messages::mass_quote_acknowledgement::MassQuoteAcknowledgement),
55 MultilegOrderCancelReplace(messages::multileg_order_cancel_replace::MultilegOrderCancelReplace),
56 NetworkCounterpartySystemStatusRequest(messages::network_counterparty_system_status_request::NetworkCounterpartySystemStatusRequest),
57 NetworkCounterpartySystemStatusResponse(messages::network_counterparty_system_status_response::NetworkCounterpartySystemStatusResponse),
58 NewOrderCross(messages::new_order_cross::NewOrderCross),
59 NewOrderList(messages::new_order_list::NewOrderList),
60 NewOrderMultileg(messages::new_order_multileg::NewOrderMultileg),
61 NewOrderSingle(messages::new_order_single::NewOrderSingle),
62 News(messages::news::News),
63 OrderCancelReject(messages::order_cancel_reject::OrderCancelReject),
64 OrderCancelReplaceRequest(messages::order_cancel_replace_request::OrderCancelReplaceRequest),
65 OrderCancelRequest(messages::order_cancel_request::OrderCancelRequest),
66 OrderMassCancelReport(messages::order_mass_cancel_report::OrderMassCancelReport),
67 OrderMassCancelRequest(messages::order_mass_cancel_request::OrderMassCancelRequest),
68 OrderMassStatusRequest(messages::order_mass_status_request::OrderMassStatusRequest),
69 OrderStatusRequest(messages::order_status_request::OrderStatusRequest),
70 PositionMaintenanceReport(messages::position_maintenance_report::PositionMaintenanceReport),
71 PositionMaintenanceRequest(messages::position_maintenance_request::PositionMaintenanceRequest),
72 PositionReport(messages::position_report::PositionReport),
73 Quote(messages::quote::Quote),
74 QuoteCancel(messages::quote_cancel::QuoteCancel),
75 QuoteRequest(messages::quote_request::QuoteRequest),
76 QuoteRequestReject(messages::quote_request_reject::QuoteRequestReject),
77 QuoteResponse(messages::quote_response::QuoteResponse),
78 QuoteStatusReport(messages::quote_status_report::QuoteStatusReport),
79 QuoteStatusRequest(messages::quote_status_request::QuoteStatusRequest),
80 RFQRequest(messages::rfq_request::RFQRequest),
81 RegistrationInstructions(messages::registration_instructions::RegistrationInstructions),
82 RegistrationInstructionsResponse(messages::registration_instructions_response::RegistrationInstructionsResponse),
83 Reject(messages::reject::Reject),
84 RequestForPositions(messages::request_for_positions::RequestForPositions),
85 RequestForPositionsAck(messages::request_for_positions_ack::RequestForPositionsAck),
86 ResendRequest(messages::resend_request::ResendRequest),
87 SecurityDefinition(messages::security_definition::SecurityDefinition),
88 SecurityDefinitionRequest(messages::security_definition_request::SecurityDefinitionRequest),
89 SecurityList(messages::security_list::SecurityList),
90 SecurityListRequest(messages::security_list_request::SecurityListRequest),
91 SecurityStatus(messages::security_status::SecurityStatus),
92 SecurityStatusRequest(messages::security_status_request::SecurityStatusRequest),
93 SecurityTypeRequest(messages::security_type_request::SecurityTypeRequest),
94 SecurityTypes(messages::security_types::SecurityTypes),
95 SequenceReset(messages::sequence_reset::SequenceReset),
96 SettlementInstructionRequest(messages::settlement_instruction_request::SettlementInstructionRequest),
97 SettlementInstructions(messages::settlement_instructions::SettlementInstructions),
98 TestRequest(messages::test_request::TestRequest),
99 TradeCaptureReport(messages::trade_capture_report::TradeCaptureReport),
100 TradeCaptureReportAck(messages::trade_capture_report_ack::TradeCaptureReportAck),
101 TradeCaptureReportRequest(messages::trade_capture_report_request::TradeCaptureReportRequest),
102 TradeCaptureReportRequestAck(messages::trade_capture_report_request_ack::TradeCaptureReportRequestAck),
103 TradingSessionStatus(messages::trading_session_status::TradingSessionStatus),
104 TradingSessionStatusRequest(messages::trading_session_status_request::TradingSessionStatusRequest),
105 UserRequest(messages::user_request::UserRequest),
106 UserResponse(messages::user_response::UserResponse),
107 Unknown(crate::Message),
109}
110
111pub fn classify(msg: crate::Message) -> AnyMessage {
113 match msg.msg_type().ok().as_deref().unwrap_or("") {
114 "7" => AnyMessage::Advertisement(messages::advertisement::Advertisement(msg)),
115 "J" => AnyMessage::AllocationInstruction(messages::allocation_instruction::AllocationInstruction(msg)),
116 "P" => AnyMessage::AllocationInstructionAck(messages::allocation_instruction_ack::AllocationInstructionAck(msg)),
117 "AS" => AnyMessage::AllocationReport(messages::allocation_report::AllocationReport(msg)),
118 "AT" => AnyMessage::AllocationReportAck(messages::allocation_report_ack::AllocationReportAck(msg)),
119 "AW" => AnyMessage::AssignmentReport(messages::assignment_report::AssignmentReport(msg)),
120 "k" => AnyMessage::BidRequest(messages::bid_request::BidRequest(msg)),
121 "l" => AnyMessage::BidResponse(messages::bid_response::BidResponse(msg)),
122 "j" => AnyMessage::BusinessMessageReject(messages::business_message_reject::BusinessMessageReject(msg)),
123 "AY" => AnyMessage::CollateralAssignment(messages::collateral_assignment::CollateralAssignment(msg)),
124 "BB" => AnyMessage::CollateralInquiry(messages::collateral_inquiry::CollateralInquiry(msg)),
125 "BG" => AnyMessage::CollateralInquiryAck(messages::collateral_inquiry_ack::CollateralInquiryAck(msg)),
126 "BA" => AnyMessage::CollateralReport(messages::collateral_report::CollateralReport(msg)),
127 "AX" => AnyMessage::CollateralRequest(messages::collateral_request::CollateralRequest(msg)),
128 "AZ" => AnyMessage::CollateralResponse(messages::collateral_response::CollateralResponse(msg)),
129 "AK" => AnyMessage::Confirmation(messages::confirmation::Confirmation(msg)),
130 "AU" => AnyMessage::ConfirmationAck(messages::confirmation_ack::ConfirmationAck(msg)),
131 "BH" => AnyMessage::ConfirmationRequest(messages::confirmation_request::ConfirmationRequest(msg)),
132 "t" => AnyMessage::CrossOrderCancelReplaceRequest(messages::cross_order_cancel_replace_request::CrossOrderCancelReplaceRequest(msg)),
133 "u" => AnyMessage::CrossOrderCancelRequest(messages::cross_order_cancel_request::CrossOrderCancelRequest(msg)),
134 "AA" => AnyMessage::DerivativeSecurityList(messages::derivative_security_list::DerivativeSecurityList(msg)),
135 "z" => AnyMessage::DerivativeSecurityListRequest(messages::derivative_security_list_request::DerivativeSecurityListRequest(msg)),
136 "Q" => AnyMessage::DontKnowTrade(messages::dont_know_trade::DontKnowTrade(msg)),
137 "C" => AnyMessage::Email(messages::email::Email(msg)),
138 "8" => AnyMessage::ExecutionReport(messages::execution_report::ExecutionReport(msg)),
139 "0" => AnyMessage::Heartbeat(messages::heartbeat::Heartbeat(msg)),
140 "6" => AnyMessage::IOI(messages::ioi::IOI(msg)),
141 "K" => AnyMessage::ListCancelRequest(messages::list_cancel_request::ListCancelRequest(msg)),
142 "L" => AnyMessage::ListExecute(messages::list_execute::ListExecute(msg)),
143 "N" => AnyMessage::ListStatus(messages::list_status::ListStatus(msg)),
144 "M" => AnyMessage::ListStatusRequest(messages::list_status_request::ListStatusRequest(msg)),
145 "m" => AnyMessage::ListStrikePrice(messages::list_strike_price::ListStrikePrice(msg)),
146 "A" => AnyMessage::Logon(messages::logon::Logon(msg)),
147 "5" => AnyMessage::Logout(messages::logout::Logout(msg)),
148 "X" => AnyMessage::MarketDataIncrementalRefresh(messages::market_data_incremental_refresh::MarketDataIncrementalRefresh(msg)),
149 "V" => AnyMessage::MarketDataRequest(messages::market_data_request::MarketDataRequest(msg)),
150 "Y" => AnyMessage::MarketDataRequestReject(messages::market_data_request_reject::MarketDataRequestReject(msg)),
151 "W" => AnyMessage::MarketDataSnapshotFullRefresh(messages::market_data_snapshot_full_refresh::MarketDataSnapshotFullRefresh(msg)),
152 "i" => AnyMessage::MassQuote(messages::mass_quote::MassQuote(msg)),
153 "b" => AnyMessage::MassQuoteAcknowledgement(messages::mass_quote_acknowledgement::MassQuoteAcknowledgement(msg)),
154 "AC" => AnyMessage::MultilegOrderCancelReplace(messages::multileg_order_cancel_replace::MultilegOrderCancelReplace(msg)),
155 "BC" => AnyMessage::NetworkCounterpartySystemStatusRequest(messages::network_counterparty_system_status_request::NetworkCounterpartySystemStatusRequest(msg)),
156 "BD" => AnyMessage::NetworkCounterpartySystemStatusResponse(messages::network_counterparty_system_status_response::NetworkCounterpartySystemStatusResponse(msg)),
157 "s" => AnyMessage::NewOrderCross(messages::new_order_cross::NewOrderCross(msg)),
158 "E" => AnyMessage::NewOrderList(messages::new_order_list::NewOrderList(msg)),
159 "AB" => AnyMessage::NewOrderMultileg(messages::new_order_multileg::NewOrderMultileg(msg)),
160 "D" => AnyMessage::NewOrderSingle(messages::new_order_single::NewOrderSingle(msg)),
161 "B" => AnyMessage::News(messages::news::News(msg)),
162 "9" => AnyMessage::OrderCancelReject(messages::order_cancel_reject::OrderCancelReject(msg)),
163 "G" => AnyMessage::OrderCancelReplaceRequest(messages::order_cancel_replace_request::OrderCancelReplaceRequest(msg)),
164 "F" => AnyMessage::OrderCancelRequest(messages::order_cancel_request::OrderCancelRequest(msg)),
165 "r" => AnyMessage::OrderMassCancelReport(messages::order_mass_cancel_report::OrderMassCancelReport(msg)),
166 "q" => AnyMessage::OrderMassCancelRequest(messages::order_mass_cancel_request::OrderMassCancelRequest(msg)),
167 "AF" => AnyMessage::OrderMassStatusRequest(messages::order_mass_status_request::OrderMassStatusRequest(msg)),
168 "H" => AnyMessage::OrderStatusRequest(messages::order_status_request::OrderStatusRequest(msg)),
169 "AM" => AnyMessage::PositionMaintenanceReport(messages::position_maintenance_report::PositionMaintenanceReport(msg)),
170 "AL" => AnyMessage::PositionMaintenanceRequest(messages::position_maintenance_request::PositionMaintenanceRequest(msg)),
171 "AP" => AnyMessage::PositionReport(messages::position_report::PositionReport(msg)),
172 "S" => AnyMessage::Quote(messages::quote::Quote(msg)),
173 "Z" => AnyMessage::QuoteCancel(messages::quote_cancel::QuoteCancel(msg)),
174 "R" => AnyMessage::QuoteRequest(messages::quote_request::QuoteRequest(msg)),
175 "AG" => AnyMessage::QuoteRequestReject(messages::quote_request_reject::QuoteRequestReject(msg)),
176 "AJ" => AnyMessage::QuoteResponse(messages::quote_response::QuoteResponse(msg)),
177 "AI" => AnyMessage::QuoteStatusReport(messages::quote_status_report::QuoteStatusReport(msg)),
178 "a" => AnyMessage::QuoteStatusRequest(messages::quote_status_request::QuoteStatusRequest(msg)),
179 "AH" => AnyMessage::RFQRequest(messages::rfq_request::RFQRequest(msg)),
180 "o" => AnyMessage::RegistrationInstructions(messages::registration_instructions::RegistrationInstructions(msg)),
181 "p" => AnyMessage::RegistrationInstructionsResponse(messages::registration_instructions_response::RegistrationInstructionsResponse(msg)),
182 "3" => AnyMessage::Reject(messages::reject::Reject(msg)),
183 "AN" => AnyMessage::RequestForPositions(messages::request_for_positions::RequestForPositions(msg)),
184 "AO" => AnyMessage::RequestForPositionsAck(messages::request_for_positions_ack::RequestForPositionsAck(msg)),
185 "2" => AnyMessage::ResendRequest(messages::resend_request::ResendRequest(msg)),
186 "d" => AnyMessage::SecurityDefinition(messages::security_definition::SecurityDefinition(msg)),
187 "c" => AnyMessage::SecurityDefinitionRequest(messages::security_definition_request::SecurityDefinitionRequest(msg)),
188 "y" => AnyMessage::SecurityList(messages::security_list::SecurityList(msg)),
189 "x" => AnyMessage::SecurityListRequest(messages::security_list_request::SecurityListRequest(msg)),
190 "f" => AnyMessage::SecurityStatus(messages::security_status::SecurityStatus(msg)),
191 "e" => AnyMessage::SecurityStatusRequest(messages::security_status_request::SecurityStatusRequest(msg)),
192 "v" => AnyMessage::SecurityTypeRequest(messages::security_type_request::SecurityTypeRequest(msg)),
193 "w" => AnyMessage::SecurityTypes(messages::security_types::SecurityTypes(msg)),
194 "4" => AnyMessage::SequenceReset(messages::sequence_reset::SequenceReset(msg)),
195 "AV" => AnyMessage::SettlementInstructionRequest(messages::settlement_instruction_request::SettlementInstructionRequest(msg)),
196 "T" => AnyMessage::SettlementInstructions(messages::settlement_instructions::SettlementInstructions(msg)),
197 "1" => AnyMessage::TestRequest(messages::test_request::TestRequest(msg)),
198 "AE" => AnyMessage::TradeCaptureReport(messages::trade_capture_report::TradeCaptureReport(msg)),
199 "AR" => AnyMessage::TradeCaptureReportAck(messages::trade_capture_report_ack::TradeCaptureReportAck(msg)),
200 "AD" => AnyMessage::TradeCaptureReportRequest(messages::trade_capture_report_request::TradeCaptureReportRequest(msg)),
201 "AQ" => AnyMessage::TradeCaptureReportRequestAck(messages::trade_capture_report_request_ack::TradeCaptureReportRequestAck(msg)),
202 "h" => AnyMessage::TradingSessionStatus(messages::trading_session_status::TradingSessionStatus(msg)),
203 "g" => AnyMessage::TradingSessionStatusRequest(messages::trading_session_status_request::TradingSessionStatusRequest(msg)),
204 "BE" => AnyMessage::UserRequest(messages::user_request::UserRequest(msg)),
205 "BF" => AnyMessage::UserResponse(messages::user_response::UserResponse(msg)),
206 _ => AnyMessage::Unknown(msg),
207 }
208}