use crate::selectable::SelectableItem;
#[derive(Debug)]
pub struct SelectedItems<'a, T> {
items: Vec<&'a SelectableItem<T>>,
}
impl<'a, T> SelectedItems<'a, T> {
pub fn from_refs(items: Vec<&'a SelectableItem<T>>) -> Self {
Self { items }
}
pub fn existing_values(&self) -> Vec<&T> {
self.items.iter().filter_map(|item| item.value()).collect()
}
pub fn requested_values(&self) -> Vec<&str> {
self.items
.iter()
.filter_map(|item| item.requested_value().map(|s| s.as_str()))
.collect()
}
}