xml/reader/parser/
inside_comment.rs
1use reader::events::XmlEvent;
2use reader::lexer::Token;
3
4use super::{Result, PullParser, State};
5
6impl PullParser {
7 pub fn inside_comment(&mut self, t: Token) -> Option<Result> {
8 match t {
9 Token::Chunk(ref s) if &s[..] == "--" => Some(self_error!(self; "Unexpected token inside a comment: --")),
11
12 Token::CommentEnd if self.config.ignore_comments => {
13 self.lexer.outside_comment();
14 self.into_state_continue(State::OutsideTag)
15 }
16
17 Token::CommentEnd => {
18 self.lexer.outside_comment();
19 let data = self.take_buf();
20 self.into_state_emit(State::OutsideTag, Ok(XmlEvent::Comment(data)))
21 }
22
23 _ if self.config.ignore_comments => None, _ => {
26 t.push_to_string(&mut self.buf);
27 None
28 }
29 }
30 }
31
32}