From 3acf9cbdf292bf7724a9d208b887dc8dabf3e689 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Thu, 16 Jul 2026 01:13:09 +0800 Subject: feat(picker): return NotFound for unmatched boolean flags --- mingling_picker/src/builtin/pick_bool.rs | 8 +++++++- mingling_picker/src/parselib.rs | 4 +++- 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'mingling_picker/src') diff --git a/mingling_picker/src/builtin/pick_bool.rs b/mingling_picker/src/builtin/pick_bool.rs index ad93a83..65efe47 100644 --- a/mingling_picker/src/builtin/pick_bool.rs +++ b/mingling_picker/src/builtin/pick_bool.rs @@ -10,6 +10,12 @@ impl<'a> Pickable<'a> for bool { } fn pick(raw_strs: &[&str]) -> PickerArgResult { - PickerArgResult::Parsed(!raw_strs.is_empty()) + if raw_strs.is_empty() { + // No matching flag found — signal NotFound so the fallback chain + // (default → route) gets a chance to run. + PickerArgResult::NotFound + } else { + PickerArgResult::Parsed(true) + } } } diff --git a/mingling_picker/src/parselib.rs b/mingling_picker/src/parselib.rs index 74c53d0..5950c9d 100644 --- a/mingling_picker/src/parselib.rs +++ b/mingling_picker/src/parselib.rs @@ -116,7 +116,9 @@ fn build_masked_args<'a>(args: &'a PickerArgs, mask: &'a [u8]) -> Vec