swoop/
lib.rs

1//! Simple optimisation algorithms in pure rust
2#![warn(clippy::pedantic)]
3#![warn(missing_docs)]
4#![allow(clippy::similar_names)]
5#![allow(clippy::unused_async)]
6#![allow(clippy::many_single_char_names)]
7
8pub mod minimise_multivariate;
9pub mod minimise_scalar;
10
11use thiserror::Error;
12
13/// Error enum
14#[derive(Error, Debug)]
15pub enum SwoopErrors {
16    /// Error to catch maximum iteration exceptions
17    #[error("Maximum number of iterations exceeded")]
18    MaxIterExceeded,
19    /// Error for incorrectly set argument
20    #[error("Invalid argument received `{0}`")]
21    ArgumentError(String),
22    /// Transparent error handler
23    #[error(transparent)]
24    Other(#[from] anyhow::Error), // source and Display delegate to anyhow::Error
25}