Skip to content
Snippets Groups Projects
error.rs 1.04 KiB
Newer Older
use std::{error::Error, fmt::Display};

Udo Eisenbarth's avatar
Udo Eisenbarth committed
#[derive(Debug, Clone)]
pub enum OpossumError {
    OpticScenery(String),
    OpticGroup(String),
    OpticPort(String),
    Analysis(String),
    Other(String),
}

impl Display for OpossumError {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        match self {
            OpossumError::OpticScenery(m) => {
Udo Eisenbarth's avatar
Udo Eisenbarth committed
                write!(f, "Opossum Error::OpticScenery::{}", m)
            }
            OpossumError::OpticGroup(m) => {
Udo Eisenbarth's avatar
Udo Eisenbarth committed
                write!(f, "Opossum Error::OpticGroup::{}", m)
            }
            OpossumError::OpticPort(m) => {
Udo Eisenbarth's avatar
Udo Eisenbarth committed
                write!(f, "Opossum Error::OpticPort::{}", m)
            OpossumError::Analysis(m) => {
                write!(f, "Opossum Error::Analysis::{}", m)
            }
Udo Eisenbarth's avatar
Udo Eisenbarth committed
            OpossumError::Other(m) => write!(f, "Opossum Error::Other::{}", m),
        }
    }
}
impl Error for OpossumError {}
Udo Eisenbarth's avatar
Udo Eisenbarth committed

impl std::convert::From<String> for OpossumError {
    fn from(msg: String) -> Self {
        Self::Other(msg)
    }
}