namewise_common/
lib.rs

1use std::convert::Infallible;
2
3#[derive(Debug, derive_more::Display, thiserror::Error)]
4pub enum NamewiseError {
5    #[display(fmt = "Missing field error: {_0}")]
6    MissingField(String),
7    #[display(fmt = "Generic error: {_0}")]
8    Generic(Box<dyn std::error::Error + Send + Sync>),
9}
10
11impl From<Infallible> for NamewiseError {
12    fn from(_: Infallible) -> Self {
13        panic!("An Infallible should never happen")
14    }
15}
16
17#[cfg(test)]
18mod tests {
19    use super::*;
20    #[test]
21    fn test_error_message() {
22        assert_eq!(
23            NamewiseError::MissingField("x is missing".to_string()).to_string(),
24            "Missing field error: x is missing"
25        );
26    }
27}