differential_equations/
status.rs1#[cfg(feature = "serde")]
4use serde::{Deserialize, Serialize};
5
6use std::fmt::{Debug, Display};
7
8use crate::{
9 error::Error,
10 traits::{Real, State},
11};
12
13#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
25#[derive(Debug, PartialEq, Clone)]
26pub enum Status<T, Y>
27where
28 T: Real,
29 Y: State<T>,
30{
31 Uninitialized,
33 Initialized,
35 Error(Error<T, Y>),
37 Solving,
39 RejectedStep,
41 Interrupted,
43 Complete,
45}
46
47impl<T, Y> Display for Status<T, Y>
48where
49 T: Real + Display,
50 Y: State<T> + Display,
51{
52 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
53 match self {
54 Self::Uninitialized => write!(f, "NumericalMethod: Uninitialized"),
55 Self::Initialized => write!(f, "NumericalMethod: Initialized"),
56 Self::Error(err) => write!(f, "NumericalMethod Error: {}", err),
57 Self::Solving => write!(f, "NumericalMethod: Solving in progress"),
58 Self::RejectedStep => write!(f, "NumericalMethod: Step rejected"),
59 Self::Interrupted => write!(f, "NumericalMethod: Interrupted"),
60 Self::Complete => write!(f, "NumericalMethod: Complete"),
61 }
62 }
63}