//! Middleware for Sunbeam services.

pub mod auth;
/// Instrumentation.
pub mod instrumentation;
/// Logging.
pub mod logging;
/// Panic recovery.
pub mod panic_recovery;
/// Request id.
pub mod request_id;
/// Tracing.
pub mod tracing;

/// Re-export commonly used middleware
pub use instrumentation::InstrumentationLayer;

/// A boxed error type for middleware.
pub type MiddlewareError = Box<dyn std::error::Error + Send + Sync>;

#[cfg(test)]
mod tests {
    #[test]
    fn test_middleware_placeholder() {
        assert!(true);
    }
}
