aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Fischer <martin@push-f.com>2023-08-19 13:17:30 +0200
committerMartin Fischer <martin@push-f.com>2023-08-19 13:41:55 +0200
commitb125bec9914bd211d77719bd60bc5a23bd9db579 (patch)
treed2ece716fa61c44df3361aa13cad9ae2685162b0 /src
parent7d59ed3a401284299c8139e1c08d8cd6fe29fd15 (diff)
break!: remove DefaultEmitter from public API
Diffstat (limited to 'src')
-rw-r--r--src/emitter.rs10
-rw-r--r--src/lib.rs5
2 files changed, 9 insertions, 6 deletions
diff --git a/src/emitter.rs b/src/emitter.rs
index 30e1d17..0985403 100644
--- a/src/emitter.rs
+++ b/src/emitter.rs
@@ -165,14 +165,13 @@ pub trait Emitter<O> {
fn adjusted_current_node_present_and_not_in_html_namespace(&mut self) -> bool;
}
-/// The default implementation of [`Emitter`], used to produce tokens.
-///
-/// # Warning
+/// The DefaultEmitter is not exposed in the public API because:
///
/// * Using the DefaultEmitter without calling [`Tokenizer::set_state`]
/// results in wrong state transitions:
///
-/// ```
+#[cfg_attr(not(feature = "integration-tests"), doc = "```ignore")]
+#[cfg_attr(feature = "integration-tests", doc = "```")]
/// # use html5tokenizer::{DefaultEmitter, Tokenizer, Token};
/// let emitter = DefaultEmitter::default();
/// let html = "<script><b>";
@@ -184,7 +183,8 @@ pub trait Emitter<O> {
/// * The DefaultEmitter implements [`Emitter::adjusted_current_node_present_and_not_in_html_namespace`]
/// by returning false, which results in all CDATA sections being tokenized as bogus comments.
///
-/// ```
+#[cfg_attr(not(feature = "integration-tests"), doc = "```ignore")]
+#[cfg_attr(feature = "integration-tests", doc = "```")]
/// # use html5tokenizer::{DefaultEmitter, Tokenizer, Token};
/// let emitter = DefaultEmitter::default();
/// let html = "<svg><![CDATA[I love SVG]]>";
diff --git a/src/lib.rs b/src/lib.rs
index dc012cd..c14613b 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -14,13 +14,16 @@ pub mod reader;
mod tokenizer;
mod utils;
-pub use emitter::{Comment, DefaultEmitter, Doctype, Emitter, EndTag, StartTag, Token};
+pub use emitter::{Comment, Doctype, Emitter, EndTag, StartTag, Token};
pub use error::Error;
pub use tokenizer::{State, Tokenizer};
#[cfg(feature = "integration-tests")]
pub use utils::State as InternalState;
+#[cfg(feature = "integration-tests")]
+pub use emitter::DefaultEmitter;
+
/// Relative links in the README.md don't work in rustdoc, so we have to override them.
macro_rules! file_url {
($path:literal) => {