diff options
| -rw-r--r-- | mingling_picker/src/picker.rs | 23 |
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), + } + } +} |
