pub struct Generics<'hir> {
pub params: &'hir [GenericParam<'hir>],
pub predicates: &'hir [WherePredicate<'hir>],
pub has_where_clause: 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: boolwhere_clause_span: Spanspan: SpanImplementations
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.
pub fn where_clause_span(&self) -> Option<Span>
sourcepub fn span_for_predicates_or_empty_place(&self) -> Span
pub fn span_for_predicates_or_empty_place(&self) -> Span
The where_span under normal circumstances points at either the predicates or the empty
space where the where clause should be. Only of use for diagnostic suggestions.
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 bounds_for_param(
&self,
param_def_id: LocalDefId
) -> impl Iterator<Item = &WhereBoundPredicate<'hir>>
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<'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 T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
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