//! 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 #![warn(missing_docs)] #![warn(missing_debug_implementations)] #![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 traits; pub mod trading; pub mod types; // Re-export all types at crate root for easy access pub use types::*; // Re-export trading types at crate root for easy access pub use trading::{TickType, BookAction, Side}; pub use types::MarketRegime; // Re-export error types at crate root for direct access pub use error::{CommonError, CommonResult, ErrorCategory, ErrorSeverity, RetryStrategy}; /// Prelude module for convenient imports #[cfg(all(test, feature = "database"))] mod sqlx_test; #[cfg(feature = "database")] pub mod prelude { //! Common types and utilities for Foxhunt services // Re-export database utilities pub use crate::database::{DatabaseConfig, DatabasePool, PoolConfig, PoolStats}; // Re-export error types pub use crate::error::{CommonError, CommonResult, ErrorCategory, ErrorSeverity, RetryStrategy}; // Re-export common traits pub use crate::traits::{Configurable, HealthCheck, Metrics, Service}; // Re-export constants pub use crate::constants::{DEFAULT_POOL_SIZE, MAX_QUERY_TIMEOUT_MS, SERVICE_DEFAULTS}; // Re-export common types - CANONICAL ORDER INCLUDED pub use crate::types::{ ConfigVersion, ServiceId, ServiceStatus, RequestId, ConnectionInfo, ResourceLimits, Order, Position, Execution, Price, Quantity, Volume, Symbol, OrderId, TradeId, ExecutionId, AccountId, HftTimestamp, GenericTimestamp, Money, OrderType, OrderStatus, OrderSide, TimeInForce, Currency, CommonTypeError, BrokerType, Decimal, MarketTick, QuoteEvent, TradeEvent, BarEvent, ConnectionEvent, ErrorEvent, OrderBookEvent }; // Re-export trading types (excluding duplicates already in types module) pub use crate::trading::{ BookAction, MarketRegime, Side, TickType, }; }