pub enum TransItemSourceKind {
Show 15 variants
Global,
TraitDecl,
TraitImpl(TraitImplSource),
Fun,
Type,
InherentImpl,
Module,
ClosureMethod(ClosureKind),
ClosureAsFnCast,
EmptyDropMethod,
DropInPlaceMethod(Option<TraitImplSource>),
VTable,
VTableInstance(TraitImplSource),
VTableInstanceInitializer(TraitImplSource),
VTableMethod,
}
Expand description
The kind of a TransItemSource
.
Variants§
Global
TraitDecl
TraitImpl(TraitImplSource)
Fun
Type
InherentImpl
We don’t translate these as proper items, but we translate them a bit in names.
Module
We don’t translate these as proper items, but we use them to explore the crate.
ClosureMethod(ClosureKind)
The call_*
method of the appropriate TraitImplSource::Closure
impl.
ClosureAsFnCast
A cast of a state-less closure as a function pointer.
EmptyDropMethod
The drop
method of a TraitImplSource::ImplicitDrop
trait impl; that method does
nothing.
DropInPlaceMethod(Option<TraitImplSource>)
The drop_in_place
method of a Drop
impl or decl. It contains the drop glue that calls
Drop::drop
for the type and then drops its fields. if the TraitImplSource
is None
this is the method declaration (and the DefId is that of the Drop
trait), otherwise this
is a method implementation (and the DefId is either that of a impl Drop for Foo
impl, or
that of an ADT in case of an implicit Drop
impl).
VTable
The virtual table struct definition for a trait. The DefId
is that of the trait.
VTableInstance(TraitImplSource)
The static vtable value for a specific impl.
VTableInstanceInitializer(TraitImplSource)
The initializer function of the VTableInstance
.
VTableMethod
Shim function to store a method in a vtable; give a method with self: Ptr<Self>
argument,
this takes a Ptr<dyn Trait>
and forwards to the method. The DefId
refers to the method
implementation.
Implementations§
Source§impl TransItemSourceKind
impl TransItemSourceKind
pub fn variant_index_arity(&self) -> (u32, usize)
Trait Implementations§
Source§impl Clone for TransItemSourceKind
impl Clone for TransItemSourceKind
Source§fn clone(&self) -> TransItemSourceKind
fn clone(&self) -> TransItemSourceKind
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for TransItemSourceKind
impl Debug for TransItemSourceKind
Source§impl Hash for TransItemSourceKind
impl Hash for TransItemSourceKind
Source§impl Ord for TransItemSourceKind
impl Ord for TransItemSourceKind
Source§fn cmp(&self, other: &TransItemSourceKind) -> Ordering
fn cmp(&self, other: &TransItemSourceKind) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for TransItemSourceKind
impl PartialEq for TransItemSourceKind
Source§impl PartialOrd for TransItemSourceKind
impl PartialOrd for TransItemSourceKind
impl Eq for TransItemSourceKind
impl StructuralPartialEq for TransItemSourceKind
Auto Trait Implementations§
impl Freeze for TransItemSourceKind
impl RefUnwindSafe for TransItemSourceKind
impl Send for TransItemSourceKind
impl Sync for TransItemSourceKind
impl Unpin for TransItemSourceKind
impl UnwindSafe for TransItemSourceKind
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<I, T> ExtractContext<I, ()> for T
impl<I, T> ExtractContext<I, ()> for T
§fn extract_context(self, _original_input: I)
fn extract_context(self, _original_input: I)
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more