enum DeferredEdgeBundleSet {
Unreachable,
Always {
target: DeferredTarget,
edge_bundle: IncomingEdgeBundle<()>,
},
Choice {
target_to_deferred: IndexMap<DeferredTarget, DeferredEdgeBundle<()>, BuildHasherDefault<FxHasher>>,
},
}
Expand description
Set of DeferredEdgeBundle
s, uniquely keyed by their target
s.
Semantically equivalent to an unordered series of conditional branches
to each possible target
, which corresponds to an unenforced invariant
that exactly one DeferredEdgeBundle
condition must be true
at any
given time (the only non-trivial case, DeferredEdgeBundleSet::Choice
,
satisfies it because it’s only used for merging Select
cases, and so
all the conditions will end up using disjoint LazyCond::Merge
s).
Variants§
Unreachable
Always
Choice
Fields
§
target_to_deferred: IndexMap<DeferredTarget, DeferredEdgeBundle<()>, BuildHasherDefault<FxHasher>>
Implementations§
source§impl DeferredEdgeBundleSet
impl DeferredEdgeBundleSet
fn get_edge_bundle_by_target( &self, search_target: DeferredTarget, ) -> Option<&IncomingEdgeBundle<()>>
fn get_edge_bundle_mut_by_target( &mut self, search_target: DeferredTarget, ) -> Option<&mut IncomingEdgeBundle<()>>
fn iter_targets_with_edge_bundle( &self, ) -> impl Iterator<Item = (DeferredTarget, &IncomingEdgeBundle<()>)>
fn iter_targets_with_edge_bundle_mut( &mut self, ) -> impl Iterator<Item = (DeferredTarget, &mut IncomingEdgeBundle<()>)>
fn steal_deferred_by_target_without_removal( &mut self, search_target: DeferredTarget, ) -> Option<DeferredEdgeBundle<()>>
fn split_out_target( self, split_target: DeferredTarget, ) -> (Option<DeferredEdgeBundle>, Self)
fn split_out_matching<T>( self, matches: impl FnMut(DeferredEdgeBundle) -> Result<T, DeferredEdgeBundle>, ) -> (Option<T>, Self)
Trait Implementations§
source§impl From<IndexMap<DeferredTarget, DeferredEdgeBundle<()>, BuildHasherDefault<FxHasher>>> for DeferredEdgeBundleSet
impl From<IndexMap<DeferredTarget, DeferredEdgeBundle<()>, BuildHasherDefault<FxHasher>>> for DeferredEdgeBundleSet
source§fn from(
target_to_deferred: IndexMap<DeferredTarget, DeferredEdgeBundle<()>, BuildHasherDefault<FxHasher>>,
) -> Self
fn from( target_to_deferred: IndexMap<DeferredTarget, DeferredEdgeBundle<()>, BuildHasherDefault<FxHasher>>, ) -> Self
Converts to this type from the input type.
source§impl FromIterator<DeferredEdgeBundle> for DeferredEdgeBundleSet
impl FromIterator<DeferredEdgeBundle> for DeferredEdgeBundleSet
source§fn from_iter<T: IntoIterator<Item = DeferredEdgeBundle>>(iter: T) -> Self
fn from_iter<T: IntoIterator<Item = DeferredEdgeBundle>>(iter: T) -> Self
Creates a value from an iterator. Read more
Auto Trait Implementations§
impl Freeze for DeferredEdgeBundleSet
impl RefUnwindSafe for DeferredEdgeBundleSet
impl !Send for DeferredEdgeBundleSet
impl !Sync for DeferredEdgeBundleSet
impl Unpin for DeferredEdgeBundleSet
impl UnwindSafe for DeferredEdgeBundleSet
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