struct CycleHeads {
    heads: BTreeMap<StackDepth, AllPathsToHeadCoinductive>,
}Expand description
All cycle heads a given goal depends on, ordered by their stack depth.
We also track all paths from this goal to that head. This is necessary when rebasing provisional cache results.
Fields§
§heads: BTreeMap<StackDepth, AllPathsToHeadCoinductive>Implementations§
Source§impl CycleHeads
 
impl CycleHeads
fn is_empty(&self) -> bool
fn highest_cycle_head(&self) -> StackDepth
fn opt_highest_cycle_head(&self) -> Option<StackDepth>
fn opt_lowest_cycle_head(&self) -> Option<StackDepth>
fn remove_highest_cycle_head(&mut self)
fn insert( &mut self, head: StackDepth, path_from_entry: impl Into<AllPathsToHeadCoinductive> + Copy, )
fn merge(&mut self, heads: &CycleHeads)
fn iter( &self, ) -> impl Iterator<Item = (StackDepth, AllPathsToHeadCoinductive)> + '_
Sourcefn extend_from_child(
    &mut self,
    this: StackDepth,
    step_kind: PathKind,
    child: &CycleHeads,
)
 
fn extend_from_child( &mut self, this: StackDepth, step_kind: PathKind, child: &CycleHeads, )
Update the cycle heads of a goal at depth this given the cycle heads
of a nested goal. This merges the heads after filtering the parent goal
itself.
Trait Implementations§
Source§impl Clone for CycleHeads
 
impl Clone for CycleHeads
Source§fn clone(&self) -> CycleHeads
 
fn clone(&self) -> CycleHeads
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from 
source. Read moreSource§impl Debug for CycleHeads
 
impl Debug for CycleHeads
Source§impl Default for CycleHeads
 
impl Default for CycleHeads
Source§fn default() -> CycleHeads
 
fn default() -> CycleHeads
Returns the “default value” for a type. Read more
Source§impl PartialEq for CycleHeads
 
impl PartialEq for CycleHeads
impl Eq for CycleHeads
impl StructuralPartialEq for CycleHeads
Auto Trait Implementations§
impl DynSend for CycleHeads
impl DynSync for CycleHeads
impl Freeze for CycleHeads
impl RefUnwindSafe for CycleHeads
impl Send for CycleHeads
impl Sync for CycleHeads
impl Unpin for CycleHeads
impl UnwindSafe for CycleHeads
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> CloneToUninit for Twhere
    T: Clone,
 
impl<T> CloneToUninit for Twhere
    T: Clone,
Source§impl<T, R> CollectAndApply<T, R> for T
 
impl<T, R> CollectAndApply<T, R> for T
Source§impl<Q, K> Equivalent<K> for Q
 
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
 
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
 
fn equivalent(&self, key: &K) -> bool
Compare self to 
key and return true if they are equal.Source§impl<T> Instrument for T
 
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
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 moreSource§impl<T> Pointable for T
 
impl<T> Pointable for T
Source§impl<I, T, U> Upcast<I, U> for Twhere
    U: UpcastFrom<I, T>,
 
impl<I, T, U> Upcast<I, U> for Twhere
    U: UpcastFrom<I, T>,
Source§impl<I, T> UpcastFrom<I, T> for T
 
impl<I, T> UpcastFrom<I, T> for T
fn upcast_from(from: T, _tcx: I) -> T
Source§impl<T> WithSubscriber for T
 
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
 
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
Source§fn with_current_subscriber(self) -> WithDispatch<Self>
 
fn with_current_subscriber(self) -> WithDispatch<Self>
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 24 bytes