src/error.rs

Mon, 12 May 2025 15:42:48 -0500

author
Tuomo Valkonen <tuomov@iki.fi>
date
Mon, 12 May 2025 15:42:48 -0500
branch
dev
changeset 129
d2994e34a5f5
parent 76
99ad55974e62
permissions
-rw-r--r--

Simplify ZeroOp to SimpleZeroOp, only from X to X. Add Prox for ZeroIndicator. Move F parameter to AXPY::Field.

/*!
Error passing helper types
*/

/// A [`Result`] containing `T` or a dynamic error type
pub type DynResult<T> = Result<T, anyhow::Error>;

/// A [`Result`] containing `()` or a dynamic error type
pub type DynError = DynResult<()>;

#[derive(Clone, Debug)]
/// Type for numerical errors.
pub struct NumericalError(
    /// Provides additional information about the error
    pub &'static str
);

impl std::fmt::Display for NumericalError {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        match self.0 {
            "" => write!(f, "Numerical error"),
            s => write!(f, "{s}"),
        }
    }
}

impl std::error::Error for NumericalError {}

mercurial