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