minify_html/parse/bang.rs
1use crate::ast::NodeData;
2use crate::parse::Code;
3use memchr::memchr;
4
5pub fn parse_bang(code: &mut Code) -> NodeData {
6 debug_assert!(code.as_slice().starts_with(b"<!"));
7 code.shift(2);
8 let (len, matched) = match memchr(b'>', code.as_slice()) {
9 Some(m) => (m, 1),
10 None => (code.rem(), 0),
11 };
12 let data = code.copy_and_shift(len);
13 // It might be EOF.
14 code.shift(matched);
15 NodeData::Bang {
16 code: data,
17 ended: matched > 0,
18 }
19}