Enum rustc_hir::hir::LifetimeName [−][src]
pub enum LifetimeName {
Param(ParamName),
Implicit,
ImplicitObjectLifetimeDefault,
Error,
Underscore,
Static,
}
Variants
Param(ParamName)
User-given names or fresh (synthetic) names.
Tuple Fields of Param
0: ParamName
User wrote nothing (e.g., the lifetime in &u32
).
Implicit lifetime in a context like dyn Foo
. This is
distinguished from implicit lifetimes elsewhere because the
lifetime that they default to must appear elsewhere within the
enclosing type. This means that, in an impl Trait
context, we
don’t have to create a parameter for them. That is, impl Trait<Item = &u32>
expands to an opaque type like type Foo<'a> = impl Trait<Item = &'a u32>
, but impl Trait<item = dyn Bar>
expands to type Foo = impl Trait<Item = dyn Bar + 'static>
. The latter uses ImplicitObjectLifetimeDefault
so
that surrounding code knows not to create a lifetime
parameter.
Indicates an error during lowering (usually '_
in wrong place)
that was already reported.
User wrote specifies '_
.
User wrote 'static
.
Implementations
Trait Implementations
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
Auto Trait Implementations
impl RefUnwindSafe for LifetimeName
impl !Send for LifetimeName
impl !Sync for LifetimeName
impl Unpin for LifetimeName
impl UnwindSafe for LifetimeName
Blanket Implementations
Mutably borrows from an owned value. Read more
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: 16 bytes
Size for each variant:
Param
: 16 bytesImplicit
: 0 bytesImplicitObjectLifetimeDefault
: 0 bytesError
: 0 bytesUnderscore
: 0 bytesStatic
: 0 bytes