revive_solc_json_interface/standard_json/input/settings/optimizer/
mod.rs1pub mod details;
4pub mod yul_details;
5
6use serde::Deserialize;
7use serde::Serialize;
8
9use self::details::Details;
10
11#[derive(Clone, Debug, Serialize, Deserialize)]
13#[serde(rename_all = "camelCase")]
14pub struct Optimizer {
15 pub enabled: bool,
17 #[serde(default = "Optimizer::default_mode", skip_serializing)]
19 pub mode: char,
20 #[serde(default)]
22 pub details: Details,
23}
24
25impl Optimizer {
26 pub fn new(enabled: bool, mode: char, details: Details) -> Self {
28 Self {
29 enabled,
30 mode,
31 details,
32 }
33 }
34
35 pub fn default_mode() -> char {
37 'z'
38 }
39}
40
41impl Default for Optimizer {
42 fn default() -> Self {
43 Self::new(true, Self::default_mode(), Details::default())
44 }
45}