revive_solc_json_interface/standard_json/input/settings/selection/file/flag.rs
1//! The `solc --standard-json` expected output selection flag.
2
3use serde::Deserialize;
4use serde::Serialize;
5
6/// The `solc --standard-json` expected output selection flag.
7#[derive(Debug, Serialize, Deserialize, Clone, Copy, PartialEq, Eq, Hash)]
8pub enum Flag {
9 /// The ABI JSON.
10 #[serde(rename = "abi")]
11 ABI,
12 /// The metadata.
13 #[serde(rename = "metadata")]
14 Metadata,
15 /// The developer documentation.
16 #[serde(rename = "devdoc")]
17 Devdoc,
18 /// The user documentation.
19 #[serde(rename = "userdoc")]
20 Userdoc,
21 /// The function signature hashes JSON.
22 #[serde(rename = "evm.methodIdentifiers")]
23 MethodIdentifiers,
24 /// The storage layout.
25 #[serde(rename = "storageLayout")]
26 StorageLayout,
27 /// The AST JSON.
28 #[serde(rename = "ast")]
29 AST,
30 /// The Yul IR.
31 #[serde(rename = "irOptimized")]
32 Yul,
33 /// The EVM bytecode.
34 #[serde(rename = "evm")]
35 EVM,
36 /// The EVM legacy assembly JSON.
37 #[serde(rename = "evm.legacyAssembly")]
38 EVMLA,
39 #[serde(rename = "evm.bytecode")]
40 EVMBC,
41 #[serde(rename = "evm.deployedBytecode")]
42 EVMDBC,
43 /// The assembly code
44 #[serde(rename = "evm.assembly")]
45 Assembly,
46 /// The Ir
47 #[serde(rename = "ir")]
48 Ir,
49}
50
51//impl std::fmt::Display for Flag {
52// fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
53// match self {
54// Self::ABI => write!(f, "abi"),
55// Self::Metadata => write!(f, "metadata"),
56// Self::Devdoc => write!(f, "devdoc"),
57// Self::Userdoc => write!(f, "userdoc"),
58// Self::MethodIdentifiers => write!(f, "evm.methodIdentifiers"),
59// Self::StorageLayout => write!(f, "storageLayout"),
60// Self::AST => write!(f, "ast"),
61// Self::Yul => write!(f, "irOptimized"),
62// Self::EVM => write!(f, "evm"),
63// Self::EVMLA => write!(f, "evm.legacyAssembly"),
64// Self::EVMBC => write!(f, "evm.bytecode"),
65// Self::EVMDBC => write!(f, "evm.deployedBytecode"),
66// Self::Assembly => write!(f, "evm.assembly"),
67// Self::Ir => write!(f, "ir"),
68// }
69// }
70//}