Struct aery::operations::utils::TraverseAnd
source · pub struct TraverseAnd<Control, Edge, Starts, Tracked = (), Init = (), Fold = ()> { /* private fields */ }
Expand description
Struct to track metadat for a traversal operation.
Trait Implementations§
source§impl<'a, 'w, 's, D, RS, F, Edge, Starts> FoldBreadth<RS> for TraverseAnd<&'a Query<'w, 's, (D, Relations<RS>), F>, Edge, Starts, SelfTracking>where
D: QueryData,
F: QueryFilter,
RS: RelationSet,
impl<'a, 'w, 's, D, RS, F, Edge, Starts> FoldBreadth<RS> for TraverseAnd<&'a Query<'w, 's, (D, Relations<RS>), F>, Edge, Starts, SelfTracking>where
D: QueryData,
F: QueryFilter,
RS: RelationSet,
type WQ<'wq> = <<D as QueryData>::ReadOnly as WorldQuery>::Item<'wq>
type Out<Init, Fold> = TraverseAnd<&'a Query<'w, 's, (D, Relations<RS>), F>, Edge, Starts, SelfTracking, Init, Fold>
fn fold_breadth<Acc, E, Init, Fold>(
self,
init: Init,
fold: Fold
) -> Self::Out<Init, Fold>where
Init: FnMut(&mut Self::WQ<'_>, &RelationsItem<'_, RS>) -> Acc,
Fold: FnMut(Acc, &mut Self::WQ<'_>, &RelationsItem<'_, RS>) -> Result<Acc, E>,
source§impl<'a, 'w, 's, D, RS, F, Edge, Starts> FoldBreadth<RS> for TraverseAnd<&'a mut Query<'w, 's, (D, Relations<RS>), F>, Edge, Starts, SelfTracking>where
D: QueryData,
F: QueryFilter,
RS: RelationSet,
impl<'a, 'w, 's, D, RS, F, Edge, Starts> FoldBreadth<RS> for TraverseAnd<&'a mut Query<'w, 's, (D, Relations<RS>), F>, Edge, Starts, SelfTracking>where
D: QueryData,
F: QueryFilter,
RS: RelationSet,
type WQ<'wq> = <D as WorldQuery>::Item<'wq>
type Out<Init, Fold> = TraverseAnd<&'a mut Query<'w, 's, (D, Relations<RS>), F>, Edge, Starts, SelfTracking, Init, Fold>
fn fold_breadth<Acc, E, Init, Fold>(
self,
init: Init,
fold: Fold
) -> Self::Out<Init, Fold>where
Init: FnMut(&mut Self::WQ<'_>, &RelationsItem<'_, RS>) -> Acc,
Fold: FnMut(Acc, &mut Self::WQ<'_>, &RelationsItem<'_, RS>) -> Result<Acc, E>,
source§impl<D, RS, F, Edge, E, Starts, Init, Fold, Acc, Err> FoldingSelfTrackingTraversalForEach<RS> for TraverseAnd<&Query<'_, '_, (D, Relations<RS>), F>, Edge, Starts, SelfTracking, Init, Fold>where
D: QueryData,
RS: RelationSet,
F: QueryFilter,
Edge: EdgeSide,
E: Borrow<Entity>,
Starts: IntoIterator<Item = E>,
for<'i> RelationsItem<'i, RS>: RelationEntries,
Init: for<'a> FnMut(&mut <D::ReadOnly as WorldQuery>::Item<'a>, &RelationsItem<'a, RS>) -> Acc,
Fold: for<'a> FnMut(Acc, &mut <D::ReadOnly as WorldQuery>::Item<'a>, &RelationsItem<'a, RS>) -> Result<Acc, Err>,
impl<D, RS, F, Edge, E, Starts, Init, Fold, Acc, Err> FoldingSelfTrackingTraversalForEach<RS> for TraverseAnd<&Query<'_, '_, (D, Relations<RS>), F>, Edge, Starts, SelfTracking, Init, Fold>where
D: QueryData,
RS: RelationSet,
F: QueryFilter,
Edge: EdgeSide,
E: Borrow<Entity>,
Starts: IntoIterator<Item = E>,
for<'i> RelationsItem<'i, RS>: RelationEntries,
Init: for<'a> FnMut(&mut <D::ReadOnly as WorldQuery>::Item<'a>, &RelationsItem<'a, RS>) -> Acc,
Fold: for<'a> FnMut(Acc, &mut <D::ReadOnly as WorldQuery>::Item<'a>, &RelationsItem<'a, RS>) -> Result<Acc, Err>,
source§impl<D, RS, F, Edge, E, Starts, Init, Fold, Acc, Err> FoldingSelfTrackingTraversalForEach<RS> for TraverseAnd<&mut Query<'_, '_, (D, Relations<RS>), F>, Edge, Starts, SelfTracking, Init, Fold>where
D: QueryData,
RS: RelationSet,
F: QueryFilter,
Edge: EdgeSide,
E: Borrow<Entity>,
Starts: IntoIterator<Item = E>,
for<'i> RelationsItem<'i, RS>: RelationEntries,
Init: for<'a> FnMut(&mut <D as WorldQuery>::Item<'a>, &RelationsItem<'a, RS>) -> Acc,
Fold: for<'a> FnMut(Acc, &mut <D as WorldQuery>::Item<'a>, &RelationsItem<'a, RS>) -> Result<Acc, Err>,
impl<D, RS, F, Edge, E, Starts, Init, Fold, Acc, Err> FoldingSelfTrackingTraversalForEach<RS> for TraverseAnd<&mut Query<'_, '_, (D, Relations<RS>), F>, Edge, Starts, SelfTracking, Init, Fold>where
D: QueryData,
RS: RelationSet,
F: QueryFilter,
Edge: EdgeSide,
E: Borrow<Entity>,
Starts: IntoIterator<Item = E>,
for<'i> RelationsItem<'i, RS>: RelationEntries,
Init: for<'a> FnMut(&mut <D as WorldQuery>::Item<'a>, &RelationsItem<'a, RS>) -> Acc,
Fold: for<'a> FnMut(Acc, &mut <D as WorldQuery>::Item<'a>, &RelationsItem<'a, RS>) -> Result<Acc, Err>,
source§impl<D, RS, F, Edge, E, Starts, Tracked, const N: usize> RemoteTrackingTraversalForEach<RS, N> for TraverseAnd<&Query<'_, '_, (D, Relations<RS>), F>, Edge, Starts, Tracked>where
D: QueryData,
RS: RelationSet,
F: QueryFilter,
Edge: EdgeSide,
E: Borrow<Entity>,
Starts: IntoIterator<Item = E>,
for<'i> RelationsItem<'i, RS>: RelationEntries,
Tracked: for<'a> Trackable<'a, N>,
impl<D, RS, F, Edge, E, Starts, Tracked, const N: usize> RemoteTrackingTraversalForEach<RS, N> for TraverseAnd<&Query<'_, '_, (D, Relations<RS>), F>, Edge, Starts, Tracked>where
D: QueryData,
RS: RelationSet,
F: QueryFilter,
Edge: EdgeSide,
E: Borrow<Entity>,
Starts: IntoIterator<Item = E>,
for<'i> RelationsItem<'i, RS>: RelationEntries,
Tracked: for<'a> Trackable<'a, N>,
source§impl<D, RS, F, Edge, E, Starts, Tracked, const N: usize> RemoteTrackingTraversalForEach<RS, N> for TraverseAnd<&mut Query<'_, '_, (D, Relations<RS>), F>, Edge, Starts, Tracked>where
D: QueryData,
RS: RelationSet,
F: QueryFilter,
Edge: EdgeSide,
E: Borrow<Entity>,
Starts: IntoIterator<Item = E>,
for<'i> RelationsItem<'i, RS>: RelationEntries,
Tracked: for<'a> Trackable<'a, N>,
impl<D, RS, F, Edge, E, Starts, Tracked, const N: usize> RemoteTrackingTraversalForEach<RS, N> for TraverseAnd<&mut Query<'_, '_, (D, Relations<RS>), F>, Edge, Starts, Tracked>where
D: QueryData,
RS: RelationSet,
F: QueryFilter,
Edge: EdgeSide,
E: Borrow<Entity>,
Starts: IntoIterator<Item = E>,
for<'i> RelationsItem<'i, RS>: RelationEntries,
Tracked: for<'a> Trackable<'a, N>,
source§impl<D, RS, F, Edge, E, Starts> SelfTrackingTraversalForEach<RS> for TraverseAnd<&Query<'_, '_, (D, Relations<RS>), F>, Edge, Starts, SelfTracking>where
D: QueryData,
RS: RelationSet,
F: QueryFilter,
Edge: EdgeSide,
E: Borrow<Entity>,
Starts: IntoIterator<Item = E>,
for<'i> RelationsItem<'i, RS>: RelationEntries,
impl<D, RS, F, Edge, E, Starts> SelfTrackingTraversalForEach<RS> for TraverseAnd<&Query<'_, '_, (D, Relations<RS>), F>, Edge, Starts, SelfTracking>where
D: QueryData,
RS: RelationSet,
F: QueryFilter,
Edge: EdgeSide,
E: Borrow<Entity>,
Starts: IntoIterator<Item = E>,
for<'i> RelationsItem<'i, RS>: RelationEntries,
source§impl<D, RS, F, Edge, E, Starts> SelfTrackingTraversalForEach<RS> for TraverseAnd<&mut Query<'_, '_, (D, Relations<RS>), F>, Edge, Starts, SelfTracking>where
D: QueryData,
RS: RelationSet,
F: QueryFilter,
Edge: EdgeSide,
E: Borrow<Entity>,
Starts: IntoIterator<Item = E>,
for<'i> RelationsItem<'i, RS>: RelationEntries,
impl<D, RS, F, Edge, E, Starts> SelfTrackingTraversalForEach<RS> for TraverseAnd<&mut Query<'_, '_, (D, Relations<RS>), F>, Edge, Starts, SelfTracking>where
D: QueryData,
RS: RelationSet,
F: QueryFilter,
Edge: EdgeSide,
E: Borrow<Entity>,
Starts: IntoIterator<Item = E>,
for<'i> RelationsItem<'i, RS>: RelationEntries,
type WQ<'wq> = <D as WorldQuery>::Item<'wq>
fn for_each<Func, Ret>(self, func: Func)where
Ret: Into<TCF>,
Func: for<'a> FnMut(&mut Self::WQ<'a>, &RelationsItem<'a, RS>, &mut Self::WQ<'a>, &RelationsItem<'a, RS>) -> Ret,
source§impl<Control, Edge, Starts, Tracked> Track for TraverseAnd<Control, Edge, Starts, Tracked>where
Tracked: Append,
impl<Control, Edge, Starts, Tracked> Track for TraverseAnd<Control, Edge, Starts, Tracked>where
Tracked: Append,
source§impl<Control, Edge, Starts> TrackSelf for TraverseAnd<Control, Edge, Starts>
impl<Control, Edge, Starts> TrackSelf for TraverseAnd<Control, Edge, Starts>
type Out = TraverseAnd<Control, Edge, Starts, SelfTracking>
fn track_self(self) -> Self::Out
source§impl<D, RS, F, Edge, E, Starts> TraversalForEach<RS> for TraverseAnd<&Query<'_, '_, (D, Relations<RS>), F>, Edge, Starts>where
D: QueryData,
RS: RelationSet,
F: QueryFilter,
Edge: EdgeSide,
E: Borrow<Entity>,
Starts: IntoIterator<Item = E>,
for<'i> RelationsItem<'i, RS>: RelationEntries,
impl<D, RS, F, Edge, E, Starts> TraversalForEach<RS> for TraverseAnd<&Query<'_, '_, (D, Relations<RS>), F>, Edge, Starts>where
D: QueryData,
RS: RelationSet,
F: QueryFilter,
Edge: EdgeSide,
E: Borrow<Entity>,
Starts: IntoIterator<Item = E>,
for<'i> RelationsItem<'i, RS>: RelationEntries,
source§impl<D, RS, F, Edge, E, Starts> TraversalForEach<RS> for TraverseAnd<&mut Query<'_, '_, (D, Relations<RS>), F>, Edge, Starts>where
D: QueryData,
RS: RelationSet,
F: QueryFilter,
Edge: EdgeSide,
E: Borrow<Entity>,
Starts: IntoIterator<Item = E>,
for<'i> RelationsItem<'i, RS>: RelationEntries,
impl<D, RS, F, Edge, E, Starts> TraversalForEach<RS> for TraverseAnd<&mut Query<'_, '_, (D, Relations<RS>), F>, Edge, Starts>where
D: QueryData,
RS: RelationSet,
F: QueryFilter,
Edge: EdgeSide,
E: Borrow<Entity>,
Starts: IntoIterator<Item = E>,
for<'i> RelationsItem<'i, RS>: RelationEntries,
Auto Trait Implementations§
impl<Control, Edge, Starts, Tracked, Init, Fold> RefUnwindSafe for TraverseAnd<Control, Edge, Starts, Tracked, Init, Fold>where
Control: RefUnwindSafe,
Edge: RefUnwindSafe,
Fold: RefUnwindSafe,
Init: RefUnwindSafe,
Starts: RefUnwindSafe,
Tracked: RefUnwindSafe,
impl<Control, Edge, Starts, Tracked, Init, Fold> Send for TraverseAnd<Control, Edge, Starts, Tracked, Init, Fold>
impl<Control, Edge, Starts, Tracked, Init, Fold> Sync for TraverseAnd<Control, Edge, Starts, Tracked, Init, Fold>
impl<Control, Edge, Starts, Tracked, Init, Fold> Unpin for TraverseAnd<Control, Edge, Starts, Tracked, Init, Fold>
impl<Control, Edge, Starts, Tracked, Init, Fold> UnwindSafe for TraverseAnd<Control, Edge, Starts, Tracked, Init, Fold>where
Control: UnwindSafe,
Edge: UnwindSafe,
Fold: UnwindSafe,
Init: UnwindSafe,
Starts: UnwindSafe,
Tracked: 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
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.