1use crate::token::{Span, TokenTree};
2
3pub struct ParsedStruct {
4 pub name: String,
5 pub fields: Vec<ParsedField>,
6 pub span: Span
7}
8
9pub struct ParsedEnum {
10 pub name: String,
11 pub variants: Vec<ParsedVariant>,
12 pub span: Span
13}
14
15pub struct ParsedField {
16 pub name: Option<String>,
17 pub ty: Vec<TokenTree>,
18 pub span: Span
19}
20
21pub struct ParsedVariant {
22 pub name: String,
23 pub index: u32,
24 pub data: VariantData,
25 pub span: Span
26}
27
28pub enum VariantData {
29 Unit(Span),
30 Tuple(Vec<ParsedField>, Span),
31 Struct(Vec<ParsedField>, Span)
32}