diff options
author | Bobby Holley <bobbyholley@gmail.com> | 2016-01-06 19:15:00 -0800 |
---|---|---|
committer | Bobby Holley <bobbyholley@gmail.com> | 2016-01-06 19:21:11 -0800 |
commit | 136c0938a25356578ac2e5d9ac66c477f7d579dd (patch) | |
tree | 2abf5d9c80b28236441dd667ef7bd2f2d8a09592 /components/style/sequential.rs | |
parent | 57d2a0b0dbbe0592f0295a217e08d9d6e2ffaac3 (diff) | |
download | servo-136c0938a25356578ac2e5d9ac66c477f7d579dd.tar.gz servo-136c0938a25356578ac2e5d9ac66c477f7d579dd.zip |
Hoist the style parts of sequential.rs into style/.
Diffstat (limited to 'components/style/sequential.rs')
-rw-r--r-- | components/style/sequential.rs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/components/style/sequential.rs b/components/style/sequential.rs new file mode 100644 index 00000000000..b98d6e45029 --- /dev/null +++ b/components/style/sequential.rs @@ -0,0 +1,28 @@ +/* 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/. */ + +//! Implements sequential traversal over the DOM tree. + +use dom::TNode; +use traversal::DomTraversalContext; + +pub fn traverse_dom_preorder<'ln, N, C>(root: N, + shared: &C::SharedContext) + where N: TNode<'ln>, + C: DomTraversalContext<'ln, N> { + fn doit<'a, 'ln, N, C>(context: &'a C, node: N) + where N: TNode<'ln>, C: DomTraversalContext<'ln, N> { + context.process_preorder(node); + + for kid in node.children() { + doit::<N, C>(context, kid); + } + + context.process_postorder(node); + } + + let context = C::new(shared, root.opaque()); + doit::<N, C>(&context, root); +} + |