[][src]Struct rustc::ty::subst::GenericArg

pub struct GenericArg<'tcx> {
    ptr: NonZeroUsize,
    marker: PhantomData<(Ty<'tcx>, Region<'tcx>, &'tcx Const<'tcx>)>,
}
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

An entity in the Rust type system, which can be one of several kinds (types, lifetimes, and consts). To reduce memory usage, a GenericArg is a interned pointer, with the lowest 2 bits being reserved for a tag to indicate the type (Ty, Region, or Const) it points to.

Fields

ptr: NonZeroUsize
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

marker: PhantomData<(Ty<'tcx>, Region<'tcx>, &'tcx Const<'tcx>)>
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Methods

impl<'tcx> GenericArg<'tcx>[src]

pub fn unpack(self) -> GenericArgKind<'tcx>[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

pub fn expect_ty(self) -> Ty<'tcx>[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Unpack the GenericArg as a type when it is known certainly to be a type. This is true in cases where Substs is used in places where the kinds are known to be limited (e.g. in tuples, where the only parameters are type parameters).

Trait Implementations

impl<'tcx> Clone for GenericArg<'tcx>[src]

impl<'tcx> Copy for GenericArg<'tcx>[src]

impl<'tcx> Debug for GenericArg<'tcx>[src]

impl<'tcx> Decodable for GenericArg<'tcx>[src]

impl<'tcx> Display for GenericArg<'tcx>[src]

impl<'tcx> Encodable for GenericArg<'tcx>[src]

impl<'tcx> Eq for GenericArg<'tcx>[src]

impl<'tcx> From<&'tcx Const<'tcx>> for GenericArg<'tcx>[src]

impl<'tcx> From<&'tcx RegionKind> for GenericArg<'tcx>[src]

impl<'tcx> From<&'tcx TyS<'tcx>> for GenericArg<'tcx>[src]

impl<'tcx> Hash for GenericArg<'tcx>[src]

impl<'a, 'tcx> HashStable<StableHashingContext<'a>> for GenericArg<'tcx>[src]

impl<'a, 'tcx> Lift<'tcx> for GenericArg<'a>[src]

type Lifted = GenericArg<'tcx>

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

impl<'tcx> Ord for GenericArg<'tcx>[src]

impl<'tcx> PartialEq<GenericArg<'tcx>> for GenericArg<'tcx>[src]

impl<'tcx> PartialOrd<GenericArg<'tcx>> for GenericArg<'tcx>[src]

impl<'tcx, P: PrettyPrinter<'tcx>> Print<'tcx, P> for GenericArg<'tcx>[src]

type Output = P

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

type Error = Error

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

impl<'tcx> Relate<'tcx> for GenericArg<'tcx>[src]

impl<'tcx> StructuralEq for GenericArg<'tcx>[src]

impl<'tcx> StructuralPartialEq for GenericArg<'tcx>[src]

impl<'tcx> TypeFoldable<'tcx> for GenericArg<'tcx>[src]

Auto Trait Implementations

impl<'tcx> !RefUnwindSafe for GenericArg<'tcx>

impl<'tcx> !Send for GenericArg<'tcx>

impl<'tcx> !Sync for GenericArg<'tcx>

impl<'tcx> Unpin for GenericArg<'tcx>

impl<'tcx> !UnwindSafe for GenericArg<'tcx>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> ArenaAllocatable for T where
    T: Copy
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<'a, T> Captures<'a> for T where
    T: ?Sized
[src]

impl<T> Decodable for T where
    T: UseSpecializedDecodable
[src]

impl<T> Encodable for T where
    T: UseSpecializedEncodable + ?Sized
[src]

impl<Q, K> Equivalent<K> for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

impl<T> Erased for T[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> MaybeResult<T> for T[src]

type Error = !

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

impl<E> SpecializationError for E[src]

impl<'tcx, T> Subst<'tcx> for T where
    T: TypeFoldable<'tcx>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> WithConstness for T[src]