use crate::;
use async_trait;
use Result;
use Debug;
/// The HTTP port.
///
/// Implementations own connection pooling, timeouts and redirects. They must translate
/// transport failures into [`origin_domain::AppError`]:
///
/// - no route, DNS failure, connection refused → `Offline` or `Network`
/// - timeout → `Network`
/// - anything else → `Network`
///
/// They must **not** turn a non-2xx status into an error; that is the caller's decision
/// via [`HttpResponse::error_for_status`], because some statuses are normal.