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