aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Fischer <martin@push-f.com>2023-08-13 19:35:43 +0200
committerMartin Fischer <martin@push-f.com>2023-08-19 06:39:08 +0200
commit9892c726fb212a1af36737d5741ff8421ff20829 (patch)
tree736f26042b91bfa5a76fd7481a65e9b7063512f2
parentb48e5c3b99fd537d223cb899e8675177d77e650c (diff)
break!: remove set_last_start_tag from Emitter
-rw-r--r--integration_tests/tests/test_html5lib.rs4
-rw-r--r--src/emitter.rs16
-rw-r--r--src/tokenizer.rs18
3 files changed, 18 insertions, 20 deletions
diff --git a/integration_tests/tests/test_html5lib.rs b/integration_tests/tests/test_html5lib.rs
index cf95bb6..8afa033 100644
--- a/integration_tests/tests/test_html5lib.rs
+++ b/integration_tests/tests/test_html5lib.rs
@@ -315,7 +315,9 @@ fn run_test_inner<R: Reader>(
);
println!("description: {}", test.description);
tokenizer.set_internal_state(state);
- tokenizer.set_last_start_tag(test.last_start_tag.as_ref().map(String::as_str));
+ if let Some(last_start_tag) = &test.last_start_tag {
+ tokenizer.set_last_start_tag(last_start_tag);
+ }
let mut actual_tokens = Vec::new();
let mut actual_errors = Vec::new();
diff --git a/src/emitter.rs b/src/emitter.rs
index e872b1f..fba1f6a 100644
--- a/src/emitter.rs
+++ b/src/emitter.rs
@@ -36,12 +36,6 @@ pub trait Emitter<R> {
/// yields when used as an iterator.
type Token;
- /// Set the name of the _last start tag_.
- ///
- /// This is primarily for testing purposes. This is *not* supposed to override the tag name of
- /// the current tag.
- fn set_last_start_tag(&mut self, last_start_tag: Option<&str>);
-
/// The state machine has reached the end of the file. It will soon call `pop_token` for the
/// last time.
fn emit_eof(&mut self);
@@ -252,16 +246,16 @@ impl<R, S: Span<R>> DefaultEmitter<R, S> {
// that exact
self.emitted_tokens.push_front(Token::Error { error, span });
}
-}
-
-impl<R, S: Span<R>> Emitter<R> for DefaultEmitter<R, S> {
- type Token = Token<S>;
- fn set_last_start_tag(&mut self, last_start_tag: Option<&str>) {
+ pub(crate) fn set_last_start_tag(&mut self, last_start_tag: Option<&str>) {
self.last_start_tag.clear();
self.last_start_tag
.push_str(last_start_tag.unwrap_or_default());
}
+}
+
+impl<R, S: Span<R>> Emitter<R> for DefaultEmitter<R, S> {
+ type Token = Token<S>;
fn emit_eof(&mut self) {
self.flush_current_characters();
diff --git a/src/tokenizer.rs b/src/tokenizer.rs
index 6e928e9..44793a5 100644
--- a/src/tokenizer.rs
+++ b/src/tokenizer.rs
@@ -128,14 +128,6 @@ impl<R: Reader, E: Emitter<R>> Tokenizer<R, E> {
self.emitter.emit_error(error, &self.reader);
}
- /// Test-internal function to override internal state.
- ///
- /// Only available with the `integration-tests` feature which is not public API.
- #[cfg(feature = "integration-tests")]
- pub fn set_last_start_tag(&mut self, last_start_tag: Option<&str>) {
- self.emitter.set_last_start_tag(last_start_tag);
- }
-
#[inline]
pub(crate) fn unread_char(&mut self, c: Option<char>) {
self.to_reconsume.push(c);
@@ -306,3 +298,13 @@ impl<R: Reader<Error = Never>, E: Emitter<R>> DerefMut for InfallibleTokenizer<R
&mut self.0
}
}
+
+impl<S: crate::spans::Span<R>, R: Reader> Tokenizer<R, DefaultEmitter<R, S>> {
+ /// Test-internal function to override internal state.
+ ///
+ /// Only available with the `integration-tests` feature which is not public API.
+ #[cfg(feature = "integration-tests")]
+ pub fn set_last_start_tag(&mut self, last_start_tag: &str) {
+ self.emitter.set_last_start_tag(Some(last_start_tag));
+ }
+}