aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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),
+ }
+ }
+}