Source code

Revision control

Copy as Markdown

Other Tools

//! Contains low-level parsers of different XML pieces.↩
use crate::errors::SyntaxError;↩
mod element;↩
mod pi;↩
pub use element::ElementParser;↩
pub use pi::PiParser;↩
/// Used to decouple reading of data from data source and parsing XML structure from it.↩
/// This is a state preserved between getting chunks of bytes from the reader.↩
///↩
/// This trait is implemented for every parser that processes piece of XML grammar.↩
pub trait Parser {↩
/// Process new data and try to determine end of the parsed thing.↩
///↩
/// Returns position of the end of thing in `bytes` in case of successful search↩
/// and `None` otherwise.↩
///↩
/// # Parameters↩
/// - `bytes`: a slice to find the end of a thing.↩
/// Should contain text in ASCII-compatible encoding↩
fn feed(&mut self, bytes: &[u8]) -> Option<usize>;↩
/// Returns parse error produced by this parser in case of reaching end of↩
/// input without finding the end of a parsed thing.↩
fn eof_error() -> SyntaxError;↩
}↩