free_launch/
selected_items.rs1use crate::selectable::SelectableItem;
2
3#[derive(Debug)]
4pub struct SelectedItems<'a, T> {
5 items: Vec<&'a SelectableItem<T>>,
6}
7
8impl<'a, T> SelectedItems<'a, T> {
9 pub fn from_refs(items: Vec<&'a SelectableItem<T>>) -> Self {
10 Self { items }
11 }
12
13 pub fn existing_values(&self) -> Vec<&T> {
15 self.items.iter().filter_map(|item| item.value()).collect()
16 }
17
18 pub fn requested_values(&self) -> Vec<&str> {
20 self.items
21 .iter()
22 .filter_map(|item| item.requested_value().map(|s| s.as_str()))
23 .collect()
24 }
25}