aboutsummaryrefslogtreecommitdiff
path: root/mingling_picker/src/builtin
diff options
context:
space:
mode:
Diffstat (limited to 'mingling_picker/src/builtin')
-rw-r--r--mingling_picker/src/builtin/pick_bool.rs15
1 files changed, 15 insertions, 0 deletions
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<usize> {
+ <bool as Matcher>::match_all(ctx.into())
+ }
+
+ fn pick(raw_strs: &[&str]) -> PickerArgResult<Self> {
+ PickerArgResult::Parsed(!raw_strs.is_empty())
+ }
+}