Refactor ServoParser Tokenizer to return TokenizerResult

This commit is contained in:
Nipun Garg 2020-01-27 23:46:37 +05:30 committed by Martin Robinson
parent 7aaad0aa7e
commit 41fe94244a
No known key found for this signature in database
GPG key ID: D56AA4FA55EFE6F8
4 changed files with 22 additions and 14 deletions

View file

@ -272,7 +272,8 @@ impl Tokenizer {
tokenizer
}
pub fn feed(&mut self, input: &mut BufferQueue) -> Result<(), DomRoot<HTMLScriptElement>> {
#[must_use]
pub fn feed(&mut self, input: &mut BufferQueue) -> TokenizerResult<DomRoot<HTMLScriptElement>> {
let mut send_tendrils = VecDeque::new();
while let Some(str) = input.pop_front() {
send_tendrils.push_back(SendTendril::from(str));
@ -296,7 +297,7 @@ impl Tokenizer {
ToTokenizerMsg::TokenizerResultDone { updated_input } => {
let buffer_queue = create_buffer_queue(updated_input);
*input = buffer_queue;
return Ok(());
return TokenizerResult::Done;
},
ToTokenizerMsg::TokenizerResultScript {
script,
@ -305,7 +306,7 @@ impl Tokenizer {
let buffer_queue = create_buffer_queue(updated_input);
*input = buffer_queue;
let script = self.get_node(&script.id);
return Err(DomRoot::from_ref(script.downcast().unwrap()));
return TokenizerResult::Script(DomRoot::from_ref(script.downcast().unwrap()));
},
ToTokenizerMsg::End => unreachable!(),
};