From 0695ee9ca63cc3faa51378b35381d62f5a00b846 Mon Sep 17 00:00:00 2001 From: Martin Fischer Date: Sun, 10 Sep 2023 06:22:38 +0200 Subject: chore: move DefaultEmitter to own module --- src/default_emitter.rs | 427 +++++++++++++++++++++++++++++++++++++++++++++++++ src/emitter.rs | 424 +----------------------------------------------- src/lib.rs | 4 +- src/naive_parser.rs | 2 +- 4 files changed, 432 insertions(+), 425 deletions(-) create mode 100644 src/default_emitter.rs (limited to 'src') diff --git a/src/default_emitter.rs b/src/default_emitter.rs new file mode 100644 index 0000000..c957b20 --- /dev/null +++ b/src/default_emitter.rs @@ -0,0 +1,427 @@ +use std::collections::btree_map::Entry; +use std::collections::BTreeSet; +use std::collections::VecDeque; +use std::mem; +use std::ops::Range; + +use crate::offset::NoopOffset; +use crate::offset::Offset; +use crate::token::{AttrValueSyntax, Comment, Doctype, EndTag, StartTag, Token}; +use crate::Emitter; +use crate::Error; + +/// The default implementation of [`Emitter`], used to produce tokens. +/// +/// # Warning +/// +/// * Using the DefaultEmitter without calling [`Tokenizer::set_state`] +/// results in wrong state transitions: +/// +/// ``` +/// # use html5tokenizer::{DefaultEmitter, Event, Tokenizer, Token}; +/// let emitter = DefaultEmitter::default(); +/// let html = "