use crate::tree::v7400::{DepthFirstTraverseSubtree, NodeHandle, Tree};
pub(crate) use self::{data::NodeData, name::NodeNameSym};
mod data;
pub(crate) mod handle;
mod name;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct NodeId(indextree::NodeId);
impl NodeId {
#[inline]
#[must_use]
pub(crate) fn new(id: indextree::NodeId) -> Self {
NodeId(id)
}
#[inline]
#[must_use]
pub(crate) fn raw(self) -> indextree::NodeId {
self.0
}
#[inline]
#[must_use]
pub fn to_handle(self, tree: &Tree) -> NodeHandle<'_> {
NodeHandle::new(tree, self)
}
#[inline]
#[must_use]
pub fn traverse_depth_first(&self) -> DepthFirstTraverseSubtree {
DepthFirstTraverseSubtree::with_root_id(*self)
}
}