use thiserror::Error;
pub type Result<T> = std::result::Result<T, Error>;
#[derive(Debug, Error)]
pub enum Error {
#[error("missing required builder field: {0}")]
MissingField(&'static str),
#[error("unknown model preset: {0}")]
UnknownPreset(String),
#[error("method {method} unsupported here: {reason}")]
UnsupportedMethod {
method: &'static str,
reason: String,
},
#[error("invalid KV-cache rollback: {0}")]
CacheRollback(String),
#[error("invalid sampling distribution: {0}")]
Sampling(String),
#[error(transparent)]
Candle(#[from] candle_core::Error),
#[error("tokenizer error: {0}")]
Tokenizer(String),
#[error(transparent)]
Io(#[from] std::io::Error),
#[error(transparent)]
Other(#[from] anyhow::Error),
}
impl From<tokenizers::Error> for Error {
fn from(e: tokenizers::Error) -> Self {
Error::Tokenizer(e.to_string())
}
}