1use thiserror::Error;
2
3#[derive(Debug, Error)]
5pub enum InstallerError {
6 #[error("IO error: {0}")]
7 Io(#[from] std::io::Error),
8
9 #[error("HTTP error: {0}")]
10 Http(#[from] reqwest::Error),
11
12 #[error("SHA1 verification failed: {0}")]
13 Sha1(#[from] lighty_loaders::utils::sha1::Sha1Error),
14
15 #[error("Loader not supported: {0}")]
16 UnsupportedLoader(String),
17
18 #[error("Invalid metadata: expected VersionBuilder")]
19 InvalidMetadata,
20
21 #[error("Missing required field: {0}")]
22 MissingField(String),
23
24 #[error("Download failed: {0}")]
25 DownloadFailed(String),
26
27 #[error("Zip error: {0}")]
28 Zip(#[from] zip::result::ZipError),
29}
30
31pub type InstallerResult<T> = std::result::Result<T, InstallerError>;