use super::Element;
#[derive(Clone, Debug)]
pub struct ElementList {
pub(crate) elements: Vec<Element>,
}
impl ElementList {
pub fn iter(&self) -> impl Iterator<Item = &Element> {
self.elements.iter()
}
pub fn first(&self) -> Option<&Element> {
self.elements.first()
}
pub fn len(&self) -> usize {
self.elements.len()
}
pub fn is_empty(&self) -> bool {
self.elements.is_empty()
}
pub fn re(&self, pattern: &str) -> Vec<String> {
self.elements.iter().flat_map(|el| el.re(pattern)).collect()
}
pub fn re_first(&self, pattern: &str) -> Option<String> {
self.elements.iter().find_map(|el| el.re_first(pattern))
}
}