1use semver::Version;
2use thiserror::Error as DeriveError;
3
4#[derive(DeriveError, Debug)]
6#[allow(missing_docs)]
7pub enum Error {
8 #[error("Default version of Resolc is not set")]
9 DefaultVersionNotSet,
10 #[error("Can't install new Resolc versions in offline mode")]
11 CantInstallOffline,
12 #[error("No versions are installed")]
13 NoVersionsInstalled,
14 #[error("Unknown version of Resolc v{}.", version)]
15 UnknownVersion { version: Version },
16 #[error("Version of Resolc v{} is not installed.", version)]
17 NotInstalled { version: Version },
18 #[error(
19 "Checksum validation error occured when checking binary. Expected: {expected}, got: {actual}"
20 )]
21 ChecksumValidationError { expected: String, actual: String },
22 #[error(
23 "Unsupported version of `solc` - v{} for Resolc v{}. Only versions \"{}\" is supported by this version of Resolc",
24 solc_version,
25 resolc_version,
26 supported_range
27 )]
28 SolcVersionNotSupported {
29 solc_version: Version,
30 resolc_version: Version,
31 supported_range: semver::VersionReq,
32 },
33 #[error("Unsupported platform {os}_{target}")]
34 PlatformNotSupported { os: String, target: String },
35 #[error(transparent)]
36 SemverError(#[from] semver::Error),
37 #[error(transparent)]
38 Serde(#[from] serde_json::Error),
39 #[error(transparent)]
40 ReqwestError(#[from] reqwest::Error),
41 #[error(transparent)]
42 UrlError(#[from] url::ParseError),
43 #[error(transparent)]
44 IoError(#[from] std::io::Error),
45 #[error(transparent)]
46 HexDecodign(#[from] hex::FromHexError),
47}