use thiserror::Error;
#[derive(Error, Debug)]
pub enum ExpirationDateError {
#[error("parse error: {0}")]
ParseError(String),
#[error("conversion error from {from_type} to {to_type}: {reason}")]
ConversionError {
from_type: String,
to_type: String,
reason: String,
},
#[error("invalid date/time: {0}")]
InvalidDateTime(String),
#[error(transparent)]
PositiveError(#[from] positive::PositiveError),
#[error(transparent)]
ChronoParseError(#[from] chrono::ParseError),
#[error(transparent)]
ParseIntError(#[from] std::num::ParseIntError),
}
impl From<String> for ExpirationDateError {
fn from(msg: String) -> Self {
ExpirationDateError::ParseError(msg)
}
}
impl From<&str> for ExpirationDateError {
fn from(msg: &str) -> Self {
ExpirationDateError::ParseError(msg.to_string())
}
}