pub enum PathKind {
Inductive,
Unknown,
Coinductive,
}
Expand description
In the initial iteration of a cycle, we do not yet have a provisional result. In the case we return an initial provisional result depending on the kind of cycle.
Variants§
Inductive
A path consisting of only inductive/unproductive steps. Their initial
provisional result is Err(NoSolution)
. We currently treat them as
PathKind::Unknown
during coherence until we’re fully confident in
our approach.
Unknown
A path which is not be coinductive right now but we may want to change of them to be so in the future. We return an ambiguous result in this case to prevent people from relying on this.
Coinductive
A path with at least one coinductive step. Such cycles hold.
Implementations§
Trait Implementations§
Source§impl From<PathKind> for AllPathsToHeadCoinductive
impl From<PathKind> for AllPathsToHeadCoinductive
Source§fn from(path: PathKind) -> AllPathsToHeadCoinductive
fn from(path: PathKind) -> AllPathsToHeadCoinductive
Source§impl From<PathKind> for PathsToNested
impl From<PathKind> for PathsToNested
Source§fn from(path: PathKind) -> PathsToNested
fn from(path: PathKind) -> PathsToNested
Source§impl<__CTX> HashStable<__CTX> for PathKind
impl<__CTX> HashStable<__CTX> for PathKind
fn hash_stable(&self, __hcx: &mut __CTX, __hasher: &mut StableHasher)
impl Copy for PathKind
impl Eq for PathKind
impl StructuralPartialEq for PathKind
Auto Trait Implementations§
impl DynSend for PathKind
impl DynSync for PathKind
impl Freeze for PathKind
impl RefUnwindSafe for PathKind
impl Send for PathKind
impl Sync for PathKind
impl Unpin for PathKind
impl UnwindSafe for PathKind
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
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
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>
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>
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: 1 byte
Size for each variant:
Inductive
: 0 bytesUnknown
: 0 bytesCoinductive
: 0 bytes