pub struct NodeCollector { /* private fields */ }Expand description
Visitor that collects all nodes of a specific type.
§Example
use hedl_core::visitor::{utils::NodeCollector, traverse, TraversalConfig};
use hedl_core::{Document, Node};
let doc = Document::new((1, 0));
let mut collector = NodeCollector::new("User");
traverse(&doc, &mut collector, &TraversalConfig::default());
let users = collector.into_nodes();Implementations§
Source§impl NodeCollector
impl NodeCollector
Sourcepub fn into_nodes(self) -> Vec<Node>
pub fn into_nodes(self) -> Vec<Node>
Consume the collector and return collected nodes.
Trait Implementations§
Source§impl Debug for NodeCollector
impl Debug for NodeCollector
Source§impl Visitor for NodeCollector
impl Visitor for NodeCollector
Source§fn visit_node(
&mut self,
node: &Node,
_ctx: &VisitorContext<'_>,
) -> VisitDecision
fn visit_node( &mut self, node: &Node, _ctx: &VisitorContext<'_>, ) -> VisitDecision
Called when visiting a node (row) in a list. Read more
Source§fn begin_document(
&mut self,
_doc: &Document,
_ctx: &VisitorContext<'_>,
) -> VisitDecision
fn begin_document( &mut self, _doc: &Document, _ctx: &VisitorContext<'_>, ) -> VisitDecision
Called at the start of document traversal. Read more
Source§fn end_document(
&mut self,
_doc: &Document,
_ctx: &VisitorContext<'_>,
) -> VisitDecision
fn end_document( &mut self, _doc: &Document, _ctx: &VisitorContext<'_>, ) -> VisitDecision
Called at the end of document traversal. Read more
Source§fn visit_scalar(
&mut self,
_key: &str,
_value: &Value,
_ctx: &VisitorContext<'_>,
) -> VisitDecision
fn visit_scalar( &mut self, _key: &str, _value: &Value, _ctx: &VisitorContext<'_>, ) -> VisitDecision
Called when visiting a scalar value. Read more
Source§fn begin_object(
&mut self,
_key: &str,
_ctx: &VisitorContext<'_>,
) -> VisitDecision
fn begin_object( &mut self, _key: &str, _ctx: &VisitorContext<'_>, ) -> VisitDecision
Called before visiting an object’s children. Read more
Source§fn end_object(&mut self, _key: &str, _ctx: &VisitorContext<'_>) -> VisitDecision
fn end_object(&mut self, _key: &str, _ctx: &VisitorContext<'_>) -> VisitDecision
Called after visiting an object’s children.
Source§fn begin_list(
&mut self,
_key: &str,
_list: &MatrixList,
_ctx: &VisitorContext<'_>,
) -> VisitDecision
fn begin_list( &mut self, _key: &str, _list: &MatrixList, _ctx: &VisitorContext<'_>, ) -> VisitDecision
Called before visiting a list’s rows. Read more
Source§fn end_list(
&mut self,
_key: &str,
_list: &MatrixList,
_ctx: &VisitorContext<'_>,
) -> VisitDecision
fn end_list( &mut self, _key: &str, _list: &MatrixList, _ctx: &VisitorContext<'_>, ) -> VisitDecision
Called after visiting a list’s rows.
Source§fn begin_node_children(
&mut self,
_node: &Node,
_ctx: &VisitorContext<'_>,
) -> VisitDecision
fn begin_node_children( &mut self, _node: &Node, _ctx: &VisitorContext<'_>, ) -> VisitDecision
Called before visiting a node’s children. Read more
Source§fn end_node_children(
&mut self,
_node: &Node,
_ctx: &VisitorContext<'_>,
) -> VisitDecision
fn end_node_children( &mut self, _node: &Node, _ctx: &VisitorContext<'_>, ) -> VisitDecision
Called after visiting a node’s children.
Source§fn visit_reference(
&mut self,
_reference: &Reference,
_ctx: &VisitorContext<'_>,
) -> VisitDecision
fn visit_reference( &mut self, _reference: &Reference, _ctx: &VisitorContext<'_>, ) -> VisitDecision
Called when visiting a reference value. Read more
Source§fn visit_expression(
&mut self,
_expr: &Expression,
_ctx: &VisitorContext<'_>,
) -> VisitDecision
fn visit_expression( &mut self, _expr: &Expression, _ctx: &VisitorContext<'_>, ) -> VisitDecision
Called when visiting an expression value. Read more
Source§fn visit_tensor(
&mut self,
_tensor: &Tensor,
_ctx: &VisitorContext<'_>,
) -> VisitDecision
fn visit_tensor( &mut self, _tensor: &Tensor, _ctx: &VisitorContext<'_>, ) -> VisitDecision
Called when visiting a tensor value. Read more
Auto Trait Implementations§
impl Freeze for NodeCollector
impl RefUnwindSafe for NodeCollector
impl Send for NodeCollector
impl Sync for NodeCollector
impl Unpin for NodeCollector
impl UnwindSafe for NodeCollector
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
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more