spyne_syntax/
ast.rs

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}