covet 2.0.0

CLI and web frontend for scanning with HP Envy printer / scanners
use std::num::ParseIntError;
use thiserror::Error;

#[derive(Debug, Error)]
pub enum ParseError {
    #[error(transparent)]
    Xml(#[from] xmltree::ParseError),
    #[error(transparent)]
    Int(#[from] ParseIntError),
    #[error("missing element {name}")]
    MissingElement { name: &'static str },
    #[error("unknown {name}: {value}")]
    UnknownEnumValue { name: &'static str, value: String },
}

impl ParseError {
    pub fn missing_element(name: &'static str) -> Self {
        ParseError::MissingElement { name }
    }

    pub fn unknown_enum_value(name: &'static str, value: &str) -> Self {
        ParseError::UnknownEnumValue {
            name,
            value: value.to_owned(),
        }
    }
}