pub struct Canonical<'tcx, V> {
pub max_universe: UniverseIndex,
pub variables: &'tcx List<CanonicalVarInfo<'tcx>>,
pub value: V,
}Expand description
A “canonicalized” type V is one where all free inference
variables have been rewritten to “canonical vars”. These are
numbered starting from 0 in order of first appearance.
Fields
max_universe: UniverseIndexvariables: &'tcx List<CanonicalVarInfo<'tcx>>value: VAuto Trait Implementations
impl<'tcx, V> !RefUnwindSafe for Canonical<'tcx, V>
impl<'tcx, V> Send for Canonical<'tcx, V> where
V: Send,
impl<'tcx, V> Sync for Canonical<'tcx, V> where
V: Sync,
impl<'tcx, V> Unpin for Canonical<'tcx, V> where
V: Unpin,
impl<'tcx, V> !UnwindSafe for Canonical<'tcx, V>
Blanket Implementations
sourceimpl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for T where
T: Copy,
impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for T where
T: Copy,
pub fn allocate_on(self, arena: &'a Arena<'tcx>) -> &'a mut T
pub fn allocate_from_iter(
arena: &'a Arena<'tcx>,
iter: impl IntoIterator<Item = T>
) -> &'a mut [T]ⓘNotable traits for &'_ [u8]impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<'tcx, T> Subst<'tcx> for T where
T: TypeFoldable<'tcx>,
impl<'tcx, T> Subst<'tcx> for T where
T: TypeFoldable<'tcx>,
pub fn subst_spanned(
self,
tcx: TyCtxt<'tcx>,
substs: &[GenericArg<'tcx>],
span: Option<Span>
) -> T
fn subst(self, tcx: TyCtxt<'tcx>, substs: &[GenericArg<'tcx>]) -> Self
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
🔬 This is a nightly-only experimental API. (
toowned_clone_into)Uses borrowed data to replace owned data, usually by cloning. Read more
Layout
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.