1use thiserror::Error;
4
5pub type Result<T> = std::result::Result<T, Error>;
7
8#[derive(Debug, Error)]
10pub enum Error {
11 #[error("missing required builder field: {0}")]
13 MissingField(&'static str),
14
15 #[error("unknown model preset: {0}")]
17 UnknownPreset(String),
18
19 #[error("method {method} unsupported here: {reason}")]
21 UnsupportedMethod {
22 method: &'static str,
24 reason: String,
26 },
27
28 #[error("invalid KV-cache rollback: {0}")]
30 CacheRollback(String),
31
32 #[error("invalid sampling distribution: {0}")]
34 Sampling(String),
35
36 #[error(transparent)]
38 Candle(#[from] candle_core::Error),
39
40 #[error("tokenizer error: {0}")]
42 Tokenizer(String),
43
44 #[error(transparent)]
46 Io(#[from] std::io::Error),
47
48 #[error(transparent)]
50 Other(#[from] anyhow::Error),
51}
52
53impl From<tokenizers::Error> for Error {
54 fn from(e: tokenizers::Error) -> Self {
55 Error::Tokenizer(e.to_string())
56 }
57}