Enum rustc_hir::lang_items::LangItem
source · pub enum LangItem {
Show 114 variants
Sized,
Unsize,
StructuralPeq,
StructuralTeq,
Copy,
Clone,
Sync,
DiscriminantKind,
Discriminant,
PointeeTrait,
Metadata,
DynMetadata,
Freeze,
Drop,
Destruct,
CoerceUnsized,
DispatchFromDyn,
TransmuteOpts,
TransmuteTrait,
Add,
Sub,
Mul,
Div,
Rem,
Neg,
Not,
BitXor,
BitAnd,
BitOr,
Shl,
Shr,
AddAssign,
SubAssign,
MulAssign,
DivAssign,
RemAssign,
BitXorAssign,
BitAndAssign,
BitOrAssign,
ShlAssign,
ShrAssign,
Index,
IndexMut,
UnsafeCell,
VaList,
Deref,
DerefMut,
DerefTarget,
Receiver,
Fn,
FnMut,
FnOnce,
FnOnceOutput,
Future,
GeneratorState,
Generator,
Unpin,
Pin,
PartialEq,
PartialOrd,
Panic,
PanicFmt,
PanicDisplay,
ConstPanicFmt,
PanicBoundsCheck,
PanicInfo,
PanicLocation,
PanicImpl,
PanicNoUnwind,
BeginPanic,
ExchangeMalloc,
BoxFree,
DropInPlace,
Oom,
AllocLayout,
Start,
EhPersonality,
EhCatchTypeinfo,
OwnedBox,
PhantomData,
ManuallyDrop,
MaybeUninit,
AlignOffset,
Termination,
Try,
Tuple,
SliceLen,
TryTraitFromResidual,
TryTraitFromOutput,
TryTraitBranch,
TryTraitFromYeet,
PollReady,
PollPending,
FromGenerator,
GetContext,
FuturePoll,
FromFrom,
OptionSome,
OptionNone,
ResultOk,
ResultErr,
ControlFlowContinue,
ControlFlowBreak,
IntoFutureIntoFuture,
IntoIterIntoIter,
IteratorNext,
PinNewUnchecked,
RangeFrom,
RangeFull,
RangeInclusiveStruct,
RangeInclusiveNew,
Range,
RangeToInclusive,
RangeTo,
}Expand description
A representation of all the valid language items in Rust.
Variants
Sized
The sized lang item.
Unsize
The unsize lang item.
StructuralPeq
The structural_peq lang item.
Trait injected by #[derive(PartialEq)], (i.e. “Partial EQ”).
StructuralTeq
The structural_teq lang item.
Trait injected by #[derive(Eq)], (i.e. “Total EQ”; no, I will not apologize).
Copy
The copy lang item.
Clone
The clone lang item.
Sync
The sync lang item.
DiscriminantKind
The discriminant_kind lang item.
Discriminant
The discriminant_type lang item.
The associated item of the [DiscriminantKind] trait.
PointeeTrait
The pointee_trait lang item.
Metadata
The metadata_type lang item.
DynMetadata
The dyn_metadata lang item.
Freeze
The freeze lang item.
Drop
The drop lang item.
Destruct
The destruct lang item.
CoerceUnsized
The coerce_unsized lang item.
DispatchFromDyn
The dispatch_from_dyn lang item.
TransmuteOpts
The transmute_opts lang item.
TransmuteTrait
The transmute_trait lang item.
Add
The add lang item.
Sub
The sub lang item.
Mul
The mul lang item.
Div
The div lang item.
Rem
The rem lang item.
Neg
The neg lang item.
Not
The not lang item.
BitXor
The bitxor lang item.
BitAnd
The bitand lang item.
BitOr
The bitor lang item.
Shl
The shl lang item.
Shr
The shr lang item.
AddAssign
The add_assign lang item.
SubAssign
The sub_assign lang item.
MulAssign
The mul_assign lang item.
DivAssign
The div_assign lang item.
RemAssign
The rem_assign lang item.
BitXorAssign
The bitxor_assign lang item.
BitAndAssign
The bitand_assign lang item.
BitOrAssign
The bitor_assign lang item.
ShlAssign
The shl_assign lang item.
ShrAssign
The shr_assign lang item.
Index
The index lang item.
IndexMut
The index_mut lang item.
UnsafeCell
The unsafe_cell lang item.
VaList
The va_list lang item.
Deref
The deref lang item.
DerefMut
The deref_mut lang item.
DerefTarget
The deref_target lang item.
Receiver
The receiver lang item.
Fn
The Fn lang item.
FnMut
The fn_mut lang item.
FnOnce
The fn_once lang item.
FnOnceOutput
The fn_once_output lang item.
Future
The future_trait lang item.
GeneratorState
The generator_state lang item.
Generator
The generator lang item.
Unpin
The unpin lang item.
Pin
The pin lang item.
PartialEq
The eq lang item.
PartialOrd
The partial_ord lang item.
Panic
The panic lang item.
PanicFmt
The panic_fmt lang item.
PanicDisplay
The panic_display lang item.
ConstPanicFmt
The const_panic_fmt lang item.
PanicBoundsCheck
The panic_bounds_check lang item.
PanicInfo
The panic_info lang item.
PanicLocation
The panic_location lang item.
PanicImpl
The panic_impl lang item.
PanicNoUnwind
The panic_no_unwind lang item.
BeginPanic
The begin_panic lang item.
libstd panic entry point. Necessary for const eval to be able to catch it
ExchangeMalloc
The exchange_malloc lang item.
BoxFree
The box_free lang item.
DropInPlace
The drop_in_place lang item.
Oom
The oom lang item.
AllocLayout
The alloc_layout lang item.
Start
The start lang item.
EhPersonality
The eh_personality lang item.
EhCatchTypeinfo
The eh_catch_typeinfo lang item.
OwnedBox
The owned_box lang item.
PhantomData
The phantom_data lang item.
ManuallyDrop
The manually_drop lang item.
MaybeUninit
The maybe_uninit lang item.
AlignOffset
The align_offset lang item.
Align offset for stride != 1; must not panic.
Termination
The termination lang item.
Try
The Try lang item.
Tuple
The tuple_trait lang item.
SliceLen
The slice_len_fn lang item.
TryTraitFromResidual
The from_residual lang item.
TryTraitFromOutput
The from_output lang item.
TryTraitBranch
The branch lang item.
TryTraitFromYeet
The from_yeet lang item.
PollReady
The Ready lang item.
PollPending
The Pending lang item.
FromGenerator
The from_generator lang item.
GetContext
The get_context lang item.
FuturePoll
The poll lang item.
FromFrom
The from lang item.
OptionSome
The Some lang item.
OptionNone
The None lang item.
ResultOk
The Ok lang item.
ResultErr
The Err lang item.
ControlFlowContinue
The Continue lang item.
ControlFlowBreak
The Break lang item.
IntoFutureIntoFuture
The into_future lang item.
IntoIterIntoIter
The into_iter lang item.
IteratorNext
The next lang item.
PinNewUnchecked
The new_unchecked lang item.
RangeFrom
The RangeFrom lang item.
RangeFull
The RangeFull lang item.
RangeInclusiveStruct
The RangeInclusive lang item.
RangeInclusiveNew
The range_inclusive_new lang item.
Range
The Range lang item.
RangeToInclusive
The RangeToInclusive lang item.
RangeTo
The RangeTo lang item.
Implementations
sourceimpl LangItem
impl LangItem
sourcepub fn name(self) -> Symbol
pub fn name(self) -> Symbol
Returns the name symbol in #[lang = "$name"].
For example, LangItem::PartialEq.name()
would result in sym::eq since it is #[lang = "eq"].
sourcepub fn group(self) -> Option<LangItemGroup>
pub fn group(self) -> Option<LangItemGroup>
The group that this lang item belongs to,
or None if it doesn’t belong to a group.
pub fn required_generics(&self) -> GenericRequirement
Trait Implementations
sourceimpl<CTX> HashStable<CTX> for LangItem
impl<CTX> HashStable<CTX> for LangItem
fn hash_stable(&self, _: &mut CTX, hasher: &mut StableHasher)
impl Copy for LangItem
impl Eq for LangItem
impl StructuralEq for LangItem
impl StructuralPartialEq for LangItem
Auto Trait Implementations
impl RefUnwindSafe for LangItem
impl Send for LangItem
impl Sync for LangItem
impl Unpin for LangItem
impl UnwindSafe for LangItem
Blanket Implementations
sourceimpl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
fn allocate_on(self, arena: &'a Arena<'tcx>) -> &'a mut T
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 Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
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: 1 byte
Size for each variant:
Sized: 0 bytesUnsize: 0 bytesStructuralPeq: 0 bytesStructuralTeq: 0 bytesCopy: 0 bytesClone: 0 bytesSync: 0 bytesDiscriminantKind: 0 bytesDiscriminant: 0 bytesPointeeTrait: 0 bytesMetadata: 0 bytesDynMetadata: 0 bytesFreeze: 0 bytesDrop: 0 bytesDestruct: 0 bytesCoerceUnsized: 0 bytesDispatchFromDyn: 0 bytesTransmuteOpts: 0 bytesTransmuteTrait: 0 bytesAdd: 0 bytesSub: 0 bytesMul: 0 bytesDiv: 0 bytesRem: 0 bytesNeg: 0 bytesNot: 0 bytesBitXor: 0 bytesBitAnd: 0 bytesBitOr: 0 bytesShl: 0 bytesShr: 0 bytesAddAssign: 0 bytesSubAssign: 0 bytesMulAssign: 0 bytesDivAssign: 0 bytesRemAssign: 0 bytesBitXorAssign: 0 bytesBitAndAssign: 0 bytesBitOrAssign: 0 bytesShlAssign: 0 bytesShrAssign: 0 bytesIndex: 0 bytesIndexMut: 0 bytesUnsafeCell: 0 bytesVaList: 0 bytesDeref: 0 bytesDerefMut: 0 bytesDerefTarget: 0 bytesReceiver: 0 bytesFn: 0 bytesFnMut: 0 bytesFnOnce: 0 bytesFnOnceOutput: 0 bytesFuture: 0 bytesGeneratorState: 0 bytesGenerator: 0 bytesUnpin: 0 bytesPin: 0 bytesPartialEq: 0 bytesPartialOrd: 0 bytesPanic: 0 bytesPanicFmt: 0 bytesPanicDisplay: 0 bytesConstPanicFmt: 0 bytesPanicBoundsCheck: 0 bytesPanicInfo: 0 bytesPanicLocation: 0 bytesPanicImpl: 0 bytesPanicNoUnwind: 0 bytesBeginPanic: 0 bytesExchangeMalloc: 0 bytesBoxFree: 0 bytesDropInPlace: 0 bytesOom: 0 bytesAllocLayout: 0 bytesStart: 0 bytesEhPersonality: 0 bytesEhCatchTypeinfo: 0 bytesOwnedBox: 0 bytesPhantomData: 0 bytesManuallyDrop: 0 bytesMaybeUninit: 0 bytesAlignOffset: 0 bytesTermination: 0 bytesTry: 0 bytesTuple: 0 bytesSliceLen: 0 bytesTryTraitFromResidual: 0 bytesTryTraitFromOutput: 0 bytesTryTraitBranch: 0 bytesTryTraitFromYeet: 0 bytesPollReady: 0 bytesPollPending: 0 bytesFromGenerator: 0 bytesGetContext: 0 bytesFuturePoll: 0 bytesFromFrom: 0 bytesOptionSome: 0 bytesOptionNone: 0 bytesResultOk: 0 bytesResultErr: 0 bytesControlFlowContinue: 0 bytesControlFlowBreak: 0 bytesIntoFutureIntoFuture: 0 bytesIntoIterIntoIter: 0 bytesIteratorNext: 0 bytesPinNewUnchecked: 0 bytesRangeFrom: 0 bytesRangeFull: 0 bytesRangeInclusiveStruct: 0 bytesRangeInclusiveNew: 0 bytesRange: 0 bytesRangeToInclusive: 0 bytesRangeTo: 0 bytes