unidok_parser/html/
cdata.rs

1use unidok_repr::ast::html::CDataSectionAst;
2
3use crate::utils::Until;
4use crate::Parse;
5
6pub(crate) struct ParseCDataSection;
7
8impl Parse for ParseCDataSection {
9    type Output = CDataSectionAst;
10
11    fn parse(&mut self, input: &mut crate::input::Input) -> Option<Self::Output> {
12        let mut input = input.start();
13
14        input.parse("<![CDATA[")?;
15        let text = input.parse_i(Until("]]>"));
16        input.try_parse("]]>");
17
18        input.apply();
19        Some(CDataSectionAst { text })
20    }
21}