aboutsummaryrefslogtreecommitdiff
path: root/examples/noop-tree-builder.rs
diff options
context:
space:
mode:
Diffstat (limited to 'examples/noop-tree-builder.rs')
-rw-r--r--examples/noop-tree-builder.rs112
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();
-}