use crate::map_tree::{Children, Entry};
use crate::tree;
use std::hash::Hash;
#[derive(Clone, Copy, Debug)]
pub struct NodeRef<'a, Key: Hash + Eq + Clone, T: Clone> {
inner: tree::NodeRef<'a, Entry<Key, T>>,
}
impl<'a, Key: Hash + Eq + Clone, T: Clone> NodeRef<'a, Key, T> {
#[must_use]
pub(crate) fn new(inner: tree::NodeRef<'a, Entry<Key, T>>) -> Self {
Self { inner }
}
#[must_use]
pub fn data(&self) -> &'a T {
self.inner.data().value()
}
#[must_use]
pub fn key(&self) -> &Key {
self.inner.data().key()
}
pub fn children(&self) -> Children<'a, Key, T> {
Children::new(self.inner.children())
}
}