#![deny(clippy::unwrap_used, clippy::expect_used)] #![cfg_attr(test, allow(clippy::unwrap_used, clippy::expect_used))] // Generated protobuf code has doc/naming issues we can't fix #![allow(clippy::doc_markdown, clippy::module_name_repetitions)] // Proto-generated code triggers these lints — safe to suppress crate-wide #![allow( clippy::missing_const_for_fn, clippy::indexing_slicing, clippy::too_many_lines, clippy::cognitive_complexity, clippy::too_many_arguments, clippy::type_complexity, clippy::similar_names )] //! cTrader Open API client for Rust. //! //! Provides a production-grade async client for the cTrader Open API protocol //! (Protobuf over TCP+TLS), targeting ICMarkets broker connectivity. //! //! # Architecture //! //! - **config** — connection configuration (environment, credentials, timeouts) //! - **error** — error types for all failure modes //! - **proto** — compiled protobuf message types //! - **codec** — length-delimited protobuf wire codec //! - **connection** — TCP+TLS transport with heartbeat //! - **auth** — OAuth2 token exchange + protobuf auth sequence //! - **dispatch** — request/response correlation and event broadcasting //! - **rate_limiter** — token-bucket rate limiter (50/s + 5/s historical) //! - **orders** — order request builders and type conversions //! - **symbols** — symbol name → ID resolution cache //! - **account** — account info and position reconciliation //! - **client** — high-level `CTraderClient` API pub mod account; pub mod auth; pub mod client; pub mod codec; pub mod config; pub mod connection; pub mod dispatch; pub mod error; pub mod market_data; pub mod orders; pub mod proto; pub mod rate_limiter; pub mod symbols; pub use client::CTraderClient; pub use config::{CTraderConfig, CTraderEnvironment}; pub use error::{CTraderError, Result};