diff options
author | Jack Moffitt <jack@metajack.im> | 2014-08-28 09:34:23 -0600 |
---|---|---|
committer | Jack Moffitt <jack@metajack.im> | 2014-09-08 20:21:42 -0600 |
commit | c6ab60dbfc6da7b4f800c9e40893c8b58413960c (patch) | |
tree | d1d74076cf7fa20e4f77ec7cb82cae98b67362cb /src/components/script/dom/nodelist.rs | |
parent | db2f642c32fc5bed445bb6f2e45b0f6f0b4342cf (diff) | |
download | servo-c6ab60dbfc6da7b4f800c9e40893c8b58413960c.tar.gz servo-c6ab60dbfc6da7b4f800c9e40893c8b58413960c.zip |
Cargoify servo
Diffstat (limited to 'src/components/script/dom/nodelist.rs')
-rw-r--r-- | src/components/script/dom/nodelist.rs | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/src/components/script/dom/nodelist.rs b/src/components/script/dom/nodelist.rs deleted file mode 100644 index 424eb09416c..00000000000 --- a/src/components/script/dom/nodelist.rs +++ /dev/null @@ -1,82 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -use dom::bindings::codegen::Bindings::NodeListBinding; -use dom::bindings::codegen::Bindings::NodeListBinding::NodeListMethods; -use dom::bindings::global::Window; -use dom::bindings::js::{JS, JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; -use dom::node::{Node, NodeHelpers}; -use dom::window::Window; - -#[deriving(Encodable)] -pub enum NodeListType { - Simple(Vec<JS<Node>>), - Children(JS<Node>) -} - -#[deriving(Encodable)] -pub struct NodeList { - list_type: NodeListType, - reflector_: Reflector, -} - -impl NodeList { - pub fn new_inherited(list_type: NodeListType) -> NodeList { - NodeList { - list_type: list_type, - reflector_: Reflector::new(), - } - } - - pub fn new(window: &JSRef<Window>, - list_type: NodeListType) -> Temporary<NodeList> { - reflect_dom_object(box NodeList::new_inherited(list_type), - &Window(*window), NodeListBinding::Wrap) - } - - pub fn new_simple_list(window: &JSRef<Window>, elements: Vec<JSRef<Node>>) -> Temporary<NodeList> { - NodeList::new(window, Simple(elements.iter().map(|element| JS::from_rooted(element)).collect())) - } - - pub fn new_child_list(window: &JSRef<Window>, node: &JSRef<Node>) -> Temporary<NodeList> { - NodeList::new(window, Children(JS::from_rooted(node))) - } -} - -impl<'a> NodeListMethods for JSRef<'a, NodeList> { - fn Length(&self) -> u32 { - match self.list_type { - Simple(ref elems) => elems.len() as u32, - Children(ref node) => { - let node = node.root(); - node.deref().children().count() as u32 - } - } - } - - fn Item(&self, index: u32) -> Option<Temporary<Node>> { - match self.list_type { - _ if index >= self.Length() => None, - Simple(ref elems) => Some(Temporary::new(elems[index as uint].clone())), - Children(ref node) => { - let node = node.root(); - node.deref().children().nth(index as uint) - .map(|child| Temporary::from_rooted(&child)) - } - } - } - - fn IndexedGetter(&self, index: u32, found: &mut bool) -> Option<Temporary<Node>> { - let item = self.Item(index); - *found = item.is_some(); - item - } -} - -impl Reflectable for NodeList { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} |