pub enum TCF {
Continue,
Close,
Probe,
Exit,
}
Expand description
Control flow enum for Traverse
operations.
§Illustrations
Pink == traversed.
§Close
fn sys(query: Query<(&E, Relations<R>)>, roots: Query<Entity, Root<R>>) {
query.traverse::<R>(roots.iter()).for_each(|E(e), _| {
if *e == 2 { return TCF::Close }
// do stuff
TCF::Continue
})
}
flowchart BT
classDef pink fill:#f66
E1:::pink --R--> E0:::pink
E2:::pink --R--> E0:::pink
E3:::pink --R--> E0:::pink
E4:::pink --R--> E1:::pink
E5:::pink --R--> E1:::pink
E6 --R--> E2:::pink
E7 --R--> E2:::pink
E8:::pink --R--> E3
E9:::pink --R--> E3
§Probe
fn sys(query: Query<(&E, Relations<R>)>, roots: Query<Entity, Root<R>>) {
query.traverse::<R>(roots.iter()).for_each(|E(e), _| {
if *e == 2 { return TCF::Probe }
// do stuff
TCF::Continue
})
}
flowchart BT
classDef pink fill:#f66
E1:::pink --R--> E0:::pink
E2:::pink --R--> E0:::pink
E3 --R--> E0:::pink
E4 --R--> E1:::pink
E5 --R--> E1:::pink
E6:::pink --R--> E2:::pink
E7:::pink --R--> E2:::pink
E8 --R--> E3
E9 --R--> E3
Variants§
Continue
Continue going through the graph.
Close
Close the current node off from expansion. Traversal will not go deeper into the graph through this node.
Probe
Immediately expand the current node’s edges & close all other open paths for further expansion.
Exit
Terminate the loop.
Trait Implementations§
Auto Trait Implementations§
impl RefUnwindSafe for TCF
impl Send for TCF
impl Sync for TCF
impl Unpin for TCF
impl UnwindSafe for TCF
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.