Expand description
Service abstractions for dependency injection.
All traits use async_trait for dyn-compatibility,
enabling Arc<dyn Trait> in ServiceContainer.
Services own their HTTP client internally — callers never
pass reqwest::Client to service methods (full DIP).
Structs§
- Default
IpService - Default
Latency Monitor - Default
Server Service - Service
Container - Service container holding all injectable services.
Uses
Arc<dyn Trait>for true dependency injection.
Traits§
- IpDiscoverer
- Latency
Monitor - Server
Fetcher - Server
Pinger - Server
Selector - Server
Service - Services
- Trait for accessing all services — enables mocking PhaseContext in tests.