#![cfg_attr(rustfmt, rustfmt::skip)]
use crate::*;
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum AttrStyle {
Outer,
Inner,
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
#[non_exhaustive]
pub enum BinOp {
#[serde(rename = "+")]
Add,
#[serde(rename = "-")]
Sub,
#[serde(rename = "*")]
Mul,
#[serde(rename = "/")]
Div,
#[serde(rename = "%")]
Rem,
#[serde(rename = "&&")]
And,
#[serde(rename = "||")]
Or,
#[serde(rename = "^")]
BitXor,
#[serde(rename = "&")]
BitAnd,
#[serde(rename = "|")]
BitOr,
#[serde(rename = "<<")]
Shl,
#[serde(rename = ">>")]
Shr,
#[serde(rename = "==")]
Eq,
#[serde(rename = "<")]
Lt,
#[serde(rename = "<=")]
Le,
#[serde(rename = "!=")]
Ne,
#[serde(rename = ">=")]
Ge,
#[serde(rename = ">")]
Gt,
#[serde(rename = "+=")]
AddAssign,
#[serde(rename = "-=")]
SubAssign,
#[serde(rename = "*=")]
MulAssign,
#[serde(rename = "/=")]
DivAssign,
#[serde(rename = "%=")]
RemAssign,
#[serde(rename = "^=")]
BitXorAssign,
#[serde(rename = "&=")]
BitAndAssign,
#[serde(rename = "|=")]
BitOrAssign,
#[serde(rename = "<<=")]
ShlAssign,
#[serde(rename = ">>=")]
ShrAssign,
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
#[non_exhaustive]
pub enum Expr {
Array(ExprArray),
Assign(ExprAssign),
Async(ExprAsync),
Await(ExprAwait),
Binary(ExprBinary),
Block(ExprBlock),
Break(ExprBreak),
Call(ExprCall),
Cast(ExprCast),
Closure(ExprClosure),
Const(ExprConst),
Continue(ExprContinue),
Field(ExprField),
ForLoop(ExprForLoop),
Group(ExprGroup),
If(ExprIf),
Index(ExprIndex),
Infer(ExprInfer),
Let(ExprLet),
Lit(ExprLit),
Loop(ExprLoop),
Macro(ExprMacro),
Match(ExprMatch),
MethodCall(ExprMethodCall),
Paren(ExprParen),
Path(ExprPath),
Range(ExprRange),
Reference(ExprReference),
Repeat(ExprRepeat),
Return(ExprReturn),
Struct(ExprStruct),
Try(ExprTry),
TryBlock(ExprTryBlock),
Tuple(ExprTuple),
Unary(ExprUnary),
Unsafe(ExprUnsafe),
Verbatim(TokenStream),
While(ExprWhile),
Yield(ExprYield),
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
#[non_exhaustive]
pub enum FieldMutability {
None,
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum Fields {
Named(FieldsNamed),
Unnamed(FieldsUnnamed),
Unit,
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum FnArg {
Receiver(Receiver),
Typed(PatType),
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
#[non_exhaustive]
pub enum ForeignItem {
Fn(ForeignItemFn),
Static(ForeignItemStatic),
Type(ForeignItemType),
Macro(ForeignItemMacro),
Verbatim(TokenStream),
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
#[non_exhaustive]
pub enum GenericArgument {
Lifetime(Lifetime),
Type(Type),
Const(Expr),
AssocType(AssocType),
AssocConst(AssocConst),
Constraint(Constraint),
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum GenericParam {
Lifetime(LifetimeParam),
Type(TypeParam),
Const(ConstParam),
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
#[non_exhaustive]
pub enum ImplItem {
Const(ImplItemConst),
Fn(ImplItemFn),
Type(ImplItemType),
Macro(ImplItemMacro),
Verbatim(TokenStream),
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
#[non_exhaustive]
pub enum ImplRestriction {}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
#[non_exhaustive]
pub enum Item {
Const(ItemConst),
Enum(ItemEnum),
ExternCrate(ItemExternCrate),
Fn(ItemFn),
ForeignMod(ItemForeignMod),
Impl(ItemImpl),
Macro(ItemMacro),
Mod(ItemMod),
Static(ItemStatic),
Struct(ItemStruct),
Trait(ItemTrait),
TraitAlias(ItemTraitAlias),
Type(ItemType),
Union(ItemUnion),
Use(ItemUse),
Verbatim(TokenStream),
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
#[non_exhaustive]
pub enum Lit {
Str(LitStr),
ByteStr(LitByteStr),
Byte(LitByte),
Char(LitChar),
Int(LitInt),
Float(LitFloat),
Bool(LitBool),
Verbatim(Literal),
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum MacroDelimiter {
Paren,
Brace,
Bracket,
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum Member {
#[serde(rename = "ident")]
Named(Ident),
#[serde(rename = "index")]
Unnamed(Index),
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum Meta {
Path(Path),
List(MetaList),
NameValue(MetaNameValue),
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
#[non_exhaustive]
pub enum Pat {
Const(ExprConst),
Ident(PatIdent),
Lit(ExprLit),
Macro(ExprMacro),
Or(PatOr),
Paren(PatParen),
Path(ExprPath),
Range(ExprRange),
Reference(PatReference),
Rest(PatRest),
Slice(PatSlice),
Struct(PatStruct),
Tuple(PatTuple),
TupleStruct(PatTupleStruct),
Type(PatType),
Verbatim(TokenStream),
#[serde(rename = "_")]
Wild(PatWild),
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum PathArguments {
None,
AngleBracketed(AngleBracketedGenericArguments),
Parenthesized(ParenthesizedGenericArguments),
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum RangeLimits {
#[serde(rename = "..")]
HalfOpen,
#[serde(rename = "..=")]
Closed,
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
#[non_exhaustive]
pub enum StaticMutability {
#[serde(rename = "mut")]
Mut,
None,
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum TraitBoundModifier {
None,
Maybe,
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
#[non_exhaustive]
pub enum TraitItem {
Const(TraitItemConst),
Fn(TraitItemFn),
Type(TraitItemType),
Macro(TraitItemMacro),
Verbatim(TokenStream),
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
#[non_exhaustive]
pub enum Type {
Array(TypeArray),
BareFn(TypeBareFn),
Group(TypeGroup),
ImplTrait(TypeImplTrait),
#[serde(rename = "_")]
Infer,
Macro(TypeMacro),
#[serde(rename = "!")]
Never,
Paren(TypeParen),
Path(TypePath),
Ptr(TypePtr),
Reference(TypeReference),
Slice(TypeSlice),
TraitObject(TypeTraitObject),
Tuple(TypeTuple),
Verbatim(TokenStream),
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
#[non_exhaustive]
pub enum TypeParamBound {
Trait(TraitBound),
Lifetime(Lifetime),
Verbatim(TokenStream),
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
#[non_exhaustive]
pub enum UnOp {
#[serde(rename = "*")]
Deref,
#[serde(rename = "!")]
Not,
#[serde(rename = "-")]
Neg,
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum UseTree {
Path(UsePath),
#[serde(rename = "ident")]
Name(UseName),
Rename(UseRename),
#[serde(rename = "*")]
Glob,
Group(UseGroup),
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum Visibility {
#[serde(rename = "pub")]
Public,
Restricted(VisRestricted),
Inherited,
}
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
#[non_exhaustive]
pub enum WherePredicate {
Lifetime(PredicateLifetime),
Type(PredicateType),
}