Type Alias chalk_ir::CanonicalVarKind

source ·
pub type CanonicalVarKind<I: Interner> = WithKind<I, UniverseIndex>;
Expand description

A variable kind with universe index.

Aliased Type§

struct CanonicalVarKind<I: Interner> {
    pub kind: VariableKind<I>,
    pub(crate) value: UniverseIndex,
}

Fields§

§kind: VariableKind<I>

The associated variable kind.

§value: UniverseIndex

The wrapped value.

Implementations

source§

impl<I: Interner, T> WithKind<I, T>

source

pub fn new(kind: VariableKind<I>, value: T) -> Self

Creates a WithKind from a variable kind and a value.

source

pub fn map<U, OP>(self, op: OP) -> WithKind<I, U>
where OP: FnOnce(T) -> U,

Maps the value in WithKind.

source

pub fn map_ref<U, OP>(&self, op: OP) -> WithKind<I, U>
where OP: FnOnce(&T) -> U,

Maps a function taking WithKind<I, &T> over &WithKind<I, T>.

source

pub fn skip_kind(&self) -> &T

Extract the value, ignoring the variable kind.

Trait Implementations§

source§

impl<I: Interner> CastTo<WithKind<I, UniverseIndex>> for CanonicalVarKind<I>

source§

fn cast_to( self, _interner: <CanonicalVarKind<I> as HasInterner>::Interner, ) -> CanonicalVarKind<I>

Cast a value to type T.
source§

impl<I: Clone + Interner, T: Clone> Clone for WithKind<I, T>

source§

fn clone(&self) -> WithKind<I, T>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<I: Interner, T: Debug> Debug for WithKind<I, T>

source§

fn fmt(&self, fmt: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<I: Interner, T> HasInterner for WithKind<I, T>

§

type Interner = I

The interner associated with the type.
source§

impl<I: Hash + Interner, T: Hash> Hash for WithKind<I, T>

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<I: PartialEq + Interner, T: PartialEq> PartialEq for WithKind<I, T>

source§

fn eq(&self, other: &WithKind<I, T>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<I: Interner, T: Copy> Copy for WithKind<I, T>
where I::InternedType: Copy,

source§

impl<I: Eq + Interner, T: Eq> Eq for WithKind<I, T>

source§

impl<I: Interner, T> StructuralPartialEq for WithKind<I, T>