Generate JSON file of all syn types
The JSON file can be used by third party libs to build tools that
consume `syn` types.
diff --git a/codegen/Cargo.toml b/codegen/Cargo.toml
index 5de995a..ec524c7 100644
--- a/codegen/Cargo.toml
+++ b/codegen/Cargo.toml
@@ -12,6 +12,10 @@
inflections = "1.1"
proc-macro2 = "0.4"
rustfmt-nightly = { git = "https://github.com/rust-lang-nursery/rustfmt" }
+serde = "1.0.87"
+serde_derive = "1.0.87"
+serde_json = "1.0.38"
+toml = "0.4.10"
[workspace]
# Prefer that `cargo clean` in syn's directory does not require a rebuild of
diff --git a/codegen/src/json.rs b/codegen/src/json.rs
new file mode 100644
index 0000000..e1b641d
--- /dev/null
+++ b/codegen/src/json.rs
@@ -0,0 +1,39 @@
+use crate::types;
+
+use std::fs::File;
+use std::io::prelude::*;
+use std::path::Path;
+
+pub fn generate(types: &[types::TypeDef]) {
+ let codegen_root = Path::new(env!("CARGO_MANIFEST_DIR"));
+
+ let mut f = File::open(codegen_root.join("../Cargo.toml")).unwrap();
+ let mut s = String::new();
+ f.read_to_string(&mut s).unwrap();
+
+ let manifest: Manifest = toml::from_str(&s).unwrap();
+
+ let f = ::std::fs::File::create(codegen_root.join("../syn.json")).unwrap();
+
+ serde_json::to_writer_pretty(f, &Introspect {
+ version: &manifest.package.version,
+ types,
+ }).unwrap();
+}
+
+#[derive(Debug, Deserialize)]
+struct Manifest {
+ package: Package,
+}
+
+#[derive(Debug, Deserialize)]
+struct Package {
+ version: String,
+}
+
+#[derive(Debug, Serialize)]
+struct Introspect<'a> {
+ /// The `syn` version used to generate the introspection file
+ version: &'a str,
+ types: &'a [types::TypeDef],
+}
diff --git a/codegen/src/main.rs b/codegen/src/main.rs
index fa577cb..1860211 100644
--- a/codegen/src/main.rs
+++ b/codegen/src/main.rs
@@ -20,12 +20,19 @@
extern crate rustfmt_nightly as rustfmt;
#[macro_use]
extern crate syn;
+extern crate serde;
+#[macro_use]
+extern crate serde_derive;
+extern crate serde_json;
+extern crate toml;
mod gen;
+mod json;
mod parse;
mod types;
fn main() {
let types = parse::parse();
gen::generate(&types);
+ json::generate(&types);
}
diff --git a/codegen/src/types.rs b/codegen/src/types.rs
index 76c3773..3770f41 100644
--- a/codegen/src/types.rs
+++ b/codegen/src/types.rs
@@ -1,12 +1,13 @@
use std::ops;
-#[derive(Debug)]
+#[derive(Debug, Serialize)]
+#[serde(rename_all = "snake_case")]
pub enum TypeDef {
Struct(Struct),
Enum(Enum),
}
-#[derive(Debug)]
+#[derive(Debug, Serialize)]
pub struct Struct {
ident: String,
features: Features,
@@ -14,26 +15,27 @@
all_fields_pub: bool,
}
-#[derive(Debug)]
+#[derive(Debug, Serialize)]
pub struct Enum {
ident: String,
features: Features,
variants: Vec<Variant>,
}
-#[derive(Debug)]
+#[derive(Debug, Serialize)]
pub struct Variant {
ident: String,
fields: Vec<Type>,
}
-#[derive(Debug)]
+#[derive(Debug, Serialize)]
pub struct Field {
ident: String,
ty: Type,
}
-#[derive(Debug)]
+#[derive(Debug, Serialize)]
+#[serde(rename_all = "snake_case")]
pub enum Type {
/// Type defined by `syn`
Item(String),
@@ -58,13 +60,13 @@
Tuple(Vec<Type>),
}
-#[derive(Debug, Clone)]
+#[derive(Debug, Clone, Serialize)]
pub struct Token {
repr: String,
ty: String,
}
-#[derive(Debug, Default, Clone)]
+#[derive(Debug, Default, Clone, Serialize)]
pub struct Features {
any: Vec<String>,
}
@@ -168,10 +170,6 @@
pub fn repr(&self) -> &str {
&self.repr
}
-
- pub fn ty(&self) -> &str {
- &self.ty
- }
}
impl Features {
diff --git a/syn.json b/syn.json
new file mode 100644
index 0000000..9db26ba
--- /dev/null
+++ b/syn.json
@@ -0,0 +1,9691 @@
+{
+ "version": "0.15.26",
+ "types": [
+ {
+ "struct": {
+ "ident": "Abi",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "extern_token",
+ "ty": {
+ "token": {
+ "repr": "extern",
+ "ty": "Extern"
+ }
+ }
+ },
+ {
+ "ident": "name",
+ "ty": {
+ "option": {
+ "item": "LitStr"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "AngleBracketedGenericArguments",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "colon2_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "::",
+ "ty": "Colon2"
+ }
+ }
+ }
+ },
+ {
+ "ident": "lt_token",
+ "ty": {
+ "token": {
+ "repr": "<",
+ "ty": "Lt"
+ }
+ }
+ },
+ {
+ "ident": "args",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "GenericArgument"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ },
+ {
+ "ident": "gt_token",
+ "ty": {
+ "token": {
+ "repr": ">",
+ "ty": "Gt"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ArgCaptured",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "pat",
+ "ty": {
+ "item": "Pat"
+ }
+ },
+ {
+ "ident": "colon_token",
+ "ty": {
+ "token": {
+ "repr": ":",
+ "ty": "Colon"
+ }
+ }
+ },
+ {
+ "ident": "ty",
+ "ty": {
+ "item": "Type"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ArgSelf",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "mutability",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "mut",
+ "ty": "Mut"
+ }
+ }
+ }
+ },
+ {
+ "ident": "self_token",
+ "ty": {
+ "token": {
+ "repr": "self",
+ "ty": "SelfValue"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ArgSelfRef",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "and_token",
+ "ty": {
+ "token": {
+ "repr": "&",
+ "ty": "And"
+ }
+ }
+ },
+ {
+ "ident": "lifetime",
+ "ty": {
+ "option": {
+ "item": "Lifetime"
+ }
+ }
+ },
+ {
+ "ident": "mutability",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "mut",
+ "ty": "Mut"
+ }
+ }
+ }
+ },
+ {
+ "ident": "self_token",
+ "ty": {
+ "token": {
+ "repr": "self",
+ "ty": "SelfValue"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "Arm",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "leading_vert",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "|",
+ "ty": "Or"
+ }
+ }
+ }
+ },
+ {
+ "ident": "pats",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "Pat"
+ },
+ {
+ "repr": "|",
+ "ty": "Or"
+ }
+ ]
+ }
+ },
+ {
+ "ident": "guard",
+ "ty": {
+ "option": {
+ "tuple": [
+ {
+ "token": {
+ "repr": "if",
+ "ty": "If"
+ }
+ },
+ {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "ident": "fat_arrow_token",
+ "ty": {
+ "token": {
+ "repr": "=>",
+ "ty": "FatArrow"
+ }
+ }
+ },
+ {
+ "ident": "body",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ },
+ {
+ "ident": "comma",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "enum": {
+ "ident": "AttrStyle",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Outer",
+ "fields": []
+ },
+ {
+ "ident": "Inner",
+ "fields": [
+ {
+ "token": {
+ "repr": "!",
+ "ty": "Bang"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "struct": {
+ "ident": "Attribute",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "pound_token",
+ "ty": {
+ "token": {
+ "repr": "#",
+ "ty": "Pound"
+ }
+ }
+ },
+ {
+ "ident": "style",
+ "ty": {
+ "item": "AttrStyle"
+ }
+ },
+ {
+ "ident": "bracket_token",
+ "ty": {
+ "token_group": "Bracket"
+ }
+ },
+ {
+ "ident": "path",
+ "ty": {
+ "item": "Path"
+ }
+ },
+ {
+ "ident": "tts",
+ "ty": {
+ "ext": "TokenStream"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "BareFnArg",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "name",
+ "ty": {
+ "option": {
+ "tuple": [
+ {
+ "item": "BareFnArgName"
+ },
+ {
+ "token": {
+ "repr": ":",
+ "ty": "Colon"
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "ident": "ty",
+ "ty": {
+ "item": "Type"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "enum": {
+ "ident": "BareFnArgName",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Named",
+ "fields": [
+ {
+ "item": "Ident"
+ }
+ ]
+ },
+ {
+ "ident": "Wild",
+ "fields": [
+ {
+ "token": {
+ "repr": "_",
+ "ty": "Underscore"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "enum": {
+ "ident": "BinOp",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Add",
+ "fields": [
+ {
+ "token": {
+ "repr": "+",
+ "ty": "Add"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "Sub",
+ "fields": [
+ {
+ "token": {
+ "repr": "-",
+ "ty": "Sub"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "Mul",
+ "fields": [
+ {
+ "token": {
+ "repr": "*",
+ "ty": "Star"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "Div",
+ "fields": [
+ {
+ "token": {
+ "repr": "/",
+ "ty": "Div"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "Rem",
+ "fields": [
+ {
+ "token": {
+ "repr": "%",
+ "ty": "Rem"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "And",
+ "fields": [
+ {
+ "token": {
+ "repr": "&&",
+ "ty": "AndAnd"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "Or",
+ "fields": [
+ {
+ "token": {
+ "repr": "||",
+ "ty": "OrOr"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "BitXor",
+ "fields": [
+ {
+ "token": {
+ "repr": "^",
+ "ty": "Caret"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "BitAnd",
+ "fields": [
+ {
+ "token": {
+ "repr": "&",
+ "ty": "And"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "BitOr",
+ "fields": [
+ {
+ "token": {
+ "repr": "|",
+ "ty": "Or"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "Shl",
+ "fields": [
+ {
+ "token": {
+ "repr": "<<",
+ "ty": "Shl"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "Shr",
+ "fields": [
+ {
+ "token": {
+ "repr": ">>",
+ "ty": "Shr"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "Eq",
+ "fields": [
+ {
+ "token": {
+ "repr": "==",
+ "ty": "EqEq"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "Lt",
+ "fields": [
+ {
+ "token": {
+ "repr": "<",
+ "ty": "Lt"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "Le",
+ "fields": [
+ {
+ "token": {
+ "repr": "<=",
+ "ty": "Le"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "Ne",
+ "fields": [
+ {
+ "token": {
+ "repr": "!=",
+ "ty": "Ne"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "Ge",
+ "fields": [
+ {
+ "token": {
+ "repr": ">=",
+ "ty": "Ge"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "Gt",
+ "fields": [
+ {
+ "token": {
+ "repr": ">",
+ "ty": "Gt"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "AddEq",
+ "fields": [
+ {
+ "token": {
+ "repr": "+=",
+ "ty": "AddEq"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "SubEq",
+ "fields": [
+ {
+ "token": {
+ "repr": "-=",
+ "ty": "SubEq"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "MulEq",
+ "fields": [
+ {
+ "token": {
+ "repr": "*=",
+ "ty": "MulEq"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "DivEq",
+ "fields": [
+ {
+ "token": {
+ "repr": "/=",
+ "ty": "DivEq"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "RemEq",
+ "fields": [
+ {
+ "token": {
+ "repr": "%=",
+ "ty": "RemEq"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "BitXorEq",
+ "fields": [
+ {
+ "token": {
+ "repr": "^=",
+ "ty": "CaretEq"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "BitAndEq",
+ "fields": [
+ {
+ "token": {
+ "repr": "&=",
+ "ty": "AndEq"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "BitOrEq",
+ "fields": [
+ {
+ "token": {
+ "repr": "|=",
+ "ty": "OrEq"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "ShlEq",
+ "fields": [
+ {
+ "token": {
+ "repr": "<<=",
+ "ty": "ShlEq"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "ShrEq",
+ "fields": [
+ {
+ "token": {
+ "repr": ">>=",
+ "ty": "ShrEq"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "struct": {
+ "ident": "Binding",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "eq_token",
+ "ty": {
+ "token": {
+ "repr": "=",
+ "ty": "Eq"
+ }
+ }
+ },
+ {
+ "ident": "ty",
+ "ty": {
+ "item": "Type"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "Block",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "brace_token",
+ "ty": {
+ "token_group": "Brace"
+ }
+ },
+ {
+ "ident": "stmts",
+ "ty": {
+ "vec": {
+ "item": "Stmt"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "BoundLifetimes",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "for_token",
+ "ty": {
+ "token": {
+ "repr": "for",
+ "ty": "For"
+ }
+ }
+ },
+ {
+ "ident": "lt_token",
+ "ty": {
+ "token": {
+ "repr": "<",
+ "ty": "Lt"
+ }
+ }
+ },
+ {
+ "ident": "lifetimes",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "LifetimeDef"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ },
+ {
+ "ident": "gt_token",
+ "ty": {
+ "token": {
+ "repr": ">",
+ "ty": "Gt"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ConstParam",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "const_token",
+ "ty": {
+ "token": {
+ "repr": "const",
+ "ty": "Const"
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "colon_token",
+ "ty": {
+ "token": {
+ "repr": ":",
+ "ty": "Colon"
+ }
+ }
+ },
+ {
+ "ident": "ty",
+ "ty": {
+ "item": "Type"
+ }
+ },
+ {
+ "ident": "eq_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "=",
+ "ty": "Eq"
+ }
+ }
+ }
+ },
+ {
+ "ident": "default",
+ "ty": {
+ "option": {
+ "item": "Expr"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "Constraint",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "colon_token",
+ "ty": {
+ "token": {
+ "repr": ":",
+ "ty": "Colon"
+ }
+ }
+ },
+ {
+ "ident": "bounds",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "TypeParamBound"
+ },
+ {
+ "repr": "+",
+ "ty": "Add"
+ }
+ ]
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "enum": {
+ "ident": "Data",
+ "features": {
+ "any": [
+ "derive"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Struct",
+ "fields": [
+ {
+ "item": "DataStruct"
+ }
+ ]
+ },
+ {
+ "ident": "Enum",
+ "fields": [
+ {
+ "item": "DataEnum"
+ }
+ ]
+ },
+ {
+ "ident": "Union",
+ "fields": [
+ {
+ "item": "DataUnion"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "struct": {
+ "ident": "DataEnum",
+ "features": {
+ "any": [
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "enum_token",
+ "ty": {
+ "token": {
+ "repr": "enum",
+ "ty": "Enum"
+ }
+ }
+ },
+ {
+ "ident": "brace_token",
+ "ty": {
+ "token_group": "Brace"
+ }
+ },
+ {
+ "ident": "variants",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "Variant"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "DataStruct",
+ "features": {
+ "any": [
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "struct_token",
+ "ty": {
+ "token": {
+ "repr": "struct",
+ "ty": "Struct"
+ }
+ }
+ },
+ {
+ "ident": "fields",
+ "ty": {
+ "item": "Fields"
+ }
+ },
+ {
+ "ident": "semi_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "DataUnion",
+ "features": {
+ "any": [
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "union_token",
+ "ty": {
+ "token": {
+ "repr": "union",
+ "ty": "Union"
+ }
+ }
+ },
+ {
+ "ident": "fields",
+ "ty": {
+ "item": "FieldsNamed"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "DeriveInput",
+ "features": {
+ "any": [
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "vis",
+ "ty": {
+ "item": "Visibility"
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "generics",
+ "ty": {
+ "item": "Generics"
+ }
+ },
+ {
+ "ident": "data",
+ "ty": {
+ "item": "Data"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "enum": {
+ "ident": "Expr",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Box",
+ "fields": [
+ {
+ "item": "ExprBox"
+ }
+ ]
+ },
+ {
+ "ident": "InPlace",
+ "fields": [
+ {
+ "item": "ExprInPlace"
+ }
+ ]
+ },
+ {
+ "ident": "Array",
+ "fields": [
+ {
+ "item": "ExprArray"
+ }
+ ]
+ },
+ {
+ "ident": "Call",
+ "fields": [
+ {
+ "item": "ExprCall"
+ }
+ ]
+ },
+ {
+ "ident": "MethodCall",
+ "fields": [
+ {
+ "item": "ExprMethodCall"
+ }
+ ]
+ },
+ {
+ "ident": "Tuple",
+ "fields": [
+ {
+ "item": "ExprTuple"
+ }
+ ]
+ },
+ {
+ "ident": "Binary",
+ "fields": [
+ {
+ "item": "ExprBinary"
+ }
+ ]
+ },
+ {
+ "ident": "Unary",
+ "fields": [
+ {
+ "item": "ExprUnary"
+ }
+ ]
+ },
+ {
+ "ident": "Lit",
+ "fields": [
+ {
+ "item": "ExprLit"
+ }
+ ]
+ },
+ {
+ "ident": "Cast",
+ "fields": [
+ {
+ "item": "ExprCast"
+ }
+ ]
+ },
+ {
+ "ident": "Type",
+ "fields": [
+ {
+ "item": "ExprType"
+ }
+ ]
+ },
+ {
+ "ident": "Let",
+ "fields": [
+ {
+ "item": "ExprLet"
+ }
+ ]
+ },
+ {
+ "ident": "If",
+ "fields": [
+ {
+ "item": "ExprIf"
+ }
+ ]
+ },
+ {
+ "ident": "While",
+ "fields": [
+ {
+ "item": "ExprWhile"
+ }
+ ]
+ },
+ {
+ "ident": "ForLoop",
+ "fields": [
+ {
+ "item": "ExprForLoop"
+ }
+ ]
+ },
+ {
+ "ident": "Loop",
+ "fields": [
+ {
+ "item": "ExprLoop"
+ }
+ ]
+ },
+ {
+ "ident": "Match",
+ "fields": [
+ {
+ "item": "ExprMatch"
+ }
+ ]
+ },
+ {
+ "ident": "Closure",
+ "fields": [
+ {
+ "item": "ExprClosure"
+ }
+ ]
+ },
+ {
+ "ident": "Unsafe",
+ "fields": [
+ {
+ "item": "ExprUnsafe"
+ }
+ ]
+ },
+ {
+ "ident": "Block",
+ "fields": [
+ {
+ "item": "ExprBlock"
+ }
+ ]
+ },
+ {
+ "ident": "Assign",
+ "fields": [
+ {
+ "item": "ExprAssign"
+ }
+ ]
+ },
+ {
+ "ident": "AssignOp",
+ "fields": [
+ {
+ "item": "ExprAssignOp"
+ }
+ ]
+ },
+ {
+ "ident": "Field",
+ "fields": [
+ {
+ "item": "ExprField"
+ }
+ ]
+ },
+ {
+ "ident": "Index",
+ "fields": [
+ {
+ "item": "ExprIndex"
+ }
+ ]
+ },
+ {
+ "ident": "Range",
+ "fields": [
+ {
+ "item": "ExprRange"
+ }
+ ]
+ },
+ {
+ "ident": "Path",
+ "fields": [
+ {
+ "item": "ExprPath"
+ }
+ ]
+ },
+ {
+ "ident": "Reference",
+ "fields": [
+ {
+ "item": "ExprReference"
+ }
+ ]
+ },
+ {
+ "ident": "Break",
+ "fields": [
+ {
+ "item": "ExprBreak"
+ }
+ ]
+ },
+ {
+ "ident": "Continue",
+ "fields": [
+ {
+ "item": "ExprContinue"
+ }
+ ]
+ },
+ {
+ "ident": "Return",
+ "fields": [
+ {
+ "item": "ExprReturn"
+ }
+ ]
+ },
+ {
+ "ident": "Macro",
+ "fields": [
+ {
+ "item": "ExprMacro"
+ }
+ ]
+ },
+ {
+ "ident": "Struct",
+ "fields": [
+ {
+ "item": "ExprStruct"
+ }
+ ]
+ },
+ {
+ "ident": "Repeat",
+ "fields": [
+ {
+ "item": "ExprRepeat"
+ }
+ ]
+ },
+ {
+ "ident": "Paren",
+ "fields": [
+ {
+ "item": "ExprParen"
+ }
+ ]
+ },
+ {
+ "ident": "Group",
+ "fields": [
+ {
+ "item": "ExprGroup"
+ }
+ ]
+ },
+ {
+ "ident": "Try",
+ "fields": [
+ {
+ "item": "ExprTry"
+ }
+ ]
+ },
+ {
+ "ident": "Async",
+ "fields": [
+ {
+ "item": "ExprAsync"
+ }
+ ]
+ },
+ {
+ "ident": "TryBlock",
+ "fields": [
+ {
+ "item": "ExprTryBlock"
+ }
+ ]
+ },
+ {
+ "ident": "Yield",
+ "fields": [
+ {
+ "item": "ExprYield"
+ }
+ ]
+ },
+ {
+ "ident": "Verbatim",
+ "fields": [
+ {
+ "item": "ExprVerbatim"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprArray",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "bracket_token",
+ "ty": {
+ "token_group": "Bracket"
+ }
+ },
+ {
+ "ident": "elems",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "Expr"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprAssign",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "left",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ },
+ {
+ "ident": "eq_token",
+ "ty": {
+ "token": {
+ "repr": "=",
+ "ty": "Eq"
+ }
+ }
+ },
+ {
+ "ident": "right",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprAssignOp",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "left",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ },
+ {
+ "ident": "op",
+ "ty": {
+ "item": "BinOp"
+ }
+ },
+ {
+ "ident": "right",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprAsync",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "async_token",
+ "ty": {
+ "token": {
+ "repr": "async",
+ "ty": "Async"
+ }
+ }
+ },
+ {
+ "ident": "capture",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "move",
+ "ty": "Move"
+ }
+ }
+ }
+ },
+ {
+ "ident": "block",
+ "ty": {
+ "item": "Block"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprBinary",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "left",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ },
+ {
+ "ident": "op",
+ "ty": {
+ "item": "BinOp"
+ }
+ },
+ {
+ "ident": "right",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprBlock",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "label",
+ "ty": {
+ "option": {
+ "item": "Label"
+ }
+ }
+ },
+ {
+ "ident": "block",
+ "ty": {
+ "item": "Block"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprBox",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "box_token",
+ "ty": {
+ "token": {
+ "repr": "box",
+ "ty": "Box"
+ }
+ }
+ },
+ {
+ "ident": "expr",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprBreak",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "break_token",
+ "ty": {
+ "token": {
+ "repr": "break",
+ "ty": "Break"
+ }
+ }
+ },
+ {
+ "ident": "label",
+ "ty": {
+ "option": {
+ "item": "Lifetime"
+ }
+ }
+ },
+ {
+ "ident": "expr",
+ "ty": {
+ "option": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprCall",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "func",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ },
+ {
+ "ident": "paren_token",
+ "ty": {
+ "token_group": "Paren"
+ }
+ },
+ {
+ "ident": "args",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "Expr"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprCast",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "expr",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ },
+ {
+ "ident": "as_token",
+ "ty": {
+ "token": {
+ "repr": "as",
+ "ty": "As"
+ }
+ }
+ },
+ {
+ "ident": "ty",
+ "ty": {
+ "box": {
+ "item": "Type"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprClosure",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "asyncness",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "async",
+ "ty": "Async"
+ }
+ }
+ }
+ },
+ {
+ "ident": "movability",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "static",
+ "ty": "Static"
+ }
+ }
+ }
+ },
+ {
+ "ident": "capture",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "move",
+ "ty": "Move"
+ }
+ }
+ }
+ },
+ {
+ "ident": "or1_token",
+ "ty": {
+ "token": {
+ "repr": "|",
+ "ty": "Or"
+ }
+ }
+ },
+ {
+ "ident": "inputs",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "FnArg"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ },
+ {
+ "ident": "or2_token",
+ "ty": {
+ "token": {
+ "repr": "|",
+ "ty": "Or"
+ }
+ }
+ },
+ {
+ "ident": "output",
+ "ty": {
+ "item": "ReturnType"
+ }
+ },
+ {
+ "ident": "body",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprContinue",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "continue_token",
+ "ty": {
+ "token": {
+ "repr": "continue",
+ "ty": "Continue"
+ }
+ }
+ },
+ {
+ "ident": "label",
+ "ty": {
+ "option": {
+ "item": "Lifetime"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprField",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "base",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ },
+ {
+ "ident": "dot_token",
+ "ty": {
+ "token": {
+ "repr": ".",
+ "ty": "Dot"
+ }
+ }
+ },
+ {
+ "ident": "member",
+ "ty": {
+ "item": "Member"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprForLoop",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "label",
+ "ty": {
+ "option": {
+ "item": "Label"
+ }
+ }
+ },
+ {
+ "ident": "for_token",
+ "ty": {
+ "token": {
+ "repr": "for",
+ "ty": "For"
+ }
+ }
+ },
+ {
+ "ident": "pat",
+ "ty": {
+ "box": {
+ "item": "Pat"
+ }
+ }
+ },
+ {
+ "ident": "in_token",
+ "ty": {
+ "token": {
+ "repr": "in",
+ "ty": "In"
+ }
+ }
+ },
+ {
+ "ident": "expr",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ },
+ {
+ "ident": "body",
+ "ty": {
+ "item": "Block"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprGroup",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "group_token",
+ "ty": {
+ "token_group": "Group"
+ }
+ },
+ {
+ "ident": "expr",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprIf",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "if_token",
+ "ty": {
+ "token": {
+ "repr": "if",
+ "ty": "If"
+ }
+ }
+ },
+ {
+ "ident": "cond",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ },
+ {
+ "ident": "then_branch",
+ "ty": {
+ "item": "Block"
+ }
+ },
+ {
+ "ident": "else_branch",
+ "ty": {
+ "option": {
+ "tuple": [
+ {
+ "token": {
+ "repr": "else",
+ "ty": "Else"
+ }
+ },
+ {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprInPlace",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "place",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ },
+ {
+ "ident": "arrow_token",
+ "ty": {
+ "token": {
+ "repr": "<-",
+ "ty": "LArrow"
+ }
+ }
+ },
+ {
+ "ident": "value",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprIndex",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "expr",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ },
+ {
+ "ident": "bracket_token",
+ "ty": {
+ "token_group": "Bracket"
+ }
+ },
+ {
+ "ident": "index",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprLet",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "let_token",
+ "ty": {
+ "token": {
+ "repr": "let",
+ "ty": "Let"
+ }
+ }
+ },
+ {
+ "ident": "pats",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "Pat"
+ },
+ {
+ "repr": "|",
+ "ty": "Or"
+ }
+ ]
+ }
+ },
+ {
+ "ident": "eq_token",
+ "ty": {
+ "token": {
+ "repr": "=",
+ "ty": "Eq"
+ }
+ }
+ },
+ {
+ "ident": "expr",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprLit",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "lit",
+ "ty": {
+ "item": "Lit"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprLoop",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "label",
+ "ty": {
+ "option": {
+ "item": "Label"
+ }
+ }
+ },
+ {
+ "ident": "loop_token",
+ "ty": {
+ "token": {
+ "repr": "loop",
+ "ty": "Loop"
+ }
+ }
+ },
+ {
+ "ident": "body",
+ "ty": {
+ "item": "Block"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprMacro",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "mac",
+ "ty": {
+ "item": "Macro"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprMatch",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "match_token",
+ "ty": {
+ "token": {
+ "repr": "match",
+ "ty": "Match"
+ }
+ }
+ },
+ {
+ "ident": "expr",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ },
+ {
+ "ident": "brace_token",
+ "ty": {
+ "token_group": "Brace"
+ }
+ },
+ {
+ "ident": "arms",
+ "ty": {
+ "vec": {
+ "item": "Arm"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprMethodCall",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "receiver",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ },
+ {
+ "ident": "dot_token",
+ "ty": {
+ "token": {
+ "repr": ".",
+ "ty": "Dot"
+ }
+ }
+ },
+ {
+ "ident": "method",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "turbofish",
+ "ty": {
+ "option": {
+ "item": "MethodTurbofish"
+ }
+ }
+ },
+ {
+ "ident": "paren_token",
+ "ty": {
+ "token_group": "Paren"
+ }
+ },
+ {
+ "ident": "args",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "Expr"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprParen",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "paren_token",
+ "ty": {
+ "token_group": "Paren"
+ }
+ },
+ {
+ "ident": "expr",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprPath",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "qself",
+ "ty": {
+ "option": {
+ "item": "QSelf"
+ }
+ }
+ },
+ {
+ "ident": "path",
+ "ty": {
+ "item": "Path"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprRange",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "from",
+ "ty": {
+ "option": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ }
+ },
+ {
+ "ident": "limits",
+ "ty": {
+ "item": "RangeLimits"
+ }
+ },
+ {
+ "ident": "to",
+ "ty": {
+ "option": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprReference",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "and_token",
+ "ty": {
+ "token": {
+ "repr": "&",
+ "ty": "And"
+ }
+ }
+ },
+ {
+ "ident": "mutability",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "mut",
+ "ty": "Mut"
+ }
+ }
+ }
+ },
+ {
+ "ident": "expr",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprRepeat",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "bracket_token",
+ "ty": {
+ "token_group": "Bracket"
+ }
+ },
+ {
+ "ident": "expr",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ },
+ {
+ "ident": "semi_token",
+ "ty": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ },
+ {
+ "ident": "len",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprReturn",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "return_token",
+ "ty": {
+ "token": {
+ "repr": "return",
+ "ty": "Return"
+ }
+ }
+ },
+ {
+ "ident": "expr",
+ "ty": {
+ "option": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprStruct",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "path",
+ "ty": {
+ "item": "Path"
+ }
+ },
+ {
+ "ident": "brace_token",
+ "ty": {
+ "token_group": "Brace"
+ }
+ },
+ {
+ "ident": "fields",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "FieldValue"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ },
+ {
+ "ident": "dot2_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "..",
+ "ty": "Dot2"
+ }
+ }
+ }
+ },
+ {
+ "ident": "rest",
+ "ty": {
+ "option": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprTry",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "expr",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ },
+ {
+ "ident": "question_token",
+ "ty": {
+ "token": {
+ "repr": "?",
+ "ty": "Question"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprTryBlock",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "try_token",
+ "ty": {
+ "token": {
+ "repr": "try",
+ "ty": "Try"
+ }
+ }
+ },
+ {
+ "ident": "block",
+ "ty": {
+ "item": "Block"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprTuple",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "paren_token",
+ "ty": {
+ "token_group": "Paren"
+ }
+ },
+ {
+ "ident": "elems",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "Expr"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprType",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "expr",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ },
+ {
+ "ident": "colon_token",
+ "ty": {
+ "token": {
+ "repr": ":",
+ "ty": "Colon"
+ }
+ }
+ },
+ {
+ "ident": "ty",
+ "ty": {
+ "box": {
+ "item": "Type"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprUnary",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "op",
+ "ty": {
+ "item": "UnOp"
+ }
+ },
+ {
+ "ident": "expr",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprUnsafe",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "unsafe_token",
+ "ty": {
+ "token": {
+ "repr": "unsafe",
+ "ty": "Unsafe"
+ }
+ }
+ },
+ {
+ "ident": "block",
+ "ty": {
+ "item": "Block"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprVerbatim",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "tts",
+ "ty": {
+ "ext": "TokenStream"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprWhile",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "label",
+ "ty": {
+ "option": {
+ "item": "Label"
+ }
+ }
+ },
+ {
+ "ident": "while_token",
+ "ty": {
+ "token": {
+ "repr": "while",
+ "ty": "While"
+ }
+ }
+ },
+ {
+ "ident": "cond",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ },
+ {
+ "ident": "body",
+ "ty": {
+ "item": "Block"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ExprYield",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "yield_token",
+ "ty": {
+ "token": {
+ "repr": "yield",
+ "ty": "Yield"
+ }
+ }
+ },
+ {
+ "ident": "expr",
+ "ty": {
+ "option": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "Field",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "vis",
+ "ty": {
+ "item": "Visibility"
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "option": {
+ "item": "Ident"
+ }
+ }
+ },
+ {
+ "ident": "colon_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": ":",
+ "ty": "Colon"
+ }
+ }
+ }
+ },
+ {
+ "ident": "ty",
+ "ty": {
+ "item": "Type"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "FieldPat",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "member",
+ "ty": {
+ "item": "Member"
+ }
+ },
+ {
+ "ident": "colon_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": ":",
+ "ty": "Colon"
+ }
+ }
+ }
+ },
+ {
+ "ident": "pat",
+ "ty": {
+ "box": {
+ "item": "Pat"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "FieldValue",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "member",
+ "ty": {
+ "item": "Member"
+ }
+ },
+ {
+ "ident": "colon_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": ":",
+ "ty": "Colon"
+ }
+ }
+ }
+ },
+ {
+ "ident": "expr",
+ "ty": {
+ "item": "Expr"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "enum": {
+ "ident": "Fields",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Named",
+ "fields": [
+ {
+ "item": "FieldsNamed"
+ }
+ ]
+ },
+ {
+ "ident": "Unnamed",
+ "fields": [
+ {
+ "item": "FieldsUnnamed"
+ }
+ ]
+ },
+ {
+ "ident": "Unit",
+ "fields": []
+ }
+ ]
+ }
+ },
+ {
+ "struct": {
+ "ident": "FieldsNamed",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "brace_token",
+ "ty": {
+ "token_group": "Brace"
+ }
+ },
+ {
+ "ident": "named",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "Field"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "FieldsUnnamed",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "paren_token",
+ "ty": {
+ "token_group": "Paren"
+ }
+ },
+ {
+ "ident": "unnamed",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "Field"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "File",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "shebang",
+ "ty": {
+ "option": {
+ "std": "String"
+ }
+ }
+ },
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "items",
+ "ty": {
+ "vec": {
+ "item": "Item"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "enum": {
+ "ident": "FnArg",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "SelfRef",
+ "fields": [
+ {
+ "item": "ArgSelfRef"
+ }
+ ]
+ },
+ {
+ "ident": "SelfValue",
+ "fields": [
+ {
+ "item": "ArgSelf"
+ }
+ ]
+ },
+ {
+ "ident": "Captured",
+ "fields": [
+ {
+ "item": "ArgCaptured"
+ }
+ ]
+ },
+ {
+ "ident": "Inferred",
+ "fields": [
+ {
+ "item": "Pat"
+ }
+ ]
+ },
+ {
+ "ident": "Ignored",
+ "fields": [
+ {
+ "item": "Type"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "struct": {
+ "ident": "FnDecl",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "fn_token",
+ "ty": {
+ "token": {
+ "repr": "fn",
+ "ty": "Fn"
+ }
+ }
+ },
+ {
+ "ident": "generics",
+ "ty": {
+ "item": "Generics"
+ }
+ },
+ {
+ "ident": "paren_token",
+ "ty": {
+ "token_group": "Paren"
+ }
+ },
+ {
+ "ident": "inputs",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "FnArg"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ },
+ {
+ "ident": "variadic",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "...",
+ "ty": "Dot3"
+ }
+ }
+ }
+ },
+ {
+ "ident": "output",
+ "ty": {
+ "item": "ReturnType"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "enum": {
+ "ident": "ForeignItem",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Fn",
+ "fields": [
+ {
+ "item": "ForeignItemFn"
+ }
+ ]
+ },
+ {
+ "ident": "Static",
+ "fields": [
+ {
+ "item": "ForeignItemStatic"
+ }
+ ]
+ },
+ {
+ "ident": "Type",
+ "fields": [
+ {
+ "item": "ForeignItemType"
+ }
+ ]
+ },
+ {
+ "ident": "Macro",
+ "fields": [
+ {
+ "item": "ForeignItemMacro"
+ }
+ ]
+ },
+ {
+ "ident": "Verbatim",
+ "fields": [
+ {
+ "item": "ForeignItemVerbatim"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "struct": {
+ "ident": "ForeignItemFn",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "vis",
+ "ty": {
+ "item": "Visibility"
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "decl",
+ "ty": {
+ "box": {
+ "item": "FnDecl"
+ }
+ }
+ },
+ {
+ "ident": "semi_token",
+ "ty": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ForeignItemMacro",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "mac",
+ "ty": {
+ "item": "Macro"
+ }
+ },
+ {
+ "ident": "semi_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ForeignItemStatic",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "vis",
+ "ty": {
+ "item": "Visibility"
+ }
+ },
+ {
+ "ident": "static_token",
+ "ty": {
+ "token": {
+ "repr": "static",
+ "ty": "Static"
+ }
+ }
+ },
+ {
+ "ident": "mutability",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "mut",
+ "ty": "Mut"
+ }
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "colon_token",
+ "ty": {
+ "token": {
+ "repr": ":",
+ "ty": "Colon"
+ }
+ }
+ },
+ {
+ "ident": "ty",
+ "ty": {
+ "box": {
+ "item": "Type"
+ }
+ }
+ },
+ {
+ "ident": "semi_token",
+ "ty": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ForeignItemType",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "vis",
+ "ty": {
+ "item": "Visibility"
+ }
+ },
+ {
+ "ident": "type_token",
+ "ty": {
+ "token": {
+ "repr": "type",
+ "ty": "Type"
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "semi_token",
+ "ty": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ForeignItemVerbatim",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "tts",
+ "ty": {
+ "ext": "TokenStream"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "enum": {
+ "ident": "GenericArgument",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Lifetime",
+ "fields": [
+ {
+ "item": "Lifetime"
+ }
+ ]
+ },
+ {
+ "ident": "Type",
+ "fields": [
+ {
+ "item": "Type"
+ }
+ ]
+ },
+ {
+ "ident": "Binding",
+ "fields": [
+ {
+ "item": "Binding"
+ }
+ ]
+ },
+ {
+ "ident": "Constraint",
+ "fields": [
+ {
+ "item": "Constraint"
+ }
+ ]
+ },
+ {
+ "ident": "Const",
+ "fields": [
+ {
+ "item": "Expr"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "enum": {
+ "ident": "GenericMethodArgument",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Type",
+ "fields": [
+ {
+ "item": "Type"
+ }
+ ]
+ },
+ {
+ "ident": "Const",
+ "fields": [
+ {
+ "item": "Expr"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "enum": {
+ "ident": "GenericParam",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Type",
+ "fields": [
+ {
+ "item": "TypeParam"
+ }
+ ]
+ },
+ {
+ "ident": "Lifetime",
+ "fields": [
+ {
+ "item": "LifetimeDef"
+ }
+ ]
+ },
+ {
+ "ident": "Const",
+ "fields": [
+ {
+ "item": "ConstParam"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "struct": {
+ "ident": "Generics",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "lt_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "<",
+ "ty": "Lt"
+ }
+ }
+ }
+ },
+ {
+ "ident": "params",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "GenericParam"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ },
+ {
+ "ident": "gt_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": ">",
+ "ty": "Gt"
+ }
+ }
+ }
+ },
+ {
+ "ident": "where_clause",
+ "ty": {
+ "option": {
+ "item": "WhereClause"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "Ident",
+ "features": {
+ "any": []
+ },
+ "fields": [],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "enum": {
+ "ident": "ImplItem",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Const",
+ "fields": [
+ {
+ "item": "ImplItemConst"
+ }
+ ]
+ },
+ {
+ "ident": "Method",
+ "fields": [
+ {
+ "item": "ImplItemMethod"
+ }
+ ]
+ },
+ {
+ "ident": "Type",
+ "fields": [
+ {
+ "item": "ImplItemType"
+ }
+ ]
+ },
+ {
+ "ident": "Existential",
+ "fields": [
+ {
+ "item": "ImplItemExistential"
+ }
+ ]
+ },
+ {
+ "ident": "Macro",
+ "fields": [
+ {
+ "item": "ImplItemMacro"
+ }
+ ]
+ },
+ {
+ "ident": "Verbatim",
+ "fields": [
+ {
+ "item": "ImplItemVerbatim"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "struct": {
+ "ident": "ImplItemConst",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "vis",
+ "ty": {
+ "item": "Visibility"
+ }
+ },
+ {
+ "ident": "defaultness",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "default",
+ "ty": "Default"
+ }
+ }
+ }
+ },
+ {
+ "ident": "const_token",
+ "ty": {
+ "token": {
+ "repr": "const",
+ "ty": "Const"
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "colon_token",
+ "ty": {
+ "token": {
+ "repr": ":",
+ "ty": "Colon"
+ }
+ }
+ },
+ {
+ "ident": "ty",
+ "ty": {
+ "item": "Type"
+ }
+ },
+ {
+ "ident": "eq_token",
+ "ty": {
+ "token": {
+ "repr": "=",
+ "ty": "Eq"
+ }
+ }
+ },
+ {
+ "ident": "expr",
+ "ty": {
+ "item": "Expr"
+ }
+ },
+ {
+ "ident": "semi_token",
+ "ty": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ImplItemExistential",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "existential_token",
+ "ty": {
+ "token": {
+ "repr": "existential",
+ "ty": "Existential"
+ }
+ }
+ },
+ {
+ "ident": "type_token",
+ "ty": {
+ "token": {
+ "repr": "type",
+ "ty": "Type"
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "generics",
+ "ty": {
+ "item": "Generics"
+ }
+ },
+ {
+ "ident": "colon_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": ":",
+ "ty": "Colon"
+ }
+ }
+ }
+ },
+ {
+ "ident": "bounds",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "TypeParamBound"
+ },
+ {
+ "repr": "+",
+ "ty": "Add"
+ }
+ ]
+ }
+ },
+ {
+ "ident": "semi_token",
+ "ty": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ImplItemMacro",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "mac",
+ "ty": {
+ "item": "Macro"
+ }
+ },
+ {
+ "ident": "semi_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ImplItemMethod",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "vis",
+ "ty": {
+ "item": "Visibility"
+ }
+ },
+ {
+ "ident": "defaultness",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "default",
+ "ty": "Default"
+ }
+ }
+ }
+ },
+ {
+ "ident": "sig",
+ "ty": {
+ "item": "MethodSig"
+ }
+ },
+ {
+ "ident": "block",
+ "ty": {
+ "item": "Block"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ImplItemType",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "vis",
+ "ty": {
+ "item": "Visibility"
+ }
+ },
+ {
+ "ident": "defaultness",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "default",
+ "ty": "Default"
+ }
+ }
+ }
+ },
+ {
+ "ident": "type_token",
+ "ty": {
+ "token": {
+ "repr": "type",
+ "ty": "Type"
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "generics",
+ "ty": {
+ "item": "Generics"
+ }
+ },
+ {
+ "ident": "eq_token",
+ "ty": {
+ "token": {
+ "repr": "=",
+ "ty": "Eq"
+ }
+ }
+ },
+ {
+ "ident": "ty",
+ "ty": {
+ "item": "Type"
+ }
+ },
+ {
+ "ident": "semi_token",
+ "ty": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ImplItemVerbatim",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "tts",
+ "ty": {
+ "ext": "TokenStream"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "Index",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "index",
+ "ty": {
+ "std": "u32"
+ }
+ },
+ {
+ "ident": "span",
+ "ty": {
+ "item": "Span"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "enum": {
+ "ident": "Item",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "ExternCrate",
+ "fields": [
+ {
+ "item": "ItemExternCrate"
+ }
+ ]
+ },
+ {
+ "ident": "Use",
+ "fields": [
+ {
+ "item": "ItemUse"
+ }
+ ]
+ },
+ {
+ "ident": "Static",
+ "fields": [
+ {
+ "item": "ItemStatic"
+ }
+ ]
+ },
+ {
+ "ident": "Const",
+ "fields": [
+ {
+ "item": "ItemConst"
+ }
+ ]
+ },
+ {
+ "ident": "Fn",
+ "fields": [
+ {
+ "item": "ItemFn"
+ }
+ ]
+ },
+ {
+ "ident": "Mod",
+ "fields": [
+ {
+ "item": "ItemMod"
+ }
+ ]
+ },
+ {
+ "ident": "ForeignMod",
+ "fields": [
+ {
+ "item": "ItemForeignMod"
+ }
+ ]
+ },
+ {
+ "ident": "Type",
+ "fields": [
+ {
+ "item": "ItemType"
+ }
+ ]
+ },
+ {
+ "ident": "Existential",
+ "fields": [
+ {
+ "item": "ItemExistential"
+ }
+ ]
+ },
+ {
+ "ident": "Struct",
+ "fields": [
+ {
+ "item": "ItemStruct"
+ }
+ ]
+ },
+ {
+ "ident": "Enum",
+ "fields": [
+ {
+ "item": "ItemEnum"
+ }
+ ]
+ },
+ {
+ "ident": "Union",
+ "fields": [
+ {
+ "item": "ItemUnion"
+ }
+ ]
+ },
+ {
+ "ident": "Trait",
+ "fields": [
+ {
+ "item": "ItemTrait"
+ }
+ ]
+ },
+ {
+ "ident": "TraitAlias",
+ "fields": [
+ {
+ "item": "ItemTraitAlias"
+ }
+ ]
+ },
+ {
+ "ident": "Impl",
+ "fields": [
+ {
+ "item": "ItemImpl"
+ }
+ ]
+ },
+ {
+ "ident": "Macro",
+ "fields": [
+ {
+ "item": "ItemMacro"
+ }
+ ]
+ },
+ {
+ "ident": "Macro2",
+ "fields": [
+ {
+ "item": "ItemMacro2"
+ }
+ ]
+ },
+ {
+ "ident": "Verbatim",
+ "fields": [
+ {
+ "item": "ItemVerbatim"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "struct": {
+ "ident": "ItemConst",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "vis",
+ "ty": {
+ "item": "Visibility"
+ }
+ },
+ {
+ "ident": "const_token",
+ "ty": {
+ "token": {
+ "repr": "const",
+ "ty": "Const"
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "colon_token",
+ "ty": {
+ "token": {
+ "repr": ":",
+ "ty": "Colon"
+ }
+ }
+ },
+ {
+ "ident": "ty",
+ "ty": {
+ "box": {
+ "item": "Type"
+ }
+ }
+ },
+ {
+ "ident": "eq_token",
+ "ty": {
+ "token": {
+ "repr": "=",
+ "ty": "Eq"
+ }
+ }
+ },
+ {
+ "ident": "expr",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ },
+ {
+ "ident": "semi_token",
+ "ty": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ItemEnum",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "vis",
+ "ty": {
+ "item": "Visibility"
+ }
+ },
+ {
+ "ident": "enum_token",
+ "ty": {
+ "token": {
+ "repr": "enum",
+ "ty": "Enum"
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "generics",
+ "ty": {
+ "item": "Generics"
+ }
+ },
+ {
+ "ident": "brace_token",
+ "ty": {
+ "token_group": "Brace"
+ }
+ },
+ {
+ "ident": "variants",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "Variant"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ItemExistential",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "vis",
+ "ty": {
+ "item": "Visibility"
+ }
+ },
+ {
+ "ident": "existential_token",
+ "ty": {
+ "token": {
+ "repr": "existential",
+ "ty": "Existential"
+ }
+ }
+ },
+ {
+ "ident": "type_token",
+ "ty": {
+ "token": {
+ "repr": "type",
+ "ty": "Type"
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "generics",
+ "ty": {
+ "item": "Generics"
+ }
+ },
+ {
+ "ident": "colon_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": ":",
+ "ty": "Colon"
+ }
+ }
+ }
+ },
+ {
+ "ident": "bounds",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "TypeParamBound"
+ },
+ {
+ "repr": "+",
+ "ty": "Add"
+ }
+ ]
+ }
+ },
+ {
+ "ident": "semi_token",
+ "ty": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ItemExternCrate",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "vis",
+ "ty": {
+ "item": "Visibility"
+ }
+ },
+ {
+ "ident": "extern_token",
+ "ty": {
+ "token": {
+ "repr": "extern",
+ "ty": "Extern"
+ }
+ }
+ },
+ {
+ "ident": "crate_token",
+ "ty": {
+ "token": {
+ "repr": "crate",
+ "ty": "Crate"
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "rename",
+ "ty": {
+ "option": {
+ "tuple": [
+ {
+ "token": {
+ "repr": "as",
+ "ty": "As"
+ }
+ },
+ {
+ "item": "Ident"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "ident": "semi_token",
+ "ty": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ItemFn",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "vis",
+ "ty": {
+ "item": "Visibility"
+ }
+ },
+ {
+ "ident": "constness",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "const",
+ "ty": "Const"
+ }
+ }
+ }
+ },
+ {
+ "ident": "unsafety",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "unsafe",
+ "ty": "Unsafe"
+ }
+ }
+ }
+ },
+ {
+ "ident": "asyncness",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "async",
+ "ty": "Async"
+ }
+ }
+ }
+ },
+ {
+ "ident": "abi",
+ "ty": {
+ "option": {
+ "item": "Abi"
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "decl",
+ "ty": {
+ "box": {
+ "item": "FnDecl"
+ }
+ }
+ },
+ {
+ "ident": "block",
+ "ty": {
+ "box": {
+ "item": "Block"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ItemForeignMod",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "abi",
+ "ty": {
+ "item": "Abi"
+ }
+ },
+ {
+ "ident": "brace_token",
+ "ty": {
+ "token_group": "Brace"
+ }
+ },
+ {
+ "ident": "items",
+ "ty": {
+ "vec": {
+ "item": "ForeignItem"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ItemImpl",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "defaultness",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "default",
+ "ty": "Default"
+ }
+ }
+ }
+ },
+ {
+ "ident": "unsafety",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "unsafe",
+ "ty": "Unsafe"
+ }
+ }
+ }
+ },
+ {
+ "ident": "impl_token",
+ "ty": {
+ "token": {
+ "repr": "impl",
+ "ty": "Impl"
+ }
+ }
+ },
+ {
+ "ident": "generics",
+ "ty": {
+ "item": "Generics"
+ }
+ },
+ {
+ "ident": "trait_",
+ "ty": {
+ "option": {
+ "tuple": [
+ {
+ "option": {
+ "token": {
+ "repr": "!",
+ "ty": "Bang"
+ }
+ }
+ },
+ {
+ "item": "Path"
+ },
+ {
+ "token": {
+ "repr": "for",
+ "ty": "For"
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "ident": "self_ty",
+ "ty": {
+ "box": {
+ "item": "Type"
+ }
+ }
+ },
+ {
+ "ident": "brace_token",
+ "ty": {
+ "token_group": "Brace"
+ }
+ },
+ {
+ "ident": "items",
+ "ty": {
+ "vec": {
+ "item": "ImplItem"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ItemMacro",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "option": {
+ "item": "Ident"
+ }
+ }
+ },
+ {
+ "ident": "mac",
+ "ty": {
+ "item": "Macro"
+ }
+ },
+ {
+ "ident": "semi_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ItemMacro2",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "vis",
+ "ty": {
+ "item": "Visibility"
+ }
+ },
+ {
+ "ident": "macro_token",
+ "ty": {
+ "token": {
+ "repr": "macro",
+ "ty": "Macro"
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "paren_token",
+ "ty": {
+ "token_group": "Paren"
+ }
+ },
+ {
+ "ident": "args",
+ "ty": {
+ "ext": "TokenStream"
+ }
+ },
+ {
+ "ident": "brace_token",
+ "ty": {
+ "token_group": "Brace"
+ }
+ },
+ {
+ "ident": "body",
+ "ty": {
+ "ext": "TokenStream"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ItemMod",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "vis",
+ "ty": {
+ "item": "Visibility"
+ }
+ },
+ {
+ "ident": "mod_token",
+ "ty": {
+ "token": {
+ "repr": "mod",
+ "ty": "Mod"
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "content",
+ "ty": {
+ "option": {
+ "tuple": [
+ {
+ "token_group": "Brace"
+ },
+ {
+ "vec": {
+ "item": "Item"
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "ident": "semi",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ItemStatic",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "vis",
+ "ty": {
+ "item": "Visibility"
+ }
+ },
+ {
+ "ident": "static_token",
+ "ty": {
+ "token": {
+ "repr": "static",
+ "ty": "Static"
+ }
+ }
+ },
+ {
+ "ident": "mutability",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "mut",
+ "ty": "Mut"
+ }
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "colon_token",
+ "ty": {
+ "token": {
+ "repr": ":",
+ "ty": "Colon"
+ }
+ }
+ },
+ {
+ "ident": "ty",
+ "ty": {
+ "box": {
+ "item": "Type"
+ }
+ }
+ },
+ {
+ "ident": "eq_token",
+ "ty": {
+ "token": {
+ "repr": "=",
+ "ty": "Eq"
+ }
+ }
+ },
+ {
+ "ident": "expr",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ },
+ {
+ "ident": "semi_token",
+ "ty": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ItemStruct",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "vis",
+ "ty": {
+ "item": "Visibility"
+ }
+ },
+ {
+ "ident": "struct_token",
+ "ty": {
+ "token": {
+ "repr": "struct",
+ "ty": "Struct"
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "generics",
+ "ty": {
+ "item": "Generics"
+ }
+ },
+ {
+ "ident": "fields",
+ "ty": {
+ "item": "Fields"
+ }
+ },
+ {
+ "ident": "semi_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ItemTrait",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "vis",
+ "ty": {
+ "item": "Visibility"
+ }
+ },
+ {
+ "ident": "unsafety",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "unsafe",
+ "ty": "Unsafe"
+ }
+ }
+ }
+ },
+ {
+ "ident": "auto_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "auto",
+ "ty": "Auto"
+ }
+ }
+ }
+ },
+ {
+ "ident": "trait_token",
+ "ty": {
+ "token": {
+ "repr": "trait",
+ "ty": "Trait"
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "generics",
+ "ty": {
+ "item": "Generics"
+ }
+ },
+ {
+ "ident": "colon_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": ":",
+ "ty": "Colon"
+ }
+ }
+ }
+ },
+ {
+ "ident": "supertraits",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "TypeParamBound"
+ },
+ {
+ "repr": "+",
+ "ty": "Add"
+ }
+ ]
+ }
+ },
+ {
+ "ident": "brace_token",
+ "ty": {
+ "token_group": "Brace"
+ }
+ },
+ {
+ "ident": "items",
+ "ty": {
+ "vec": {
+ "item": "TraitItem"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ItemTraitAlias",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "vis",
+ "ty": {
+ "item": "Visibility"
+ }
+ },
+ {
+ "ident": "trait_token",
+ "ty": {
+ "token": {
+ "repr": "trait",
+ "ty": "Trait"
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "generics",
+ "ty": {
+ "item": "Generics"
+ }
+ },
+ {
+ "ident": "eq_token",
+ "ty": {
+ "token": {
+ "repr": "=",
+ "ty": "Eq"
+ }
+ }
+ },
+ {
+ "ident": "bounds",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "TypeParamBound"
+ },
+ {
+ "repr": "+",
+ "ty": "Add"
+ }
+ ]
+ }
+ },
+ {
+ "ident": "semi_token",
+ "ty": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ItemType",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "vis",
+ "ty": {
+ "item": "Visibility"
+ }
+ },
+ {
+ "ident": "type_token",
+ "ty": {
+ "token": {
+ "repr": "type",
+ "ty": "Type"
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "generics",
+ "ty": {
+ "item": "Generics"
+ }
+ },
+ {
+ "ident": "eq_token",
+ "ty": {
+ "token": {
+ "repr": "=",
+ "ty": "Eq"
+ }
+ }
+ },
+ {
+ "ident": "ty",
+ "ty": {
+ "box": {
+ "item": "Type"
+ }
+ }
+ },
+ {
+ "ident": "semi_token",
+ "ty": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ItemUnion",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "vis",
+ "ty": {
+ "item": "Visibility"
+ }
+ },
+ {
+ "ident": "union_token",
+ "ty": {
+ "token": {
+ "repr": "union",
+ "ty": "Union"
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "generics",
+ "ty": {
+ "item": "Generics"
+ }
+ },
+ {
+ "ident": "fields",
+ "ty": {
+ "item": "FieldsNamed"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ItemUse",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "vis",
+ "ty": {
+ "item": "Visibility"
+ }
+ },
+ {
+ "ident": "use_token",
+ "ty": {
+ "token": {
+ "repr": "use",
+ "ty": "Use"
+ }
+ }
+ },
+ {
+ "ident": "leading_colon",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "::",
+ "ty": "Colon2"
+ }
+ }
+ }
+ },
+ {
+ "ident": "tree",
+ "ty": {
+ "item": "UseTree"
+ }
+ },
+ {
+ "ident": "semi_token",
+ "ty": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "ItemVerbatim",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "tts",
+ "ty": {
+ "ext": "TokenStream"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "Label",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "name",
+ "ty": {
+ "item": "Lifetime"
+ }
+ },
+ {
+ "ident": "colon_token",
+ "ty": {
+ "token": {
+ "repr": ":",
+ "ty": "Colon"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "Lifetime",
+ "features": {
+ "any": []
+ },
+ "fields": [
+ {
+ "ident": "apostrophe",
+ "ty": {
+ "item": "Span"
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "LifetimeDef",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "lifetime",
+ "ty": {
+ "item": "Lifetime"
+ }
+ },
+ {
+ "ident": "colon_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": ":",
+ "ty": "Colon"
+ }
+ }
+ }
+ },
+ {
+ "ident": "bounds",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "Lifetime"
+ },
+ {
+ "repr": "+",
+ "ty": "Add"
+ }
+ ]
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "enum": {
+ "ident": "Lit",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Str",
+ "fields": [
+ {
+ "item": "LitStr"
+ }
+ ]
+ },
+ {
+ "ident": "ByteStr",
+ "fields": [
+ {
+ "item": "LitByteStr"
+ }
+ ]
+ },
+ {
+ "ident": "Byte",
+ "fields": [
+ {
+ "item": "LitByte"
+ }
+ ]
+ },
+ {
+ "ident": "Char",
+ "fields": [
+ {
+ "item": "LitChar"
+ }
+ ]
+ },
+ {
+ "ident": "Int",
+ "fields": [
+ {
+ "item": "LitInt"
+ }
+ ]
+ },
+ {
+ "ident": "Float",
+ "fields": [
+ {
+ "item": "LitFloat"
+ }
+ ]
+ },
+ {
+ "ident": "Bool",
+ "fields": [
+ {
+ "item": "LitBool"
+ }
+ ]
+ },
+ {
+ "ident": "Verbatim",
+ "fields": [
+ {
+ "item": "LitVerbatim"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "struct": {
+ "ident": "LitBool",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "value",
+ "ty": {
+ "std": "bool"
+ }
+ },
+ {
+ "ident": "span",
+ "ty": {
+ "item": "Span"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "LitByte",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "token",
+ "ty": {
+ "ext": "Literal"
+ }
+ }
+ ],
+ "all_fields_pub": false
+ }
+ },
+ {
+ "struct": {
+ "ident": "LitByteStr",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "token",
+ "ty": {
+ "ext": "Literal"
+ }
+ }
+ ],
+ "all_fields_pub": false
+ }
+ },
+ {
+ "struct": {
+ "ident": "LitChar",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "token",
+ "ty": {
+ "ext": "Literal"
+ }
+ }
+ ],
+ "all_fields_pub": false
+ }
+ },
+ {
+ "struct": {
+ "ident": "LitFloat",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "token",
+ "ty": {
+ "ext": "Literal"
+ }
+ }
+ ],
+ "all_fields_pub": false
+ }
+ },
+ {
+ "struct": {
+ "ident": "LitInt",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "token",
+ "ty": {
+ "ext": "Literal"
+ }
+ }
+ ],
+ "all_fields_pub": false
+ }
+ },
+ {
+ "struct": {
+ "ident": "LitStr",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "token",
+ "ty": {
+ "ext": "Literal"
+ }
+ }
+ ],
+ "all_fields_pub": false
+ }
+ },
+ {
+ "struct": {
+ "ident": "LitVerbatim",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "token",
+ "ty": {
+ "ext": "Literal"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "Local",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "let_token",
+ "ty": {
+ "token": {
+ "repr": "let",
+ "ty": "Let"
+ }
+ }
+ },
+ {
+ "ident": "pats",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "Pat"
+ },
+ {
+ "repr": "|",
+ "ty": "Or"
+ }
+ ]
+ }
+ },
+ {
+ "ident": "ty",
+ "ty": {
+ "option": {
+ "tuple": [
+ {
+ "token": {
+ "repr": ":",
+ "ty": "Colon"
+ }
+ },
+ {
+ "box": {
+ "item": "Type"
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "ident": "init",
+ "ty": {
+ "option": {
+ "tuple": [
+ {
+ "token": {
+ "repr": "=",
+ "ty": "Eq"
+ }
+ },
+ {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "ident": "semi_token",
+ "ty": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "Macro",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "path",
+ "ty": {
+ "item": "Path"
+ }
+ },
+ {
+ "ident": "bang_token",
+ "ty": {
+ "token": {
+ "repr": "!",
+ "ty": "Bang"
+ }
+ }
+ },
+ {
+ "ident": "delimiter",
+ "ty": {
+ "item": "MacroDelimiter"
+ }
+ },
+ {
+ "ident": "tts",
+ "ty": {
+ "ext": "TokenStream"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "enum": {
+ "ident": "MacroDelimiter",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Paren",
+ "fields": [
+ {
+ "token_group": "Paren"
+ }
+ ]
+ },
+ {
+ "ident": "Brace",
+ "fields": [
+ {
+ "token_group": "Brace"
+ }
+ ]
+ },
+ {
+ "ident": "Bracket",
+ "fields": [
+ {
+ "token_group": "Bracket"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "enum": {
+ "ident": "Member",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Named",
+ "fields": [
+ {
+ "item": "Ident"
+ }
+ ]
+ },
+ {
+ "ident": "Unnamed",
+ "fields": [
+ {
+ "item": "Index"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "enum": {
+ "ident": "Meta",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Word",
+ "fields": [
+ {
+ "item": "Ident"
+ }
+ ]
+ },
+ {
+ "ident": "List",
+ "fields": [
+ {
+ "item": "MetaList"
+ }
+ ]
+ },
+ {
+ "ident": "NameValue",
+ "fields": [
+ {
+ "item": "MetaNameValue"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "struct": {
+ "ident": "MetaList",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "paren_token",
+ "ty": {
+ "token_group": "Paren"
+ }
+ },
+ {
+ "ident": "nested",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "NestedMeta"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "MetaNameValue",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "eq_token",
+ "ty": {
+ "token": {
+ "repr": "=",
+ "ty": "Eq"
+ }
+ }
+ },
+ {
+ "ident": "lit",
+ "ty": {
+ "item": "Lit"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "MethodSig",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "constness",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "const",
+ "ty": "Const"
+ }
+ }
+ }
+ },
+ {
+ "ident": "unsafety",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "unsafe",
+ "ty": "Unsafe"
+ }
+ }
+ }
+ },
+ {
+ "ident": "asyncness",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "async",
+ "ty": "Async"
+ }
+ }
+ }
+ },
+ {
+ "ident": "abi",
+ "ty": {
+ "option": {
+ "item": "Abi"
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "decl",
+ "ty": {
+ "item": "FnDecl"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "MethodTurbofish",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "colon2_token",
+ "ty": {
+ "token": {
+ "repr": "::",
+ "ty": "Colon2"
+ }
+ }
+ },
+ {
+ "ident": "lt_token",
+ "ty": {
+ "token": {
+ "repr": "<",
+ "ty": "Lt"
+ }
+ }
+ },
+ {
+ "ident": "args",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "GenericMethodArgument"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ },
+ {
+ "ident": "gt_token",
+ "ty": {
+ "token": {
+ "repr": ">",
+ "ty": "Gt"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "enum": {
+ "ident": "NestedMeta",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Meta",
+ "fields": [
+ {
+ "item": "Meta"
+ }
+ ]
+ },
+ {
+ "ident": "Literal",
+ "fields": [
+ {
+ "item": "Lit"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "struct": {
+ "ident": "ParenthesizedGenericArguments",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "paren_token",
+ "ty": {
+ "token_group": "Paren"
+ }
+ },
+ {
+ "ident": "inputs",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "Type"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ },
+ {
+ "ident": "output",
+ "ty": {
+ "item": "ReturnType"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "enum": {
+ "ident": "Pat",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Wild",
+ "fields": [
+ {
+ "item": "PatWild"
+ }
+ ]
+ },
+ {
+ "ident": "Ident",
+ "fields": [
+ {
+ "item": "PatIdent"
+ }
+ ]
+ },
+ {
+ "ident": "Struct",
+ "fields": [
+ {
+ "item": "PatStruct"
+ }
+ ]
+ },
+ {
+ "ident": "TupleStruct",
+ "fields": [
+ {
+ "item": "PatTupleStruct"
+ }
+ ]
+ },
+ {
+ "ident": "Path",
+ "fields": [
+ {
+ "item": "PatPath"
+ }
+ ]
+ },
+ {
+ "ident": "Tuple",
+ "fields": [
+ {
+ "item": "PatTuple"
+ }
+ ]
+ },
+ {
+ "ident": "Box",
+ "fields": [
+ {
+ "item": "PatBox"
+ }
+ ]
+ },
+ {
+ "ident": "Ref",
+ "fields": [
+ {
+ "item": "PatRef"
+ }
+ ]
+ },
+ {
+ "ident": "Lit",
+ "fields": [
+ {
+ "item": "PatLit"
+ }
+ ]
+ },
+ {
+ "ident": "Range",
+ "fields": [
+ {
+ "item": "PatRange"
+ }
+ ]
+ },
+ {
+ "ident": "Slice",
+ "fields": [
+ {
+ "item": "PatSlice"
+ }
+ ]
+ },
+ {
+ "ident": "Macro",
+ "fields": [
+ {
+ "item": "PatMacro"
+ }
+ ]
+ },
+ {
+ "ident": "Verbatim",
+ "fields": [
+ {
+ "item": "PatVerbatim"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "struct": {
+ "ident": "PatBox",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "box_token",
+ "ty": {
+ "token": {
+ "repr": "box",
+ "ty": "Box"
+ }
+ }
+ },
+ {
+ "ident": "pat",
+ "ty": {
+ "box": {
+ "item": "Pat"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "PatIdent",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "by_ref",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "ref",
+ "ty": "Ref"
+ }
+ }
+ }
+ },
+ {
+ "ident": "mutability",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "mut",
+ "ty": "Mut"
+ }
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "subpat",
+ "ty": {
+ "option": {
+ "tuple": [
+ {
+ "token": {
+ "repr": "@",
+ "ty": "At"
+ }
+ },
+ {
+ "box": {
+ "item": "Pat"
+ }
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "PatLit",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "expr",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "PatMacro",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "mac",
+ "ty": {
+ "item": "Macro"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "PatPath",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "qself",
+ "ty": {
+ "option": {
+ "item": "QSelf"
+ }
+ }
+ },
+ {
+ "ident": "path",
+ "ty": {
+ "item": "Path"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "PatRange",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "lo",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ },
+ {
+ "ident": "limits",
+ "ty": {
+ "item": "RangeLimits"
+ }
+ },
+ {
+ "ident": "hi",
+ "ty": {
+ "box": {
+ "item": "Expr"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "PatRef",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "and_token",
+ "ty": {
+ "token": {
+ "repr": "&",
+ "ty": "And"
+ }
+ }
+ },
+ {
+ "ident": "mutability",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "mut",
+ "ty": "Mut"
+ }
+ }
+ }
+ },
+ {
+ "ident": "pat",
+ "ty": {
+ "box": {
+ "item": "Pat"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "PatSlice",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "bracket_token",
+ "ty": {
+ "token_group": "Bracket"
+ }
+ },
+ {
+ "ident": "front",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "Pat"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ },
+ {
+ "ident": "middle",
+ "ty": {
+ "option": {
+ "box": {
+ "item": "Pat"
+ }
+ }
+ }
+ },
+ {
+ "ident": "dot2_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "..",
+ "ty": "Dot2"
+ }
+ }
+ }
+ },
+ {
+ "ident": "comma_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ }
+ }
+ },
+ {
+ "ident": "back",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "Pat"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "PatStruct",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "path",
+ "ty": {
+ "item": "Path"
+ }
+ },
+ {
+ "ident": "brace_token",
+ "ty": {
+ "token_group": "Brace"
+ }
+ },
+ {
+ "ident": "fields",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "FieldPat"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ },
+ {
+ "ident": "dot2_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "..",
+ "ty": "Dot2"
+ }
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "PatTuple",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "paren_token",
+ "ty": {
+ "token_group": "Paren"
+ }
+ },
+ {
+ "ident": "front",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "Pat"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ },
+ {
+ "ident": "dot2_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "..",
+ "ty": "Dot2"
+ }
+ }
+ }
+ },
+ {
+ "ident": "comma_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ }
+ }
+ },
+ {
+ "ident": "back",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "Pat"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "PatTupleStruct",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "path",
+ "ty": {
+ "item": "Path"
+ }
+ },
+ {
+ "ident": "pat",
+ "ty": {
+ "item": "PatTuple"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "PatVerbatim",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "tts",
+ "ty": {
+ "ext": "TokenStream"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "PatWild",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "underscore_token",
+ "ty": {
+ "token": {
+ "repr": "_",
+ "ty": "Underscore"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "Path",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "leading_colon",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "::",
+ "ty": "Colon2"
+ }
+ }
+ }
+ },
+ {
+ "ident": "segments",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "PathSegment"
+ },
+ {
+ "repr": "::",
+ "ty": "Colon2"
+ }
+ ]
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "enum": {
+ "ident": "PathArguments",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "None",
+ "fields": []
+ },
+ {
+ "ident": "AngleBracketed",
+ "fields": [
+ {
+ "item": "AngleBracketedGenericArguments"
+ }
+ ]
+ },
+ {
+ "ident": "Parenthesized",
+ "fields": [
+ {
+ "item": "ParenthesizedGenericArguments"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "struct": {
+ "ident": "PathSegment",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "arguments",
+ "ty": {
+ "item": "PathArguments"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "PredicateEq",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "lhs_ty",
+ "ty": {
+ "item": "Type"
+ }
+ },
+ {
+ "ident": "eq_token",
+ "ty": {
+ "token": {
+ "repr": "=",
+ "ty": "Eq"
+ }
+ }
+ },
+ {
+ "ident": "rhs_ty",
+ "ty": {
+ "item": "Type"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "PredicateLifetime",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "lifetime",
+ "ty": {
+ "item": "Lifetime"
+ }
+ },
+ {
+ "ident": "colon_token",
+ "ty": {
+ "token": {
+ "repr": ":",
+ "ty": "Colon"
+ }
+ }
+ },
+ {
+ "ident": "bounds",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "Lifetime"
+ },
+ {
+ "repr": "+",
+ "ty": "Add"
+ }
+ ]
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "PredicateType",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "lifetimes",
+ "ty": {
+ "option": {
+ "item": "BoundLifetimes"
+ }
+ }
+ },
+ {
+ "ident": "bounded_ty",
+ "ty": {
+ "item": "Type"
+ }
+ },
+ {
+ "ident": "colon_token",
+ "ty": {
+ "token": {
+ "repr": ":",
+ "ty": "Colon"
+ }
+ }
+ },
+ {
+ "ident": "bounds",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "TypeParamBound"
+ },
+ {
+ "repr": "+",
+ "ty": "Add"
+ }
+ ]
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "QSelf",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "lt_token",
+ "ty": {
+ "token": {
+ "repr": "<",
+ "ty": "Lt"
+ }
+ }
+ },
+ {
+ "ident": "ty",
+ "ty": {
+ "box": {
+ "item": "Type"
+ }
+ }
+ },
+ {
+ "ident": "position",
+ "ty": {
+ "std": "usize"
+ }
+ },
+ {
+ "ident": "as_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "as",
+ "ty": "As"
+ }
+ }
+ }
+ },
+ {
+ "ident": "gt_token",
+ "ty": {
+ "token": {
+ "repr": ">",
+ "ty": "Gt"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "enum": {
+ "ident": "RangeLimits",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "HalfOpen",
+ "fields": [
+ {
+ "token": {
+ "repr": "..",
+ "ty": "Dot2"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "Closed",
+ "fields": [
+ {
+ "token": {
+ "repr": "..=",
+ "ty": "DotDotEq"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "enum": {
+ "ident": "ReturnType",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Default",
+ "fields": []
+ },
+ {
+ "ident": "Type",
+ "fields": [
+ {
+ "token": {
+ "repr": "->",
+ "ty": "RArrow"
+ }
+ },
+ {
+ "box": {
+ "item": "Type"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "struct": {
+ "ident": "Span",
+ "features": {
+ "any": []
+ },
+ "fields": [],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "enum": {
+ "ident": "Stmt",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Local",
+ "fields": [
+ {
+ "item": "Local"
+ }
+ ]
+ },
+ {
+ "ident": "Item",
+ "fields": [
+ {
+ "item": "Item"
+ }
+ ]
+ },
+ {
+ "ident": "Expr",
+ "fields": [
+ {
+ "item": "Expr"
+ }
+ ]
+ },
+ {
+ "ident": "Semi",
+ "fields": [
+ {
+ "item": "Expr"
+ },
+ {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "struct": {
+ "ident": "TraitBound",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "paren_token",
+ "ty": {
+ "option": {
+ "token_group": "Paren"
+ }
+ }
+ },
+ {
+ "ident": "modifier",
+ "ty": {
+ "item": "TraitBoundModifier"
+ }
+ },
+ {
+ "ident": "lifetimes",
+ "ty": {
+ "option": {
+ "item": "BoundLifetimes"
+ }
+ }
+ },
+ {
+ "ident": "path",
+ "ty": {
+ "item": "Path"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "enum": {
+ "ident": "TraitBoundModifier",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "None",
+ "fields": []
+ },
+ {
+ "ident": "Maybe",
+ "fields": [
+ {
+ "token": {
+ "repr": "?",
+ "ty": "Question"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "enum": {
+ "ident": "TraitItem",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Const",
+ "fields": [
+ {
+ "item": "TraitItemConst"
+ }
+ ]
+ },
+ {
+ "ident": "Method",
+ "fields": [
+ {
+ "item": "TraitItemMethod"
+ }
+ ]
+ },
+ {
+ "ident": "Type",
+ "fields": [
+ {
+ "item": "TraitItemType"
+ }
+ ]
+ },
+ {
+ "ident": "Macro",
+ "fields": [
+ {
+ "item": "TraitItemMacro"
+ }
+ ]
+ },
+ {
+ "ident": "Verbatim",
+ "fields": [
+ {
+ "item": "TraitItemVerbatim"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "struct": {
+ "ident": "TraitItemConst",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "const_token",
+ "ty": {
+ "token": {
+ "repr": "const",
+ "ty": "Const"
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "colon_token",
+ "ty": {
+ "token": {
+ "repr": ":",
+ "ty": "Colon"
+ }
+ }
+ },
+ {
+ "ident": "ty",
+ "ty": {
+ "item": "Type"
+ }
+ },
+ {
+ "ident": "default",
+ "ty": {
+ "option": {
+ "tuple": [
+ {
+ "token": {
+ "repr": "=",
+ "ty": "Eq"
+ }
+ },
+ {
+ "item": "Expr"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "ident": "semi_token",
+ "ty": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "TraitItemMacro",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "mac",
+ "ty": {
+ "item": "Macro"
+ }
+ },
+ {
+ "ident": "semi_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "TraitItemMethod",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "sig",
+ "ty": {
+ "item": "MethodSig"
+ }
+ },
+ {
+ "ident": "default",
+ "ty": {
+ "option": {
+ "item": "Block"
+ }
+ }
+ },
+ {
+ "ident": "semi_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "TraitItemType",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "type_token",
+ "ty": {
+ "token": {
+ "repr": "type",
+ "ty": "Type"
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "generics",
+ "ty": {
+ "item": "Generics"
+ }
+ },
+ {
+ "ident": "colon_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": ":",
+ "ty": "Colon"
+ }
+ }
+ }
+ },
+ {
+ "ident": "bounds",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "TypeParamBound"
+ },
+ {
+ "repr": "+",
+ "ty": "Add"
+ }
+ ]
+ }
+ },
+ {
+ "ident": "default",
+ "ty": {
+ "option": {
+ "tuple": [
+ {
+ "token": {
+ "repr": "=",
+ "ty": "Eq"
+ }
+ },
+ {
+ "item": "Type"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "ident": "semi_token",
+ "ty": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "TraitItemVerbatim",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "tts",
+ "ty": {
+ "ext": "TokenStream"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "enum": {
+ "ident": "Type",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Slice",
+ "fields": [
+ {
+ "item": "TypeSlice"
+ }
+ ]
+ },
+ {
+ "ident": "Array",
+ "fields": [
+ {
+ "item": "TypeArray"
+ }
+ ]
+ },
+ {
+ "ident": "Ptr",
+ "fields": [
+ {
+ "item": "TypePtr"
+ }
+ ]
+ },
+ {
+ "ident": "Reference",
+ "fields": [
+ {
+ "item": "TypeReference"
+ }
+ ]
+ },
+ {
+ "ident": "BareFn",
+ "fields": [
+ {
+ "item": "TypeBareFn"
+ }
+ ]
+ },
+ {
+ "ident": "Never",
+ "fields": [
+ {
+ "item": "TypeNever"
+ }
+ ]
+ },
+ {
+ "ident": "Tuple",
+ "fields": [
+ {
+ "item": "TypeTuple"
+ }
+ ]
+ },
+ {
+ "ident": "Path",
+ "fields": [
+ {
+ "item": "TypePath"
+ }
+ ]
+ },
+ {
+ "ident": "TraitObject",
+ "fields": [
+ {
+ "item": "TypeTraitObject"
+ }
+ ]
+ },
+ {
+ "ident": "ImplTrait",
+ "fields": [
+ {
+ "item": "TypeImplTrait"
+ }
+ ]
+ },
+ {
+ "ident": "Paren",
+ "fields": [
+ {
+ "item": "TypeParen"
+ }
+ ]
+ },
+ {
+ "ident": "Group",
+ "fields": [
+ {
+ "item": "TypeGroup"
+ }
+ ]
+ },
+ {
+ "ident": "Infer",
+ "fields": [
+ {
+ "item": "TypeInfer"
+ }
+ ]
+ },
+ {
+ "ident": "Macro",
+ "fields": [
+ {
+ "item": "TypeMacro"
+ }
+ ]
+ },
+ {
+ "ident": "Verbatim",
+ "fields": [
+ {
+ "item": "TypeVerbatim"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "struct": {
+ "ident": "TypeArray",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "bracket_token",
+ "ty": {
+ "token_group": "Bracket"
+ }
+ },
+ {
+ "ident": "elem",
+ "ty": {
+ "box": {
+ "item": "Type"
+ }
+ }
+ },
+ {
+ "ident": "semi_token",
+ "ty": {
+ "token": {
+ "repr": ";",
+ "ty": "Semi"
+ }
+ }
+ },
+ {
+ "ident": "len",
+ "ty": {
+ "item": "Expr"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "TypeBareFn",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "lifetimes",
+ "ty": {
+ "option": {
+ "item": "BoundLifetimes"
+ }
+ }
+ },
+ {
+ "ident": "unsafety",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "unsafe",
+ "ty": "Unsafe"
+ }
+ }
+ }
+ },
+ {
+ "ident": "abi",
+ "ty": {
+ "option": {
+ "item": "Abi"
+ }
+ }
+ },
+ {
+ "ident": "fn_token",
+ "ty": {
+ "token": {
+ "repr": "fn",
+ "ty": "Fn"
+ }
+ }
+ },
+ {
+ "ident": "paren_token",
+ "ty": {
+ "token_group": "Paren"
+ }
+ },
+ {
+ "ident": "inputs",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "BareFnArg"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ },
+ {
+ "ident": "variadic",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "...",
+ "ty": "Dot3"
+ }
+ }
+ }
+ },
+ {
+ "ident": "output",
+ "ty": {
+ "item": "ReturnType"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "TypeGroup",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "group_token",
+ "ty": {
+ "token_group": "Group"
+ }
+ },
+ {
+ "ident": "elem",
+ "ty": {
+ "box": {
+ "item": "Type"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "TypeImplTrait",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "impl_token",
+ "ty": {
+ "token": {
+ "repr": "impl",
+ "ty": "Impl"
+ }
+ }
+ },
+ {
+ "ident": "bounds",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "TypeParamBound"
+ },
+ {
+ "repr": "+",
+ "ty": "Add"
+ }
+ ]
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "TypeInfer",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "underscore_token",
+ "ty": {
+ "token": {
+ "repr": "_",
+ "ty": "Underscore"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "TypeMacro",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "mac",
+ "ty": {
+ "item": "Macro"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "TypeNever",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "bang_token",
+ "ty": {
+ "token": {
+ "repr": "!",
+ "ty": "Bang"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "TypeParam",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "colon_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": ":",
+ "ty": "Colon"
+ }
+ }
+ }
+ },
+ {
+ "ident": "bounds",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "TypeParamBound"
+ },
+ {
+ "repr": "+",
+ "ty": "Add"
+ }
+ ]
+ }
+ },
+ {
+ "ident": "eq_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "=",
+ "ty": "Eq"
+ }
+ }
+ }
+ },
+ {
+ "ident": "default",
+ "ty": {
+ "option": {
+ "item": "Type"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "enum": {
+ "ident": "TypeParamBound",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Trait",
+ "fields": [
+ {
+ "item": "TraitBound"
+ }
+ ]
+ },
+ {
+ "ident": "Lifetime",
+ "fields": [
+ {
+ "item": "Lifetime"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "struct": {
+ "ident": "TypeParen",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "paren_token",
+ "ty": {
+ "token_group": "Paren"
+ }
+ },
+ {
+ "ident": "elem",
+ "ty": {
+ "box": {
+ "item": "Type"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "TypePath",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "qself",
+ "ty": {
+ "option": {
+ "item": "QSelf"
+ }
+ }
+ },
+ {
+ "ident": "path",
+ "ty": {
+ "item": "Path"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "TypePtr",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "star_token",
+ "ty": {
+ "token": {
+ "repr": "*",
+ "ty": "Star"
+ }
+ }
+ },
+ {
+ "ident": "const_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "const",
+ "ty": "Const"
+ }
+ }
+ }
+ },
+ {
+ "ident": "mutability",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "mut",
+ "ty": "Mut"
+ }
+ }
+ }
+ },
+ {
+ "ident": "elem",
+ "ty": {
+ "box": {
+ "item": "Type"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "TypeReference",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "and_token",
+ "ty": {
+ "token": {
+ "repr": "&",
+ "ty": "And"
+ }
+ }
+ },
+ {
+ "ident": "lifetime",
+ "ty": {
+ "option": {
+ "item": "Lifetime"
+ }
+ }
+ },
+ {
+ "ident": "mutability",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "mut",
+ "ty": "Mut"
+ }
+ }
+ }
+ },
+ {
+ "ident": "elem",
+ "ty": {
+ "box": {
+ "item": "Type"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "TypeSlice",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "bracket_token",
+ "ty": {
+ "token_group": "Bracket"
+ }
+ },
+ {
+ "ident": "elem",
+ "ty": {
+ "box": {
+ "item": "Type"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "TypeTraitObject",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "dyn_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "dyn",
+ "ty": "Dyn"
+ }
+ }
+ }
+ },
+ {
+ "ident": "bounds",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "TypeParamBound"
+ },
+ {
+ "repr": "+",
+ "ty": "Add"
+ }
+ ]
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "TypeTuple",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "paren_token",
+ "ty": {
+ "token_group": "Paren"
+ }
+ },
+ {
+ "ident": "elems",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "Type"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "TypeVerbatim",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "tts",
+ "ty": {
+ "ext": "TokenStream"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "enum": {
+ "ident": "UnOp",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Deref",
+ "fields": [
+ {
+ "token": {
+ "repr": "*",
+ "ty": "Star"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "Not",
+ "fields": [
+ {
+ "token": {
+ "repr": "!",
+ "ty": "Bang"
+ }
+ }
+ ]
+ },
+ {
+ "ident": "Neg",
+ "fields": [
+ {
+ "token": {
+ "repr": "-",
+ "ty": "Sub"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "struct": {
+ "ident": "UseGlob",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "star_token",
+ "ty": {
+ "token": {
+ "repr": "*",
+ "ty": "Star"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "UseGroup",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "brace_token",
+ "ty": {
+ "token_group": "Brace"
+ }
+ },
+ {
+ "ident": "items",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "UseTree"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "UseName",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "UsePath",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "colon2_token",
+ "ty": {
+ "token": {
+ "repr": "::",
+ "ty": "Colon2"
+ }
+ }
+ },
+ {
+ "ident": "tree",
+ "ty": {
+ "box": {
+ "item": "UseTree"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "UseRename",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "as_token",
+ "ty": {
+ "token": {
+ "repr": "as",
+ "ty": "As"
+ }
+ }
+ },
+ {
+ "ident": "rename",
+ "ty": {
+ "item": "Ident"
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "enum": {
+ "ident": "UseTree",
+ "features": {
+ "any": [
+ "full"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Path",
+ "fields": [
+ {
+ "item": "UsePath"
+ }
+ ]
+ },
+ {
+ "ident": "Name",
+ "fields": [
+ {
+ "item": "UseName"
+ }
+ ]
+ },
+ {
+ "ident": "Rename",
+ "fields": [
+ {
+ "item": "UseRename"
+ }
+ ]
+ },
+ {
+ "ident": "Glob",
+ "fields": [
+ {
+ "item": "UseGlob"
+ }
+ ]
+ },
+ {
+ "ident": "Group",
+ "fields": [
+ {
+ "item": "UseGroup"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "struct": {
+ "ident": "Variant",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "attrs",
+ "ty": {
+ "vec": {
+ "item": "Attribute"
+ }
+ }
+ },
+ {
+ "ident": "ident",
+ "ty": {
+ "item": "Ident"
+ }
+ },
+ {
+ "ident": "fields",
+ "ty": {
+ "item": "Fields"
+ }
+ },
+ {
+ "ident": "discriminant",
+ "ty": {
+ "option": {
+ "tuple": [
+ {
+ "token": {
+ "repr": "=",
+ "ty": "Eq"
+ }
+ },
+ {
+ "item": "Expr"
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "VisCrate",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "crate_token",
+ "ty": {
+ "token": {
+ "repr": "crate",
+ "ty": "Crate"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "VisPublic",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "pub_token",
+ "ty": {
+ "token": {
+ "repr": "pub",
+ "ty": "Pub"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "struct": {
+ "ident": "VisRestricted",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "pub_token",
+ "ty": {
+ "token": {
+ "repr": "pub",
+ "ty": "Pub"
+ }
+ }
+ },
+ {
+ "ident": "paren_token",
+ "ty": {
+ "token_group": "Paren"
+ }
+ },
+ {
+ "ident": "in_token",
+ "ty": {
+ "option": {
+ "token": {
+ "repr": "in",
+ "ty": "In"
+ }
+ }
+ }
+ },
+ {
+ "ident": "path",
+ "ty": {
+ "box": {
+ "item": "Path"
+ }
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "enum": {
+ "ident": "Visibility",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Public",
+ "fields": [
+ {
+ "item": "VisPublic"
+ }
+ ]
+ },
+ {
+ "ident": "Crate",
+ "fields": [
+ {
+ "item": "VisCrate"
+ }
+ ]
+ },
+ {
+ "ident": "Restricted",
+ "fields": [
+ {
+ "item": "VisRestricted"
+ }
+ ]
+ },
+ {
+ "ident": "Inherited",
+ "fields": []
+ }
+ ]
+ }
+ },
+ {
+ "struct": {
+ "ident": "WhereClause",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "fields": [
+ {
+ "ident": "where_token",
+ "ty": {
+ "token": {
+ "repr": "where",
+ "ty": "Where"
+ }
+ }
+ },
+ {
+ "ident": "predicates",
+ "ty": {
+ "punctuated": [
+ {
+ "item": "WherePredicate"
+ },
+ {
+ "repr": ",",
+ "ty": "Comma"
+ }
+ ]
+ }
+ }
+ ],
+ "all_fields_pub": true
+ }
+ },
+ {
+ "enum": {
+ "ident": "WherePredicate",
+ "features": {
+ "any": [
+ "full",
+ "derive"
+ ]
+ },
+ "variants": [
+ {
+ "ident": "Type",
+ "fields": [
+ {
+ "item": "PredicateType"
+ }
+ ]
+ },
+ {
+ "ident": "Lifetime",
+ "fields": [
+ {
+ "item": "PredicateLifetime"
+ }
+ ]
+ },
+ {
+ "ident": "Eq",
+ "fields": [
+ {
+ "item": "PredicateEq"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+}
\ No newline at end of file