#![cfg_attr(docsrs, feature(doc_cfg))]
#![doc = include_str!("../README.md")]
#![deny(missing_docs, rustdoc::broken_intra_doc_links, clippy::missing_errors_doc)]
pub mod errors;
#[cfg(all(feature = "test-utils", feature = "tokio-comp"))]
#[cfg_attr(docsrs, doc(cfg(feature = "test-utils")))]
pub mod testing;
pub mod models;
pub mod rest;
pub mod tls;
pub mod urls;
pub mod websocket;
mod tracing_compat;
mod metrics_compat;
pub use errors::{ErrorKind, MarketDataError, WebSocketErrorKind};
pub use tls::TlsConfig;
pub use rest::{Auth, RestClient, RetryPolicy};
pub use websocket::{
ConnectionConfig, ConnectionEvent, ConnectionState, DisconnectIntent, HealthCheckConfig,
MessageReceiver, ReconnectionConfig, WebSocketClient, WebSocketFactory,
};
pub use websocket::health_check::{
DEFAULT_HEALTH_CHECK_ENABLED, DEFAULT_HEARTBEAT_TIMEOUT_MS, MIN_HEARTBEAT_TIMEOUT_MS,
};
pub use websocket::reconnection::{
DEFAULT_INITIAL_DELAY_MS, DEFAULT_MAX_ATTEMPTS, DEFAULT_MAX_DELAY_MS, MIN_INITIAL_DELAY_MS,
};
pub use models::{
PriceLevel, ResponseMeta, TotalStats, TradeInfo, TradingHalt,
HistoricalCandle, HistoricalCandlesResponse, IntradayCandle, IntradayCandlesResponse,
Quote, Ticker, Trade, TradesResponse, VolumeAtPrice, VolumesResponse,
AuthRequest, Channel, Symbols, UnsubscribeRequest, WebSocketMessage, WebSocketRequest,
};
pub use models::streaming::{
AggregatesData, BooksData, CandleData, CandleHistoryItem, CandlesSnapshot, DataPayload,
ErrorData, IndicesData, SnapshotPayload, StreamMessage, StreamTrade, SubscribedData,
TradesData,
};
pub use websocket::channels::{parse_channel_data, parse_stream_message, ChannelData};
pub use websocket::StockSubscription;
pub use models::futopt::{
ContractType, FutOptChannel, FutOptLastTrade, FutOptPriceLevel, FutOptQuote, FutOptSession,
FutOptTicker, FutOptTotalStats, FutOptType, OptionRight, Product, ProductsResponse,
};
pub use websocket::channels::FutOptSubscription;
#[cfg(feature = "tokio-comp")]
#[cfg_attr(docsrs, doc(cfg(feature = "tokio-comp")))]
pub use websocket::aio;
#[cfg(feature = "tokio-comp")]
#[cfg_attr(docsrs, doc(cfg(feature = "tokio-comp")))]
pub use websocket::aio::AsyncRuntime;