use std::path::PathBuf;
#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("database not found: {path}")]
DatabaseNotFound { path: PathBuf },
#[error("lookup failed for {ip}")]
LookupFailed {
ip: String,
#[source]
source: maxminddb::MaxMindDbError,
},
#[error("invalid template: {reason}")]
InvalidTemplate { reason: String },
#[error("no IP patterns selected")]
NoPatterns,
#[error("unknown provider: {name}")]
UnknownProvider { name: String },
#[error("provider not initialized: {name}")]
ProviderNotInitialized { name: String },
#[error(transparent)]
Io(#[from] std::io::Error),
#[error("regex error: {0}")]
Regex(#[from] anyhow::Error),
}
pub type Result<T> = std::result::Result<T, Error>;