aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-08-10 16:08:51 +0800
committer魏曹先生 <1992414357@qq.com>2026-08-10 16:08:51 +0800
commitae2885c32f32d19c1becce0118ce51052b55f4a7 (patch)
tree477213aafd2b927544d2fa3b875f1f1415926104
parenteebcdf6b163174ec1629d121264c0477652e3323 (diff)
refactor: replace boolean settings with mode enums
Update stdout and error output settings to use explicit `RenderOutput` and `ErrorOutput` enums, and replace the `confirm` boolean with distinct `ConfirmationMode`, `InteractionMode`, and `YesAssumption` fields for clearer control flow.
-rw-r--r--mingling/src/setups/basic.rs13
-rw-r--r--mingling/src/setups/picker/basic.rs20
2 files changed, 22 insertions, 11 deletions
diff --git a/mingling/src/setups/basic.rs b/mingling/src/setups/basic.rs
index c8f8ad8..5ed9d7a 100644
--- a/mingling/src/setups/basic.rs
+++ b/mingling/src/setups/basic.rs
@@ -1,6 +1,9 @@
#![allow(deprecated)]
-use mingling_core::{Flag, Program, ProgramCollect, setup::ProgramSetup};
+use mingling_core::{
+ ConfirmationMode, Flag, InteractionMode, Program, ProgramCollect, YesAssumption,
+ setup::ProgramSetup,
+};
/// Performs basic program initialization:
///
@@ -91,8 +94,8 @@ where
{
fn setup(self, program: &mut Program<C>) {
program.global_flag(self.flag, |p| {
- p.stdout_setting.render_output = false;
- p.stdout_setting.error_output = false;
+ p.stdout_setting.render_output = mingling_core::RenderOutput::Hide;
+ p.stdout_setting.error_output = mingling_core::ErrorOutput::Hide;
});
}
}
@@ -131,7 +134,9 @@ where
{
fn setup(self, program: &mut Program<C>) {
program.global_flag(self.flag, |p| {
- p.user_context.confirm = true;
+ p.user_context.confirmation = ConfirmationMode::Skip;
+ p.user_context.interaction = InteractionMode::NonInteractive;
+ p.user_context.yes_assumption = YesAssumption::AssumeYes;
});
}
}
diff --git a/mingling/src/setups/picker/basic.rs b/mingling/src/setups/picker/basic.rs
index 52bda3d..7f70eab 100644
--- a/mingling/src/setups/picker/basic.rs
+++ b/mingling/src/setups/picker/basic.rs
@@ -1,5 +1,8 @@
use arg_picker::{PickerArg, value::Flag};
-use mingling_core::{Program, ProgramCollect, setup::ProgramSetup};
+use mingling_core::{
+ ConfirmationMode, ErrorOutput, InteractionMode, Program, ProgramCollect, RenderOutput,
+ YesAssumption, setup::ProgramSetup,
+};
use crate::{
consts::{CONFIRM_FLAG, HELP_FLAG, QUIET_FLAG},
@@ -75,9 +78,10 @@ where
C: ProgramCollect<Enum = C>,
{
fn setup(self, program: &mut Program<C>) {
- let help = program.pick_flag(self.flag);
- if help {
- program.stdout_setting.quiet = true;
+ let quiet = program.pick_flag(self.flag);
+ if quiet {
+ program.stdout_setting.render_output = RenderOutput::Hide;
+ program.stdout_setting.error_output = ErrorOutput::Hide;
}
}
}
@@ -107,9 +111,11 @@ where
C: ProgramCollect<Enum = C>,
{
fn setup(self, program: &mut Program<C>) {
- let help = program.pick_flag(self.flag);
- if help {
- program.user_context.confirm = true;
+ let confirm = program.pick_flag(self.flag);
+ if confirm {
+ program.user_context.confirmation = ConfirmationMode::Skip;
+ program.user_context.interaction = InteractionMode::NonInteractive;
+ program.user_context.yes_assumption = YesAssumption::AssumeYes;
}
}
}