pub type Result<T> = std::result::Result<T, CloakError>;
#[derive(Debug, thiserror::Error)]
pub enum CloakError {
#[error("invalid confidence score: {0} (must be 0.0-1.0)")]
InvalidConfidence(f64),
#[error("no recognizers registered")]
NoRecognizers,
#[error("invalid span {start}..{end} for text length {len}")]
InvalidSpan {
start: usize,
end: usize,
len: usize,
},
#[error("regex compilation error: {0}")]
RegexError(#[from] regex::Error),
#[error("io error: {0}")]
IoError(#[from] std::io::Error),
#[error("json error: {0}")]
JsonError(#[from] serde_json::Error),
#[error("csv error: {0}")]
CsvError(#[from] csv::Error),
#[error("encryption error: {0}")]
EncryptionError(String),
#[error("invalid configuration: {0}")]
ConfigError(String),
}