pub mod adaptive_hedge;
pub mod bracket;
pub mod bulkhead;
#[cfg(test)]
pub mod bulkhead_metamorphic;
pub mod circuit_breaker;
pub mod first_ok;
pub mod hedge;
pub mod join;
pub mod laws;
pub mod map_reduce;
pub mod pipeline;
pub mod quorum;
pub mod race;
#[cfg(test)]
pub mod race_metamorphic;
pub mod rate_limit;
pub mod retry;
pub mod select;
pub mod timeout;
#[cfg(test)]
pub mod timeout_metamorphic;
pub use adaptive_hedge::PeakEwmaHedgeController;
pub use bracket::{BracketError, bracket, bracket_move, commit_section, try_commit_section};
pub use bulkhead::{
Bulkhead, BulkheadError, BulkheadMetrics, BulkheadPermit, BulkheadPolicy,
BulkheadPolicyBuilder, BulkheadRegistry, FullCallback,
};
pub use circuit_breaker::{
CircuitBreaker, CircuitBreakerError, CircuitBreakerMetrics, CircuitBreakerPolicy,
CircuitBreakerPolicyBuilder, FailurePredicate, Permit, SlidingWindowConfig, State,
StateChangeCallback,
};
pub use first_ok::{
FirstOk, FirstOkError, FirstOkFailure, FirstOkResult, FirstOkSuccess, first_ok_outcomes,
first_ok_to_result,
};
pub use hedge::{
AdaptiveHedgePolicy, Hedge, HedgeConfig, HedgeError, HedgeFuture, HedgeResult, HedgeWinner,
hedge, hedge_outcomes, hedge_to_result,
};
pub use join::{
Join, Join2Result, JoinAll, JoinAllError, JoinAllResult, JoinError, aggregate_outcomes,
join_all_outcomes, join_all_to_result, join2_outcomes, join2_to_result, make_join_all_result,
};
pub use map_reduce::{
MapReduce, MapReduceError, MapReduceResult, make_map_reduce_result, map_reduce_outcomes,
map_reduce_to_result, reduce_successes,
};
pub use pipeline::{
FailedStage, Pipeline, PipelineConfig, PipelineError, PipelineResult, pipeline_n_outcomes,
pipeline_to_result, pipeline_with_final, pipeline2_outcomes, pipeline3_outcomes,
stage_outcome_to_result,
};
pub use quorum::{
Quorum, QuorumError, QuorumFailure, QuorumResult, quorum_achieved, quorum_outcomes,
quorum_still_possible, quorum_to_result,
};
pub use race::{
Cancel, PollingOrder, Race, Race2, Race2Result, Race3, Race4, RaceAll, RaceAllError,
RaceAllResult, RaceError, RaceResult, RaceWinner, make_race_all_result, race_all_outcomes,
race_all_to_result, race2_outcomes, race2_to_result,
};
pub use rate_limit::{
RateLimitAlgorithm, RateLimitError, RateLimitMetrics, RateLimitPolicy, RateLimitPolicyBuilder,
RateLimiter, RateLimiterRegistry, SlidingWindowRateLimiter, WaitStrategy,
};
pub use retry::{
AlwaysRetry, NeverRetry, Retry, RetryError, RetryFailure, RetryIf, RetryPolicy, RetryPredicate,
RetryResult, RetryState, calculate_deadline as retry_deadline, calculate_delay,
make_retry_result, retry, total_delay_budget,
};
pub use select::{
Either, Select, SelectAll, SelectAllDrain, SelectAllDrainError, SelectAllDrainResult,
SelectAllError, SelectError,
};
pub use timeout::{
TimedError, TimedResult, Timeout, TimeoutConfig, TimeoutError, effective_deadline,
make_timed_result,
};