pub enum TypeHead<'db> {
Concrete(GenericTypeId<'db>),
Snapshot(Box<TypeHead<'db>>),
Generic(GenericParamId<'db>),
Tuple,
Coupon,
FixedSizeArray,
}Expand description
Head of a type.
A type that is not one of {generic param, type variable, impl type} has a head, which represents the kind of the root node in its type tree. This is used for caching queries for fast lookups when the type is not completely inferred yet.
Variants§
Concrete(GenericTypeId<'db>)
Snapshot(Box<TypeHead<'db>>)
Generic(GenericParamId<'db>)
Tuple
Coupon
FixedSizeArray
Trait Implementations§
impl<'db> Eq for TypeHead<'db>
impl<'db> StructuralPartialEq for TypeHead<'db>
Auto Trait Implementations§
impl<'db> Freeze for TypeHead<'db>
impl<'db> RefUnwindSafe for TypeHead<'db>
impl<'db> Send for TypeHead<'db>
impl<'db> Sync for TypeHead<'db>
impl<'db> Unpin for TypeHead<'db>
impl<'db> UnwindSafe for TypeHead<'db>
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<'db, T> DebugDbUpcast<'db, T> for Twhere
T: ?Sized,
impl<'db, T> DebugDbUpcast<'db, T> for Twhere
T: ?Sized,
fn debug_db_upcast(&'db self) -> &'db T
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 more