pub struct Generics<'hir> {
pub params: &'hir [GenericParam<'hir>],
pub predicates: &'hir [WherePredicate<'hir>],
pub has_where_clause_predicates: bool,
pub where_clause_span: Span,
pub span: Span,
}
Expand description
Represents lifetimes and type parameters attached to a declaration of a function, enum, trait, etc.
Fields
params: &'hir [GenericParam<'hir>]
predicates: &'hir [WherePredicate<'hir>]
has_where_clause_predicates: bool
where_clause_span: Span
span: Span
Implementations
sourceimpl<'hir> Generics<'hir>
impl<'hir> Generics<'hir>
pub const fn empty() -> &'hir Generics<'hir>
pub fn get_named(&self, name: Symbol) -> Option<&GenericParam<'hir>>
pub fn spans(&self) -> MultiSpan
sourcepub fn span_for_param_suggestion(&self) -> Option<Span>
pub fn span_for_param_suggestion(&self) -> Option<Span>
If there are generic parameters, return where to introduce a new one.
sourcepub fn tail_span_for_predicate_suggestion(&self) -> Span
pub fn tail_span_for_predicate_suggestion(&self) -> Span
Span
where further predicates would be suggested, accounting for trailing commas, like
in fn foo<T>(t: T) where T: Foo,
so we don’t suggest two trailing commas.
pub fn add_where_or_trailing_comma(&self) -> &'static str
pub fn bounds_for_param(
&self,
param_def_id: LocalDefId
) -> impl Iterator<Item = &WhereBoundPredicate<'hir>>
pub fn outlives_for_param(
&self,
param_def_id: LocalDefId
) -> impl Iterator<Item = &WhereRegionPredicate<'_>>
pub fn bounds_span_for_suggestions(
&self,
param_def_id: LocalDefId
) -> Option<Span>
pub fn span_for_predicate_removal(&self, pos: usize) -> Span
pub fn span_for_bound_removal(
&self,
predicate_pos: usize,
bound_pos: usize
) -> Span
Trait Implementations
sourceimpl<'tcx> ArenaAllocatable<'tcx, IsNotCopy> for Generics<'tcx>
impl<'tcx> ArenaAllocatable<'tcx, IsNotCopy> for Generics<'tcx>
fn allocate_on<'a>(self, arena: &'a Arena<'tcx>) -> &'a mut Self
fn allocate_from_iter<'a>(
arena: &'a Arena<'tcx>,
iter: impl IntoIterator<Item = Self>
) -> &'a mut [Self]ⓘNotable traits for &[u8]impl Read for &[u8]impl Write for &mut [u8]
sourceimpl<'hir, __CTX> HashStable<__CTX> for Generics<'hir>where
__CTX: HashStableContext,
impl<'hir, __CTX> HashStable<__CTX> for Generics<'hir>where
__CTX: HashStableContext,
fn hash_stable(&self, __hcx: &mut __CTX, __hasher: &mut StableHasher)
Auto Trait Implementations
impl<'hir> RefUnwindSafe for Generics<'hir>
impl<'hir> !Send for Generics<'hir>
impl<'hir> !Sync for Generics<'hir>
impl<'hir> Unpin for Generics<'hir>
impl<'hir> UnwindSafe for Generics<'hir>
Blanket Implementations
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
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: 56 bytes