# Enum stable_mir::ty::TyKind

source ·

    pub enum TyKind {
        RigidTy(RigidTy),
        Alias(AliasKind, AliasTy),
        Param(ParamTy),
        Bound(usize, BoundTy),
    }

## Variants§

§

### RigidTy(RigidTy)

§

### Alias(AliasKind, AliasTy)

§

### Param(ParamTy)

§

### Bound(usize, BoundTy)

## Implementations§

source§

### impl TyKind

source

#### pub fn rigid(&self) -> Option<&RigidTy>

source

#### pub fn is_unit(&self) -> bool

source

#### pub fn is_bool(&self) -> bool

source

#### pub fn is_char(&self) -> bool

source

#### pub fn is_trait(&self) -> bool

source

#### pub fn is_enum(&self) -> bool

source

#### pub fn is_struct(&self) -> bool

source

#### pub fn is_union(&self) -> bool

source

#### pub fn is_adt(&self) -> bool

source

#### pub fn is_ref(&self) -> bool

source

#### pub fn is_fn(&self) -> bool

source

#### pub fn is_fn_ptr(&self) -> bool

source

#### pub fn is_primitive(&self) -> bool

source

#### pub fn is_float(&self) -> bool

source

#### pub fn is_integral(&self) -> bool

source

#### pub fn is_numeric(&self) -> bool

source

#### pub fn is_signed(&self) -> bool

source

#### pub fn is_str(&self) -> bool

source

#### pub fn is_cstr(&self) -> bool

source

#### pub fn is_slice(&self) -> bool

source

#### pub fn is_array(&self) -> bool

source

#### pub fn is_mutable_ptr(&self) -> bool

source

#### pub fn is_raw_ptr(&self) -> bool

source

#### pub fn is_any_ptr(&self) -> bool

Tests if this is any kind of primitive pointer type (reference, raw pointer, fn pointer).

source

#### pub fn is_coroutine(&self) -> bool

source

#### pub fn is_closure(&self) -> bool

source

#### pub fn is_box(&self) -> bool

source

#### pub fn is_simd(&self) -> bool

source

#### pub fn trait_principal(&self) -> Option<Binder<ExistentialTraitRef>>

source

#### pub fn builtin_index(&self) -> Option<Ty>

Returns the type of `ty[i]` for builtin types.

source

#### pub fn builtin_deref(&self, explicit: bool) -> Option<TypeAndMut>

Returns the type and mutability of `*ty` for builtin types.

The parameter `explicit` indicates if this is an explicit dereference. Some types – notably unsafe ptrs – can only be dereferenced explicitly.

source

#### pub fn fn_sig(&self) -> Option<PolyFnSig>

Get the function signature for function like types (Fn, FnPtr, and Closure)

source

#### pub fn discriminant_ty(&self) -> Option<Ty>

Get the discriminant type for this type.

## Trait Implementations§

source§

### impl Clone for TyKind

source§

#### fn clone(&self) -> TyKind

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 Debug for TyKind

source§

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

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

### impl From<RigidTy> for TyKind

source§

#### fn from(value: RigidTy) -> Self

Converts to this type from the input type.
source§

### impl PartialEq for TyKind

source§

#### fn eq(&self, other: &TyKind) -> 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 Eq for TyKind

source§

### impl StructuralPartialEq for TyKind

## Auto Trait Implementations§

§

### impl Freeze for TyKind

§

### impl RefUnwindSafe for TyKind

§

### impl Send for TyKind

§

### impl Sync for TyKind

§

### impl Unpin for TyKind

§

### impl UnwindSafe for TyKind

## Blanket Implementations§

source§

### impl<T> Any for T
where T: 'static + ?Sized,

source§

#### fn type_id(&self) -> TypeId

Gets the `TypeId` of `self`. Read more
source§

### impl<T> Borrow<T> for T
where T: ?Sized,

source§

#### fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

### impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

#### fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

### impl<T> From<T> for T

source§

#### fn from(t: T) -> T

Returns the argument unchanged.

source§

### impl<T, U> Into<U> for T
where U: From<T>,

source§

#### fn into(self) -> U

Calls `U::from(self)`.

That is, this conversion is whatever the implementation of `From<T> for U` chooses to do.

source§

### impl<T> ToOwned for T
where T: Clone,

§

#### type Owned = T

The resulting type after obtaining ownership.
source§

#### fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

#### fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

### impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

#### type Error = Infallible

The type returned in the event of a conversion error.
source§

#### fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

### impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

#### type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

#### fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.

## 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: 176 bytes

Size for each variant:

- `RigidTy`: 176 bytes
- `Alias`: 48 bytes
- `Param`: 40 bytes
- `Bound`: 56 bytes