use std::fmt;
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum TaError {
BadParam(String),
OutOfRange(String),
LibNotInitialized,
OutOfMemory,
InternalError(String),
}
impl fmt::Display for TaError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
TaError::BadParam(s) => write!(f, "Bad parameter: {s}"),
TaError::OutOfRange(s) => write!(f, "Out of range: {s}"),
TaError::LibNotInitialized => write!(f, "Library not initialized"),
TaError::OutOfMemory => write!(f, "Out of memory"),
TaError::InternalError(s) => write!(f, "Internal error: {s}"),
}
}
}
impl std::error::Error for TaError {}
#[inline]
pub(crate) fn check_period(period: usize) -> Result<usize, TaError> {
if period == 0 {
return Err(TaError::BadParam("time period must be >= 1".into()));
}
Ok(period)
}