pub const NODE_TYPES: &str = "[\n {\n \"type\": \"_declaration_statement\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"associated_type\",\n \"named\": true\n },\n {\n \"type\": \"attribute_item\",\n \"named\": true\n },\n {\n \"type\": \"const_item\",\n \"named\": true\n },\n {\n \"type\": \"empty_statement\",\n \"named\": true\n },\n {\n \"type\": \"enum_item\",\n \"named\": true\n },\n {\n \"type\": \"extern_crate_declaration\",\n \"named\": true\n },\n {\n \"type\": \"foreign_mod_item\",\n \"named\": true\n },\n {\n \"type\": \"function_item\",\n \"named\": true\n },\n {\n \"type\": \"function_signature_item\",\n \"named\": true\n },\n {\n \"type\": \"impl_item\",\n \"named\": true\n },\n {\n \"type\": \"inner_attribute_item\",\n \"named\": true\n },\n {\n \"type\": \"let_declaration\",\n \"named\": true\n },\n {\n \"type\": \"macro_definition\",\n \"named\": true\n },\n {\n \"type\": \"macro_invocation\",\n \"named\": true\n },\n {\n \"type\": \"mod_item\",\n \"named\": true\n },\n {\n \"type\": \"static_item\",\n \"named\": true\n },\n {\n \"type\": \"struct_item\",\n \"named\": true\n },\n {\n \"type\": \"trait_item\",\n \"named\": true\n },\n {\n \"type\": \"type_item\",\n \"named\": true\n },\n {\n \"type\": \"union_item\",\n \"named\": true\n },\n {\n \"type\": \"use_declaration\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"_expression\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"_literal\",\n \"named\": true\n },\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"async_block\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"break_expression\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"closure_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expr\",\n \"named\": true\n },\n {\n \"type\": \"const_block\",\n \"named\": true\n },\n {\n \"type\": \"continue_expression\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"gen_block\",\n \"named\": true\n },\n {\n \"type\": \"generic_function\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"loop_expression\",\n \"named\": true\n },\n {\n \"type\": \"macro_invocation\",\n \"named\": true\n },\n {\n \"type\": \"match_expression\",\n \"named\": true\n },\n {\n \"type\": \"metavariable\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"reference_expression\",\n \"named\": true\n },\n {\n \"type\": \"return_expression\",\n \"named\": true\n },\n {\n \"type\": \"scoped_identifier\",\n \"named\": true\n },\n {\n \"type\": \"self\",\n \"named\": true\n },\n {\n \"type\": \"struct_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_block\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_cast_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unsafe_block\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n },\n {\n \"type\": \"yield_expression\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"_literal\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"char_literal\",\n \"named\": true\n },\n {\n \"type\": \"float_literal\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"_literal_pattern\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"char_literal\",\n \"named\": true\n },\n {\n \"type\": \"float_literal\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"negative_literal\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"_pattern\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"_\",\n \"named\": false\n },\n {\n \"type\": \"_literal_pattern\",\n \"named\": true\n },\n {\n \"type\": \"captured_pattern\",\n \"named\": true\n },\n {\n \"type\": \"const_block\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"macro_invocation\",\n \"named\": true\n },\n {\n \"type\": \"mut_pattern\",\n \"named\": true\n },\n {\n \"type\": \"or_pattern\",\n \"named\": true\n },\n {\n \"type\": \"range_pattern\",\n \"named\": true\n },\n {\n \"type\": \"ref_pattern\",\n \"named\": true\n },\n {\n \"type\": \"reference_pattern\",\n \"named\": true\n },\n {\n \"type\": \"remaining_field_pattern\",\n \"named\": true\n },\n {\n \"type\": \"scoped_identifier\",\n \"named\": true\n },\n {\n \"type\": \"slice_pattern\",\n \"named\": true\n },\n {\n \"type\": \"struct_pattern\",\n \"named\": true\n },\n {\n \"type\": \"tuple_pattern\",\n \"named\": true\n },\n {\n \"type\": \"tuple_struct_pattern\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"_type\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"abstract_type\",\n \"named\": true\n },\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"bounded_type\",\n \"named\": true\n },\n {\n \"type\": \"dynamic_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"generic_type\",\n \"named\": true\n },\n {\n \"type\": \"macro_invocation\",\n \"named\": true\n },\n {\n \"type\": \"metavariable\",\n \"named\": true\n },\n {\n \"type\": \"never_type\",\n \"named\": true\n },\n {\n \"type\": \"pointer_type\",\n \"named\": true\n },\n {\n \"type\": \"primitive_type\",\n \"named\": true\n },\n {\n \"type\": \"reference_type\",\n \"named\": true\n },\n {\n \"type\": \"removed_trait_bound\",\n \"named\": true\n },\n {\n \"type\": \"scoped_type_identifier\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"type_identifier\",\n \"named\": true\n },\n {\n \"type\": \"unit_type\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"abstract_type\",\n \"named\": true,\n \"fields\": {\n \"trait\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"generic_type\",\n \"named\": true\n },\n {\n \"type\": \"removed_trait_bound\",\n \"named\": true\n },\n {\n \"type\": \"scoped_type_identifier\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_parameters\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"arguments\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n },\n {\n \"type\": \"attribute_item\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"array_expression\",\n \"named\": true,\n \"fields\": {\n \"length\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n },\n {\n \"type\": \"attribute_item\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"array_type\",\n \"named\": true,\n \"fields\": {\n \"element\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n }\n ]\n },\n \"length\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true,\n \"fields\": {\n \"left\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n },\n \"right\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"associated_type\",\n \"named\": true,\n \"fields\": {\n \"bounds\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"trait_bounds\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n },\n \"type_parameters\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_parameters\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"where_clause\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"async_block\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"block\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"attribute\",\n \"named\": true,\n \"fields\": {\n \"arguments\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"token_tree\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"crate\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"metavariable\",\n \"named\": true\n },\n {\n \"type\": \"scoped_identifier\",\n \"named\": true\n },\n {\n \"type\": \"self\",\n \"named\": true\n },\n {\n \"type\": \"super\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"attribute_item\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"attribute\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"await_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"base_field_initializer\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true,\n \"fields\": {\n \"left\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n },\n \"operator\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"&\",\n \"named\": false\n },\n {\n \"type\": \"&&\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \">>\",\n \"named\": false\n },\n {\n \"type\": \"^\",\n \"named\": false\n },\n {\n \"type\": \"|\",\n \"named\": false\n },\n {\n \"type\": \"||\",\n \"named\": false\n }\n ]\n },\n \"right\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"block\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_declaration_statement\",\n \"named\": true\n },\n {\n \"type\": \"_expression\",\n \"named\": true\n },\n {\n \"type\": \"expression_statement\",\n \"named\": true\n },\n {\n \"type\": \"label\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"block_comment\",\n \"named\": true,\n \"fields\": {\n \"doc\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"doc_comment\",\n \"named\": true\n }\n ]\n },\n \"inner\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"inner_doc_comment_marker\",\n \"named\": true\n }\n ]\n },\n \"outer\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"outer_doc_comment_marker\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"bounded_type\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n },\n {\n \"type\": \"lifetime\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"bracketed_type\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n },\n {\n \"type\": \"qualified_type\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"break_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n },\n {\n \"type\": \"label\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"call_expression\",\n \"named\": true,\n \"fields\": {\n \"arguments\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"arguments\",\n \"named\": true\n }\n ]\n },\n \"function\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_literal\",\n \"named\": true\n },\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"async_block\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"break_expression\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"closure_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expr\",\n \"named\": true\n },\n {\n \"type\": \"const_block\",\n \"named\": true\n },\n {\n \"type\": \"continue_expression\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"gen_block\",\n \"named\": true\n },\n {\n \"type\": \"generic_function\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"loop_expression\",\n \"named\": true\n },\n {\n \"type\": \"macro_invocation\",\n \"named\": true\n },\n {\n \"type\": \"match_expression\",\n \"named\": true\n },\n {\n \"type\": \"metavariable\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"reference_expression\",\n \"named\": true\n },\n {\n \"type\": \"return_expression\",\n \"named\": true\n },\n {\n \"type\": \"scoped_identifier\",\n \"named\": true\n },\n {\n \"type\": \"self\",\n \"named\": true\n },\n {\n \"type\": \"struct_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_block\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_cast_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unsafe_block\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n },\n {\n \"type\": \"yield_expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"captured_pattern\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_pattern\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"closure_expression\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_\",\n \"named\": false\n },\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n },\n \"parameters\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"closure_parameters\",\n \"named\": true\n }\n ]\n },\n \"return_type\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"closure_parameters\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_pattern\",\n \"named\": true\n },\n {\n \"type\": \"parameter\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"compound_assignment_expr\",\n \"named\": true,\n \"fields\": {\n \"left\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n },\n \"operator\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"%=\",\n \"named\": false\n },\n {\n \"type\": \"&=\",\n \"named\": false\n },\n {\n \"type\": \"*=\",\n \"named\": false\n },\n {\n \"type\": \"+=\",\n \"named\": false\n },\n {\n \"type\": \"-=\",\n \"named\": false\n },\n {\n \"type\": \"/=\",\n \"named\": false\n },\n {\n \"type\": \"<<=\",\n \"named\": false\n },\n {\n \"type\": \">>=\",\n \"named\": false\n },\n {\n \"type\": \"^=\",\n \"named\": false\n },\n {\n \"type\": \"|=\",\n \"named\": false\n }\n ]\n },\n \"right\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"const_block\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"block\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"const_item\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"visibility_modifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"const_parameter\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"constrained_type_parameter\",\n \"named\": true,\n \"fields\": {\n \"bounds\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"trait_bounds\",\n \"named\": true\n }\n ]\n },\n \"left\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"lifetime\",\n \"named\": true\n },\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"continue_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"label\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"declaration_list\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_declaration_statement\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"dynamic_type\",\n \"named\": true,\n \"fields\": {\n \"trait\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"generic_type\",\n \"named\": true\n },\n {\n \"type\": \"higher_ranked_trait_bound\",\n \"named\": true\n },\n {\n \"type\": \"scoped_type_identifier\",\n \"named\": true\n },\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"else_clause\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"empty_statement\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"enum_item\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"enum_variant_list\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n },\n \"type_parameters\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_parameters\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"visibility_modifier\",\n \"named\": true\n },\n {\n \"type\": \"where_clause\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"enum_variant\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"field_declaration_list\",\n \"named\": true\n },\n {\n \"type\": \"ordered_field_declaration_list\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"visibility_modifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"enum_variant_list\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute_item\",\n \"named\": true\n },\n {\n \"type\": \"enum_variant\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"expression_statement\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"extern_crate_declaration\",\n \"named\": true,\n \"fields\": {\n \"alias\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"crate\",\n \"named\": true\n },\n {\n \"type\": \"visibility_modifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"extern_modifier\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"string_literal\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"field_declaration\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"field_identifier\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"visibility_modifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"field_declaration_list\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute_item\",\n \"named\": true\n },\n {\n \"type\": \"field_declaration\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"field_expression\",\n \"named\": true,\n \"fields\": {\n \"field\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"field_identifier\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"field_initializer\",\n \"named\": true,\n \"fields\": {\n \"field\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"field_identifier\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute_item\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"field_initializer_list\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"base_field_initializer\",\n \"named\": true\n },\n {\n \"type\": \"field_initializer\",\n \"named\": true\n },\n {\n \"type\": \"shorthand_field_initializer\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"field_pattern\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"field_identifier\",\n \"named\": true\n },\n {\n \"type\": \"shorthand_field_identifier\",\n \"named\": true\n }\n ]\n },\n \"pattern\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_pattern\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"mutable_specifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"for_expression\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"block\",\n \"named\": true\n }\n ]\n },\n \"pattern\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_pattern\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"label\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"for_lifetimes\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"lifetime\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"foreign_mod_item\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"declaration_list\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"extern_modifier\",\n \"named\": true\n },\n {\n \"type\": \"visibility_modifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"fragment_specifier\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"function_item\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"block\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"metavariable\",\n \"named\": true\n }\n ]\n },\n \"parameters\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"parameters\",\n \"named\": true\n }\n ]\n },\n \"return_type\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n }\n ]\n },\n \"type_parameters\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_parameters\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"function_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"visibility_modifier\",\n \"named\": true\n },\n {\n \"type\": \"where_clause\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"function_modifiers\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"extern_modifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"function_signature_item\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"metavariable\",\n \"named\": true\n }\n ]\n },\n \"parameters\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"parameters\",\n \"named\": true\n }\n ]\n },\n \"return_type\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n }\n ]\n },\n \"type_parameters\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_parameters\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"function_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"visibility_modifier\",\n \"named\": true\n },\n {\n \"type\": \"where_clause\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"function_type\",\n \"named\": true,\n \"fields\": {\n \"parameters\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"parameters\",\n \"named\": true\n }\n ]\n },\n \"return_type\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n }\n ]\n },\n \"trait\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"scoped_type_identifier\",\n \"named\": true\n },\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"for_lifetimes\",\n \"named\": true\n },\n {\n \"type\": \"function_modifiers\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"gen_block\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"block\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"generic_function\",\n \"named\": true,\n \"fields\": {\n \"function\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"scoped_identifier\",\n \"named\": true\n }\n ]\n },\n \"type_arguments\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_arguments\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"generic_type\",\n \"named\": true,\n \"fields\": {\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"scoped_identifier\",\n \"named\": true\n },\n {\n \"type\": \"scoped_type_identifier\",\n \"named\": true\n },\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n },\n \"type_arguments\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_arguments\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"generic_type_with_turbofish\",\n \"named\": true,\n \"fields\": {\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"scoped_identifier\",\n \"named\": true\n },\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n },\n \"type_arguments\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_arguments\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"higher_ranked_trait_bound\",\n \"named\": true,\n \"fields\": {\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n }\n ]\n },\n \"type_parameters\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_parameters\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"if_expression\",\n \"named\": true,\n \"fields\": {\n \"alternative\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"else_clause\",\n \"named\": true\n }\n ]\n },\n \"condition\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n },\n {\n \"type\": \"let_chain\",\n \"named\": true\n },\n {\n \"type\": \"let_condition\",\n \"named\": true\n }\n ]\n },\n \"consequence\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"block\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"impl_item\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"declaration_list\",\n \"named\": true\n }\n ]\n },\n \"trait\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"generic_type\",\n \"named\": true\n },\n {\n \"type\": \"scoped_type_identifier\",\n \"named\": true\n },\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n }\n ]\n },\n \"type_parameters\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_parameters\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"where_clause\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"index_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"inner_attribute_item\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"attribute\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"inner_doc_comment_marker\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"label\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"let_chain\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n },\n {\n \"type\": \"let_condition\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"let_condition\",\n \"named\": true,\n \"fields\": {\n \"pattern\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_pattern\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"let_declaration\",\n \"named\": true,\n \"fields\": {\n \"alternative\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"block\",\n \"named\": true\n }\n ]\n },\n \"pattern\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_pattern\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"mutable_specifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"lifetime\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"line_comment\",\n \"named\": true,\n \"fields\": {\n \"doc\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"doc_comment\",\n \"named\": true\n }\n ]\n },\n \"inner\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"inner_doc_comment_marker\",\n \"named\": true\n }\n ]\n },\n \"outer\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"outer_doc_comment_marker\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"loop_expression\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"block\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"label\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"macro_definition\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"macro_rule\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"macro_invocation\",\n \"named\": true,\n \"fields\": {\n \"macro\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"scoped_identifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"token_tree\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"macro_rule\",\n \"named\": true,\n \"fields\": {\n \"left\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"token_tree_pattern\",\n \"named\": true\n }\n ]\n },\n \"right\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"token_tree\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"match_arm\",\n \"named\": true,\n \"fields\": {\n \"pattern\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"match_pattern\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute_item\",\n \"named\": true\n },\n {\n \"type\": \"inner_attribute_item\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"match_block\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"match_arm\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"match_expression\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"match_block\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"match_pattern\",\n \"named\": true,\n \"fields\": {\n \"condition\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n },\n {\n \"type\": \"let_chain\",\n \"named\": true\n },\n {\n \"type\": \"let_condition\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_pattern\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"mod_item\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"declaration_list\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"visibility_modifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"mut_pattern\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_pattern\",\n \"named\": true\n },\n {\n \"type\": \"mutable_specifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"negative_literal\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"float_literal\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"never_type\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"optional_type_parameter\",\n \"named\": true,\n \"fields\": {\n \"default_type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"constrained_type_parameter\",\n \"named\": true\n },\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"or_pattern\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_pattern\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"ordered_field_declaration_list\",\n \"named\": true,\n \"fields\": {\n \"type\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute_item\",\n \"named\": true\n },\n {\n \"type\": \"visibility_modifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"outer_doc_comment_marker\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"parameter\",\n \"named\": true,\n \"fields\": {\n \"pattern\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_pattern\",\n \"named\": true\n },\n {\n \"type\": \"self\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"mutable_specifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"parameters\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n },\n {\n \"type\": \"attribute_item\",\n \"named\": true\n },\n {\n \"type\": \"parameter\",\n \"named\": true\n },\n {\n \"type\": \"self_parameter\",\n \"named\": true\n },\n {\n \"type\": \"variadic_parameter\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"pointer_type\",\n \"named\": true,\n \"fields\": {\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"mutable_specifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"qualified_type\",\n \"named\": true,\n \"fields\": {\n \"alias\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"range_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"range_pattern\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_literal_pattern\",\n \"named\": true\n },\n {\n \"type\": \"crate\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"metavariable\",\n \"named\": true\n },\n {\n \"type\": \"scoped_identifier\",\n \"named\": true\n },\n {\n \"type\": \"self\",\n \"named\": true\n },\n {\n \"type\": \"super\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"string_content\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"ref_pattern\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_pattern\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"reference_expression\",\n \"named\": true,\n \"fields\": {\n \"value\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"mutable_specifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"reference_pattern\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_pattern\",\n \"named\": true\n },\n {\n \"type\": \"mutable_specifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"reference_type\",\n \"named\": true,\n \"fields\": {\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"lifetime\",\n \"named\": true\n },\n {\n \"type\": \"mutable_specifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"remaining_field_pattern\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"removed_trait_bound\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"return_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"scoped_identifier\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"super\",\n \"named\": true\n }\n ]\n },\n \"path\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"bracketed_type\",\n \"named\": true\n },\n {\n \"type\": \"crate\",\n \"named\": true\n },\n {\n \"type\": \"generic_type\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"metavariable\",\n \"named\": true\n },\n {\n \"type\": \"scoped_identifier\",\n \"named\": true\n },\n {\n \"type\": \"self\",\n \"named\": true\n },\n {\n \"type\": \"super\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"scoped_type_identifier\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n },\n \"path\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"bracketed_type\",\n \"named\": true\n },\n {\n \"type\": \"crate\",\n \"named\": true\n },\n {\n \"type\": \"generic_type\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"metavariable\",\n \"named\": true\n },\n {\n \"type\": \"scoped_identifier\",\n \"named\": true\n },\n {\n \"type\": \"self\",\n \"named\": true\n },\n {\n \"type\": \"super\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"scoped_use_list\",\n \"named\": true,\n \"fields\": {\n \"list\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"use_list\",\n \"named\": true\n }\n ]\n },\n \"path\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"crate\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"metavariable\",\n \"named\": true\n },\n {\n \"type\": \"scoped_identifier\",\n \"named\": true\n },\n {\n \"type\": \"self\",\n \"named\": true\n },\n {\n \"type\": \"super\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"self_parameter\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"lifetime\",\n \"named\": true\n },\n {\n \"type\": \"mutable_specifier\",\n \"named\": true\n },\n {\n \"type\": \"self\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"shorthand_field_initializer\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"attribute_item\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"slice_pattern\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_pattern\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"source_file\",\n \"named\": true,\n \"root\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_declaration_statement\",\n \"named\": true\n },\n {\n \"type\": \"expression_statement\",\n \"named\": true\n },\n {\n \"type\": \"shebang\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"static_item\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"mutable_specifier\",\n \"named\": true\n },\n {\n \"type\": \"visibility_modifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"string_literal\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"escape_sequence\",\n \"named\": true\n },\n {\n \"type\": \"string_content\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"struct_expression\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"field_initializer_list\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"generic_type_with_turbofish\",\n \"named\": true\n },\n {\n \"type\": \"scoped_type_identifier\",\n \"named\": true\n },\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"struct_item\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"field_declaration_list\",\n \"named\": true\n },\n {\n \"type\": \"ordered_field_declaration_list\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n },\n \"type_parameters\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_parameters\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"visibility_modifier\",\n \"named\": true\n },\n {\n \"type\": \"where_clause\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"struct_pattern\",\n \"named\": true,\n \"fields\": {\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"scoped_type_identifier\",\n \"named\": true\n },\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"field_pattern\",\n \"named\": true\n },\n {\n \"type\": \"remaining_field_pattern\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"token_binding_pattern\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"metavariable\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"fragment_specifier\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"token_repetition\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_literal\",\n \"named\": true\n },\n {\n \"type\": \"crate\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"metavariable\",\n \"named\": true\n },\n {\n \"type\": \"mutable_specifier\",\n \"named\": true\n },\n {\n \"type\": \"primitive_type\",\n \"named\": true\n },\n {\n \"type\": \"self\",\n \"named\": true\n },\n {\n \"type\": \"super\",\n \"named\": true\n },\n {\n \"type\": \"token_repetition\",\n \"named\": true\n },\n {\n \"type\": \"token_tree\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"token_repetition_pattern\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_literal\",\n \"named\": true\n },\n {\n \"type\": \"crate\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"metavariable\",\n \"named\": true\n },\n {\n \"type\": \"mutable_specifier\",\n \"named\": true\n },\n {\n \"type\": \"primitive_type\",\n \"named\": true\n },\n {\n \"type\": \"self\",\n \"named\": true\n },\n {\n \"type\": \"super\",\n \"named\": true\n },\n {\n \"type\": \"token_binding_pattern\",\n \"named\": true\n },\n {\n \"type\": \"token_repetition_pattern\",\n \"named\": true\n },\n {\n \"type\": \"token_tree_pattern\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"token_tree\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_literal\",\n \"named\": true\n },\n {\n \"type\": \"crate\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"metavariable\",\n \"named\": true\n },\n {\n \"type\": \"mutable_specifier\",\n \"named\": true\n },\n {\n \"type\": \"primitive_type\",\n \"named\": true\n },\n {\n \"type\": \"self\",\n \"named\": true\n },\n {\n \"type\": \"super\",\n \"named\": true\n },\n {\n \"type\": \"token_repetition\",\n \"named\": true\n },\n {\n \"type\": \"token_tree\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"token_tree_pattern\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_literal\",\n \"named\": true\n },\n {\n \"type\": \"crate\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"metavariable\",\n \"named\": true\n },\n {\n \"type\": \"mutable_specifier\",\n \"named\": true\n },\n {\n \"type\": \"primitive_type\",\n \"named\": true\n },\n {\n \"type\": \"self\",\n \"named\": true\n },\n {\n \"type\": \"super\",\n \"named\": true\n },\n {\n \"type\": \"token_binding_pattern\",\n \"named\": true\n },\n {\n \"type\": \"token_repetition_pattern\",\n \"named\": true\n },\n {\n \"type\": \"token_tree_pattern\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"trait_bounds\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n },\n {\n \"type\": \"higher_ranked_trait_bound\",\n \"named\": true\n },\n {\n \"type\": \"lifetime\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"trait_item\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"declaration_list\",\n \"named\": true\n }\n ]\n },\n \"bounds\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"trait_bounds\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n },\n \"type_parameters\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_parameters\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"visibility_modifier\",\n \"named\": true\n },\n {\n \"type\": \"where_clause\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"try_block\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"block\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"try_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n },\n {\n \"type\": \"attribute_item\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"tuple_pattern\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_pattern\",\n \"named\": true\n },\n {\n \"type\": \"closure_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"tuple_struct_pattern\",\n \"named\": true,\n \"fields\": {\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"generic_type\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"scoped_identifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_pattern\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"type_arguments\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_literal\",\n \"named\": true\n },\n {\n \"type\": \"_type\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"lifetime\",\n \"named\": true\n },\n {\n \"type\": \"trait_bounds\",\n \"named\": true\n },\n {\n \"type\": \"type_binding\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"type_binding\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n }\n ]\n },\n \"type_arguments\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_arguments\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"type_cast_expression\",\n \"named\": true,\n \"fields\": {\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"type_item\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_type\",\n \"named\": true\n }\n ]\n },\n \"type_parameters\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_parameters\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"visibility_modifier\",\n \"named\": true\n },\n {\n \"type\": \"where_clause\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"type_parameters\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"attribute_item\",\n \"named\": true\n },\n {\n \"type\": \"const_parameter\",\n \"named\": true\n },\n {\n \"type\": \"constrained_type_parameter\",\n \"named\": true\n },\n {\n \"type\": \"lifetime\",\n \"named\": true\n },\n {\n \"type\": \"metavariable\",\n \"named\": true\n },\n {\n \"type\": \"optional_type_parameter\",\n \"named\": true\n },\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"union_item\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"field_declaration_list\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n },\n \"type_parameters\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_parameters\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"visibility_modifier\",\n \"named\": true\n },\n {\n \"type\": \"where_clause\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"unit_type\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"unsafe_block\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"block\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"use_as_clause\",\n \"named\": true,\n \"fields\": {\n \"alias\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"path\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"crate\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"metavariable\",\n \"named\": true\n },\n {\n \"type\": \"scoped_identifier\",\n \"named\": true\n },\n {\n \"type\": \"self\",\n \"named\": true\n },\n {\n \"type\": \"super\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"use_declaration\",\n \"named\": true,\n \"fields\": {\n \"argument\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"crate\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"metavariable\",\n \"named\": true\n },\n {\n \"type\": \"scoped_identifier\",\n \"named\": true\n },\n {\n \"type\": \"scoped_use_list\",\n \"named\": true\n },\n {\n \"type\": \"self\",\n \"named\": true\n },\n {\n \"type\": \"super\",\n \"named\": true\n },\n {\n \"type\": \"use_as_clause\",\n \"named\": true\n },\n {\n \"type\": \"use_list\",\n \"named\": true\n },\n {\n \"type\": \"use_wildcard\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"visibility_modifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"use_list\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"crate\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"metavariable\",\n \"named\": true\n },\n {\n \"type\": \"scoped_identifier\",\n \"named\": true\n },\n {\n \"type\": \"scoped_use_list\",\n \"named\": true\n },\n {\n \"type\": \"self\",\n \"named\": true\n },\n {\n \"type\": \"super\",\n \"named\": true\n },\n {\n \"type\": \"use_as_clause\",\n \"named\": true\n },\n {\n \"type\": \"use_list\",\n \"named\": true\n },\n {\n \"type\": \"use_wildcard\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"use_wildcard\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"crate\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"metavariable\",\n \"named\": true\n },\n {\n \"type\": \"scoped_identifier\",\n \"named\": true\n },\n {\n \"type\": \"self\",\n \"named\": true\n },\n {\n \"type\": \"super\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"variadic_parameter\",\n \"named\": true,\n \"fields\": {\n \"pattern\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_pattern\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"mutable_specifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"visibility_modifier\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"crate\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"metavariable\",\n \"named\": true\n },\n {\n \"type\": \"scoped_identifier\",\n \"named\": true\n },\n {\n \"type\": \"self\",\n \"named\": true\n },\n {\n \"type\": \"super\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"where_clause\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"where_predicate\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"where_predicate\",\n \"named\": true,\n \"fields\": {\n \"bounds\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"trait_bounds\",\n \"named\": true\n }\n ]\n },\n \"left\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"generic_type\",\n \"named\": true\n },\n {\n \"type\": \"higher_ranked_trait_bound\",\n \"named\": true\n },\n {\n \"type\": \"lifetime\",\n \"named\": true\n },\n {\n \"type\": \"pointer_type\",\n \"named\": true\n },\n {\n \"type\": \"primitive_type\",\n \"named\": true\n },\n {\n \"type\": \"reference_type\",\n \"named\": true\n },\n {\n \"type\": \"scoped_type_identifier\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"while_expression\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"block\",\n \"named\": true\n }\n ]\n },\n \"condition\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n },\n {\n \"type\": \"let_chain\",\n \"named\": true\n },\n {\n \"type\": \"let_condition\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"label\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"yield_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"!\",\n \"named\": false\n },\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"\\\"\",\n \"named\": false\n },\n {\n \"type\": \"#\",\n \"named\": false\n },\n {\n \"type\": \"$\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"%=\",\n \"named\": false\n },\n {\n \"type\": \"&\",\n \"named\": false\n },\n {\n \"type\": \"&&\",\n \"named\": false\n },\n {\n \"type\": \"&=\",\n \"named\": false\n },\n {\n \"type\": \"\'\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"*/\",\n \"named\": false\n },\n {\n \"type\": \"*=\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"+=\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"-=\",\n \"named\": false\n },\n {\n \"type\": \"->\",\n \"named\": false\n },\n {\n \"type\": \".\",\n \"named\": false\n },\n {\n \"type\": \"..\",\n \"named\": false\n },\n {\n \"type\": \"...\",\n \"named\": false\n },\n {\n \"type\": \"..=\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \"/*\",\n \"named\": false\n },\n {\n \"type\": \"//\",\n \"named\": false\n },\n {\n \"type\": \"/=\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"::\",\n \"named\": false\n },\n {\n \"type\": \";\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<<\",\n \"named\": false\n },\n {\n \"type\": \"<<=\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"=>\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \">>\",\n \"named\": false\n },\n {\n \"type\": \">>=\",\n \"named\": false\n },\n {\n \"type\": \"?\",\n \"named\": false\n },\n {\n \"type\": \"@\",\n \"named\": false\n },\n {\n \"type\": \"[\",\n \"named\": false\n },\n {\n \"type\": \"]\",\n \"named\": false\n },\n {\n \"type\": \"^\",\n \"named\": false\n },\n {\n \"type\": \"^=\",\n \"named\": false\n },\n {\n \"type\": \"_\",\n \"named\": false\n },\n {\n \"type\": \"as\",\n \"named\": false\n },\n {\n \"type\": \"async\",\n \"named\": false\n },\n {\n \"type\": \"await\",\n \"named\": false\n },\n {\n \"type\": \"block\",\n \"named\": false\n },\n {\n \"type\": \"break\",\n \"named\": false\n },\n {\n \"type\": \"char_literal\",\n \"named\": true\n },\n {\n \"type\": \"const\",\n \"named\": false\n },\n {\n \"type\": \"continue\",\n \"named\": false\n },\n {\n \"type\": \"crate\",\n \"named\": true\n },\n {\n \"type\": \"default\",\n \"named\": false\n },\n {\n \"type\": \"doc_comment\",\n \"named\": true\n },\n {\n \"type\": \"dyn\",\n \"named\": false\n },\n {\n \"type\": \"else\",\n \"named\": false\n },\n {\n \"type\": \"enum\",\n \"named\": false\n },\n {\n \"type\": \"escape_sequence\",\n \"named\": true\n },\n {\n \"type\": \"expr\",\n \"named\": false\n },\n {\n \"type\": \"extern\",\n \"named\": false\n },\n {\n \"type\": \"false\",\n \"named\": false\n },\n {\n \"type\": \"field_identifier\",\n \"named\": true\n },\n {\n \"type\": \"float_literal\",\n \"named\": true\n },\n {\n \"type\": \"fn\",\n \"named\": false\n },\n {\n \"type\": \"for\",\n \"named\": false\n },\n {\n \"type\": \"gen\",\n \"named\": false\n },\n {\n \"type\": \"ident\",\n \"named\": false\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if\",\n \"named\": false\n },\n {\n \"type\": \"impl\",\n \"named\": false\n },\n {\n \"type\": \"in\",\n \"named\": false\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"item\",\n \"named\": false\n },\n {\n \"type\": \"let\",\n \"named\": false\n },\n {\n \"type\": \"lifetime\",\n \"named\": false\n },\n {\n \"type\": \"literal\",\n \"named\": false\n },\n {\n \"type\": \"loop\",\n \"named\": false\n },\n {\n \"type\": \"macro_rules!\",\n \"named\": false\n },\n {\n \"type\": \"match\",\n \"named\": false\n },\n {\n \"type\": \"meta\",\n \"named\": false\n },\n {\n \"type\": \"metavariable\",\n \"named\": true\n },\n {\n \"type\": \"mod\",\n \"named\": false\n },\n {\n \"type\": \"move\",\n \"named\": false\n },\n {\n \"type\": \"mutable_specifier\",\n \"named\": true\n },\n {\n \"type\": \"pat\",\n \"named\": false\n },\n {\n \"type\": \"path\",\n \"named\": false\n },\n {\n \"type\": \"primitive_type\",\n \"named\": true\n },\n {\n \"type\": \"pub\",\n \"named\": false\n },\n {\n \"type\": \"raw\",\n \"named\": false\n },\n {\n \"type\": \"ref\",\n \"named\": false\n },\n {\n \"type\": \"return\",\n \"named\": false\n },\n {\n \"type\": \"self\",\n \"named\": true\n },\n {\n \"type\": \"shebang\",\n \"named\": true\n },\n {\n \"type\": \"shorthand_field_identifier\",\n \"named\": true\n },\n {\n \"type\": \"static\",\n \"named\": false\n },\n {\n \"type\": \"stmt\",\n \"named\": false\n },\n {\n \"type\": \"string_content\",\n \"named\": true\n },\n {\n \"type\": \"struct\",\n \"named\": false\n },\n {\n \"type\": \"super\",\n \"named\": true\n },\n {\n \"type\": \"trait\",\n \"named\": false\n },\n {\n \"type\": \"true\",\n \"named\": false\n },\n {\n \"type\": \"try\",\n \"named\": false\n },\n {\n \"type\": \"tt\",\n \"named\": false\n },\n {\n \"type\": \"ty\",\n \"named\": false\n },\n {\n \"type\": \"type\",\n \"named\": false\n },\n {\n \"type\": \"type_identifier\",\n \"named\": true\n },\n {\n \"type\": \"union\",\n \"named\": false\n },\n {\n \"type\": \"unsafe\",\n \"named\": false\n },\n {\n \"type\": \"use\",\n \"named\": false\n },\n {\n \"type\": \"vis\",\n \"named\": false\n },\n {\n \"type\": \"where\",\n \"named\": false\n },\n {\n \"type\": \"while\",\n \"named\": false\n },\n {\n \"type\": \"yield\",\n \"named\": false\n },\n {\n \"type\": \"{\",\n \"named\": false\n },\n {\n \"type\": \"|\",\n \"named\": false\n },\n {\n \"type\": \"|=\",\n \"named\": false\n },\n {\n \"type\": \"||\",\n \"named\": false\n },\n {\n \"type\": \"}\",\n \"named\": false\n }\n]";
Expand description
The content of the node-types.json
file for this grammar.