#[derive(Debug, Clone)] pub struct InputConfig { pub file: Option, pub cli_usings: Vec, } #[derive(Debug, Clone)] pub struct DebugConfig { pub debug_fuel: Option, pub dump_ast: bool, pub dump_mir: bool, pub verify_mir: bool, pub mir_verbose: bool, pub mir_verbose_effects: bool, pub cli_verbose: bool, } #[derive(Debug, Clone)] pub struct JitConfig { pub exec: bool, pub stats: bool, pub stats_json: bool, pub dump: bool, pub events: bool, pub events_compile: bool, pub events_runtime: bool, pub events_path: Option, pub threshold: Option, pub phi_min: bool, pub hostcall: bool, pub handle_debug: bool, pub native_f64: bool, pub native_bool: bool, pub only: bool, pub direct: bool, } #[derive(Debug, Clone)] pub struct BackendConfig { pub backend: String, pub vm_stats: bool, pub vm_stats_json: bool, pub jit: JitConfig, } #[derive(Debug, Clone)] pub struct BuildConfig { pub path: Option, pub app: Option, pub out: Option, pub aot: Option, pub profile: Option, pub target: Option, } #[derive(Debug, Clone)] pub struct EmitConfig { pub emit_cfg: Option, pub emit_mir_json: Option, pub program_json_to_mir: Option, pub emit_exe: Option, pub emit_exe_nyrt: Option, pub emit_exe_libs: Option, } #[derive(Debug, Clone)] pub struct ParserPipeConfig { pub parser_ny: bool, pub ny_parser_pipe: bool, pub json_file: Option, pub mir_json_file: Option, } #[derive(Debug, Clone)] pub struct CliGroups { pub input: InputConfig, pub debug: DebugConfig, pub backend: BackendConfig, pub build: BuildConfig, pub emit: EmitConfig, pub parser: ParserPipeConfig, pub gc_mode: Option, pub compile_wasm: bool, pub compile_native: bool, pub output_file: Option, pub benchmark: bool, pub iterations: u32, pub run_task: Option, pub load_ny_plugins: bool, }