From 8b2bbdef88f47838ed0326f5c9cf86bac84babde Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Wed, 15 Jul 2026 19:31:23 +0800 Subject: feat(picker): add builtin bool pickable and parselib matcher framework Add `Pickable` implementation for `bool` and the supporting `Matcher` trait with utility functions for argument matching. Expose `pickable_needed` and `matcher_needed` modules for downstream trait implementors. --- mingling_picker/src/builtin/pick_bool.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 mingling_picker/src/builtin/pick_bool.rs (limited to 'mingling_picker/src/builtin/pick_bool.rs') diff --git a/mingling_picker/src/builtin/pick_bool.rs b/mingling_picker/src/builtin/pick_bool.rs new file mode 100644 index 0000000..ad93a83 --- /dev/null +++ b/mingling_picker/src/builtin/pick_bool.rs @@ -0,0 +1,15 @@ +use crate::{parselib::Matcher, pickable_needed::*}; + +impl<'a> Pickable<'a> for bool { + fn get_attr(_: &'a PickerFlag<'a, Self>) -> PickerFlagAttr { + PickerFlagAttr::Flag + } + + fn tag(ctx: TagPhaseContext) -> Vec { + ::match_all(ctx.into()) + } + + fn pick(raw_strs: &[&str]) -> PickerArgResult { + PickerArgResult::Parsed(!raw_strs.is_empty()) + } +} -- cgit