• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{
2  "version": "2.0.48",
3  "types": [
4    {
5      "ident": "Abi",
6      "features": {
7        "any": [
8          "derive",
9          "full"
10        ]
11      },
12      "fields": {
13        "extern_token": {
14          "token": "Extern"
15        },
16        "name": {
17          "option": {
18            "syn": "LitStr"
19          }
20        }
21      }
22    },
23    {
24      "ident": "AngleBracketedGenericArguments",
25      "features": {
26        "any": [
27          "derive",
28          "full"
29        ]
30      },
31      "fields": {
32        "colon2_token": {
33          "option": {
34            "token": "PathSep"
35          }
36        },
37        "lt_token": {
38          "token": "Lt"
39        },
40        "args": {
41          "punctuated": {
42            "element": {
43              "syn": "GenericArgument"
44            },
45            "punct": "Comma"
46          }
47        },
48        "gt_token": {
49          "token": "Gt"
50        }
51      }
52    },
53    {
54      "ident": "Arm",
55      "features": {
56        "any": [
57          "full"
58        ]
59      },
60      "fields": {
61        "attrs": {
62          "vec": {
63            "syn": "Attribute"
64          }
65        },
66        "pat": {
67          "syn": "Pat"
68        },
69        "guard": {
70          "option": {
71            "tuple": [
72              {
73                "token": "If"
74              },
75              {
76                "box": {
77                  "syn": "Expr"
78                }
79              }
80            ]
81          }
82        },
83        "fat_arrow_token": {
84          "token": "FatArrow"
85        },
86        "body": {
87          "box": {
88            "syn": "Expr"
89          }
90        },
91        "comma": {
92          "option": {
93            "token": "Comma"
94          }
95        }
96      }
97    },
98    {
99      "ident": "AssocConst",
100      "features": {
101        "any": [
102          "derive",
103          "full"
104        ]
105      },
106      "fields": {
107        "ident": {
108          "proc_macro2": "Ident"
109        },
110        "generics": {
111          "option": {
112            "syn": "AngleBracketedGenericArguments"
113          }
114        },
115        "eq_token": {
116          "token": "Eq"
117        },
118        "value": {
119          "syn": "Expr"
120        }
121      }
122    },
123    {
124      "ident": "AssocType",
125      "features": {
126        "any": [
127          "derive",
128          "full"
129        ]
130      },
131      "fields": {
132        "ident": {
133          "proc_macro2": "Ident"
134        },
135        "generics": {
136          "option": {
137            "syn": "AngleBracketedGenericArguments"
138          }
139        },
140        "eq_token": {
141          "token": "Eq"
142        },
143        "ty": {
144          "syn": "Type"
145        }
146      }
147    },
148    {
149      "ident": "AttrStyle",
150      "features": {
151        "any": [
152          "derive",
153          "full"
154        ]
155      },
156      "variants": {
157        "Outer": [],
158        "Inner": [
159          {
160            "token": "Not"
161          }
162        ]
163      }
164    },
165    {
166      "ident": "Attribute",
167      "features": {
168        "any": [
169          "derive",
170          "full"
171        ]
172      },
173      "fields": {
174        "pound_token": {
175          "token": "Pound"
176        },
177        "style": {
178          "syn": "AttrStyle"
179        },
180        "bracket_token": {
181          "group": "Bracket"
182        },
183        "meta": {
184          "syn": "Meta"
185        }
186      }
187    },
188    {
189      "ident": "BareFnArg",
190      "features": {
191        "any": [
192          "derive",
193          "full"
194        ]
195      },
196      "fields": {
197        "attrs": {
198          "vec": {
199            "syn": "Attribute"
200          }
201        },
202        "name": {
203          "option": {
204            "tuple": [
205              {
206                "proc_macro2": "Ident"
207              },
208              {
209                "token": "Colon"
210              }
211            ]
212          }
213        },
214        "ty": {
215          "syn": "Type"
216        }
217      }
218    },
219    {
220      "ident": "BareVariadic",
221      "features": {
222        "any": [
223          "derive",
224          "full"
225        ]
226      },
227      "fields": {
228        "attrs": {
229          "vec": {
230            "syn": "Attribute"
231          }
232        },
233        "name": {
234          "option": {
235            "tuple": [
236              {
237                "proc_macro2": "Ident"
238              },
239              {
240                "token": "Colon"
241              }
242            ]
243          }
244        },
245        "dots": {
246          "token": "DotDotDot"
247        },
248        "comma": {
249          "option": {
250            "token": "Comma"
251          }
252        }
253      }
254    },
255    {
256      "ident": "BinOp",
257      "features": {
258        "any": [
259          "derive",
260          "full"
261        ]
262      },
263      "variants": {
264        "Add": [
265          {
266            "token": "Plus"
267          }
268        ],
269        "Sub": [
270          {
271            "token": "Minus"
272          }
273        ],
274        "Mul": [
275          {
276            "token": "Star"
277          }
278        ],
279        "Div": [
280          {
281            "token": "Slash"
282          }
283        ],
284        "Rem": [
285          {
286            "token": "Percent"
287          }
288        ],
289        "And": [
290          {
291            "token": "AndAnd"
292          }
293        ],
294        "Or": [
295          {
296            "token": "OrOr"
297          }
298        ],
299        "BitXor": [
300          {
301            "token": "Caret"
302          }
303        ],
304        "BitAnd": [
305          {
306            "token": "And"
307          }
308        ],
309        "BitOr": [
310          {
311            "token": "Or"
312          }
313        ],
314        "Shl": [
315          {
316            "token": "Shl"
317          }
318        ],
319        "Shr": [
320          {
321            "token": "Shr"
322          }
323        ],
324        "Eq": [
325          {
326            "token": "EqEq"
327          }
328        ],
329        "Lt": [
330          {
331            "token": "Lt"
332          }
333        ],
334        "Le": [
335          {
336            "token": "Le"
337          }
338        ],
339        "Ne": [
340          {
341            "token": "Ne"
342          }
343        ],
344        "Ge": [
345          {
346            "token": "Ge"
347          }
348        ],
349        "Gt": [
350          {
351            "token": "Gt"
352          }
353        ],
354        "AddAssign": [
355          {
356            "token": "PlusEq"
357          }
358        ],
359        "SubAssign": [
360          {
361            "token": "MinusEq"
362          }
363        ],
364        "MulAssign": [
365          {
366            "token": "StarEq"
367          }
368        ],
369        "DivAssign": [
370          {
371            "token": "SlashEq"
372          }
373        ],
374        "RemAssign": [
375          {
376            "token": "PercentEq"
377          }
378        ],
379        "BitXorAssign": [
380          {
381            "token": "CaretEq"
382          }
383        ],
384        "BitAndAssign": [
385          {
386            "token": "AndEq"
387          }
388        ],
389        "BitOrAssign": [
390          {
391            "token": "OrEq"
392          }
393        ],
394        "ShlAssign": [
395          {
396            "token": "ShlEq"
397          }
398        ],
399        "ShrAssign": [
400          {
401            "token": "ShrEq"
402          }
403        ]
404      },
405      "exhaustive": false
406    },
407    {
408      "ident": "Block",
409      "features": {
410        "any": [
411          "full"
412        ]
413      },
414      "fields": {
415        "brace_token": {
416          "group": "Brace"
417        },
418        "stmts": {
419          "vec": {
420            "syn": "Stmt"
421          }
422        }
423      }
424    },
425    {
426      "ident": "BoundLifetimes",
427      "features": {
428        "any": [
429          "derive",
430          "full"
431        ]
432      },
433      "fields": {
434        "for_token": {
435          "token": "For"
436        },
437        "lt_token": {
438          "token": "Lt"
439        },
440        "lifetimes": {
441          "punctuated": {
442            "element": {
443              "syn": "GenericParam"
444            },
445            "punct": "Comma"
446          }
447        },
448        "gt_token": {
449          "token": "Gt"
450        }
451      }
452    },
453    {
454      "ident": "ConstParam",
455      "features": {
456        "any": [
457          "derive",
458          "full"
459        ]
460      },
461      "fields": {
462        "attrs": {
463          "vec": {
464            "syn": "Attribute"
465          }
466        },
467        "const_token": {
468          "token": "Const"
469        },
470        "ident": {
471          "proc_macro2": "Ident"
472        },
473        "colon_token": {
474          "token": "Colon"
475        },
476        "ty": {
477          "syn": "Type"
478        },
479        "eq_token": {
480          "option": {
481            "token": "Eq"
482          }
483        },
484        "default": {
485          "option": {
486            "syn": "Expr"
487          }
488        }
489      }
490    },
491    {
492      "ident": "Constraint",
493      "features": {
494        "any": [
495          "derive",
496          "full"
497        ]
498      },
499      "fields": {
500        "ident": {
501          "proc_macro2": "Ident"
502        },
503        "generics": {
504          "option": {
505            "syn": "AngleBracketedGenericArguments"
506          }
507        },
508        "colon_token": {
509          "token": "Colon"
510        },
511        "bounds": {
512          "punctuated": {
513            "element": {
514              "syn": "TypeParamBound"
515            },
516            "punct": "Plus"
517          }
518        }
519      }
520    },
521    {
522      "ident": "Data",
523      "features": {
524        "any": [
525          "derive"
526        ]
527      },
528      "variants": {
529        "Struct": [
530          {
531            "syn": "DataStruct"
532          }
533        ],
534        "Enum": [
535          {
536            "syn": "DataEnum"
537          }
538        ],
539        "Union": [
540          {
541            "syn": "DataUnion"
542          }
543        ]
544      }
545    },
546    {
547      "ident": "DataEnum",
548      "features": {
549        "any": [
550          "derive"
551        ]
552      },
553      "fields": {
554        "enum_token": {
555          "token": "Enum"
556        },
557        "brace_token": {
558          "group": "Brace"
559        },
560        "variants": {
561          "punctuated": {
562            "element": {
563              "syn": "Variant"
564            },
565            "punct": "Comma"
566          }
567        }
568      }
569    },
570    {
571      "ident": "DataStruct",
572      "features": {
573        "any": [
574          "derive"
575        ]
576      },
577      "fields": {
578        "struct_token": {
579          "token": "Struct"
580        },
581        "fields": {
582          "syn": "Fields"
583        },
584        "semi_token": {
585          "option": {
586            "token": "Semi"
587          }
588        }
589      }
590    },
591    {
592      "ident": "DataUnion",
593      "features": {
594        "any": [
595          "derive"
596        ]
597      },
598      "fields": {
599        "union_token": {
600          "token": "Union"
601        },
602        "fields": {
603          "syn": "FieldsNamed"
604        }
605      }
606    },
607    {
608      "ident": "DeriveInput",
609      "features": {
610        "any": [
611          "derive"
612        ]
613      },
614      "fields": {
615        "attrs": {
616          "vec": {
617            "syn": "Attribute"
618          }
619        },
620        "vis": {
621          "syn": "Visibility"
622        },
623        "ident": {
624          "proc_macro2": "Ident"
625        },
626        "generics": {
627          "syn": "Generics"
628        },
629        "data": {
630          "syn": "Data"
631        }
632      }
633    },
634    {
635      "ident": "Expr",
636      "features": {
637        "any": [
638          "derive",
639          "full"
640        ]
641      },
642      "variants": {
643        "Array": [
644          {
645            "syn": "ExprArray"
646          }
647        ],
648        "Assign": [
649          {
650            "syn": "ExprAssign"
651          }
652        ],
653        "Async": [
654          {
655            "syn": "ExprAsync"
656          }
657        ],
658        "Await": [
659          {
660            "syn": "ExprAwait"
661          }
662        ],
663        "Binary": [
664          {
665            "syn": "ExprBinary"
666          }
667        ],
668        "Block": [
669          {
670            "syn": "ExprBlock"
671          }
672        ],
673        "Break": [
674          {
675            "syn": "ExprBreak"
676          }
677        ],
678        "Call": [
679          {
680            "syn": "ExprCall"
681          }
682        ],
683        "Cast": [
684          {
685            "syn": "ExprCast"
686          }
687        ],
688        "Closure": [
689          {
690            "syn": "ExprClosure"
691          }
692        ],
693        "Const": [
694          {
695            "syn": "ExprConst"
696          }
697        ],
698        "Continue": [
699          {
700            "syn": "ExprContinue"
701          }
702        ],
703        "Field": [
704          {
705            "syn": "ExprField"
706          }
707        ],
708        "ForLoop": [
709          {
710            "syn": "ExprForLoop"
711          }
712        ],
713        "Group": [
714          {
715            "syn": "ExprGroup"
716          }
717        ],
718        "If": [
719          {
720            "syn": "ExprIf"
721          }
722        ],
723        "Index": [
724          {
725            "syn": "ExprIndex"
726          }
727        ],
728        "Infer": [
729          {
730            "syn": "ExprInfer"
731          }
732        ],
733        "Let": [
734          {
735            "syn": "ExprLet"
736          }
737        ],
738        "Lit": [
739          {
740            "syn": "ExprLit"
741          }
742        ],
743        "Loop": [
744          {
745            "syn": "ExprLoop"
746          }
747        ],
748        "Macro": [
749          {
750            "syn": "ExprMacro"
751          }
752        ],
753        "Match": [
754          {
755            "syn": "ExprMatch"
756          }
757        ],
758        "MethodCall": [
759          {
760            "syn": "ExprMethodCall"
761          }
762        ],
763        "Paren": [
764          {
765            "syn": "ExprParen"
766          }
767        ],
768        "Path": [
769          {
770            "syn": "ExprPath"
771          }
772        ],
773        "Range": [
774          {
775            "syn": "ExprRange"
776          }
777        ],
778        "Reference": [
779          {
780            "syn": "ExprReference"
781          }
782        ],
783        "Repeat": [
784          {
785            "syn": "ExprRepeat"
786          }
787        ],
788        "Return": [
789          {
790            "syn": "ExprReturn"
791          }
792        ],
793        "Struct": [
794          {
795            "syn": "ExprStruct"
796          }
797        ],
798        "Try": [
799          {
800            "syn": "ExprTry"
801          }
802        ],
803        "TryBlock": [
804          {
805            "syn": "ExprTryBlock"
806          }
807        ],
808        "Tuple": [
809          {
810            "syn": "ExprTuple"
811          }
812        ],
813        "Unary": [
814          {
815            "syn": "ExprUnary"
816          }
817        ],
818        "Unsafe": [
819          {
820            "syn": "ExprUnsafe"
821          }
822        ],
823        "Verbatim": [
824          {
825            "proc_macro2": "TokenStream"
826          }
827        ],
828        "While": [
829          {
830            "syn": "ExprWhile"
831          }
832        ],
833        "Yield": [
834          {
835            "syn": "ExprYield"
836          }
837        ]
838      },
839      "exhaustive": false
840    },
841    {
842      "ident": "ExprArray",
843      "features": {
844        "any": [
845          "full"
846        ]
847      },
848      "fields": {
849        "attrs": {
850          "vec": {
851            "syn": "Attribute"
852          }
853        },
854        "bracket_token": {
855          "group": "Bracket"
856        },
857        "elems": {
858          "punctuated": {
859            "element": {
860              "syn": "Expr"
861            },
862            "punct": "Comma"
863          }
864        }
865      }
866    },
867    {
868      "ident": "ExprAssign",
869      "features": {
870        "any": [
871          "full"
872        ]
873      },
874      "fields": {
875        "attrs": {
876          "vec": {
877            "syn": "Attribute"
878          }
879        },
880        "left": {
881          "box": {
882            "syn": "Expr"
883          }
884        },
885        "eq_token": {
886          "token": "Eq"
887        },
888        "right": {
889          "box": {
890            "syn": "Expr"
891          }
892        }
893      }
894    },
895    {
896      "ident": "ExprAsync",
897      "features": {
898        "any": [
899          "full"
900        ]
901      },
902      "fields": {
903        "attrs": {
904          "vec": {
905            "syn": "Attribute"
906          }
907        },
908        "async_token": {
909          "token": "Async"
910        },
911        "capture": {
912          "option": {
913            "token": "Move"
914          }
915        },
916        "block": {
917          "syn": "Block"
918        }
919      }
920    },
921    {
922      "ident": "ExprAwait",
923      "features": {
924        "any": [
925          "full"
926        ]
927      },
928      "fields": {
929        "attrs": {
930          "vec": {
931            "syn": "Attribute"
932          }
933        },
934        "base": {
935          "box": {
936            "syn": "Expr"
937          }
938        },
939        "dot_token": {
940          "token": "Dot"
941        },
942        "await_token": {
943          "token": "Await"
944        }
945      }
946    },
947    {
948      "ident": "ExprBinary",
949      "features": {
950        "any": [
951          "derive",
952          "full"
953        ]
954      },
955      "fields": {
956        "attrs": {
957          "vec": {
958            "syn": "Attribute"
959          }
960        },
961        "left": {
962          "box": {
963            "syn": "Expr"
964          }
965        },
966        "op": {
967          "syn": "BinOp"
968        },
969        "right": {
970          "box": {
971            "syn": "Expr"
972          }
973        }
974      }
975    },
976    {
977      "ident": "ExprBlock",
978      "features": {
979        "any": [
980          "full"
981        ]
982      },
983      "fields": {
984        "attrs": {
985          "vec": {
986            "syn": "Attribute"
987          }
988        },
989        "label": {
990          "option": {
991            "syn": "Label"
992          }
993        },
994        "block": {
995          "syn": "Block"
996        }
997      }
998    },
999    {
1000      "ident": "ExprBreak",
1001      "features": {
1002        "any": [
1003          "full"
1004        ]
1005      },
1006      "fields": {
1007        "attrs": {
1008          "vec": {
1009            "syn": "Attribute"
1010          }
1011        },
1012        "break_token": {
1013          "token": "Break"
1014        },
1015        "label": {
1016          "option": {
1017            "syn": "Lifetime"
1018          }
1019        },
1020        "expr": {
1021          "option": {
1022            "box": {
1023              "syn": "Expr"
1024            }
1025          }
1026        }
1027      }
1028    },
1029    {
1030      "ident": "ExprCall",
1031      "features": {
1032        "any": [
1033          "derive",
1034          "full"
1035        ]
1036      },
1037      "fields": {
1038        "attrs": {
1039          "vec": {
1040            "syn": "Attribute"
1041          }
1042        },
1043        "func": {
1044          "box": {
1045            "syn": "Expr"
1046          }
1047        },
1048        "paren_token": {
1049          "group": "Paren"
1050        },
1051        "args": {
1052          "punctuated": {
1053            "element": {
1054              "syn": "Expr"
1055            },
1056            "punct": "Comma"
1057          }
1058        }
1059      }
1060    },
1061    {
1062      "ident": "ExprCast",
1063      "features": {
1064        "any": [
1065          "derive",
1066          "full"
1067        ]
1068      },
1069      "fields": {
1070        "attrs": {
1071          "vec": {
1072            "syn": "Attribute"
1073          }
1074        },
1075        "expr": {
1076          "box": {
1077            "syn": "Expr"
1078          }
1079        },
1080        "as_token": {
1081          "token": "As"
1082        },
1083        "ty": {
1084          "box": {
1085            "syn": "Type"
1086          }
1087        }
1088      }
1089    },
1090    {
1091      "ident": "ExprClosure",
1092      "features": {
1093        "any": [
1094          "full"
1095        ]
1096      },
1097      "fields": {
1098        "attrs": {
1099          "vec": {
1100            "syn": "Attribute"
1101          }
1102        },
1103        "lifetimes": {
1104          "option": {
1105            "syn": "BoundLifetimes"
1106          }
1107        },
1108        "constness": {
1109          "option": {
1110            "token": "Const"
1111          }
1112        },
1113        "movability": {
1114          "option": {
1115            "token": "Static"
1116          }
1117        },
1118        "asyncness": {
1119          "option": {
1120            "token": "Async"
1121          }
1122        },
1123        "capture": {
1124          "option": {
1125            "token": "Move"
1126          }
1127        },
1128        "or1_token": {
1129          "token": "Or"
1130        },
1131        "inputs": {
1132          "punctuated": {
1133            "element": {
1134              "syn": "Pat"
1135            },
1136            "punct": "Comma"
1137          }
1138        },
1139        "or2_token": {
1140          "token": "Or"
1141        },
1142        "output": {
1143          "syn": "ReturnType"
1144        },
1145        "body": {
1146          "box": {
1147            "syn": "Expr"
1148          }
1149        }
1150      }
1151    },
1152    {
1153      "ident": "ExprConst",
1154      "features": {
1155        "any": [
1156          "full"
1157        ]
1158      },
1159      "fields": {
1160        "attrs": {
1161          "vec": {
1162            "syn": "Attribute"
1163          }
1164        },
1165        "const_token": {
1166          "token": "Const"
1167        },
1168        "block": {
1169          "syn": "Block"
1170        }
1171      }
1172    },
1173    {
1174      "ident": "ExprContinue",
1175      "features": {
1176        "any": [
1177          "full"
1178        ]
1179      },
1180      "fields": {
1181        "attrs": {
1182          "vec": {
1183            "syn": "Attribute"
1184          }
1185        },
1186        "continue_token": {
1187          "token": "Continue"
1188        },
1189        "label": {
1190          "option": {
1191            "syn": "Lifetime"
1192          }
1193        }
1194      }
1195    },
1196    {
1197      "ident": "ExprField",
1198      "features": {
1199        "any": [
1200          "derive",
1201          "full"
1202        ]
1203      },
1204      "fields": {
1205        "attrs": {
1206          "vec": {
1207            "syn": "Attribute"
1208          }
1209        },
1210        "base": {
1211          "box": {
1212            "syn": "Expr"
1213          }
1214        },
1215        "dot_token": {
1216          "token": "Dot"
1217        },
1218        "member": {
1219          "syn": "Member"
1220        }
1221      }
1222    },
1223    {
1224      "ident": "ExprForLoop",
1225      "features": {
1226        "any": [
1227          "full"
1228        ]
1229      },
1230      "fields": {
1231        "attrs": {
1232          "vec": {
1233            "syn": "Attribute"
1234          }
1235        },
1236        "label": {
1237          "option": {
1238            "syn": "Label"
1239          }
1240        },
1241        "for_token": {
1242          "token": "For"
1243        },
1244        "pat": {
1245          "box": {
1246            "syn": "Pat"
1247          }
1248        },
1249        "in_token": {
1250          "token": "In"
1251        },
1252        "expr": {
1253          "box": {
1254            "syn": "Expr"
1255          }
1256        },
1257        "body": {
1258          "syn": "Block"
1259        }
1260      }
1261    },
1262    {
1263      "ident": "ExprGroup",
1264      "features": {
1265        "any": [
1266          "derive",
1267          "full"
1268        ]
1269      },
1270      "fields": {
1271        "attrs": {
1272          "vec": {
1273            "syn": "Attribute"
1274          }
1275        },
1276        "group_token": {
1277          "group": "Group"
1278        },
1279        "expr": {
1280          "box": {
1281            "syn": "Expr"
1282          }
1283        }
1284      }
1285    },
1286    {
1287      "ident": "ExprIf",
1288      "features": {
1289        "any": [
1290          "full"
1291        ]
1292      },
1293      "fields": {
1294        "attrs": {
1295          "vec": {
1296            "syn": "Attribute"
1297          }
1298        },
1299        "if_token": {
1300          "token": "If"
1301        },
1302        "cond": {
1303          "box": {
1304            "syn": "Expr"
1305          }
1306        },
1307        "then_branch": {
1308          "syn": "Block"
1309        },
1310        "else_branch": {
1311          "option": {
1312            "tuple": [
1313              {
1314                "token": "Else"
1315              },
1316              {
1317                "box": {
1318                  "syn": "Expr"
1319                }
1320              }
1321            ]
1322          }
1323        }
1324      }
1325    },
1326    {
1327      "ident": "ExprIndex",
1328      "features": {
1329        "any": [
1330          "derive",
1331          "full"
1332        ]
1333      },
1334      "fields": {
1335        "attrs": {
1336          "vec": {
1337            "syn": "Attribute"
1338          }
1339        },
1340        "expr": {
1341          "box": {
1342            "syn": "Expr"
1343          }
1344        },
1345        "bracket_token": {
1346          "group": "Bracket"
1347        },
1348        "index": {
1349          "box": {
1350            "syn": "Expr"
1351          }
1352        }
1353      }
1354    },
1355    {
1356      "ident": "ExprInfer",
1357      "features": {
1358        "any": [
1359          "full"
1360        ]
1361      },
1362      "fields": {
1363        "attrs": {
1364          "vec": {
1365            "syn": "Attribute"
1366          }
1367        },
1368        "underscore_token": {
1369          "token": "Underscore"
1370        }
1371      }
1372    },
1373    {
1374      "ident": "ExprLet",
1375      "features": {
1376        "any": [
1377          "full"
1378        ]
1379      },
1380      "fields": {
1381        "attrs": {
1382          "vec": {
1383            "syn": "Attribute"
1384          }
1385        },
1386        "let_token": {
1387          "token": "Let"
1388        },
1389        "pat": {
1390          "box": {
1391            "syn": "Pat"
1392          }
1393        },
1394        "eq_token": {
1395          "token": "Eq"
1396        },
1397        "expr": {
1398          "box": {
1399            "syn": "Expr"
1400          }
1401        }
1402      }
1403    },
1404    {
1405      "ident": "ExprLit",
1406      "features": {
1407        "any": [
1408          "derive",
1409          "full"
1410        ]
1411      },
1412      "fields": {
1413        "attrs": {
1414          "vec": {
1415            "syn": "Attribute"
1416          }
1417        },
1418        "lit": {
1419          "syn": "Lit"
1420        }
1421      }
1422    },
1423    {
1424      "ident": "ExprLoop",
1425      "features": {
1426        "any": [
1427          "full"
1428        ]
1429      },
1430      "fields": {
1431        "attrs": {
1432          "vec": {
1433            "syn": "Attribute"
1434          }
1435        },
1436        "label": {
1437          "option": {
1438            "syn": "Label"
1439          }
1440        },
1441        "loop_token": {
1442          "token": "Loop"
1443        },
1444        "body": {
1445          "syn": "Block"
1446        }
1447      }
1448    },
1449    {
1450      "ident": "ExprMacro",
1451      "features": {
1452        "any": [
1453          "derive",
1454          "full"
1455        ]
1456      },
1457      "fields": {
1458        "attrs": {
1459          "vec": {
1460            "syn": "Attribute"
1461          }
1462        },
1463        "mac": {
1464          "syn": "Macro"
1465        }
1466      }
1467    },
1468    {
1469      "ident": "ExprMatch",
1470      "features": {
1471        "any": [
1472          "full"
1473        ]
1474      },
1475      "fields": {
1476        "attrs": {
1477          "vec": {
1478            "syn": "Attribute"
1479          }
1480        },
1481        "match_token": {
1482          "token": "Match"
1483        },
1484        "expr": {
1485          "box": {
1486            "syn": "Expr"
1487          }
1488        },
1489        "brace_token": {
1490          "group": "Brace"
1491        },
1492        "arms": {
1493          "vec": {
1494            "syn": "Arm"
1495          }
1496        }
1497      }
1498    },
1499    {
1500      "ident": "ExprMethodCall",
1501      "features": {
1502        "any": [
1503          "derive",
1504          "full"
1505        ]
1506      },
1507      "fields": {
1508        "attrs": {
1509          "vec": {
1510            "syn": "Attribute"
1511          }
1512        },
1513        "receiver": {
1514          "box": {
1515            "syn": "Expr"
1516          }
1517        },
1518        "dot_token": {
1519          "token": "Dot"
1520        },
1521        "method": {
1522          "proc_macro2": "Ident"
1523        },
1524        "turbofish": {
1525          "option": {
1526            "syn": "AngleBracketedGenericArguments"
1527          }
1528        },
1529        "paren_token": {
1530          "group": "Paren"
1531        },
1532        "args": {
1533          "punctuated": {
1534            "element": {
1535              "syn": "Expr"
1536            },
1537            "punct": "Comma"
1538          }
1539        }
1540      }
1541    },
1542    {
1543      "ident": "ExprParen",
1544      "features": {
1545        "any": [
1546          "derive",
1547          "full"
1548        ]
1549      },
1550      "fields": {
1551        "attrs": {
1552          "vec": {
1553            "syn": "Attribute"
1554          }
1555        },
1556        "paren_token": {
1557          "group": "Paren"
1558        },
1559        "expr": {
1560          "box": {
1561            "syn": "Expr"
1562          }
1563        }
1564      }
1565    },
1566    {
1567      "ident": "ExprPath",
1568      "features": {
1569        "any": [
1570          "derive",
1571          "full"
1572        ]
1573      },
1574      "fields": {
1575        "attrs": {
1576          "vec": {
1577            "syn": "Attribute"
1578          }
1579        },
1580        "qself": {
1581          "option": {
1582            "syn": "QSelf"
1583          }
1584        },
1585        "path": {
1586          "syn": "Path"
1587        }
1588      }
1589    },
1590    {
1591      "ident": "ExprRange",
1592      "features": {
1593        "any": [
1594          "full"
1595        ]
1596      },
1597      "fields": {
1598        "attrs": {
1599          "vec": {
1600            "syn": "Attribute"
1601          }
1602        },
1603        "start": {
1604          "option": {
1605            "box": {
1606              "syn": "Expr"
1607            }
1608          }
1609        },
1610        "limits": {
1611          "syn": "RangeLimits"
1612        },
1613        "end": {
1614          "option": {
1615            "box": {
1616              "syn": "Expr"
1617            }
1618          }
1619        }
1620      }
1621    },
1622    {
1623      "ident": "ExprReference",
1624      "features": {
1625        "any": [
1626          "derive",
1627          "full"
1628        ]
1629      },
1630      "fields": {
1631        "attrs": {
1632          "vec": {
1633            "syn": "Attribute"
1634          }
1635        },
1636        "and_token": {
1637          "token": "And"
1638        },
1639        "mutability": {
1640          "option": {
1641            "token": "Mut"
1642          }
1643        },
1644        "expr": {
1645          "box": {
1646            "syn": "Expr"
1647          }
1648        }
1649      }
1650    },
1651    {
1652      "ident": "ExprRepeat",
1653      "features": {
1654        "any": [
1655          "full"
1656        ]
1657      },
1658      "fields": {
1659        "attrs": {
1660          "vec": {
1661            "syn": "Attribute"
1662          }
1663        },
1664        "bracket_token": {
1665          "group": "Bracket"
1666        },
1667        "expr": {
1668          "box": {
1669            "syn": "Expr"
1670          }
1671        },
1672        "semi_token": {
1673          "token": "Semi"
1674        },
1675        "len": {
1676          "box": {
1677            "syn": "Expr"
1678          }
1679        }
1680      }
1681    },
1682    {
1683      "ident": "ExprReturn",
1684      "features": {
1685        "any": [
1686          "full"
1687        ]
1688      },
1689      "fields": {
1690        "attrs": {
1691          "vec": {
1692            "syn": "Attribute"
1693          }
1694        },
1695        "return_token": {
1696          "token": "Return"
1697        },
1698        "expr": {
1699          "option": {
1700            "box": {
1701              "syn": "Expr"
1702            }
1703          }
1704        }
1705      }
1706    },
1707    {
1708      "ident": "ExprStruct",
1709      "features": {
1710        "any": [
1711          "derive",
1712          "full"
1713        ]
1714      },
1715      "fields": {
1716        "attrs": {
1717          "vec": {
1718            "syn": "Attribute"
1719          }
1720        },
1721        "qself": {
1722          "option": {
1723            "syn": "QSelf"
1724          }
1725        },
1726        "path": {
1727          "syn": "Path"
1728        },
1729        "brace_token": {
1730          "group": "Brace"
1731        },
1732        "fields": {
1733          "punctuated": {
1734            "element": {
1735              "syn": "FieldValue"
1736            },
1737            "punct": "Comma"
1738          }
1739        },
1740        "dot2_token": {
1741          "option": {
1742            "token": "DotDot"
1743          }
1744        },
1745        "rest": {
1746          "option": {
1747            "box": {
1748              "syn": "Expr"
1749            }
1750          }
1751        }
1752      }
1753    },
1754    {
1755      "ident": "ExprTry",
1756      "features": {
1757        "any": [
1758          "full"
1759        ]
1760      },
1761      "fields": {
1762        "attrs": {
1763          "vec": {
1764            "syn": "Attribute"
1765          }
1766        },
1767        "expr": {
1768          "box": {
1769            "syn": "Expr"
1770          }
1771        },
1772        "question_token": {
1773          "token": "Question"
1774        }
1775      }
1776    },
1777    {
1778      "ident": "ExprTryBlock",
1779      "features": {
1780        "any": [
1781          "full"
1782        ]
1783      },
1784      "fields": {
1785        "attrs": {
1786          "vec": {
1787            "syn": "Attribute"
1788          }
1789        },
1790        "try_token": {
1791          "token": "Try"
1792        },
1793        "block": {
1794          "syn": "Block"
1795        }
1796      }
1797    },
1798    {
1799      "ident": "ExprTuple",
1800      "features": {
1801        "any": [
1802          "full"
1803        ]
1804      },
1805      "fields": {
1806        "attrs": {
1807          "vec": {
1808            "syn": "Attribute"
1809          }
1810        },
1811        "paren_token": {
1812          "group": "Paren"
1813        },
1814        "elems": {
1815          "punctuated": {
1816            "element": {
1817              "syn": "Expr"
1818            },
1819            "punct": "Comma"
1820          }
1821        }
1822      }
1823    },
1824    {
1825      "ident": "ExprUnary",
1826      "features": {
1827        "any": [
1828          "derive",
1829          "full"
1830        ]
1831      },
1832      "fields": {
1833        "attrs": {
1834          "vec": {
1835            "syn": "Attribute"
1836          }
1837        },
1838        "op": {
1839          "syn": "UnOp"
1840        },
1841        "expr": {
1842          "box": {
1843            "syn": "Expr"
1844          }
1845        }
1846      }
1847    },
1848    {
1849      "ident": "ExprUnsafe",
1850      "features": {
1851        "any": [
1852          "full"
1853        ]
1854      },
1855      "fields": {
1856        "attrs": {
1857          "vec": {
1858            "syn": "Attribute"
1859          }
1860        },
1861        "unsafe_token": {
1862          "token": "Unsafe"
1863        },
1864        "block": {
1865          "syn": "Block"
1866        }
1867      }
1868    },
1869    {
1870      "ident": "ExprWhile",
1871      "features": {
1872        "any": [
1873          "full"
1874        ]
1875      },
1876      "fields": {
1877        "attrs": {
1878          "vec": {
1879            "syn": "Attribute"
1880          }
1881        },
1882        "label": {
1883          "option": {
1884            "syn": "Label"
1885          }
1886        },
1887        "while_token": {
1888          "token": "While"
1889        },
1890        "cond": {
1891          "box": {
1892            "syn": "Expr"
1893          }
1894        },
1895        "body": {
1896          "syn": "Block"
1897        }
1898      }
1899    },
1900    {
1901      "ident": "ExprYield",
1902      "features": {
1903        "any": [
1904          "full"
1905        ]
1906      },
1907      "fields": {
1908        "attrs": {
1909          "vec": {
1910            "syn": "Attribute"
1911          }
1912        },
1913        "yield_token": {
1914          "token": "Yield"
1915        },
1916        "expr": {
1917          "option": {
1918            "box": {
1919              "syn": "Expr"
1920            }
1921          }
1922        }
1923      }
1924    },
1925    {
1926      "ident": "Field",
1927      "features": {
1928        "any": [
1929          "derive",
1930          "full"
1931        ]
1932      },
1933      "fields": {
1934        "attrs": {
1935          "vec": {
1936            "syn": "Attribute"
1937          }
1938        },
1939        "vis": {
1940          "syn": "Visibility"
1941        },
1942        "mutability": {
1943          "syn": "FieldMutability"
1944        },
1945        "ident": {
1946          "option": {
1947            "proc_macro2": "Ident"
1948          }
1949        },
1950        "colon_token": {
1951          "option": {
1952            "token": "Colon"
1953          }
1954        },
1955        "ty": {
1956          "syn": "Type"
1957        }
1958      }
1959    },
1960    {
1961      "ident": "FieldMutability",
1962      "features": {
1963        "any": [
1964          "derive",
1965          "full"
1966        ]
1967      },
1968      "variants": {
1969        "None": []
1970      },
1971      "exhaustive": false
1972    },
1973    {
1974      "ident": "FieldPat",
1975      "features": {
1976        "any": [
1977          "full"
1978        ]
1979      },
1980      "fields": {
1981        "attrs": {
1982          "vec": {
1983            "syn": "Attribute"
1984          }
1985        },
1986        "member": {
1987          "syn": "Member"
1988        },
1989        "colon_token": {
1990          "option": {
1991            "token": "Colon"
1992          }
1993        },
1994        "pat": {
1995          "box": {
1996            "syn": "Pat"
1997          }
1998        }
1999      }
2000    },
2001    {
2002      "ident": "FieldValue",
2003      "features": {
2004        "any": [
2005          "derive",
2006          "full"
2007        ]
2008      },
2009      "fields": {
2010        "attrs": {
2011          "vec": {
2012            "syn": "Attribute"
2013          }
2014        },
2015        "member": {
2016          "syn": "Member"
2017        },
2018        "colon_token": {
2019          "option": {
2020            "token": "Colon"
2021          }
2022        },
2023        "expr": {
2024          "syn": "Expr"
2025        }
2026      }
2027    },
2028    {
2029      "ident": "Fields",
2030      "features": {
2031        "any": [
2032          "derive",
2033          "full"
2034        ]
2035      },
2036      "variants": {
2037        "Named": [
2038          {
2039            "syn": "FieldsNamed"
2040          }
2041        ],
2042        "Unnamed": [
2043          {
2044            "syn": "FieldsUnnamed"
2045          }
2046        ],
2047        "Unit": []
2048      }
2049    },
2050    {
2051      "ident": "FieldsNamed",
2052      "features": {
2053        "any": [
2054          "derive",
2055          "full"
2056        ]
2057      },
2058      "fields": {
2059        "brace_token": {
2060          "group": "Brace"
2061        },
2062        "named": {
2063          "punctuated": {
2064            "element": {
2065              "syn": "Field"
2066            },
2067            "punct": "Comma"
2068          }
2069        }
2070      }
2071    },
2072    {
2073      "ident": "FieldsUnnamed",
2074      "features": {
2075        "any": [
2076          "derive",
2077          "full"
2078        ]
2079      },
2080      "fields": {
2081        "paren_token": {
2082          "group": "Paren"
2083        },
2084        "unnamed": {
2085          "punctuated": {
2086            "element": {
2087              "syn": "Field"
2088            },
2089            "punct": "Comma"
2090          }
2091        }
2092      }
2093    },
2094    {
2095      "ident": "File",
2096      "features": {
2097        "any": [
2098          "full"
2099        ]
2100      },
2101      "fields": {
2102        "shebang": {
2103          "option": {
2104            "std": "String"
2105          }
2106        },
2107        "attrs": {
2108          "vec": {
2109            "syn": "Attribute"
2110          }
2111        },
2112        "items": {
2113          "vec": {
2114            "syn": "Item"
2115          }
2116        }
2117      }
2118    },
2119    {
2120      "ident": "FnArg",
2121      "features": {
2122        "any": [
2123          "full"
2124        ]
2125      },
2126      "variants": {
2127        "Receiver": [
2128          {
2129            "syn": "Receiver"
2130          }
2131        ],
2132        "Typed": [
2133          {
2134            "syn": "PatType"
2135          }
2136        ]
2137      }
2138    },
2139    {
2140      "ident": "ForeignItem",
2141      "features": {
2142        "any": [
2143          "full"
2144        ]
2145      },
2146      "variants": {
2147        "Fn": [
2148          {
2149            "syn": "ForeignItemFn"
2150          }
2151        ],
2152        "Static": [
2153          {
2154            "syn": "ForeignItemStatic"
2155          }
2156        ],
2157        "Type": [
2158          {
2159            "syn": "ForeignItemType"
2160          }
2161        ],
2162        "Macro": [
2163          {
2164            "syn": "ForeignItemMacro"
2165          }
2166        ],
2167        "Verbatim": [
2168          {
2169            "proc_macro2": "TokenStream"
2170          }
2171        ]
2172      },
2173      "exhaustive": false
2174    },
2175    {
2176      "ident": "ForeignItemFn",
2177      "features": {
2178        "any": [
2179          "full"
2180        ]
2181      },
2182      "fields": {
2183        "attrs": {
2184          "vec": {
2185            "syn": "Attribute"
2186          }
2187        },
2188        "vis": {
2189          "syn": "Visibility"
2190        },
2191        "sig": {
2192          "syn": "Signature"
2193        },
2194        "semi_token": {
2195          "token": "Semi"
2196        }
2197      }
2198    },
2199    {
2200      "ident": "ForeignItemMacro",
2201      "features": {
2202        "any": [
2203          "full"
2204        ]
2205      },
2206      "fields": {
2207        "attrs": {
2208          "vec": {
2209            "syn": "Attribute"
2210          }
2211        },
2212        "mac": {
2213          "syn": "Macro"
2214        },
2215        "semi_token": {
2216          "option": {
2217            "token": "Semi"
2218          }
2219        }
2220      }
2221    },
2222    {
2223      "ident": "ForeignItemStatic",
2224      "features": {
2225        "any": [
2226          "full"
2227        ]
2228      },
2229      "fields": {
2230        "attrs": {
2231          "vec": {
2232            "syn": "Attribute"
2233          }
2234        },
2235        "vis": {
2236          "syn": "Visibility"
2237        },
2238        "static_token": {
2239          "token": "Static"
2240        },
2241        "mutability": {
2242          "syn": "StaticMutability"
2243        },
2244        "ident": {
2245          "proc_macro2": "Ident"
2246        },
2247        "colon_token": {
2248          "token": "Colon"
2249        },
2250        "ty": {
2251          "box": {
2252            "syn": "Type"
2253          }
2254        },
2255        "semi_token": {
2256          "token": "Semi"
2257        }
2258      }
2259    },
2260    {
2261      "ident": "ForeignItemType",
2262      "features": {
2263        "any": [
2264          "full"
2265        ]
2266      },
2267      "fields": {
2268        "attrs": {
2269          "vec": {
2270            "syn": "Attribute"
2271          }
2272        },
2273        "vis": {
2274          "syn": "Visibility"
2275        },
2276        "type_token": {
2277          "token": "Type"
2278        },
2279        "ident": {
2280          "proc_macro2": "Ident"
2281        },
2282        "generics": {
2283          "syn": "Generics"
2284        },
2285        "semi_token": {
2286          "token": "Semi"
2287        }
2288      }
2289    },
2290    {
2291      "ident": "GenericArgument",
2292      "features": {
2293        "any": [
2294          "derive",
2295          "full"
2296        ]
2297      },
2298      "variants": {
2299        "Lifetime": [
2300          {
2301            "syn": "Lifetime"
2302          }
2303        ],
2304        "Type": [
2305          {
2306            "syn": "Type"
2307          }
2308        ],
2309        "Const": [
2310          {
2311            "syn": "Expr"
2312          }
2313        ],
2314        "AssocType": [
2315          {
2316            "syn": "AssocType"
2317          }
2318        ],
2319        "AssocConst": [
2320          {
2321            "syn": "AssocConst"
2322          }
2323        ],
2324        "Constraint": [
2325          {
2326            "syn": "Constraint"
2327          }
2328        ]
2329      },
2330      "exhaustive": false
2331    },
2332    {
2333      "ident": "GenericParam",
2334      "features": {
2335        "any": [
2336          "derive",
2337          "full"
2338        ]
2339      },
2340      "variants": {
2341        "Lifetime": [
2342          {
2343            "syn": "LifetimeParam"
2344          }
2345        ],
2346        "Type": [
2347          {
2348            "syn": "TypeParam"
2349          }
2350        ],
2351        "Const": [
2352          {
2353            "syn": "ConstParam"
2354          }
2355        ]
2356      }
2357    },
2358    {
2359      "ident": "Generics",
2360      "features": {
2361        "any": [
2362          "derive",
2363          "full"
2364        ]
2365      },
2366      "fields": {
2367        "lt_token": {
2368          "option": {
2369            "token": "Lt"
2370          }
2371        },
2372        "params": {
2373          "punctuated": {
2374            "element": {
2375              "syn": "GenericParam"
2376            },
2377            "punct": "Comma"
2378          }
2379        },
2380        "gt_token": {
2381          "option": {
2382            "token": "Gt"
2383          }
2384        },
2385        "where_clause": {
2386          "option": {
2387            "syn": "WhereClause"
2388          }
2389        }
2390      }
2391    },
2392    {
2393      "ident": "ImplItem",
2394      "features": {
2395        "any": [
2396          "full"
2397        ]
2398      },
2399      "variants": {
2400        "Const": [
2401          {
2402            "syn": "ImplItemConst"
2403          }
2404        ],
2405        "Fn": [
2406          {
2407            "syn": "ImplItemFn"
2408          }
2409        ],
2410        "Type": [
2411          {
2412            "syn": "ImplItemType"
2413          }
2414        ],
2415        "Macro": [
2416          {
2417            "syn": "ImplItemMacro"
2418          }
2419        ],
2420        "Verbatim": [
2421          {
2422            "proc_macro2": "TokenStream"
2423          }
2424        ]
2425      },
2426      "exhaustive": false
2427    },
2428    {
2429      "ident": "ImplItemConst",
2430      "features": {
2431        "any": [
2432          "full"
2433        ]
2434      },
2435      "fields": {
2436        "attrs": {
2437          "vec": {
2438            "syn": "Attribute"
2439          }
2440        },
2441        "vis": {
2442          "syn": "Visibility"
2443        },
2444        "defaultness": {
2445          "option": {
2446            "token": "Default"
2447          }
2448        },
2449        "const_token": {
2450          "token": "Const"
2451        },
2452        "ident": {
2453          "proc_macro2": "Ident"
2454        },
2455        "generics": {
2456          "syn": "Generics"
2457        },
2458        "colon_token": {
2459          "token": "Colon"
2460        },
2461        "ty": {
2462          "syn": "Type"
2463        },
2464        "eq_token": {
2465          "token": "Eq"
2466        },
2467        "expr": {
2468          "syn": "Expr"
2469        },
2470        "semi_token": {
2471          "token": "Semi"
2472        }
2473      }
2474    },
2475    {
2476      "ident": "ImplItemFn",
2477      "features": {
2478        "any": [
2479          "full"
2480        ]
2481      },
2482      "fields": {
2483        "attrs": {
2484          "vec": {
2485            "syn": "Attribute"
2486          }
2487        },
2488        "vis": {
2489          "syn": "Visibility"
2490        },
2491        "defaultness": {
2492          "option": {
2493            "token": "Default"
2494          }
2495        },
2496        "sig": {
2497          "syn": "Signature"
2498        },
2499        "block": {
2500          "syn": "Block"
2501        }
2502      }
2503    },
2504    {
2505      "ident": "ImplItemMacro",
2506      "features": {
2507        "any": [
2508          "full"
2509        ]
2510      },
2511      "fields": {
2512        "attrs": {
2513          "vec": {
2514            "syn": "Attribute"
2515          }
2516        },
2517        "mac": {
2518          "syn": "Macro"
2519        },
2520        "semi_token": {
2521          "option": {
2522            "token": "Semi"
2523          }
2524        }
2525      }
2526    },
2527    {
2528      "ident": "ImplItemType",
2529      "features": {
2530        "any": [
2531          "full"
2532        ]
2533      },
2534      "fields": {
2535        "attrs": {
2536          "vec": {
2537            "syn": "Attribute"
2538          }
2539        },
2540        "vis": {
2541          "syn": "Visibility"
2542        },
2543        "defaultness": {
2544          "option": {
2545            "token": "Default"
2546          }
2547        },
2548        "type_token": {
2549          "token": "Type"
2550        },
2551        "ident": {
2552          "proc_macro2": "Ident"
2553        },
2554        "generics": {
2555          "syn": "Generics"
2556        },
2557        "eq_token": {
2558          "token": "Eq"
2559        },
2560        "ty": {
2561          "syn": "Type"
2562        },
2563        "semi_token": {
2564          "token": "Semi"
2565        }
2566      }
2567    },
2568    {
2569      "ident": "ImplRestriction",
2570      "features": {
2571        "any": [
2572          "full"
2573        ]
2574      },
2575      "variants": {},
2576      "exhaustive": false
2577    },
2578    {
2579      "ident": "Index",
2580      "features": {
2581        "any": [
2582          "derive",
2583          "full"
2584        ]
2585      },
2586      "fields": {
2587        "index": {
2588          "std": "u32"
2589        },
2590        "span": {
2591          "proc_macro2": "Span"
2592        }
2593      }
2594    },
2595    {
2596      "ident": "Item",
2597      "features": {
2598        "any": [
2599          "full"
2600        ]
2601      },
2602      "variants": {
2603        "Const": [
2604          {
2605            "syn": "ItemConst"
2606          }
2607        ],
2608        "Enum": [
2609          {
2610            "syn": "ItemEnum"
2611          }
2612        ],
2613        "ExternCrate": [
2614          {
2615            "syn": "ItemExternCrate"
2616          }
2617        ],
2618        "Fn": [
2619          {
2620            "syn": "ItemFn"
2621          }
2622        ],
2623        "ForeignMod": [
2624          {
2625            "syn": "ItemForeignMod"
2626          }
2627        ],
2628        "Impl": [
2629          {
2630            "syn": "ItemImpl"
2631          }
2632        ],
2633        "Macro": [
2634          {
2635            "syn": "ItemMacro"
2636          }
2637        ],
2638        "Mod": [
2639          {
2640            "syn": "ItemMod"
2641          }
2642        ],
2643        "Static": [
2644          {
2645            "syn": "ItemStatic"
2646          }
2647        ],
2648        "Struct": [
2649          {
2650            "syn": "ItemStruct"
2651          }
2652        ],
2653        "Trait": [
2654          {
2655            "syn": "ItemTrait"
2656          }
2657        ],
2658        "TraitAlias": [
2659          {
2660            "syn": "ItemTraitAlias"
2661          }
2662        ],
2663        "Type": [
2664          {
2665            "syn": "ItemType"
2666          }
2667        ],
2668        "Union": [
2669          {
2670            "syn": "ItemUnion"
2671          }
2672        ],
2673        "Use": [
2674          {
2675            "syn": "ItemUse"
2676          }
2677        ],
2678        "Verbatim": [
2679          {
2680            "proc_macro2": "TokenStream"
2681          }
2682        ]
2683      },
2684      "exhaustive": false
2685    },
2686    {
2687      "ident": "ItemConst",
2688      "features": {
2689        "any": [
2690          "full"
2691        ]
2692      },
2693      "fields": {
2694        "attrs": {
2695          "vec": {
2696            "syn": "Attribute"
2697          }
2698        },
2699        "vis": {
2700          "syn": "Visibility"
2701        },
2702        "const_token": {
2703          "token": "Const"
2704        },
2705        "ident": {
2706          "proc_macro2": "Ident"
2707        },
2708        "generics": {
2709          "syn": "Generics"
2710        },
2711        "colon_token": {
2712          "token": "Colon"
2713        },
2714        "ty": {
2715          "box": {
2716            "syn": "Type"
2717          }
2718        },
2719        "eq_token": {
2720          "token": "Eq"
2721        },
2722        "expr": {
2723          "box": {
2724            "syn": "Expr"
2725          }
2726        },
2727        "semi_token": {
2728          "token": "Semi"
2729        }
2730      }
2731    },
2732    {
2733      "ident": "ItemEnum",
2734      "features": {
2735        "any": [
2736          "full"
2737        ]
2738      },
2739      "fields": {
2740        "attrs": {
2741          "vec": {
2742            "syn": "Attribute"
2743          }
2744        },
2745        "vis": {
2746          "syn": "Visibility"
2747        },
2748        "enum_token": {
2749          "token": "Enum"
2750        },
2751        "ident": {
2752          "proc_macro2": "Ident"
2753        },
2754        "generics": {
2755          "syn": "Generics"
2756        },
2757        "brace_token": {
2758          "group": "Brace"
2759        },
2760        "variants": {
2761          "punctuated": {
2762            "element": {
2763              "syn": "Variant"
2764            },
2765            "punct": "Comma"
2766          }
2767        }
2768      }
2769    },
2770    {
2771      "ident": "ItemExternCrate",
2772      "features": {
2773        "any": [
2774          "full"
2775        ]
2776      },
2777      "fields": {
2778        "attrs": {
2779          "vec": {
2780            "syn": "Attribute"
2781          }
2782        },
2783        "vis": {
2784          "syn": "Visibility"
2785        },
2786        "extern_token": {
2787          "token": "Extern"
2788        },
2789        "crate_token": {
2790          "token": "Crate"
2791        },
2792        "ident": {
2793          "proc_macro2": "Ident"
2794        },
2795        "rename": {
2796          "option": {
2797            "tuple": [
2798              {
2799                "token": "As"
2800              },
2801              {
2802                "proc_macro2": "Ident"
2803              }
2804            ]
2805          }
2806        },
2807        "semi_token": {
2808          "token": "Semi"
2809        }
2810      }
2811    },
2812    {
2813      "ident": "ItemFn",
2814      "features": {
2815        "any": [
2816          "full"
2817        ]
2818      },
2819      "fields": {
2820        "attrs": {
2821          "vec": {
2822            "syn": "Attribute"
2823          }
2824        },
2825        "vis": {
2826          "syn": "Visibility"
2827        },
2828        "sig": {
2829          "syn": "Signature"
2830        },
2831        "block": {
2832          "box": {
2833            "syn": "Block"
2834          }
2835        }
2836      }
2837    },
2838    {
2839      "ident": "ItemForeignMod",
2840      "features": {
2841        "any": [
2842          "full"
2843        ]
2844      },
2845      "fields": {
2846        "attrs": {
2847          "vec": {
2848            "syn": "Attribute"
2849          }
2850        },
2851        "unsafety": {
2852          "option": {
2853            "token": "Unsafe"
2854          }
2855        },
2856        "abi": {
2857          "syn": "Abi"
2858        },
2859        "brace_token": {
2860          "group": "Brace"
2861        },
2862        "items": {
2863          "vec": {
2864            "syn": "ForeignItem"
2865          }
2866        }
2867      }
2868    },
2869    {
2870      "ident": "ItemImpl",
2871      "features": {
2872        "any": [
2873          "full"
2874        ]
2875      },
2876      "fields": {
2877        "attrs": {
2878          "vec": {
2879            "syn": "Attribute"
2880          }
2881        },
2882        "defaultness": {
2883          "option": {
2884            "token": "Default"
2885          }
2886        },
2887        "unsafety": {
2888          "option": {
2889            "token": "Unsafe"
2890          }
2891        },
2892        "impl_token": {
2893          "token": "Impl"
2894        },
2895        "generics": {
2896          "syn": "Generics"
2897        },
2898        "trait_": {
2899          "option": {
2900            "tuple": [
2901              {
2902                "option": {
2903                  "token": "Not"
2904                }
2905              },
2906              {
2907                "syn": "Path"
2908              },
2909              {
2910                "token": "For"
2911              }
2912            ]
2913          }
2914        },
2915        "self_ty": {
2916          "box": {
2917            "syn": "Type"
2918          }
2919        },
2920        "brace_token": {
2921          "group": "Brace"
2922        },
2923        "items": {
2924          "vec": {
2925            "syn": "ImplItem"
2926          }
2927        }
2928      }
2929    },
2930    {
2931      "ident": "ItemMacro",
2932      "features": {
2933        "any": [
2934          "full"
2935        ]
2936      },
2937      "fields": {
2938        "attrs": {
2939          "vec": {
2940            "syn": "Attribute"
2941          }
2942        },
2943        "ident": {
2944          "option": {
2945            "proc_macro2": "Ident"
2946          }
2947        },
2948        "mac": {
2949          "syn": "Macro"
2950        },
2951        "semi_token": {
2952          "option": {
2953            "token": "Semi"
2954          }
2955        }
2956      }
2957    },
2958    {
2959      "ident": "ItemMod",
2960      "features": {
2961        "any": [
2962          "full"
2963        ]
2964      },
2965      "fields": {
2966        "attrs": {
2967          "vec": {
2968            "syn": "Attribute"
2969          }
2970        },
2971        "vis": {
2972          "syn": "Visibility"
2973        },
2974        "unsafety": {
2975          "option": {
2976            "token": "Unsafe"
2977          }
2978        },
2979        "mod_token": {
2980          "token": "Mod"
2981        },
2982        "ident": {
2983          "proc_macro2": "Ident"
2984        },
2985        "content": {
2986          "option": {
2987            "tuple": [
2988              {
2989                "group": "Brace"
2990              },
2991              {
2992                "vec": {
2993                  "syn": "Item"
2994                }
2995              }
2996            ]
2997          }
2998        },
2999        "semi": {
3000          "option": {
3001            "token": "Semi"
3002          }
3003        }
3004      }
3005    },
3006    {
3007      "ident": "ItemStatic",
3008      "features": {
3009        "any": [
3010          "full"
3011        ]
3012      },
3013      "fields": {
3014        "attrs": {
3015          "vec": {
3016            "syn": "Attribute"
3017          }
3018        },
3019        "vis": {
3020          "syn": "Visibility"
3021        },
3022        "static_token": {
3023          "token": "Static"
3024        },
3025        "mutability": {
3026          "syn": "StaticMutability"
3027        },
3028        "ident": {
3029          "proc_macro2": "Ident"
3030        },
3031        "colon_token": {
3032          "token": "Colon"
3033        },
3034        "ty": {
3035          "box": {
3036            "syn": "Type"
3037          }
3038        },
3039        "eq_token": {
3040          "token": "Eq"
3041        },
3042        "expr": {
3043          "box": {
3044            "syn": "Expr"
3045          }
3046        },
3047        "semi_token": {
3048          "token": "Semi"
3049        }
3050      }
3051    },
3052    {
3053      "ident": "ItemStruct",
3054      "features": {
3055        "any": [
3056          "full"
3057        ]
3058      },
3059      "fields": {
3060        "attrs": {
3061          "vec": {
3062            "syn": "Attribute"
3063          }
3064        },
3065        "vis": {
3066          "syn": "Visibility"
3067        },
3068        "struct_token": {
3069          "token": "Struct"
3070        },
3071        "ident": {
3072          "proc_macro2": "Ident"
3073        },
3074        "generics": {
3075          "syn": "Generics"
3076        },
3077        "fields": {
3078          "syn": "Fields"
3079        },
3080        "semi_token": {
3081          "option": {
3082            "token": "Semi"
3083          }
3084        }
3085      }
3086    },
3087    {
3088      "ident": "ItemTrait",
3089      "features": {
3090        "any": [
3091          "full"
3092        ]
3093      },
3094      "fields": {
3095        "attrs": {
3096          "vec": {
3097            "syn": "Attribute"
3098          }
3099        },
3100        "vis": {
3101          "syn": "Visibility"
3102        },
3103        "unsafety": {
3104          "option": {
3105            "token": "Unsafe"
3106          }
3107        },
3108        "auto_token": {
3109          "option": {
3110            "token": "Auto"
3111          }
3112        },
3113        "restriction": {
3114          "option": {
3115            "syn": "ImplRestriction"
3116          }
3117        },
3118        "trait_token": {
3119          "token": "Trait"
3120        },
3121        "ident": {
3122          "proc_macro2": "Ident"
3123        },
3124        "generics": {
3125          "syn": "Generics"
3126        },
3127        "colon_token": {
3128          "option": {
3129            "token": "Colon"
3130          }
3131        },
3132        "supertraits": {
3133          "punctuated": {
3134            "element": {
3135              "syn": "TypeParamBound"
3136            },
3137            "punct": "Plus"
3138          }
3139        },
3140        "brace_token": {
3141          "group": "Brace"
3142        },
3143        "items": {
3144          "vec": {
3145            "syn": "TraitItem"
3146          }
3147        }
3148      }
3149    },
3150    {
3151      "ident": "ItemTraitAlias",
3152      "features": {
3153        "any": [
3154          "full"
3155        ]
3156      },
3157      "fields": {
3158        "attrs": {
3159          "vec": {
3160            "syn": "Attribute"
3161          }
3162        },
3163        "vis": {
3164          "syn": "Visibility"
3165        },
3166        "trait_token": {
3167          "token": "Trait"
3168        },
3169        "ident": {
3170          "proc_macro2": "Ident"
3171        },
3172        "generics": {
3173          "syn": "Generics"
3174        },
3175        "eq_token": {
3176          "token": "Eq"
3177        },
3178        "bounds": {
3179          "punctuated": {
3180            "element": {
3181              "syn": "TypeParamBound"
3182            },
3183            "punct": "Plus"
3184          }
3185        },
3186        "semi_token": {
3187          "token": "Semi"
3188        }
3189      }
3190    },
3191    {
3192      "ident": "ItemType",
3193      "features": {
3194        "any": [
3195          "full"
3196        ]
3197      },
3198      "fields": {
3199        "attrs": {
3200          "vec": {
3201            "syn": "Attribute"
3202          }
3203        },
3204        "vis": {
3205          "syn": "Visibility"
3206        },
3207        "type_token": {
3208          "token": "Type"
3209        },
3210        "ident": {
3211          "proc_macro2": "Ident"
3212        },
3213        "generics": {
3214          "syn": "Generics"
3215        },
3216        "eq_token": {
3217          "token": "Eq"
3218        },
3219        "ty": {
3220          "box": {
3221            "syn": "Type"
3222          }
3223        },
3224        "semi_token": {
3225          "token": "Semi"
3226        }
3227      }
3228    },
3229    {
3230      "ident": "ItemUnion",
3231      "features": {
3232        "any": [
3233          "full"
3234        ]
3235      },
3236      "fields": {
3237        "attrs": {
3238          "vec": {
3239            "syn": "Attribute"
3240          }
3241        },
3242        "vis": {
3243          "syn": "Visibility"
3244        },
3245        "union_token": {
3246          "token": "Union"
3247        },
3248        "ident": {
3249          "proc_macro2": "Ident"
3250        },
3251        "generics": {
3252          "syn": "Generics"
3253        },
3254        "fields": {
3255          "syn": "FieldsNamed"
3256        }
3257      }
3258    },
3259    {
3260      "ident": "ItemUse",
3261      "features": {
3262        "any": [
3263          "full"
3264        ]
3265      },
3266      "fields": {
3267        "attrs": {
3268          "vec": {
3269            "syn": "Attribute"
3270          }
3271        },
3272        "vis": {
3273          "syn": "Visibility"
3274        },
3275        "use_token": {
3276          "token": "Use"
3277        },
3278        "leading_colon": {
3279          "option": {
3280            "token": "PathSep"
3281          }
3282        },
3283        "tree": {
3284          "syn": "UseTree"
3285        },
3286        "semi_token": {
3287          "token": "Semi"
3288        }
3289      }
3290    },
3291    {
3292      "ident": "Label",
3293      "features": {
3294        "any": [
3295          "full"
3296        ]
3297      },
3298      "fields": {
3299        "name": {
3300          "syn": "Lifetime"
3301        },
3302        "colon_token": {
3303          "token": "Colon"
3304        }
3305      }
3306    },
3307    {
3308      "ident": "Lifetime",
3309      "features": {
3310        "any": []
3311      },
3312      "fields": {
3313        "apostrophe": {
3314          "proc_macro2": "Span"
3315        },
3316        "ident": {
3317          "proc_macro2": "Ident"
3318        }
3319      }
3320    },
3321    {
3322      "ident": "LifetimeParam",
3323      "features": {
3324        "any": [
3325          "derive",
3326          "full"
3327        ]
3328      },
3329      "fields": {
3330        "attrs": {
3331          "vec": {
3332            "syn": "Attribute"
3333          }
3334        },
3335        "lifetime": {
3336          "syn": "Lifetime"
3337        },
3338        "colon_token": {
3339          "option": {
3340            "token": "Colon"
3341          }
3342        },
3343        "bounds": {
3344          "punctuated": {
3345            "element": {
3346              "syn": "Lifetime"
3347            },
3348            "punct": "Plus"
3349          }
3350        }
3351      }
3352    },
3353    {
3354      "ident": "Lit",
3355      "features": {
3356        "any": []
3357      },
3358      "variants": {
3359        "Str": [
3360          {
3361            "syn": "LitStr"
3362          }
3363        ],
3364        "ByteStr": [
3365          {
3366            "syn": "LitByteStr"
3367          }
3368        ],
3369        "Byte": [
3370          {
3371            "syn": "LitByte"
3372          }
3373        ],
3374        "Char": [
3375          {
3376            "syn": "LitChar"
3377          }
3378        ],
3379        "Int": [
3380          {
3381            "syn": "LitInt"
3382          }
3383        ],
3384        "Float": [
3385          {
3386            "syn": "LitFloat"
3387          }
3388        ],
3389        "Bool": [
3390          {
3391            "syn": "LitBool"
3392          }
3393        ],
3394        "Verbatim": [
3395          {
3396            "proc_macro2": "Literal"
3397          }
3398        ]
3399      },
3400      "exhaustive": false
3401    },
3402    {
3403      "ident": "LitBool",
3404      "features": {
3405        "any": []
3406      },
3407      "fields": {
3408        "value": {
3409          "std": "bool"
3410        },
3411        "span": {
3412          "proc_macro2": "Span"
3413        }
3414      }
3415    },
3416    {
3417      "ident": "LitByte",
3418      "features": {
3419        "any": []
3420      }
3421    },
3422    {
3423      "ident": "LitByteStr",
3424      "features": {
3425        "any": []
3426      }
3427    },
3428    {
3429      "ident": "LitChar",
3430      "features": {
3431        "any": []
3432      }
3433    },
3434    {
3435      "ident": "LitFloat",
3436      "features": {
3437        "any": []
3438      }
3439    },
3440    {
3441      "ident": "LitInt",
3442      "features": {
3443        "any": []
3444      }
3445    },
3446    {
3447      "ident": "LitStr",
3448      "features": {
3449        "any": []
3450      }
3451    },
3452    {
3453      "ident": "Local",
3454      "features": {
3455        "any": [
3456          "full"
3457        ]
3458      },
3459      "fields": {
3460        "attrs": {
3461          "vec": {
3462            "syn": "Attribute"
3463          }
3464        },
3465        "let_token": {
3466          "token": "Let"
3467        },
3468        "pat": {
3469          "syn": "Pat"
3470        },
3471        "init": {
3472          "option": {
3473            "syn": "LocalInit"
3474          }
3475        },
3476        "semi_token": {
3477          "token": "Semi"
3478        }
3479      }
3480    },
3481    {
3482      "ident": "LocalInit",
3483      "features": {
3484        "any": [
3485          "full"
3486        ]
3487      },
3488      "fields": {
3489        "eq_token": {
3490          "token": "Eq"
3491        },
3492        "expr": {
3493          "box": {
3494            "syn": "Expr"
3495          }
3496        },
3497        "diverge": {
3498          "option": {
3499            "tuple": [
3500              {
3501                "token": "Else"
3502              },
3503              {
3504                "box": {
3505                  "syn": "Expr"
3506                }
3507              }
3508            ]
3509          }
3510        }
3511      }
3512    },
3513    {
3514      "ident": "Macro",
3515      "features": {
3516        "any": [
3517          "derive",
3518          "full"
3519        ]
3520      },
3521      "fields": {
3522        "path": {
3523          "syn": "Path"
3524        },
3525        "bang_token": {
3526          "token": "Not"
3527        },
3528        "delimiter": {
3529          "syn": "MacroDelimiter"
3530        },
3531        "tokens": {
3532          "proc_macro2": "TokenStream"
3533        }
3534      }
3535    },
3536    {
3537      "ident": "MacroDelimiter",
3538      "features": {
3539        "any": [
3540          "derive",
3541          "full"
3542        ]
3543      },
3544      "variants": {
3545        "Paren": [
3546          {
3547            "group": "Paren"
3548          }
3549        ],
3550        "Brace": [
3551          {
3552            "group": "Brace"
3553          }
3554        ],
3555        "Bracket": [
3556          {
3557            "group": "Bracket"
3558          }
3559        ]
3560      }
3561    },
3562    {
3563      "ident": "Member",
3564      "features": {
3565        "any": [
3566          "derive",
3567          "full"
3568        ]
3569      },
3570      "variants": {
3571        "Named": [
3572          {
3573            "proc_macro2": "Ident"
3574          }
3575        ],
3576        "Unnamed": [
3577          {
3578            "syn": "Index"
3579          }
3580        ]
3581      }
3582    },
3583    {
3584      "ident": "Meta",
3585      "features": {
3586        "any": [
3587          "derive",
3588          "full"
3589        ]
3590      },
3591      "variants": {
3592        "Path": [
3593          {
3594            "syn": "Path"
3595          }
3596        ],
3597        "List": [
3598          {
3599            "syn": "MetaList"
3600          }
3601        ],
3602        "NameValue": [
3603          {
3604            "syn": "MetaNameValue"
3605          }
3606        ]
3607      }
3608    },
3609    {
3610      "ident": "MetaList",
3611      "features": {
3612        "any": [
3613          "derive",
3614          "full"
3615        ]
3616      },
3617      "fields": {
3618        "path": {
3619          "syn": "Path"
3620        },
3621        "delimiter": {
3622          "syn": "MacroDelimiter"
3623        },
3624        "tokens": {
3625          "proc_macro2": "TokenStream"
3626        }
3627      }
3628    },
3629    {
3630      "ident": "MetaNameValue",
3631      "features": {
3632        "any": [
3633          "derive",
3634          "full"
3635        ]
3636      },
3637      "fields": {
3638        "path": {
3639          "syn": "Path"
3640        },
3641        "eq_token": {
3642          "token": "Eq"
3643        },
3644        "value": {
3645          "syn": "Expr"
3646        }
3647      }
3648    },
3649    {
3650      "ident": "ParenthesizedGenericArguments",
3651      "features": {
3652        "any": [
3653          "derive",
3654          "full"
3655        ]
3656      },
3657      "fields": {
3658        "paren_token": {
3659          "group": "Paren"
3660        },
3661        "inputs": {
3662          "punctuated": {
3663            "element": {
3664              "syn": "Type"
3665            },
3666            "punct": "Comma"
3667          }
3668        },
3669        "output": {
3670          "syn": "ReturnType"
3671        }
3672      }
3673    },
3674    {
3675      "ident": "Pat",
3676      "features": {
3677        "any": [
3678          "full"
3679        ]
3680      },
3681      "variants": {
3682        "Const": [
3683          {
3684            "syn": "ExprConst"
3685          }
3686        ],
3687        "Ident": [
3688          {
3689            "syn": "PatIdent"
3690          }
3691        ],
3692        "Lit": [
3693          {
3694            "syn": "ExprLit"
3695          }
3696        ],
3697        "Macro": [
3698          {
3699            "syn": "ExprMacro"
3700          }
3701        ],
3702        "Or": [
3703          {
3704            "syn": "PatOr"
3705          }
3706        ],
3707        "Paren": [
3708          {
3709            "syn": "PatParen"
3710          }
3711        ],
3712        "Path": [
3713          {
3714            "syn": "ExprPath"
3715          }
3716        ],
3717        "Range": [
3718          {
3719            "syn": "ExprRange"
3720          }
3721        ],
3722        "Reference": [
3723          {
3724            "syn": "PatReference"
3725          }
3726        ],
3727        "Rest": [
3728          {
3729            "syn": "PatRest"
3730          }
3731        ],
3732        "Slice": [
3733          {
3734            "syn": "PatSlice"
3735          }
3736        ],
3737        "Struct": [
3738          {
3739            "syn": "PatStruct"
3740          }
3741        ],
3742        "Tuple": [
3743          {
3744            "syn": "PatTuple"
3745          }
3746        ],
3747        "TupleStruct": [
3748          {
3749            "syn": "PatTupleStruct"
3750          }
3751        ],
3752        "Type": [
3753          {
3754            "syn": "PatType"
3755          }
3756        ],
3757        "Verbatim": [
3758          {
3759            "proc_macro2": "TokenStream"
3760          }
3761        ],
3762        "Wild": [
3763          {
3764            "syn": "PatWild"
3765          }
3766        ]
3767      },
3768      "exhaustive": false
3769    },
3770    {
3771      "ident": "PatIdent",
3772      "features": {
3773        "any": [
3774          "full"
3775        ]
3776      },
3777      "fields": {
3778        "attrs": {
3779          "vec": {
3780            "syn": "Attribute"
3781          }
3782        },
3783        "by_ref": {
3784          "option": {
3785            "token": "Ref"
3786          }
3787        },
3788        "mutability": {
3789          "option": {
3790            "token": "Mut"
3791          }
3792        },
3793        "ident": {
3794          "proc_macro2": "Ident"
3795        },
3796        "subpat": {
3797          "option": {
3798            "tuple": [
3799              {
3800                "token": "At"
3801              },
3802              {
3803                "box": {
3804                  "syn": "Pat"
3805                }
3806              }
3807            ]
3808          }
3809        }
3810      }
3811    },
3812    {
3813      "ident": "PatOr",
3814      "features": {
3815        "any": [
3816          "full"
3817        ]
3818      },
3819      "fields": {
3820        "attrs": {
3821          "vec": {
3822            "syn": "Attribute"
3823          }
3824        },
3825        "leading_vert": {
3826          "option": {
3827            "token": "Or"
3828          }
3829        },
3830        "cases": {
3831          "punctuated": {
3832            "element": {
3833              "syn": "Pat"
3834            },
3835            "punct": "Or"
3836          }
3837        }
3838      }
3839    },
3840    {
3841      "ident": "PatParen",
3842      "features": {
3843        "any": [
3844          "full"
3845        ]
3846      },
3847      "fields": {
3848        "attrs": {
3849          "vec": {
3850            "syn": "Attribute"
3851          }
3852        },
3853        "paren_token": {
3854          "group": "Paren"
3855        },
3856        "pat": {
3857          "box": {
3858            "syn": "Pat"
3859          }
3860        }
3861      }
3862    },
3863    {
3864      "ident": "PatReference",
3865      "features": {
3866        "any": [
3867          "full"
3868        ]
3869      },
3870      "fields": {
3871        "attrs": {
3872          "vec": {
3873            "syn": "Attribute"
3874          }
3875        },
3876        "and_token": {
3877          "token": "And"
3878        },
3879        "mutability": {
3880          "option": {
3881            "token": "Mut"
3882          }
3883        },
3884        "pat": {
3885          "box": {
3886            "syn": "Pat"
3887          }
3888        }
3889      }
3890    },
3891    {
3892      "ident": "PatRest",
3893      "features": {
3894        "any": [
3895          "full"
3896        ]
3897      },
3898      "fields": {
3899        "attrs": {
3900          "vec": {
3901            "syn": "Attribute"
3902          }
3903        },
3904        "dot2_token": {
3905          "token": "DotDot"
3906        }
3907      }
3908    },
3909    {
3910      "ident": "PatSlice",
3911      "features": {
3912        "any": [
3913          "full"
3914        ]
3915      },
3916      "fields": {
3917        "attrs": {
3918          "vec": {
3919            "syn": "Attribute"
3920          }
3921        },
3922        "bracket_token": {
3923          "group": "Bracket"
3924        },
3925        "elems": {
3926          "punctuated": {
3927            "element": {
3928              "syn": "Pat"
3929            },
3930            "punct": "Comma"
3931          }
3932        }
3933      }
3934    },
3935    {
3936      "ident": "PatStruct",
3937      "features": {
3938        "any": [
3939          "full"
3940        ]
3941      },
3942      "fields": {
3943        "attrs": {
3944          "vec": {
3945            "syn": "Attribute"
3946          }
3947        },
3948        "qself": {
3949          "option": {
3950            "syn": "QSelf"
3951          }
3952        },
3953        "path": {
3954          "syn": "Path"
3955        },
3956        "brace_token": {
3957          "group": "Brace"
3958        },
3959        "fields": {
3960          "punctuated": {
3961            "element": {
3962              "syn": "FieldPat"
3963            },
3964            "punct": "Comma"
3965          }
3966        },
3967        "rest": {
3968          "option": {
3969            "syn": "PatRest"
3970          }
3971        }
3972      }
3973    },
3974    {
3975      "ident": "PatTuple",
3976      "features": {
3977        "any": [
3978          "full"
3979        ]
3980      },
3981      "fields": {
3982        "attrs": {
3983          "vec": {
3984            "syn": "Attribute"
3985          }
3986        },
3987        "paren_token": {
3988          "group": "Paren"
3989        },
3990        "elems": {
3991          "punctuated": {
3992            "element": {
3993              "syn": "Pat"
3994            },
3995            "punct": "Comma"
3996          }
3997        }
3998      }
3999    },
4000    {
4001      "ident": "PatTupleStruct",
4002      "features": {
4003        "any": [
4004          "full"
4005        ]
4006      },
4007      "fields": {
4008        "attrs": {
4009          "vec": {
4010            "syn": "Attribute"
4011          }
4012        },
4013        "qself": {
4014          "option": {
4015            "syn": "QSelf"
4016          }
4017        },
4018        "path": {
4019          "syn": "Path"
4020        },
4021        "paren_token": {
4022          "group": "Paren"
4023        },
4024        "elems": {
4025          "punctuated": {
4026            "element": {
4027              "syn": "Pat"
4028            },
4029            "punct": "Comma"
4030          }
4031        }
4032      }
4033    },
4034    {
4035      "ident": "PatType",
4036      "features": {
4037        "any": [
4038          "full"
4039        ]
4040      },
4041      "fields": {
4042        "attrs": {
4043          "vec": {
4044            "syn": "Attribute"
4045          }
4046        },
4047        "pat": {
4048          "box": {
4049            "syn": "Pat"
4050          }
4051        },
4052        "colon_token": {
4053          "token": "Colon"
4054        },
4055        "ty": {
4056          "box": {
4057            "syn": "Type"
4058          }
4059        }
4060      }
4061    },
4062    {
4063      "ident": "PatWild",
4064      "features": {
4065        "any": [
4066          "full"
4067        ]
4068      },
4069      "fields": {
4070        "attrs": {
4071          "vec": {
4072            "syn": "Attribute"
4073          }
4074        },
4075        "underscore_token": {
4076          "token": "Underscore"
4077        }
4078      }
4079    },
4080    {
4081      "ident": "Path",
4082      "features": {
4083        "any": [
4084          "derive",
4085          "full"
4086        ]
4087      },
4088      "fields": {
4089        "leading_colon": {
4090          "option": {
4091            "token": "PathSep"
4092          }
4093        },
4094        "segments": {
4095          "punctuated": {
4096            "element": {
4097              "syn": "PathSegment"
4098            },
4099            "punct": "PathSep"
4100          }
4101        }
4102      }
4103    },
4104    {
4105      "ident": "PathArguments",
4106      "features": {
4107        "any": [
4108          "derive",
4109          "full"
4110        ]
4111      },
4112      "variants": {
4113        "None": [],
4114        "AngleBracketed": [
4115          {
4116            "syn": "AngleBracketedGenericArguments"
4117          }
4118        ],
4119        "Parenthesized": [
4120          {
4121            "syn": "ParenthesizedGenericArguments"
4122          }
4123        ]
4124      }
4125    },
4126    {
4127      "ident": "PathSegment",
4128      "features": {
4129        "any": [
4130          "derive",
4131          "full"
4132        ]
4133      },
4134      "fields": {
4135        "ident": {
4136          "proc_macro2": "Ident"
4137        },
4138        "arguments": {
4139          "syn": "PathArguments"
4140        }
4141      }
4142    },
4143    {
4144      "ident": "PredicateLifetime",
4145      "features": {
4146        "any": [
4147          "derive",
4148          "full"
4149        ]
4150      },
4151      "fields": {
4152        "lifetime": {
4153          "syn": "Lifetime"
4154        },
4155        "colon_token": {
4156          "token": "Colon"
4157        },
4158        "bounds": {
4159          "punctuated": {
4160            "element": {
4161              "syn": "Lifetime"
4162            },
4163            "punct": "Plus"
4164          }
4165        }
4166      }
4167    },
4168    {
4169      "ident": "PredicateType",
4170      "features": {
4171        "any": [
4172          "derive",
4173          "full"
4174        ]
4175      },
4176      "fields": {
4177        "lifetimes": {
4178          "option": {
4179            "syn": "BoundLifetimes"
4180          }
4181        },
4182        "bounded_ty": {
4183          "syn": "Type"
4184        },
4185        "colon_token": {
4186          "token": "Colon"
4187        },
4188        "bounds": {
4189          "punctuated": {
4190            "element": {
4191              "syn": "TypeParamBound"
4192            },
4193            "punct": "Plus"
4194          }
4195        }
4196      }
4197    },
4198    {
4199      "ident": "QSelf",
4200      "features": {
4201        "any": [
4202          "derive",
4203          "full"
4204        ]
4205      },
4206      "fields": {
4207        "lt_token": {
4208          "token": "Lt"
4209        },
4210        "ty": {
4211          "box": {
4212            "syn": "Type"
4213          }
4214        },
4215        "position": {
4216          "std": "usize"
4217        },
4218        "as_token": {
4219          "option": {
4220            "token": "As"
4221          }
4222        },
4223        "gt_token": {
4224          "token": "Gt"
4225        }
4226      }
4227    },
4228    {
4229      "ident": "RangeLimits",
4230      "features": {
4231        "any": [
4232          "full"
4233        ]
4234      },
4235      "variants": {
4236        "HalfOpen": [
4237          {
4238            "token": "DotDot"
4239          }
4240        ],
4241        "Closed": [
4242          {
4243            "token": "DotDotEq"
4244          }
4245        ]
4246      }
4247    },
4248    {
4249      "ident": "Receiver",
4250      "features": {
4251        "any": [
4252          "full"
4253        ]
4254      },
4255      "fields": {
4256        "attrs": {
4257          "vec": {
4258            "syn": "Attribute"
4259          }
4260        },
4261        "reference": {
4262          "option": {
4263            "tuple": [
4264              {
4265                "token": "And"
4266              },
4267              {
4268                "option": {
4269                  "syn": "Lifetime"
4270                }
4271              }
4272            ]
4273          }
4274        },
4275        "mutability": {
4276          "option": {
4277            "token": "Mut"
4278          }
4279        },
4280        "self_token": {
4281          "token": "SelfValue"
4282        },
4283        "colon_token": {
4284          "option": {
4285            "token": "Colon"
4286          }
4287        },
4288        "ty": {
4289          "box": {
4290            "syn": "Type"
4291          }
4292        }
4293      }
4294    },
4295    {
4296      "ident": "ReturnType",
4297      "features": {
4298        "any": [
4299          "derive",
4300          "full"
4301        ]
4302      },
4303      "variants": {
4304        "Default": [],
4305        "Type": [
4306          {
4307            "token": "RArrow"
4308          },
4309          {
4310            "box": {
4311              "syn": "Type"
4312            }
4313          }
4314        ]
4315      }
4316    },
4317    {
4318      "ident": "Signature",
4319      "features": {
4320        "any": [
4321          "full"
4322        ]
4323      },
4324      "fields": {
4325        "constness": {
4326          "option": {
4327            "token": "Const"
4328          }
4329        },
4330        "asyncness": {
4331          "option": {
4332            "token": "Async"
4333          }
4334        },
4335        "unsafety": {
4336          "option": {
4337            "token": "Unsafe"
4338          }
4339        },
4340        "abi": {
4341          "option": {
4342            "syn": "Abi"
4343          }
4344        },
4345        "fn_token": {
4346          "token": "Fn"
4347        },
4348        "ident": {
4349          "proc_macro2": "Ident"
4350        },
4351        "generics": {
4352          "syn": "Generics"
4353        },
4354        "paren_token": {
4355          "group": "Paren"
4356        },
4357        "inputs": {
4358          "punctuated": {
4359            "element": {
4360              "syn": "FnArg"
4361            },
4362            "punct": "Comma"
4363          }
4364        },
4365        "variadic": {
4366          "option": {
4367            "syn": "Variadic"
4368          }
4369        },
4370        "output": {
4371          "syn": "ReturnType"
4372        }
4373      }
4374    },
4375    {
4376      "ident": "StaticMutability",
4377      "features": {
4378        "any": [
4379          "full"
4380        ]
4381      },
4382      "variants": {
4383        "Mut": [
4384          {
4385            "token": "Mut"
4386          }
4387        ],
4388        "None": []
4389      },
4390      "exhaustive": false
4391    },
4392    {
4393      "ident": "Stmt",
4394      "features": {
4395        "any": [
4396          "full"
4397        ]
4398      },
4399      "variants": {
4400        "Local": [
4401          {
4402            "syn": "Local"
4403          }
4404        ],
4405        "Item": [
4406          {
4407            "syn": "Item"
4408          }
4409        ],
4410        "Expr": [
4411          {
4412            "syn": "Expr"
4413          },
4414          {
4415            "option": {
4416              "token": "Semi"
4417            }
4418          }
4419        ],
4420        "Macro": [
4421          {
4422            "syn": "StmtMacro"
4423          }
4424        ]
4425      }
4426    },
4427    {
4428      "ident": "StmtMacro",
4429      "features": {
4430        "any": [
4431          "full"
4432        ]
4433      },
4434      "fields": {
4435        "attrs": {
4436          "vec": {
4437            "syn": "Attribute"
4438          }
4439        },
4440        "mac": {
4441          "syn": "Macro"
4442        },
4443        "semi_token": {
4444          "option": {
4445            "token": "Semi"
4446          }
4447        }
4448      }
4449    },
4450    {
4451      "ident": "TraitBound",
4452      "features": {
4453        "any": [
4454          "derive",
4455          "full"
4456        ]
4457      },
4458      "fields": {
4459        "paren_token": {
4460          "option": {
4461            "group": "Paren"
4462          }
4463        },
4464        "modifier": {
4465          "syn": "TraitBoundModifier"
4466        },
4467        "lifetimes": {
4468          "option": {
4469            "syn": "BoundLifetimes"
4470          }
4471        },
4472        "path": {
4473          "syn": "Path"
4474        }
4475      }
4476    },
4477    {
4478      "ident": "TraitBoundModifier",
4479      "features": {
4480        "any": [
4481          "derive",
4482          "full"
4483        ]
4484      },
4485      "variants": {
4486        "None": [],
4487        "Maybe": [
4488          {
4489            "token": "Question"
4490          }
4491        ]
4492      }
4493    },
4494    {
4495      "ident": "TraitItem",
4496      "features": {
4497        "any": [
4498          "full"
4499        ]
4500      },
4501      "variants": {
4502        "Const": [
4503          {
4504            "syn": "TraitItemConst"
4505          }
4506        ],
4507        "Fn": [
4508          {
4509            "syn": "TraitItemFn"
4510          }
4511        ],
4512        "Type": [
4513          {
4514            "syn": "TraitItemType"
4515          }
4516        ],
4517        "Macro": [
4518          {
4519            "syn": "TraitItemMacro"
4520          }
4521        ],
4522        "Verbatim": [
4523          {
4524            "proc_macro2": "TokenStream"
4525          }
4526        ]
4527      },
4528      "exhaustive": false
4529    },
4530    {
4531      "ident": "TraitItemConst",
4532      "features": {
4533        "any": [
4534          "full"
4535        ]
4536      },
4537      "fields": {
4538        "attrs": {
4539          "vec": {
4540            "syn": "Attribute"
4541          }
4542        },
4543        "const_token": {
4544          "token": "Const"
4545        },
4546        "ident": {
4547          "proc_macro2": "Ident"
4548        },
4549        "generics": {
4550          "syn": "Generics"
4551        },
4552        "colon_token": {
4553          "token": "Colon"
4554        },
4555        "ty": {
4556          "syn": "Type"
4557        },
4558        "default": {
4559          "option": {
4560            "tuple": [
4561              {
4562                "token": "Eq"
4563              },
4564              {
4565                "syn": "Expr"
4566              }
4567            ]
4568          }
4569        },
4570        "semi_token": {
4571          "token": "Semi"
4572        }
4573      }
4574    },
4575    {
4576      "ident": "TraitItemFn",
4577      "features": {
4578        "any": [
4579          "full"
4580        ]
4581      },
4582      "fields": {
4583        "attrs": {
4584          "vec": {
4585            "syn": "Attribute"
4586          }
4587        },
4588        "sig": {
4589          "syn": "Signature"
4590        },
4591        "default": {
4592          "option": {
4593            "syn": "Block"
4594          }
4595        },
4596        "semi_token": {
4597          "option": {
4598            "token": "Semi"
4599          }
4600        }
4601      }
4602    },
4603    {
4604      "ident": "TraitItemMacro",
4605      "features": {
4606        "any": [
4607          "full"
4608        ]
4609      },
4610      "fields": {
4611        "attrs": {
4612          "vec": {
4613            "syn": "Attribute"
4614          }
4615        },
4616        "mac": {
4617          "syn": "Macro"
4618        },
4619        "semi_token": {
4620          "option": {
4621            "token": "Semi"
4622          }
4623        }
4624      }
4625    },
4626    {
4627      "ident": "TraitItemType",
4628      "features": {
4629        "any": [
4630          "full"
4631        ]
4632      },
4633      "fields": {
4634        "attrs": {
4635          "vec": {
4636            "syn": "Attribute"
4637          }
4638        },
4639        "type_token": {
4640          "token": "Type"
4641        },
4642        "ident": {
4643          "proc_macro2": "Ident"
4644        },
4645        "generics": {
4646          "syn": "Generics"
4647        },
4648        "colon_token": {
4649          "option": {
4650            "token": "Colon"
4651          }
4652        },
4653        "bounds": {
4654          "punctuated": {
4655            "element": {
4656              "syn": "TypeParamBound"
4657            },
4658            "punct": "Plus"
4659          }
4660        },
4661        "default": {
4662          "option": {
4663            "tuple": [
4664              {
4665                "token": "Eq"
4666              },
4667              {
4668                "syn": "Type"
4669              }
4670            ]
4671          }
4672        },
4673        "semi_token": {
4674          "token": "Semi"
4675        }
4676      }
4677    },
4678    {
4679      "ident": "Type",
4680      "features": {
4681        "any": [
4682          "derive",
4683          "full"
4684        ]
4685      },
4686      "variants": {
4687        "Array": [
4688          {
4689            "syn": "TypeArray"
4690          }
4691        ],
4692        "BareFn": [
4693          {
4694            "syn": "TypeBareFn"
4695          }
4696        ],
4697        "Group": [
4698          {
4699            "syn": "TypeGroup"
4700          }
4701        ],
4702        "ImplTrait": [
4703          {
4704            "syn": "TypeImplTrait"
4705          }
4706        ],
4707        "Infer": [
4708          {
4709            "syn": "TypeInfer"
4710          }
4711        ],
4712        "Macro": [
4713          {
4714            "syn": "TypeMacro"
4715          }
4716        ],
4717        "Never": [
4718          {
4719            "syn": "TypeNever"
4720          }
4721        ],
4722        "Paren": [
4723          {
4724            "syn": "TypeParen"
4725          }
4726        ],
4727        "Path": [
4728          {
4729            "syn": "TypePath"
4730          }
4731        ],
4732        "Ptr": [
4733          {
4734            "syn": "TypePtr"
4735          }
4736        ],
4737        "Reference": [
4738          {
4739            "syn": "TypeReference"
4740          }
4741        ],
4742        "Slice": [
4743          {
4744            "syn": "TypeSlice"
4745          }
4746        ],
4747        "TraitObject": [
4748          {
4749            "syn": "TypeTraitObject"
4750          }
4751        ],
4752        "Tuple": [
4753          {
4754            "syn": "TypeTuple"
4755          }
4756        ],
4757        "Verbatim": [
4758          {
4759            "proc_macro2": "TokenStream"
4760          }
4761        ]
4762      },
4763      "exhaustive": false
4764    },
4765    {
4766      "ident": "TypeArray",
4767      "features": {
4768        "any": [
4769          "derive",
4770          "full"
4771        ]
4772      },
4773      "fields": {
4774        "bracket_token": {
4775          "group": "Bracket"
4776        },
4777        "elem": {
4778          "box": {
4779            "syn": "Type"
4780          }
4781        },
4782        "semi_token": {
4783          "token": "Semi"
4784        },
4785        "len": {
4786          "syn": "Expr"
4787        }
4788      }
4789    },
4790    {
4791      "ident": "TypeBareFn",
4792      "features": {
4793        "any": [
4794          "derive",
4795          "full"
4796        ]
4797      },
4798      "fields": {
4799        "lifetimes": {
4800          "option": {
4801            "syn": "BoundLifetimes"
4802          }
4803        },
4804        "unsafety": {
4805          "option": {
4806            "token": "Unsafe"
4807          }
4808        },
4809        "abi": {
4810          "option": {
4811            "syn": "Abi"
4812          }
4813        },
4814        "fn_token": {
4815          "token": "Fn"
4816        },
4817        "paren_token": {
4818          "group": "Paren"
4819        },
4820        "inputs": {
4821          "punctuated": {
4822            "element": {
4823              "syn": "BareFnArg"
4824            },
4825            "punct": "Comma"
4826          }
4827        },
4828        "variadic": {
4829          "option": {
4830            "syn": "BareVariadic"
4831          }
4832        },
4833        "output": {
4834          "syn": "ReturnType"
4835        }
4836      }
4837    },
4838    {
4839      "ident": "TypeGroup",
4840      "features": {
4841        "any": [
4842          "derive",
4843          "full"
4844        ]
4845      },
4846      "fields": {
4847        "group_token": {
4848          "group": "Group"
4849        },
4850        "elem": {
4851          "box": {
4852            "syn": "Type"
4853          }
4854        }
4855      }
4856    },
4857    {
4858      "ident": "TypeImplTrait",
4859      "features": {
4860        "any": [
4861          "derive",
4862          "full"
4863        ]
4864      },
4865      "fields": {
4866        "impl_token": {
4867          "token": "Impl"
4868        },
4869        "bounds": {
4870          "punctuated": {
4871            "element": {
4872              "syn": "TypeParamBound"
4873            },
4874            "punct": "Plus"
4875          }
4876        }
4877      }
4878    },
4879    {
4880      "ident": "TypeInfer",
4881      "features": {
4882        "any": [
4883          "derive",
4884          "full"
4885        ]
4886      },
4887      "fields": {
4888        "underscore_token": {
4889          "token": "Underscore"
4890        }
4891      }
4892    },
4893    {
4894      "ident": "TypeMacro",
4895      "features": {
4896        "any": [
4897          "derive",
4898          "full"
4899        ]
4900      },
4901      "fields": {
4902        "mac": {
4903          "syn": "Macro"
4904        }
4905      }
4906    },
4907    {
4908      "ident": "TypeNever",
4909      "features": {
4910        "any": [
4911          "derive",
4912          "full"
4913        ]
4914      },
4915      "fields": {
4916        "bang_token": {
4917          "token": "Not"
4918        }
4919      }
4920    },
4921    {
4922      "ident": "TypeParam",
4923      "features": {
4924        "any": [
4925          "derive",
4926          "full"
4927        ]
4928      },
4929      "fields": {
4930        "attrs": {
4931          "vec": {
4932            "syn": "Attribute"
4933          }
4934        },
4935        "ident": {
4936          "proc_macro2": "Ident"
4937        },
4938        "colon_token": {
4939          "option": {
4940            "token": "Colon"
4941          }
4942        },
4943        "bounds": {
4944          "punctuated": {
4945            "element": {
4946              "syn": "TypeParamBound"
4947            },
4948            "punct": "Plus"
4949          }
4950        },
4951        "eq_token": {
4952          "option": {
4953            "token": "Eq"
4954          }
4955        },
4956        "default": {
4957          "option": {
4958            "syn": "Type"
4959          }
4960        }
4961      }
4962    },
4963    {
4964      "ident": "TypeParamBound",
4965      "features": {
4966        "any": [
4967          "derive",
4968          "full"
4969        ]
4970      },
4971      "variants": {
4972        "Trait": [
4973          {
4974            "syn": "TraitBound"
4975          }
4976        ],
4977        "Lifetime": [
4978          {
4979            "syn": "Lifetime"
4980          }
4981        ],
4982        "Verbatim": [
4983          {
4984            "proc_macro2": "TokenStream"
4985          }
4986        ]
4987      },
4988      "exhaustive": false
4989    },
4990    {
4991      "ident": "TypeParen",
4992      "features": {
4993        "any": [
4994          "derive",
4995          "full"
4996        ]
4997      },
4998      "fields": {
4999        "paren_token": {
5000          "group": "Paren"
5001        },
5002        "elem": {
5003          "box": {
5004            "syn": "Type"
5005          }
5006        }
5007      }
5008    },
5009    {
5010      "ident": "TypePath",
5011      "features": {
5012        "any": [
5013          "derive",
5014          "full"
5015        ]
5016      },
5017      "fields": {
5018        "qself": {
5019          "option": {
5020            "syn": "QSelf"
5021          }
5022        },
5023        "path": {
5024          "syn": "Path"
5025        }
5026      }
5027    },
5028    {
5029      "ident": "TypePtr",
5030      "features": {
5031        "any": [
5032          "derive",
5033          "full"
5034        ]
5035      },
5036      "fields": {
5037        "star_token": {
5038          "token": "Star"
5039        },
5040        "const_token": {
5041          "option": {
5042            "token": "Const"
5043          }
5044        },
5045        "mutability": {
5046          "option": {
5047            "token": "Mut"
5048          }
5049        },
5050        "elem": {
5051          "box": {
5052            "syn": "Type"
5053          }
5054        }
5055      }
5056    },
5057    {
5058      "ident": "TypeReference",
5059      "features": {
5060        "any": [
5061          "derive",
5062          "full"
5063        ]
5064      },
5065      "fields": {
5066        "and_token": {
5067          "token": "And"
5068        },
5069        "lifetime": {
5070          "option": {
5071            "syn": "Lifetime"
5072          }
5073        },
5074        "mutability": {
5075          "option": {
5076            "token": "Mut"
5077          }
5078        },
5079        "elem": {
5080          "box": {
5081            "syn": "Type"
5082          }
5083        }
5084      }
5085    },
5086    {
5087      "ident": "TypeSlice",
5088      "features": {
5089        "any": [
5090          "derive",
5091          "full"
5092        ]
5093      },
5094      "fields": {
5095        "bracket_token": {
5096          "group": "Bracket"
5097        },
5098        "elem": {
5099          "box": {
5100            "syn": "Type"
5101          }
5102        }
5103      }
5104    },
5105    {
5106      "ident": "TypeTraitObject",
5107      "features": {
5108        "any": [
5109          "derive",
5110          "full"
5111        ]
5112      },
5113      "fields": {
5114        "dyn_token": {
5115          "option": {
5116            "token": "Dyn"
5117          }
5118        },
5119        "bounds": {
5120          "punctuated": {
5121            "element": {
5122              "syn": "TypeParamBound"
5123            },
5124            "punct": "Plus"
5125          }
5126        }
5127      }
5128    },
5129    {
5130      "ident": "TypeTuple",
5131      "features": {
5132        "any": [
5133          "derive",
5134          "full"
5135        ]
5136      },
5137      "fields": {
5138        "paren_token": {
5139          "group": "Paren"
5140        },
5141        "elems": {
5142          "punctuated": {
5143            "element": {
5144              "syn": "Type"
5145            },
5146            "punct": "Comma"
5147          }
5148        }
5149      }
5150    },
5151    {
5152      "ident": "UnOp",
5153      "features": {
5154        "any": [
5155          "derive",
5156          "full"
5157        ]
5158      },
5159      "variants": {
5160        "Deref": [
5161          {
5162            "token": "Star"
5163          }
5164        ],
5165        "Not": [
5166          {
5167            "token": "Not"
5168          }
5169        ],
5170        "Neg": [
5171          {
5172            "token": "Minus"
5173          }
5174        ]
5175      },
5176      "exhaustive": false
5177    },
5178    {
5179      "ident": "UseGlob",
5180      "features": {
5181        "any": [
5182          "full"
5183        ]
5184      },
5185      "fields": {
5186        "star_token": {
5187          "token": "Star"
5188        }
5189      }
5190    },
5191    {
5192      "ident": "UseGroup",
5193      "features": {
5194        "any": [
5195          "full"
5196        ]
5197      },
5198      "fields": {
5199        "brace_token": {
5200          "group": "Brace"
5201        },
5202        "items": {
5203          "punctuated": {
5204            "element": {
5205              "syn": "UseTree"
5206            },
5207            "punct": "Comma"
5208          }
5209        }
5210      }
5211    },
5212    {
5213      "ident": "UseName",
5214      "features": {
5215        "any": [
5216          "full"
5217        ]
5218      },
5219      "fields": {
5220        "ident": {
5221          "proc_macro2": "Ident"
5222        }
5223      }
5224    },
5225    {
5226      "ident": "UsePath",
5227      "features": {
5228        "any": [
5229          "full"
5230        ]
5231      },
5232      "fields": {
5233        "ident": {
5234          "proc_macro2": "Ident"
5235        },
5236        "colon2_token": {
5237          "token": "PathSep"
5238        },
5239        "tree": {
5240          "box": {
5241            "syn": "UseTree"
5242          }
5243        }
5244      }
5245    },
5246    {
5247      "ident": "UseRename",
5248      "features": {
5249        "any": [
5250          "full"
5251        ]
5252      },
5253      "fields": {
5254        "ident": {
5255          "proc_macro2": "Ident"
5256        },
5257        "as_token": {
5258          "token": "As"
5259        },
5260        "rename": {
5261          "proc_macro2": "Ident"
5262        }
5263      }
5264    },
5265    {
5266      "ident": "UseTree",
5267      "features": {
5268        "any": [
5269          "full"
5270        ]
5271      },
5272      "variants": {
5273        "Path": [
5274          {
5275            "syn": "UsePath"
5276          }
5277        ],
5278        "Name": [
5279          {
5280            "syn": "UseName"
5281          }
5282        ],
5283        "Rename": [
5284          {
5285            "syn": "UseRename"
5286          }
5287        ],
5288        "Glob": [
5289          {
5290            "syn": "UseGlob"
5291          }
5292        ],
5293        "Group": [
5294          {
5295            "syn": "UseGroup"
5296          }
5297        ]
5298      }
5299    },
5300    {
5301      "ident": "Variadic",
5302      "features": {
5303        "any": [
5304          "full"
5305        ]
5306      },
5307      "fields": {
5308        "attrs": {
5309          "vec": {
5310            "syn": "Attribute"
5311          }
5312        },
5313        "pat": {
5314          "option": {
5315            "tuple": [
5316              {
5317                "box": {
5318                  "syn": "Pat"
5319                }
5320              },
5321              {
5322                "token": "Colon"
5323              }
5324            ]
5325          }
5326        },
5327        "dots": {
5328          "token": "DotDotDot"
5329        },
5330        "comma": {
5331          "option": {
5332            "token": "Comma"
5333          }
5334        }
5335      }
5336    },
5337    {
5338      "ident": "Variant",
5339      "features": {
5340        "any": [
5341          "derive",
5342          "full"
5343        ]
5344      },
5345      "fields": {
5346        "attrs": {
5347          "vec": {
5348            "syn": "Attribute"
5349          }
5350        },
5351        "ident": {
5352          "proc_macro2": "Ident"
5353        },
5354        "fields": {
5355          "syn": "Fields"
5356        },
5357        "discriminant": {
5358          "option": {
5359            "tuple": [
5360              {
5361                "token": "Eq"
5362              },
5363              {
5364                "syn": "Expr"
5365              }
5366            ]
5367          }
5368        }
5369      }
5370    },
5371    {
5372      "ident": "VisRestricted",
5373      "features": {
5374        "any": [
5375          "derive",
5376          "full"
5377        ]
5378      },
5379      "fields": {
5380        "pub_token": {
5381          "token": "Pub"
5382        },
5383        "paren_token": {
5384          "group": "Paren"
5385        },
5386        "in_token": {
5387          "option": {
5388            "token": "In"
5389          }
5390        },
5391        "path": {
5392          "box": {
5393            "syn": "Path"
5394          }
5395        }
5396      }
5397    },
5398    {
5399      "ident": "Visibility",
5400      "features": {
5401        "any": [
5402          "derive",
5403          "full"
5404        ]
5405      },
5406      "variants": {
5407        "Public": [
5408          {
5409            "token": "Pub"
5410          }
5411        ],
5412        "Restricted": [
5413          {
5414            "syn": "VisRestricted"
5415          }
5416        ],
5417        "Inherited": []
5418      }
5419    },
5420    {
5421      "ident": "WhereClause",
5422      "features": {
5423        "any": [
5424          "derive",
5425          "full"
5426        ]
5427      },
5428      "fields": {
5429        "where_token": {
5430          "token": "Where"
5431        },
5432        "predicates": {
5433          "punctuated": {
5434            "element": {
5435              "syn": "WherePredicate"
5436            },
5437            "punct": "Comma"
5438          }
5439        }
5440      }
5441    },
5442    {
5443      "ident": "WherePredicate",
5444      "features": {
5445        "any": [
5446          "derive",
5447          "full"
5448        ]
5449      },
5450      "variants": {
5451        "Lifetime": [
5452          {
5453            "syn": "PredicateLifetime"
5454          }
5455        ],
5456        "Type": [
5457          {
5458            "syn": "PredicateType"
5459          }
5460        ]
5461      },
5462      "exhaustive": false
5463    }
5464  ],
5465  "tokens": {
5466    "Abstract": "abstract",
5467    "And": "&",
5468    "AndAnd": "&&",
5469    "AndEq": "&=",
5470    "As": "as",
5471    "Async": "async",
5472    "At": "@",
5473    "Auto": "auto",
5474    "Await": "await",
5475    "Become": "become",
5476    "Box": "box",
5477    "Break": "break",
5478    "Caret": "^",
5479    "CaretEq": "^=",
5480    "Colon": ":",
5481    "Comma": ",",
5482    "Const": "const",
5483    "Continue": "continue",
5484    "Crate": "crate",
5485    "Default": "default",
5486    "Do": "do",
5487    "Dollar": "$",
5488    "Dot": ".",
5489    "DotDot": "..",
5490    "DotDotDot": "...",
5491    "DotDotEq": "..=",
5492    "Dyn": "dyn",
5493    "Else": "else",
5494    "Enum": "enum",
5495    "Eq": "=",
5496    "EqEq": "==",
5497    "Extern": "extern",
5498    "FatArrow": "=>",
5499    "Final": "final",
5500    "Fn": "fn",
5501    "For": "for",
5502    "Ge": ">=",
5503    "Gt": ">",
5504    "If": "if",
5505    "Impl": "impl",
5506    "In": "in",
5507    "LArrow": "<-",
5508    "Le": "<=",
5509    "Let": "let",
5510    "Loop": "loop",
5511    "Lt": "<",
5512    "Macro": "macro",
5513    "Match": "match",
5514    "Minus": "-",
5515    "MinusEq": "-=",
5516    "Mod": "mod",
5517    "Move": "move",
5518    "Mut": "mut",
5519    "Ne": "!=",
5520    "Not": "!",
5521    "Or": "|",
5522    "OrEq": "|=",
5523    "OrOr": "||",
5524    "Override": "override",
5525    "PathSep": "::",
5526    "Percent": "%",
5527    "PercentEq": "%=",
5528    "Plus": "+",
5529    "PlusEq": "+=",
5530    "Pound": "#",
5531    "Priv": "priv",
5532    "Pub": "pub",
5533    "Question": "?",
5534    "RArrow": "->",
5535    "Ref": "ref",
5536    "Return": "return",
5537    "SelfType": "Self",
5538    "SelfValue": "self",
5539    "Semi": ";",
5540    "Shl": "<<",
5541    "ShlEq": "<<=",
5542    "Shr": ">>",
5543    "ShrEq": ">>=",
5544    "Slash": "/",
5545    "SlashEq": "/=",
5546    "Star": "*",
5547    "StarEq": "*=",
5548    "Static": "static",
5549    "Struct": "struct",
5550    "Super": "super",
5551    "Tilde": "~",
5552    "Trait": "trait",
5553    "Try": "try",
5554    "Type": "type",
5555    "Typeof": "typeof",
5556    "Underscore": "_",
5557    "Union": "union",
5558    "Unsafe": "unsafe",
5559    "Unsized": "unsized",
5560    "Use": "use",
5561    "Virtual": "virtual",
5562    "Where": "where",
5563    "While": "while",
5564    "Yield": "yield"
5565  }
5566}
5567