resilient 0.1.0

A Rust resilience library providing retry, circuit breaker, timeout, bulkhead, and rate limiting policies
Documentation
use std::time::Duration;

use thiserror::Error;

#[derive(Error, Debug)]
pub enum TimeoutError {
    #[error(
        "Operation timed out after {duration:?}{}",
        match .name {
            Some(n) => format!(" ({n})"),
            None => String::new(),
        }
    )]
    Elapsed {
        duration: Duration,
        name: Option<String>,
    },

    #[error(transparent)]
    Returning(Box<dyn std::error::Error + Send + Sync>),
}