diff options
Diffstat (limited to 'examples/noop-tree-builder.rs')
-rw-r--r-- | examples/noop-tree-builder.rs | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/examples/noop-tree-builder.rs b/examples/noop-tree-builder.rs deleted file mode 100644 index 0775449..0000000 --- a/examples/noop-tree-builder.rs +++ /dev/null @@ -1,112 +0,0 @@ -// Copyright 2014-2017 The html5ever Project Developers. See the -// COPYRIGHT file at the top-level directory of this distribution. -// -// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or -// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license -// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -#[macro_use] -extern crate html5ever; - -use std::borrow::Cow; -use std::collections::HashMap; -use std::default::Default; -use std::io; - -use html5ever::parse_document; -use html5ever::tendril::*; -use html5ever::tree_builder::{ElementFlags, NodeOrText, QuirksMode, TreeSink}; -use html5ever::{Attribute, ExpandedName, QualName}; - -struct Sink { - next_id: usize, - names: HashMap<usize, QualName>, -} - -impl Sink { - fn get_id(&mut self) -> usize { - let id = self.next_id; - self.next_id += 2; - id - } -} - -impl TreeSink for Sink { - type Handle = usize; - type Output = Self; - fn finish(self) -> Self { - self - } - - fn get_document(&mut self) -> usize { - 0 - } - - fn get_template_contents(&mut self, target: &usize) -> usize { - if let Some(expanded_name!(html "template")) = self.names.get(&target).map(|n| n.expanded()) - { - target + 1 - } else { - panic!("not a template element") - } - } - - fn same_node(&self, x: &usize, y: &usize) -> bool { - x == y - } - - fn elem_name(&self, target: &usize) -> ExpandedName { - self.names.get(target).expect("not an element").expanded() - } - - fn create_element(&mut self, name: QualName, _: Vec<Attribute>, _: ElementFlags) -> usize { - let id = self.get_id(); - self.names.insert(id, name); - id - } - - fn create_comment(&mut self, _text: StrTendril) -> usize { - self.get_id() - } - - #[allow(unused_variables)] - fn create_pi(&mut self, target: StrTendril, value: StrTendril) -> usize { - unimplemented!() - } - - fn append_before_sibling(&mut self, _sibling: &usize, _new_node: NodeOrText<usize>) {} - - fn append_based_on_parent_node( - &mut self, - _element: &usize, - _prev_element: &usize, - _new_node: NodeOrText<usize>, - ) { - } - - fn parse_error(&mut self, _msg: Cow<'static, str>) {} - fn set_quirks_mode(&mut self, _mode: QuirksMode) {} - fn append(&mut self, _parent: &usize, _child: NodeOrText<usize>) {} - - fn append_doctype_to_document(&mut self, _: StrTendril, _: StrTendril, _: StrTendril) {} - fn add_attrs_if_missing(&mut self, target: &usize, _attrs: Vec<Attribute>) { - assert!(self.names.contains_key(&target), "not an element"); - } - fn remove_from_parent(&mut self, _target: &usize) {} - fn reparent_children(&mut self, _node: &usize, _new_parent: &usize) {} - fn mark_script_already_started(&mut self, _node: &usize) {} -} - -fn main() { - let sink = Sink { - next_id: 1, - names: HashMap::new(), - }; - let stdin = io::stdin(); - parse_document(sink, Default::default()) - .from_utf8() - .read_from(&mut stdin.lock()) - .unwrap(); -} |