//! Common utilities and shared types for Foxhunt HFT Trading System //! //! This crate contains shared utilities that are used across multiple services //! in the Foxhunt HFT trading system, eliminating code duplication and providing //! a consistent interface for common operations. //! //! # Modules //! //! - [`database`] - Database connection utilities and configurations //! - [`error`] - Common error types and utilities //! - [`traits`] - Shared traits used across services //! - [`constants`] - Shared constants and configuration values //! - [`types`] - Common data types #![allow(missing_docs)] // Internal implementation details #![warn(missing_debug_implementations)] #![allow(clippy::float_arithmetic)] // Financial calculations require float arithmetic #![warn(rust_2018_idioms)] #![deny( clippy::unwrap_used, clippy::expect_used, clippy::panic, clippy::unimplemented, clippy::unreachable )] pub mod constants; pub mod database; pub mod error; pub mod features; // Wave D: Shared feature extraction (225 features) pub mod market_data; pub mod ml_strategy; pub mod regime_persistence; pub mod thresholds; pub mod traits; pub mod types; // Re-export database types for external use pub use database::{DatabaseConfig, DatabaseError, DatabasePool}; // Re-export commonly used types at crate root for convenience pub use types::{ AccountId, Aggregate, BarEvent, BrokerType, CommonTypeError, ConfigVersion, ConnectionEvent, ConnectionInfo, ConnectionStatus, Currency, DataType, ErrorEvent, Execution, GenericTimestamp, HftTimestamp, Level2Update, MarketDataEvent, MarketRegime, MarketStatus, Money, Order, OrderBookEvent, OrderEvent, OrderEventType, OrderId, OrderSide, OrderStatus, OrderType, Position, PositionMap, Price, PriceLevel, Quantity, QuoteEvent, RequestId, ResourceLimits, ServiceId, ServiceStatus, Subscription, Symbol, TimeInForce, Timestamp, TradeEvent, TradeId, Volume, }; // Re-export error types pub use error::{CommonError, CommonResult}; // Re-export common traits for convenience pub use traits::{ CircuitBreaker, Configurable, DetailedHealth, GracefulShutdown, HealthCheck, HealthStatus, Metrics, RateLimitStatus, RateLimited, Reloadable, Service, }; pub use market_data::{ BarEvent as BarEventFromMarketData, BarInterval, MarketDataEvent as MarketDataEventFromMarketData, NewsEvent, OrderBookEvent as OrderBookEventFromMarketData, QuoteEvent as QuoteEventFromMarketData, TradeEvent as TradeEventFromMarketData, }; // Import market data types for canonical use // Use common::market_data::{MarketDataEvent, TradeEvent, QuoteEvent, BarEvent} etc. pub mod trading; // Re-export shared ML strategy types pub use ml_strategy::{ MLFeatureExtractor, MLModelAdapter, MLModelPerformance, MLPrediction, ProductionFeatureExtractor225, SharedMLStrategy, SimpleDQNAdapter, }; // Re-export regime persistence manager pub use regime_persistence::RegimePersistenceManager; // Re-export feature extraction types and functions (Wave D: 225 features) pub use features::{ FeatureVector225, BarData, // Technical indicators (streaming + batch) RSI, EMA, MACD, BollingerBands, ATR, ADX, rsi_batch, ema_batch, macd_batch, bollinger_batch, atr_batch, adx_batch, }; // Test utilities module (available for all tests) #[cfg(test)] pub mod test_utils; // Test module for database features #[cfg(all(test, feature = "database"))] mod sqlx_test;