use crate::node::DeviceTreeNode;
use crate::prop::{NodeProperty, PropertyValue};
pub trait HasNamedProperty {
fn has_props(&self) -> bool;
fn find_prop(&self, name: &str) -> Option<&NodeProperty>;
}
pub trait HasNamedChildNode {
fn has_children(&self) -> bool;
fn find_child(&self, name: &str) -> Option<&DeviceTreeNode>;
}
pub trait FindPropertyValue {
fn value(&self, prop_name: &str) -> Option<&PropertyValue>;
}
impl<T> FindPropertyValue for T
where
T: HasNamedProperty,
{
fn value(&self, prop_name: &str) -> Option<&PropertyValue> {
self.find_prop(prop_name).map(|f| f.value())
}
}