pub struct Node<'a> { /* private fields */ }
Expand description
A splay tree node that is embedded within some container type.
The container type may have multiple Node
members to fit into multiple
SplayTree
s. For example, if you had a set of memory blocks and wanted to
query them by either size or alignment. You could have two intrusive
SplayTree
s, one sorted by size and the other by alignment:
struct Monster<'a> {
// Intrusive node for splay tree sorted by name.
by_name: intrusive_splay_tree::Node<'a>,
// Intrusive node for splay tree sorted by health.
by_health: intrusive_splay_tree::Node<'a>,
// The monster's name.
name: String,
// The monsters health.
health: usize,
}
Implementations§
Source§impl<'a> Node<'a>
impl<'a> Node<'a>
Sourcepub fn left(&self) -> Option<&'a Node<'_>>
pub fn left(&self) -> Option<&'a Node<'_>>
Get this node’s left subtree.
This is a low-level API, and should only be used for custom tree walking and searching, for example to implement a custom pre-order traversal.
Use the unsafe IntrusiveNode::node_to_elem
method to convert the
resulting Node
reference into a reference to its container element
type.
Sourcepub fn right(&self) -> Option<&'a Node<'_>>
pub fn right(&self) -> Option<&'a Node<'_>>
Get this node’s right subtree.
This is a low-level API, and should only be used for custom tree walking and searching, for example to implement a custom pre-order traversal.
Use the unsafe IntrusiveNode::node_to_elem
method to convert the
resulting Node
reference into a reference to its container element
type.