pub mod details;
pub mod yul_details;
use serde::Deserialize;
use serde::Serialize;
use self::details::Details;
#[derive(Clone, Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Optimizer {
pub enabled: bool,
#[serde(default = "Optimizer::default_mode", skip_serializing)]
pub mode: char,
#[serde(default)]
pub details: Details,
}
impl Optimizer {
pub fn new(enabled: bool, mode: char, details: Details) -> Self {
Self {
enabled,
mode,
details,
}
}
pub fn default_mode() -> char {
'z'
}
}
impl Default for Optimizer {
fn default() -> Self {
Self::new(true, Self::default_mode(), Details::default())
}
}