Systematic clippy warning cleanup achieving zero warnings: - Add domain-appropriate crate-level #![allow(...)] to 20+ crate roots for pedantic lints that are noise in HFT/ML code (float_arithmetic, indexing_slicing, missing_const_for_fn, cognitive_complexity, etc.) - Fix attribute ordering in risk/src/lib.rs: move #![warn(clippy::pedantic)] before #![allow(...)] so individual allows correctly override pedantic - Remove module-level #![warn(clippy::pedantic)] from 8 trading_engine submodules that were overriding crate-level allows - Add 45+ workspace-level lint allows in Cargo.toml for common pedantic noise (mixed_attributes_style, cargo_common_metadata, etc.) - Auto-fix 67 machine-applicable warnings (redundant_closure, clone_on_copy, unnecessary_cast, etc.) via cargo clippy --fix - Fix 3 unsafe JSON indexing in risk/circuit_breaker.rs with safe .get() - Fix unused variables, unused mut, unnecessary parens in 4 files - Proto-generated code: suppress missing_const_for_fn, indexing_slicing, cognitive_complexity in ctrader-openapi and service crates 75 files changed across 20+ crates. All tests pass (3,122+ verified). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
121 lines
4.4 KiB
Rust
121 lines
4.4 KiB
Rust
//! Generated cTrader Open API protobuf types and dispatch helpers.
|
|
//!
|
|
//! All types are generated by prost from the 4 vendored `.proto` files.
|
|
//! The `PayloadType` constants and dispatch helpers below map the
|
|
//! `payloadType` discriminator in `ProtoMessage` to concrete message types.
|
|
|
|
// Include prost-generated code. The proto files don't declare a `package`,
|
|
// so prost emits everything into the root (unnamed) module.
|
|
include!(concat!(env!("OUT_DIR"), "/_.rs"));
|
|
|
|
// ── Payload-type constants ──────────────────────────────────────────
|
|
// Common
|
|
pub const PT_HEARTBEAT_EVENT: u32 = 51;
|
|
pub const PT_ERROR_RES: u32 = 50;
|
|
|
|
// Application / Account auth
|
|
pub const PT_APP_AUTH_REQ: u32 = 2100;
|
|
pub const PT_APP_AUTH_RES: u32 = 2101;
|
|
pub const PT_ACCOUNT_AUTH_REQ: u32 = 2102;
|
|
pub const PT_ACCOUNT_AUTH_RES: u32 = 2103;
|
|
|
|
// Version
|
|
pub const PT_VERSION_REQ: u32 = 2104;
|
|
pub const PT_VERSION_RES: u32 = 2105;
|
|
|
|
// Orders
|
|
pub const PT_NEW_ORDER_REQ: u32 = 2106;
|
|
pub const PT_CANCEL_ORDER_REQ: u32 = 2108;
|
|
pub const PT_AMEND_ORDER_REQ: u32 = 2109;
|
|
pub const PT_CLOSE_POSITION_REQ: u32 = 2111;
|
|
|
|
// Symbols
|
|
pub const PT_SYMBOLS_LIST_REQ: u32 = 2114;
|
|
pub const PT_SYMBOLS_LIST_RES: u32 = 2115;
|
|
pub const PT_SYMBOL_BY_ID_REQ: u32 = 2116;
|
|
pub const PT_SYMBOL_BY_ID_RES: u32 = 2117;
|
|
|
|
// Account
|
|
pub const PT_TRADER_REQ: u32 = 2121;
|
|
pub const PT_TRADER_RES: u32 = 2122;
|
|
pub const PT_RECONCILE_REQ: u32 = 2124;
|
|
pub const PT_RECONCILE_RES: u32 = 2125;
|
|
|
|
// Execution & errors
|
|
pub const PT_EXECUTION_EVENT: u32 = 2126;
|
|
pub const PT_ORDER_ERROR_EVENT: u32 = 2132;
|
|
|
|
// Spot subscriptions
|
|
pub const PT_SUBSCRIBE_SPOTS_REQ: u32 = 2127;
|
|
pub const PT_SUBSCRIBE_SPOTS_RES: u32 = 2128;
|
|
pub const PT_UNSUBSCRIBE_SPOTS_REQ: u32 = 2129;
|
|
pub const PT_UNSUBSCRIBE_SPOTS_RES: u32 = 2130;
|
|
pub const PT_SPOT_EVENT: u32 = 2131;
|
|
|
|
// OA error
|
|
pub const PT_OA_ERROR_RES: u32 = 2142;
|
|
|
|
// Accounts by token
|
|
pub const PT_GET_ACCOUNTS_REQ: u32 = 2149;
|
|
pub const PT_GET_ACCOUNTS_RES: u32 = 2150;
|
|
|
|
// Disconnect / invalidation events
|
|
pub const PT_CLIENT_DISCONNECT_EVENT: u32 = 2148;
|
|
pub const PT_ACCOUNTS_TOKEN_INVALIDATED: u32 = 2147;
|
|
pub const PT_ACCOUNT_DISCONNECT_EVENT: u32 = 2164;
|
|
|
|
/// Categorize a `payloadType` for logging and dispatch.
|
|
pub const fn payload_type_name(pt: u32) -> &'static str {
|
|
match pt {
|
|
PT_HEARTBEAT_EVENT => "HeartbeatEvent",
|
|
PT_ERROR_RES => "ErrorRes",
|
|
PT_APP_AUTH_REQ => "ApplicationAuthReq",
|
|
PT_APP_AUTH_RES => "ApplicationAuthRes",
|
|
PT_ACCOUNT_AUTH_REQ => "AccountAuthReq",
|
|
PT_ACCOUNT_AUTH_RES => "AccountAuthRes",
|
|
PT_VERSION_REQ => "VersionReq",
|
|
PT_VERSION_RES => "VersionRes",
|
|
PT_NEW_ORDER_REQ => "NewOrderReq",
|
|
PT_CANCEL_ORDER_REQ => "CancelOrderReq",
|
|
PT_AMEND_ORDER_REQ => "AmendOrderReq",
|
|
PT_CLOSE_POSITION_REQ => "ClosePositionReq",
|
|
PT_SYMBOLS_LIST_REQ => "SymbolsListReq",
|
|
PT_SYMBOLS_LIST_RES => "SymbolsListRes",
|
|
PT_SYMBOL_BY_ID_REQ => "SymbolByIdReq",
|
|
PT_SYMBOL_BY_ID_RES => "SymbolByIdRes",
|
|
PT_TRADER_REQ => "TraderReq",
|
|
PT_TRADER_RES => "TraderRes",
|
|
PT_RECONCILE_REQ => "ReconcileReq",
|
|
PT_RECONCILE_RES => "ReconcileRes",
|
|
PT_EXECUTION_EVENT => "ExecutionEvent",
|
|
PT_ORDER_ERROR_EVENT => "OrderErrorEvent",
|
|
PT_SUBSCRIBE_SPOTS_REQ => "SubscribeSpotsReq",
|
|
PT_SUBSCRIBE_SPOTS_RES => "SubscribeSpotsRes",
|
|
PT_UNSUBSCRIBE_SPOTS_REQ => "UnsubscribeSpotsReq",
|
|
PT_UNSUBSCRIBE_SPOTS_RES => "UnsubscribeSpotsRes",
|
|
PT_SPOT_EVENT => "SpotEvent",
|
|
PT_OA_ERROR_RES => "OAErrorRes",
|
|
PT_GET_ACCOUNTS_REQ => "GetAccountsReq",
|
|
PT_GET_ACCOUNTS_RES => "GetAccountsRes",
|
|
PT_CLIENT_DISCONNECT_EVENT => "ClientDisconnectEvent",
|
|
PT_ACCOUNTS_TOKEN_INVALIDATED => "AccountsTokenInvalidated",
|
|
PT_ACCOUNT_DISCONNECT_EVENT => "AccountDisconnectEvent",
|
|
_ => "Unknown",
|
|
}
|
|
}
|
|
|
|
/// Returns `true` if the payload type is a server-initiated event
|
|
/// (i.e. not a direct response to a client request).
|
|
pub const fn is_event(pt: u32) -> bool {
|
|
matches!(
|
|
pt,
|
|
PT_HEARTBEAT_EVENT
|
|
| PT_EXECUTION_EVENT
|
|
| PT_SPOT_EVENT
|
|
| PT_ORDER_ERROR_EVENT
|
|
| PT_CLIENT_DISCONNECT_EVENT
|
|
| PT_ACCOUNTS_TOKEN_INVALIDATED
|
|
| PT_ACCOUNT_DISCONNECT_EVENT
|
|
)
|
|
}
|