#[cfg(doc)]
use super::*;
use crate::base::iters::{DevTreeIter, DevTreeNodePropIter};
use crate::error::Result;
#[derive(Clone)]
pub struct DevTreeNode<'a, 'dt: 'a> {
pub(super) name: Result<&'dt str>,
pub(super) parse_iter: DevTreeIter<'a, 'dt>,
}
impl<'a, 'dt: 'a> PartialEq for DevTreeNode<'a, 'dt> {
fn eq(&self, other: &Self) -> bool {
self.parse_iter == other.parse_iter
}
}
impl<'a, 'dt: 'a> DevTreeNode<'a, 'dt> {
#[inline]
pub fn name(&'a self) -> Result<&'dt str> {
self.name
}
#[must_use]
pub fn props(&self) -> DevTreeNodePropIter<'a, 'dt> {
DevTreeNodePropIter(self.parse_iter.clone())
}
pub fn find_next_compatible_node(&self, string: &str) -> Result<Option<DevTreeNode<'a, 'dt>>> {
self.parse_iter.clone().next_compatible_node(string)
}
}