aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-07-14 05:36:34 +0800
committer魏曹先生 <1992414357@qq.com>2026-07-14 05:36:34 +0800
commit93a1df3569fd5737089bd14f446fd7f91daeaa74 (patch)
tree3f4eaa2874011d10f3092c730514b09b2f4dbf6b
parent556e6f8f654df9b845473b56fd03088d4abd7fca (diff)
feat(picker): add IntoPicker impl for &[String] and &T deref to
Vec<String>
-rw-r--r--mingling_picker/src/picker.rs23
1 files changed, 22 insertions, 1 deletions
diff --git a/mingling_picker/src/picker.rs b/mingling_picker/src/picker.rs
index 914d8b2..f5c2bd0 100644
--- a/mingling_picker/src/picker.rs
+++ b/mingling_picker/src/picker.rs
@@ -1,4 +1,4 @@
-use std::ops::Index;
+use std::ops::{Deref, Index};
mod patterns;
pub use patterns::*;
@@ -250,6 +250,15 @@ impl<'a> IntoPicker<'a> for &'a [&'a str] {
}
}
+impl<'a> IntoPicker<'a> for &'a [String] {
+ fn to_picker(self) -> Picker<'a> {
+ let vec: Vec<&str> = self.iter().map(|s| s.as_str()).collect();
+ Picker {
+ args: PickerArgs::Vec(vec),
+ }
+ }
+}
+
impl<'a> IntoPicker<'a> for Vec<&'a str> {
fn to_picker(self) -> Picker<'a> {
Picker {
@@ -265,3 +274,15 @@ impl<'a> IntoPicker<'a> for Vec<String> {
}
}
}
+
+impl<'a, T> IntoPicker<'a> for &'a T
+where
+ T: Deref<Target = Vec<String>>,
+{
+ fn to_picker(self) -> Picker<'a> {
+ let vec: Vec<&str> = self.iter().map(|s| s.as_str()).collect();
+ Picker {
+ args: PickerArgs::Vec(vec),
+ }
+ }
+}