resopt 0.3.0

Declarative constrained residual optimization in Rust
Documentation
/// Global status returned by a solve attempt.
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum SolveStatus {
    Solved,
    Infeasible,
    MaxIterationsReached,
    NumericalFailure,
    InvalidProblem,
    NotImplemented,
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn variants_eq() {
        assert_eq!(SolveStatus::Solved, SolveStatus::Solved);
        assert_ne!(SolveStatus::Solved, SolveStatus::Infeasible);
        assert_ne!(
            SolveStatus::MaxIterationsReached,
            SolveStatus::NumericalFailure
        );
    }

    #[test]
    fn copy() {
        let s = SolveStatus::Infeasible;
        let s2 = s;
        assert_eq!(s, s2);
    }

    #[test]
    fn debug() {
        assert!(format!("{:?}", SolveStatus::Solved).contains("Solved"));
    }
}