Skip to main content

Module services

Module services 

Source
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§

DefaultIpService
DefaultLatencyMonitor
DefaultServerService
ServiceContainer
Service container holding all injectable services. Uses Arc<dyn Trait> for true dependency injection.

Traits§

IpDiscoverer
LatencyMonitor
ServerFetcher
ServerPinger
ServerSelector
ServerService
Services
Trait for accessing all services — enables mocking PhaseContext in tests.