#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("score {0} out of range [0,1]")]
InvalidScore(f64),
#[error("invalid model reference {0:?} (expected `provider/model`)")]
BadModelRef(String),
#[error("invalid duration {0:?} (expected e.g. `30m`, `2h`)")]
BadDuration(String),
#[error("unknown model {0:?} — add it to the price table")]
UnknownModel(String),
#[error("hash chain broken at index {index}: {detail}")]
ChainBroken {
index: usize,
detail: String,
},
#[error("config parse error: {0}")]
Config(#[from] toml::de::Error),
#[error("invalid config: {0}")]
InvalidConfig(String),
#[error("json error: {0}")]
Json(#[from] serde_json::Error),
}
pub type Result<T> = std::result::Result<T, Error>;