Struct DiagnosticsHierarchy
pub struct DiagnosticsHierarchy<Key = String> {
pub name: String,
pub properties: Vec<Property<Key>>,
pub children: Vec<DiagnosticsHierarchy<Key>>,
pub missing: Vec<MissingValue>,
}
Expand description
A hierarchy of nodes representing structured data, such as Inspect or structured log data.
Each hierarchy consists of properties, and a map of named child hierarchies.
Fields§
§name: String
The name of this node.
properties: Vec<Property<Key>>
The properties for the node.
children: Vec<DiagnosticsHierarchy<Key>>
The children of this node.
missing: Vec<MissingValue>
Values that were impossible to load.
Implementations§
§impl<Key> DiagnosticsHierarchy<Key>
impl<Key> DiagnosticsHierarchy<Key>
pub fn sort(&mut self)
pub fn sort(&mut self)
Sorts the properties and children of the diagnostics hierarchy by name.
pub fn new_root() -> DiagnosticsHierarchy<Key>
pub fn new_root() -> DiagnosticsHierarchy<Key>
Creates a new empty diagnostics hierarchy with the root node named “root”.
pub fn new(
name: impl Into<String>,
properties: Vec<Property<Key>>,
children: Vec<DiagnosticsHierarchy<Key>>,
) -> DiagnosticsHierarchy<Key>
pub fn new( name: impl Into<String>, properties: Vec<Property<Key>>, children: Vec<DiagnosticsHierarchy<Key>>, ) -> DiagnosticsHierarchy<Key>
Creates a new diagnostics hierarchy with the given name
for the root and the given
properties
and children
under that root.
pub fn get_or_add_child_mut<T>(
&mut self,
name: T,
) -> &mut DiagnosticsHierarchy<Key>
pub fn get_or_add_child_mut<T>( &mut self, name: T, ) -> &mut DiagnosticsHierarchy<Key>
Either returns an existing child of self
with name name
or creates
a new child with name name
.
pub fn add_child(&mut self, insert: DiagnosticsHierarchy<Key>)
pub fn add_child(&mut self, insert: DiagnosticsHierarchy<Key>)
Add a child to this DiagnosticsHierarchy.
Note: It is possible to create multiple children with the same name using this method, but readers may not support such a case.
pub fn get_or_add_node<T>(
&mut self,
node_path: &[T],
) -> &mut DiagnosticsHierarchy<Key>
pub fn get_or_add_node<T>( &mut self, node_path: &[T], ) -> &mut DiagnosticsHierarchy<Key>
Creates and returns a new Node whose location in a hierarchy
rooted at self
is defined by node_path.
Requires: that node_path is not empty. Requires: that node_path begin with the key fragment equal to the name of the node that add is being called on.
NOTE: Inspect VMOs may allow multiple nodes of the same name. In this case, the first node found is returned.
pub fn add_property(&mut self, property: Property<Key>)
pub fn add_property(&mut self, property: Property<Key>)
Inserts a new Property into this hierarchy.
pub fn add_property_at_path<T>(
&mut self,
node_path: &[T],
property: Property<Key>,
)
pub fn add_property_at_path<T>( &mut self, node_path: &[T], property: Property<Key>, )
Inserts a new Property into a Node whose location in a hierarchy
rooted at self
is defined by node_path.
Requires: that node_path is not empty. Requires: that node_path begin with the key fragment equal to the name of the node that add is being called on.
NOTE: Inspect VMOs may allow multiple nodes of the same name. In this case, the property is added to the first node found.
pub fn property_iter(&self) -> DiagnosticsHierarchyIterator<'_, Key>
pub fn property_iter(&self) -> DiagnosticsHierarchyIterator<'_, Key>
Provides an iterator over the diagnostics hierarchy returning properties in pre-order.
pub fn add_missing(&mut self, reason: MissingValueReason, name: String)
pub fn add_missing(&mut self, reason: MissingValueReason, name: String)
Adds a value that couldn’t be read. This can happen when loading a lazy child.
pub fn get_property(&self, name: &str) -> Option<&Property<Key>>
pub fn get_property(&self, name: &str) -> Option<&Property<Key>>
Returns the property of the given |name| if one exists.
pub fn get_child(&self, name: &str) -> Option<&DiagnosticsHierarchy<Key>>
pub fn get_child(&self, name: &str) -> Option<&DiagnosticsHierarchy<Key>>
Returns the child of the given |name| if one exists.
pub fn get_child_mut(
&mut self,
name: &str,
) -> Option<&mut DiagnosticsHierarchy<Key>>
pub fn get_child_mut( &mut self, name: &str, ) -> Option<&mut DiagnosticsHierarchy<Key>>
Returns a mutable reference to the child of the given |name| if one exists.
pub fn get_child_by_path(
&self,
path: &[&str],
) -> Option<&DiagnosticsHierarchy<Key>>
pub fn get_child_by_path( &self, path: &[&str], ) -> Option<&DiagnosticsHierarchy<Key>>
Returns the child of the given |path| if one exists.
pub fn get_child_by_path_mut(
&mut self,
path: &[&str],
) -> Option<&mut DiagnosticsHierarchy<Key>>
pub fn get_child_by_path_mut( &mut self, path: &[&str], ) -> Option<&mut DiagnosticsHierarchy<Key>>
Returns a mutable reference to the child of the given |path| if one exists.
pub fn get_property_by_path(&self, path: &[&str]) -> Option<&Property<Key>>
pub fn get_property_by_path(&self, path: &[&str]) -> Option<&Property<Key>>
Returns the property of the given |name| if one exists.
Trait Implementations§
§impl<Key> Clone for DiagnosticsHierarchy<Key>where
Key: Clone,
impl<Key> Clone for DiagnosticsHierarchy<Key>where
Key: Clone,
§fn clone(&self) -> DiagnosticsHierarchy<Key>
fn clone(&self) -> DiagnosticsHierarchy<Key>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl<Key> Debug for DiagnosticsHierarchy<Key>where
Key: Debug,
impl<Key> Debug for DiagnosticsHierarchy<Key>where
Key: Debug,
§impl<'de, Key> Deserialize<'de> for DiagnosticsHierarchy<Key>
impl<'de, Key> Deserialize<'de> for DiagnosticsHierarchy<Key>
§fn deserialize<D>(
deserializer: D,
) -> Result<DiagnosticsHierarchy<Key>, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<DiagnosticsHierarchy<Key>, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
§impl<K> DiagnosticsHierarchyGetter<K> for DiagnosticsHierarchy<K>where
K: Clone,
impl<K> DiagnosticsHierarchyGetter<K> for DiagnosticsHierarchy<K>where
K: Clone,
fn get_diagnostics_hierarchy(&self) -> Cow<'_, DiagnosticsHierarchy<K>>
§impl<Key> PartialEq for DiagnosticsHierarchy<Key>where
Key: PartialEq,
impl<Key> PartialEq for DiagnosticsHierarchy<Key>where
Key: PartialEq,
§impl<Key> Serialize for DiagnosticsHierarchy<Key>
impl<Key> Serialize for DiagnosticsHierarchy<Key>
§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
impl<Key> StructuralPartialEq for DiagnosticsHierarchy<Key>
Auto Trait Implementations§
impl<Key> Freeze for DiagnosticsHierarchy<Key>
impl<Key> RefUnwindSafe for DiagnosticsHierarchy<Key>where
Key: RefUnwindSafe,
impl<Key> Send for DiagnosticsHierarchy<Key>where
Key: Send,
impl<Key> Sync for DiagnosticsHierarchy<Key>where
Key: Sync,
impl<Key> Unpin for DiagnosticsHierarchy<Key>where
Key: Unpin,
impl<Key> UnwindSafe for DiagnosticsHierarchy<Key>where
Key: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)