From 93a1df3569fd5737089bd14f446fd7f91daeaa74 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Tue, 14 Jul 2026 05:36:34 +0800 Subject: feat(picker): add IntoPicker impl for &[String] and &T deref to Vec --- mingling_picker/src/picker.rs | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) 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 { } } } + +impl<'a, T> IntoPicker<'a> for &'a T +where + T: Deref>, +{ + fn to_picker(self) -> Picker<'a> { + let vec: Vec<&str> = self.iter().map(|s| s.as_str()).collect(); + Picker { + args: PickerArgs::Vec(vec), + } + } +} -- cgit