swc_xml_parser/parser/open_elements_stack.rs
1use crate::parser::RcNode;
2
3pub struct OpenElementsStack {
4 pub items: Vec<RcNode>,
5}
6
7impl OpenElementsStack {
8 pub fn new() -> Self {
9 OpenElementsStack {
10 items: Vec::with_capacity(16),
11 }
12 }
13
14 pub fn pop_until_tag_name_popped(&mut self, tag_name: &[&str]) -> Option<RcNode> {
15 while let Some(node) = self.items.pop() {
16 if tag_name.contains(&get_tag_name!(node)) {
17 return Some(node);
18 }
19 }
20
21 None
22 }
23}