[][src]Struct c2rust_refactor::analysis::labeled_ty::LabeledTyS

pub struct LabeledTyS<'lty, 'tcx: 'lty, L: 'lty> {
    pub ty: Ty<'tcx>,
    pub args: &'lty [LabeledTy<'lty, 'tcx, L>],
    pub label: L,
}

The actual data for a labeled type.

This struct shouldn't be constructed directly - instead, use LabeledTyCtxt methods to build instances inside the tcx arena and return LabeledTy references.

Labeled types have to mimic the tree structure of the underlying Ty, so that each type constructor in the tree can have its own label. But maintaining a custom copy of TyKind would be annoying, so instead, we let labeled types form arbitrary trees, and make the LabeledTyCtxt responsible for making those trees match the Ty's structure.

Fields

ty: Ty<'tcx>

The underlying type.

args: &'lty [LabeledTy<'lty, 'tcx, L>]

The arguments of this type constructor. The number and meaning of these arguments depends on which type constructor this is (specifically, which TyKind variant is used for self.ty.sty).

label: L

The label for the current type constructor.

Methods

impl<'lty, 'tcx, L> LabeledTyS<'lty, 'tcx, L>[src]

pub fn for_each_label<F: FnMut(&'lty L)>(&'lty self, callback: &mut F)[src]

Trait Implementations

impl<'lty, 'tcx, L: Debug> Signature<&'lty LabeledTyS<'lty, 'tcx, L>> for FnSig<'lty, 'tcx, L>[src]

impl<'lty, 'tcx: 'lty, L: Eq + 'lty> Eq for LabeledTyS<'lty, 'tcx, L>[src]

impl<'lty, 'tcx: 'lty, L: PartialEq + 'lty> PartialEq<LabeledTyS<'lty, 'tcx, L>> for LabeledTyS<'lty, 'tcx, L>[src]

impl<'lty, 'tcx: 'lty, L: Clone + 'lty> Clone for LabeledTyS<'lty, 'tcx, L>[src]

default fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl<'lty, 'tcx, L: Debug> Debug for LabeledTyS<'lty, 'tcx, L>[src]

Auto Trait Implementations

impl<'lty, 'tcx, L> !Send for LabeledTyS<'lty, 'tcx, L>

impl<'lty, 'tcx, L> !Sync for LabeledTyS<'lty, 'tcx, L>

Blanket Implementations

impl<T> Lone for T[src]

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

type Owned = T

impl<T> From for T[src]

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

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

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

impl<T, U> TryInto 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<E> SpecializationError for E[src]

impl<T> Erased for T[src]

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

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

impl<T> Same for T

type Output = T

Should always be Self

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

impl<T> MaybeResult for T[src]

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

impl<T> Erased for T

impl<T> Make for T[src]

impl<T> Slottable for T[src]