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)); +    } +} | 
