diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-08-10 15:49:31 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-08-10 15:49:31 +0800 |
| commit | a9d5943939261e27e58bcf5cacbb618a0f63e999 (patch) | |
| tree | d1cacc2af939e993f2d7d2794500e6456659e6a9 /mingling_core/src/program/once_exec.rs | |
| parent | 782d2458dc4ad4336e1407e1f107e43e39b0b991 (diff) | |
refactor(core): improve code style and public API clarity
Replace bool-based settings with enums, refine visibility and
signatures, and standardize `Self` usage across the crate.
- Introduce `ErrorOutput`, `RenderOutput`, `PanicSilence`, `Verbosity`,
`ColorOutput`, and `ProgressOutput` enums for clearer configuration
semantics
- Make `GlobalResources`, `ProgramCell`, and
`split_input`/`split_input_string` public
- Change hook info parameters to accept references and
`split_input_string` to take `&str`
- Apply `Self` shorthand throughout implementations and add
`#[must_use]` attributes where appropriate
- Enable strict clippy lints with targeted allowances
Diffstat (limited to 'mingling_core/src/program/once_exec.rs')
| -rw-r--r-- | mingling_core/src/program/once_exec.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/mingling_core/src/program/once_exec.rs b/mingling_core/src/program/once_exec.rs index 96723fd..18e06ef 100644 --- a/mingling_core/src/program/once_exec.rs +++ b/mingling_core/src/program/once_exec.rs @@ -21,7 +21,7 @@ where C: 'static + Send + Sync, { // Run hooks - self.run_hook_on_begin(crate::hook::HookBeginInfo {}); + self.run_hook_on_begin(&crate::hook::HookBeginInfo {}); self.args = self.args.iter().skip(1).cloned().collect(); @@ -43,11 +43,11 @@ where let program = THIS_PROGRAM .get_raw() .unwrap() - .downcast_ref::<Program<C>>() + .downcast_ref::<Self>() .unwrap(); #[cfg(not(feature = "async"))] - program.run_hook_exec_panic(crate::hook::HookPanicInfo { + program.run_hook_exec_panic(&crate::hook::HookPanicInfo { panic: &panic_payload, }); @@ -98,7 +98,7 @@ where // Read exit code // Render result - if stdout_setting.render_output { + if stdout_setting.render_output == crate::RenderOutput::Show { result.std_print(); } @@ -152,17 +152,17 @@ where pub(crate) fn exec_wrapper<F, R>(self, f: F) -> R where C: 'static + Send + Sync, - F: FnOnce(&'static Program<C>) -> R + Send + Sync, + F: FnOnce(&'static Self) -> R + Send + Sync, { THIS_PROGRAM.set(Box::new(self)); let program = THIS_PROGRAM .get_raw() .unwrap() - .downcast_ref::<Program<C>>() + .downcast_ref::<Self>() .unwrap(); #[cfg(not(panic = "abort"))] - if program.stdout_setting.silence_panic { + if program.stdout_setting.silence_panic == super::PanicSilence::Silence { std::panic::set_hook(Box::new(|_| {})); } |
