#![cfg_attr(coverage_nightly, feature(coverage_attribute))]
#![cfg_attr(docsrs, feature(doc_cfg))]
#![doc(html_logo_url = "https://media.githubusercontent.com/media/microsoft/oxidizer/refs/heads/main/crates/seatbelt_http/logo.png")]
#![doc(html_favicon_url = "https://media.githubusercontent.com/media/microsoft/oxidizer/refs/heads/main/crates/seatbelt_http/favicon.ico")]
#![cfg_attr(
not(all(feature = "retry", feature = "timeout", feature = "breaker", feature = "hedging")),
expect(
rustdoc::broken_intra_doc_links,
reason = "intra-doc links break when not all features are enabled"
)
)]
use http_extensions::{HttpRequest, HttpResponse};
pub type HttpResilienceContext = seatbelt::ResilienceContext<HttpRequest, http_extensions::Result<HttpResponse>>;
#[cfg(feature = "timeout")]
pub mod timeout;
#[cfg(feature = "retry")]
pub mod retry;
#[cfg(feature = "hedging")]
pub mod hedging;
#[cfg(feature = "breaker")]
pub mod breaker;
#[cfg(any(feature = "retry", feature = "hedging", feature = "breaker"))]
mod http_recovery;
#[cfg(any(feature = "retry", feature = "hedging", feature = "breaker"))]
pub use http_recovery::HttpRecovery;
#[cfg(any(feature = "retry", feature = "hedging"))]
mod http_clone;
#[cfg(any(feature = "retry", feature = "hedging"))]
pub use http_clone::HttpClone;