diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-07-14 05:36:34 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-07-14 05:36:34 +0800 |
| commit | 93a1df3569fd5737089bd14f446fd7f91daeaa74 (patch) | |
| tree | 3f4eaa2874011d10f3092c730514b09b2f4dbf6b | |
| parent | 556e6f8f654df9b845473b56fd03088d4abd7fca (diff) | |
feat(picker): add IntoPicker impl for &[String] and &T deref to
Vec<String>
| -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), + } + } +} |
