rvm/
errors.rs

1use semver::Version;
2use thiserror::Error as DeriveError;
3
4/// Errors that can occur when using Resolc version manager
5#[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}