1#[derive(Debug)]
2pub enum Error {
3 InvalidVersion(semver::Error),
4 Request(Box<ureq::Error>),
5 Io(std::io::Error),
6 Serialize(serde_json::Error),
7 Deserialize(serde_json::Error),
8 FromIndexFile(&'static str),
9}
10
11impl std::error::Error for Error {}
12
13impl std::fmt::Display for Error {
14 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
15 match self {
16 Error::InvalidVersion(error) => write!(f, "failed parsing version: {error}"),
17 Error::Request(error) => write!(f, "request failed: {error}"),
18 Error::Io(error) => write!(f, "IO error: {error}"),
19 Error::Serialize(error) => write!(f, "failed to serialize: {error}"),
20 Error::Deserialize(error) => write!(f, "failed to deserialize: {error}"),
21 Error::FromIndexFile(error) => write!(f, "failed to populate from index file: {error}"),
22 }
23 }
24}