pulses 0.2.0

A robust, high-performance background job processing library for Rust.
Documentation
//! Top-level error type returned by [`App::run`](crate::App::run).

use crate::config::ConfigError;

/// Fatal errors that terminate a running [`App`](crate::App).
///
/// Transient broker failures are handled internally (with backoff) and never
/// surface here; an `AppError` means the runtime stopped and the caller may
/// choose to restart it.
#[derive(Debug, thiserror::Error)]
#[non_exhaustive]
pub enum AppError {
    /// The supplied [`AppConfig`](crate::AppConfig) failed validation.
    #[error("invalid configuration: {0}")]
    Config(#[from] ConfigError),
    /// A runtime task panicked or was cancelled abnormally.
    #[error("a runtime task failed: {0}")]
    Task(#[from] tokio::task::JoinError),
}