//! Probe engine for parlov: HTTP execution, TLS control, timing, and rate limiting.
//!
//! This crate owns the network-facing half of the pipeline. It pulls in the full async/HTTP/TLS
//! stack so that changes to statistical thresholds in `parlov-analysis` do not trigger a
//! recompile of `reqwest`, `hyper`, or `rustls`.
use ;
/// Executes a single HTTP interaction and returns the full exchange (request + response paired).
///
/// One call to `execute` produces one [`ProbeExchange`]. The scheduler drives the
/// `Analyzer::evaluate` loop in `parlov-analysis` and collects exchanges into a
/// `DifferentialSet`.
///
/// Implementations must be `Send + Sync` so they can be shared across async tasks.