diff --git a/src/prompts/fuzzy_select.rs b/src/prompts/fuzzy_select.rs index 37a1ee5d..a35c4929 100644 --- a/src/prompts/fuzzy_select.rs +++ b/src/prompts/fuzzy_select.rs @@ -79,7 +79,11 @@ impl FuzzySelect<'_> { } /// Adds multiple items to the fuzzy selector. - pub fn items(&mut self, items: &[T]) -> &mut Self { + pub fn items(&mut self, items: T) -> &mut Self + where + T: IntoIterator, + T::Item: ToString, + { for item in items { self.items.push(item.to_string()); } diff --git a/src/prompts/multi_select.rs b/src/prompts/multi_select.rs index eed55a13..8f426a2a 100644 --- a/src/prompts/multi_select.rs +++ b/src/prompts/multi_select.rs @@ -91,7 +91,11 @@ impl MultiSelect<'_> { } /// Adds multiple items to the selector. - pub fn items(&mut self, items: &[T]) -> &mut Self { + pub fn items(&mut self, items: T) -> &mut Self + where + T: IntoIterator, + T::Item: ToString, + { for item in items { self.items.push(item.to_string()); self.defaults.push(false); @@ -100,8 +104,12 @@ impl MultiSelect<'_> { } /// Adds multiple items to the selector with checked state - pub fn items_checked(&mut self, items: &[(T, bool)]) -> &mut Self { - for &(ref item, checked) in items { + pub fn items_checked(&mut self, items: T) -> &mut Self + where + T: IntoIterator, + I: ToString, + { + for (item, checked) in items { self.items.push(item.to_string()); self.defaults.push(checked); } diff --git a/src/prompts/select.rs b/src/prompts/select.rs index 5e4335fc..2f48adf8 100644 --- a/src/prompts/select.rs +++ b/src/prompts/select.rs @@ -123,7 +123,11 @@ impl Select<'_> { /// Ok(()) /// } /// ``` - pub fn items(&mut self, items: &[T]) -> &mut Self { + pub fn items(&mut self, items: T) -> &mut Self + where + T: IntoIterator, + T::Item: ToString, + { for item in items { self.items.push(item.to_string()); } diff --git a/src/prompts/sort.rs b/src/prompts/sort.rs index 03152bf4..49f8db76 100644 --- a/src/prompts/sort.rs +++ b/src/prompts/sort.rs @@ -74,7 +74,11 @@ impl Sort<'_> { } /// Adds multiple items to the selector. - pub fn items(&mut self, items: &[T]) -> &mut Self { + pub fn items(&mut self, items: T) -> &mut Self + where + T: IntoIterator, + T::Item: ToString, + { for item in items { self.items.push(item.to_string()); }