revive_solc_json_interface/standard_json/input/settings/
metadata_hash.rs

1//! The metadata hash mode.
2
3use std::str::FromStr;
4
5use serde::Deserialize;
6use serde::Serialize;
7
8/// The metadata hash mode.
9#[derive(Debug, Serialize, Deserialize, Clone, Copy, PartialEq, Eq, Hash)]
10pub enum MetadataHash {
11    /// Do not include bytecode hash.
12    #[serde(rename = "none")]
13    None,
14    /// The default keccak256 hash.
15    #[serde(rename = "keccak256")]
16    Keccak256,
17}
18
19impl FromStr for MetadataHash {
20    type Err = anyhow::Error;
21
22    fn from_str(string: &str) -> Result<Self, Self::Err> {
23        match string {
24            "none" => Ok(Self::None),
25            "keccak256" => Ok(Self::Keccak256),
26            _ => anyhow::bail!("Unknown bytecode hash mode: `{}`", string),
27        }
28    }
29}