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//}