java_lang/ast/
generics.rs1use crate::{ident::Ident, span::Span};
4
5use super::{attribute::Annotation, path::Path};
6
7#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9pub struct TypeParameters {
10 pub params: Vec<TypeParameter>,
11 pub lt_span: Span,
12 pub gt_spans: Vec<Span>,
13}
14
15#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17pub struct TypeParameter {
18 pub annotations: Vec<Annotation>,
19 pub name: Ident,
20 pub bound: Option<TypeBound>,
21 pub span: Span,
22}
23
24#[derive(Debug, Clone, PartialEq, Eq, Hash)]
26pub struct TypeBound {
27 pub first: Path,
28 pub additional: Vec<Path>,
29 pub extends_span: Span,
30}