diff options
author | Martin Fischer <martin@push-f.com> | 2023-08-13 19:35:43 +0200 |
---|---|---|
committer | Martin Fischer <martin@push-f.com> | 2023-08-19 06:39:08 +0200 |
commit | 9892c726fb212a1af36737d5741ff8421ff20829 (patch) | |
tree | 736f26042b91bfa5a76fd7481a65e9b7063512f2 | |
parent | b48e5c3b99fd537d223cb899e8675177d77e650c (diff) |
break!: remove set_last_start_tag from Emitter
-rw-r--r-- | integration_tests/tests/test_html5lib.rs | 4 | ||||
-rw-r--r-- | src/emitter.rs | 16 | ||||
-rw-r--r-- | src/tokenizer.rs | 18 |
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)); + } +} |