1#[derive(Debug, Clone, PartialEq, Eq)]
2pub enum Declaration<'tree> {
3 AbstractClassDeclaration(::std::boxed::Box<AbstractClassDeclaration<'tree>>),
4 AmbientDeclaration(::std::boxed::Box<AmbientDeclaration<'tree>>),
5 ClassDeclaration(::std::boxed::Box<ClassDeclaration<'tree>>),
6 EnumDeclaration(::std::boxed::Box<EnumDeclaration<'tree>>),
7 FunctionDeclaration(::std::boxed::Box<FunctionDeclaration<'tree>>),
8 FunctionSignature(::std::boxed::Box<FunctionSignature<'tree>>),
9 GeneratorFunctionDeclaration(::std::boxed::Box<GeneratorFunctionDeclaration<'tree>>),
10 ImportAlias(::std::boxed::Box<ImportAlias<'tree>>),
11 InterfaceDeclaration(::std::boxed::Box<InterfaceDeclaration<'tree>>),
12 InternalModule(::std::boxed::Box<InternalModule<'tree>>),
13 LexicalDeclaration(::std::boxed::Box<LexicalDeclaration<'tree>>),
14 Module(::std::boxed::Box<Module<'tree>>),
15 TypeAliasDeclaration(::std::boxed::Box<TypeAliasDeclaration<'tree>>),
16 VariableDeclaration(::std::boxed::Box<VariableDeclaration<'tree>>),
17}
18impl<'tree> ::treesitter_types::FromNode<'tree> for Declaration<'tree> {
19 #[allow(clippy::collapsible_else_if)]
20 fn from_node(
21 node: ::tree_sitter::Node<'tree>,
22 src: &'tree [u8],
23 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
24 match node.kind() {
25 "abstract_class_declaration" => {
26 Ok(Self::AbstractClassDeclaration(::std::boxed::Box::new(
27 <AbstractClassDeclaration as ::treesitter_types::FromNode>::from_node(
28 node, src,
29 )?,
30 )))
31 }
32 "ambient_declaration" => Ok(Self::AmbientDeclaration(::std::boxed::Box::new(
33 <AmbientDeclaration as ::treesitter_types::FromNode>::from_node(node, src)?,
34 ))),
35 "class_declaration" => Ok(Self::ClassDeclaration(::std::boxed::Box::new(
36 <ClassDeclaration as ::treesitter_types::FromNode>::from_node(node, src)?,
37 ))),
38 "enum_declaration" => Ok(Self::EnumDeclaration(::std::boxed::Box::new(
39 <EnumDeclaration as ::treesitter_types::FromNode>::from_node(node, src)?,
40 ))),
41 "function_declaration" => Ok(Self::FunctionDeclaration(::std::boxed::Box::new(
42 <FunctionDeclaration as ::treesitter_types::FromNode>::from_node(node, src)?,
43 ))),
44 "function_signature" => Ok(Self::FunctionSignature(::std::boxed::Box::new(
45 <FunctionSignature as ::treesitter_types::FromNode>::from_node(node, src)?,
46 ))),
47 "generator_function_declaration" => {
48 Ok(Self::GeneratorFunctionDeclaration(::std::boxed::Box::new(
49 <GeneratorFunctionDeclaration as ::treesitter_types::FromNode>::from_node(
50 node, src,
51 )?,
52 )))
53 }
54 "import_alias" => Ok(Self::ImportAlias(::std::boxed::Box::new(
55 <ImportAlias as ::treesitter_types::FromNode>::from_node(node, src)?,
56 ))),
57 "interface_declaration" => Ok(Self::InterfaceDeclaration(::std::boxed::Box::new(
58 <InterfaceDeclaration as ::treesitter_types::FromNode>::from_node(node, src)?,
59 ))),
60 "internal_module" => Ok(Self::InternalModule(::std::boxed::Box::new(
61 <InternalModule as ::treesitter_types::FromNode>::from_node(node, src)?,
62 ))),
63 "lexical_declaration" => Ok(Self::LexicalDeclaration(::std::boxed::Box::new(
64 <LexicalDeclaration as ::treesitter_types::FromNode>::from_node(node, src)?,
65 ))),
66 "module" => Ok(Self::Module(::std::boxed::Box::new(
67 <Module as ::treesitter_types::FromNode>::from_node(node, src)?,
68 ))),
69 "type_alias_declaration" => Ok(Self::TypeAliasDeclaration(::std::boxed::Box::new(
70 <TypeAliasDeclaration as ::treesitter_types::FromNode>::from_node(node, src)?,
71 ))),
72 "variable_declaration" => Ok(Self::VariableDeclaration(::std::boxed::Box::new(
73 <VariableDeclaration as ::treesitter_types::FromNode>::from_node(node, src)?,
74 ))),
75 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
76 }
77 }
78}
79impl ::treesitter_types::Spanned for Declaration<'_> {
80 fn span(&self) -> ::treesitter_types::Span {
81 match self {
82 Self::AbstractClassDeclaration(inner) => inner.span(),
83 Self::AmbientDeclaration(inner) => inner.span(),
84 Self::ClassDeclaration(inner) => inner.span(),
85 Self::EnumDeclaration(inner) => inner.span(),
86 Self::FunctionDeclaration(inner) => inner.span(),
87 Self::FunctionSignature(inner) => inner.span(),
88 Self::GeneratorFunctionDeclaration(inner) => inner.span(),
89 Self::ImportAlias(inner) => inner.span(),
90 Self::InterfaceDeclaration(inner) => inner.span(),
91 Self::InternalModule(inner) => inner.span(),
92 Self::LexicalDeclaration(inner) => inner.span(),
93 Self::Module(inner) => inner.span(),
94 Self::TypeAliasDeclaration(inner) => inner.span(),
95 Self::VariableDeclaration(inner) => inner.span(),
96 }
97 }
98}
99#[derive(Debug, Clone, PartialEq, Eq)]
100pub enum Expression<'tree> {
101 AsExpression(::std::boxed::Box<AsExpression<'tree>>),
102 AssignmentExpression(::std::boxed::Box<AssignmentExpression<'tree>>),
103 AugmentedAssignmentExpression(::std::boxed::Box<AugmentedAssignmentExpression<'tree>>),
104 AwaitExpression(::std::boxed::Box<AwaitExpression<'tree>>),
105 BinaryExpression(::std::boxed::Box<BinaryExpression<'tree>>),
106 InstantiationExpression(::std::boxed::Box<InstantiationExpression<'tree>>),
107 InternalModule(::std::boxed::Box<InternalModule<'tree>>),
108 NewExpression(::std::boxed::Box<NewExpression<'tree>>),
109 PrimaryExpression(::std::boxed::Box<PrimaryExpression<'tree>>),
110 SatisfiesExpression(::std::boxed::Box<SatisfiesExpression<'tree>>),
111 TernaryExpression(::std::boxed::Box<TernaryExpression<'tree>>),
112 TypeAssertion(::std::boxed::Box<TypeAssertion<'tree>>),
113 UnaryExpression(::std::boxed::Box<UnaryExpression<'tree>>),
114 UpdateExpression(::std::boxed::Box<UpdateExpression<'tree>>),
115 YieldExpression(::std::boxed::Box<YieldExpression<'tree>>),
116}
117impl<'tree> ::treesitter_types::FromNode<'tree> for Expression<'tree> {
118 #[allow(clippy::collapsible_else_if)]
119 fn from_node(
120 node: ::tree_sitter::Node<'tree>,
121 src: &'tree [u8],
122 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
123 match node.kind() {
124 "as_expression" => Ok(Self::AsExpression(::std::boxed::Box::new(
125 <AsExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
126 ))),
127 "assignment_expression" => Ok(Self::AssignmentExpression(::std::boxed::Box::new(
128 <AssignmentExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
129 ))),
130 "augmented_assignment_expression" => {
131 Ok(Self::AugmentedAssignmentExpression(::std::boxed::Box::new(
132 <AugmentedAssignmentExpression as ::treesitter_types::FromNode>::from_node(
133 node, src,
134 )?,
135 )))
136 }
137 "await_expression" => Ok(Self::AwaitExpression(::std::boxed::Box::new(
138 <AwaitExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
139 ))),
140 "binary_expression" => Ok(Self::BinaryExpression(::std::boxed::Box::new(
141 <BinaryExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
142 ))),
143 "instantiation_expression" => {
144 Ok(Self::InstantiationExpression(::std::boxed::Box::new(
145 <InstantiationExpression as ::treesitter_types::FromNode>::from_node(
146 node, src,
147 )?,
148 )))
149 }
150 "internal_module" => Ok(Self::InternalModule(::std::boxed::Box::new(
151 <InternalModule as ::treesitter_types::FromNode>::from_node(node, src)?,
152 ))),
153 "new_expression" => Ok(Self::NewExpression(::std::boxed::Box::new(
154 <NewExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
155 ))),
156 "satisfies_expression" => Ok(Self::SatisfiesExpression(::std::boxed::Box::new(
157 <SatisfiesExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
158 ))),
159 "ternary_expression" => Ok(Self::TernaryExpression(::std::boxed::Box::new(
160 <TernaryExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
161 ))),
162 "type_assertion" => Ok(Self::TypeAssertion(::std::boxed::Box::new(
163 <TypeAssertion as ::treesitter_types::FromNode>::from_node(node, src)?,
164 ))),
165 "unary_expression" => Ok(Self::UnaryExpression(::std::boxed::Box::new(
166 <UnaryExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
167 ))),
168 "update_expression" => Ok(Self::UpdateExpression(::std::boxed::Box::new(
169 <UpdateExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
170 ))),
171 "yield_expression" => Ok(Self::YieldExpression(::std::boxed::Box::new(
172 <YieldExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
173 ))),
174 _other => {
175 if let Ok(v) =
176 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(node, src)
177 {
178 Ok(Self::PrimaryExpression(::std::boxed::Box::new(v)))
179 } else {
180 Err(::treesitter_types::ParseError::unexpected_kind(
181 _other, node,
182 ))
183 }
184 }
185 }
186 }
187}
188impl ::treesitter_types::Spanned for Expression<'_> {
189 fn span(&self) -> ::treesitter_types::Span {
190 match self {
191 Self::AsExpression(inner) => inner.span(),
192 Self::AssignmentExpression(inner) => inner.span(),
193 Self::AugmentedAssignmentExpression(inner) => inner.span(),
194 Self::AwaitExpression(inner) => inner.span(),
195 Self::BinaryExpression(inner) => inner.span(),
196 Self::InstantiationExpression(inner) => inner.span(),
197 Self::InternalModule(inner) => inner.span(),
198 Self::NewExpression(inner) => inner.span(),
199 Self::PrimaryExpression(inner) => inner.span(),
200 Self::SatisfiesExpression(inner) => inner.span(),
201 Self::TernaryExpression(inner) => inner.span(),
202 Self::TypeAssertion(inner) => inner.span(),
203 Self::UnaryExpression(inner) => inner.span(),
204 Self::UpdateExpression(inner) => inner.span(),
205 Self::YieldExpression(inner) => inner.span(),
206 }
207 }
208}
209#[derive(Debug, Clone, PartialEq, Eq)]
210pub enum Pattern<'tree> {
211 ArrayPattern(::std::boxed::Box<ArrayPattern<'tree>>),
212 Identifier(::std::boxed::Box<Identifier<'tree>>),
213 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
214 NonNullExpression(::std::boxed::Box<NonNullExpression<'tree>>),
215 ObjectPattern(::std::boxed::Box<ObjectPattern<'tree>>),
216 RestPattern(::std::boxed::Box<RestPattern<'tree>>),
217 SubscriptExpression(::std::boxed::Box<SubscriptExpression<'tree>>),
218 Undefined(::std::boxed::Box<Undefined<'tree>>),
219}
220impl<'tree> ::treesitter_types::FromNode<'tree> for Pattern<'tree> {
221 #[allow(clippy::collapsible_else_if)]
222 fn from_node(
223 node: ::tree_sitter::Node<'tree>,
224 src: &'tree [u8],
225 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
226 match node.kind() {
227 "array_pattern" => Ok(Self::ArrayPattern(::std::boxed::Box::new(
228 <ArrayPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
229 ))),
230 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
231 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
232 ))),
233 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
234 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
235 ))),
236 "non_null_expression" => Ok(Self::NonNullExpression(::std::boxed::Box::new(
237 <NonNullExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
238 ))),
239 "object_pattern" => Ok(Self::ObjectPattern(::std::boxed::Box::new(
240 <ObjectPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
241 ))),
242 "rest_pattern" => Ok(Self::RestPattern(::std::boxed::Box::new(
243 <RestPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
244 ))),
245 "subscript_expression" => Ok(Self::SubscriptExpression(::std::boxed::Box::new(
246 <SubscriptExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
247 ))),
248 "undefined" => Ok(Self::Undefined(::std::boxed::Box::new(
249 <Undefined as ::treesitter_types::FromNode>::from_node(node, src)?,
250 ))),
251 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
252 }
253 }
254}
255impl ::treesitter_types::Spanned for Pattern<'_> {
256 fn span(&self) -> ::treesitter_types::Span {
257 match self {
258 Self::ArrayPattern(inner) => inner.span(),
259 Self::Identifier(inner) => inner.span(),
260 Self::MemberExpression(inner) => inner.span(),
261 Self::NonNullExpression(inner) => inner.span(),
262 Self::ObjectPattern(inner) => inner.span(),
263 Self::RestPattern(inner) => inner.span(),
264 Self::SubscriptExpression(inner) => inner.span(),
265 Self::Undefined(inner) => inner.span(),
266 }
267 }
268}
269#[derive(Debug, Clone, PartialEq, Eq)]
270pub enum PrimaryExpression<'tree> {
271 Array(::std::boxed::Box<Array<'tree>>),
272 ArrowFunction(::std::boxed::Box<ArrowFunction<'tree>>),
273 CallExpression(::std::boxed::Box<CallExpression<'tree>>),
274 Class(::std::boxed::Box<Class<'tree>>),
275 False(::std::boxed::Box<False<'tree>>),
276 FunctionExpression(::std::boxed::Box<FunctionExpression<'tree>>),
277 GeneratorFunction(::std::boxed::Box<GeneratorFunction<'tree>>),
278 Identifier(::std::boxed::Box<Identifier<'tree>>),
279 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
280 MetaProperty(::std::boxed::Box<MetaProperty<'tree>>),
281 NonNullExpression(::std::boxed::Box<NonNullExpression<'tree>>),
282 Null(::std::boxed::Box<Null<'tree>>),
283 Number(::std::boxed::Box<Number<'tree>>),
284 Object(::std::boxed::Box<Object<'tree>>),
285 ParenthesizedExpression(::std::boxed::Box<ParenthesizedExpression<'tree>>),
286 Regex(::std::boxed::Box<Regex<'tree>>),
287 String(::std::boxed::Box<String<'tree>>),
288 SubscriptExpression(::std::boxed::Box<SubscriptExpression<'tree>>),
289 Super(::std::boxed::Box<Super<'tree>>),
290 TemplateString(::std::boxed::Box<TemplateString<'tree>>),
291 This(::std::boxed::Box<This<'tree>>),
292 True(::std::boxed::Box<True<'tree>>),
293 Undefined(::std::boxed::Box<Undefined<'tree>>),
294}
295impl<'tree> ::treesitter_types::FromNode<'tree> for PrimaryExpression<'tree> {
296 #[allow(clippy::collapsible_else_if)]
297 fn from_node(
298 node: ::tree_sitter::Node<'tree>,
299 src: &'tree [u8],
300 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
301 match node.kind() {
302 "array" => Ok(Self::Array(::std::boxed::Box::new(
303 <Array as ::treesitter_types::FromNode>::from_node(node, src)?,
304 ))),
305 "arrow_function" => Ok(Self::ArrowFunction(::std::boxed::Box::new(
306 <ArrowFunction as ::treesitter_types::FromNode>::from_node(node, src)?,
307 ))),
308 "call_expression" => Ok(Self::CallExpression(::std::boxed::Box::new(
309 <CallExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
310 ))),
311 "class" => Ok(Self::Class(::std::boxed::Box::new(
312 <Class as ::treesitter_types::FromNode>::from_node(node, src)?,
313 ))),
314 "false" => Ok(Self::False(::std::boxed::Box::new(
315 <False as ::treesitter_types::FromNode>::from_node(node, src)?,
316 ))),
317 "function_expression" => Ok(Self::FunctionExpression(::std::boxed::Box::new(
318 <FunctionExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
319 ))),
320 "generator_function" => Ok(Self::GeneratorFunction(::std::boxed::Box::new(
321 <GeneratorFunction as ::treesitter_types::FromNode>::from_node(node, src)?,
322 ))),
323 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
324 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
325 ))),
326 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
327 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
328 ))),
329 "meta_property" => Ok(Self::MetaProperty(::std::boxed::Box::new(
330 <MetaProperty as ::treesitter_types::FromNode>::from_node(node, src)?,
331 ))),
332 "non_null_expression" => Ok(Self::NonNullExpression(::std::boxed::Box::new(
333 <NonNullExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
334 ))),
335 "null" => Ok(Self::Null(::std::boxed::Box::new(
336 <Null as ::treesitter_types::FromNode>::from_node(node, src)?,
337 ))),
338 "number" => Ok(Self::Number(::std::boxed::Box::new(
339 <Number as ::treesitter_types::FromNode>::from_node(node, src)?,
340 ))),
341 "object" => Ok(Self::Object(::std::boxed::Box::new(
342 <Object as ::treesitter_types::FromNode>::from_node(node, src)?,
343 ))),
344 "parenthesized_expression" => {
345 Ok(Self::ParenthesizedExpression(::std::boxed::Box::new(
346 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(
347 node, src,
348 )?,
349 )))
350 }
351 "regex" => Ok(Self::Regex(::std::boxed::Box::new(
352 <Regex as ::treesitter_types::FromNode>::from_node(node, src)?,
353 ))),
354 "string" => Ok(Self::String(::std::boxed::Box::new(
355 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
356 ))),
357 "subscript_expression" => Ok(Self::SubscriptExpression(::std::boxed::Box::new(
358 <SubscriptExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
359 ))),
360 "super" => Ok(Self::Super(::std::boxed::Box::new(
361 <Super as ::treesitter_types::FromNode>::from_node(node, src)?,
362 ))),
363 "template_string" => Ok(Self::TemplateString(::std::boxed::Box::new(
364 <TemplateString as ::treesitter_types::FromNode>::from_node(node, src)?,
365 ))),
366 "this" => Ok(Self::This(::std::boxed::Box::new(
367 <This as ::treesitter_types::FromNode>::from_node(node, src)?,
368 ))),
369 "true" => Ok(Self::True(::std::boxed::Box::new(
370 <True as ::treesitter_types::FromNode>::from_node(node, src)?,
371 ))),
372 "undefined" => Ok(Self::Undefined(::std::boxed::Box::new(
373 <Undefined as ::treesitter_types::FromNode>::from_node(node, src)?,
374 ))),
375 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
376 }
377 }
378}
379impl ::treesitter_types::Spanned for PrimaryExpression<'_> {
380 fn span(&self) -> ::treesitter_types::Span {
381 match self {
382 Self::Array(inner) => inner.span(),
383 Self::ArrowFunction(inner) => inner.span(),
384 Self::CallExpression(inner) => inner.span(),
385 Self::Class(inner) => inner.span(),
386 Self::False(inner) => inner.span(),
387 Self::FunctionExpression(inner) => inner.span(),
388 Self::GeneratorFunction(inner) => inner.span(),
389 Self::Identifier(inner) => inner.span(),
390 Self::MemberExpression(inner) => inner.span(),
391 Self::MetaProperty(inner) => inner.span(),
392 Self::NonNullExpression(inner) => inner.span(),
393 Self::Null(inner) => inner.span(),
394 Self::Number(inner) => inner.span(),
395 Self::Object(inner) => inner.span(),
396 Self::ParenthesizedExpression(inner) => inner.span(),
397 Self::Regex(inner) => inner.span(),
398 Self::String(inner) => inner.span(),
399 Self::SubscriptExpression(inner) => inner.span(),
400 Self::Super(inner) => inner.span(),
401 Self::TemplateString(inner) => inner.span(),
402 Self::This(inner) => inner.span(),
403 Self::True(inner) => inner.span(),
404 Self::Undefined(inner) => inner.span(),
405 }
406 }
407}
408#[derive(Debug, Clone, PartialEq, Eq)]
409pub enum PrimaryType<'tree> {
410 ArrayType(::std::boxed::Box<ArrayType<'tree>>),
411 ConditionalType(::std::boxed::Box<ConditionalType<'tree>>),
412 Const(::treesitter_types::Span),
413 ExistentialType(::std::boxed::Box<ExistentialType<'tree>>),
414 FlowMaybeType(::std::boxed::Box<FlowMaybeType<'tree>>),
415 GenericType(::std::boxed::Box<GenericType<'tree>>),
416 IndexTypeQuery(::std::boxed::Box<IndexTypeQuery<'tree>>),
417 IntersectionType(::std::boxed::Box<IntersectionType<'tree>>),
418 LiteralType(::std::boxed::Box<LiteralType<'tree>>),
419 LookupType(::std::boxed::Box<LookupType<'tree>>),
420 NestedTypeIdentifier(::std::boxed::Box<NestedTypeIdentifier<'tree>>),
421 ObjectType(::std::boxed::Box<ObjectType<'tree>>),
422 ParenthesizedType(::std::boxed::Box<ParenthesizedType<'tree>>),
423 PredefinedType(::std::boxed::Box<PredefinedType<'tree>>),
424 TemplateLiteralType(::std::boxed::Box<TemplateLiteralType<'tree>>),
425 ThisType(::std::boxed::Box<ThisType<'tree>>),
426 TupleType(::std::boxed::Box<TupleType<'tree>>),
427 TypeIdentifier(::std::boxed::Box<TypeIdentifier<'tree>>),
428 TypeQuery(::std::boxed::Box<TypeQuery<'tree>>),
429 UnionType(::std::boxed::Box<UnionType<'tree>>),
430}
431impl<'tree> ::treesitter_types::FromNode<'tree> for PrimaryType<'tree> {
432 #[allow(clippy::collapsible_else_if)]
433 fn from_node(
434 node: ::tree_sitter::Node<'tree>,
435 src: &'tree [u8],
436 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
437 match node.kind() {
438 "array_type" => Ok(Self::ArrayType(::std::boxed::Box::new(
439 <ArrayType as ::treesitter_types::FromNode>::from_node(node, src)?,
440 ))),
441 "conditional_type" => Ok(Self::ConditionalType(::std::boxed::Box::new(
442 <ConditionalType as ::treesitter_types::FromNode>::from_node(node, src)?,
443 ))),
444 "const" => Ok(Self::Const(::treesitter_types::Span::from(node))),
445 "existential_type" => Ok(Self::ExistentialType(::std::boxed::Box::new(
446 <ExistentialType as ::treesitter_types::FromNode>::from_node(node, src)?,
447 ))),
448 "flow_maybe_type" => Ok(Self::FlowMaybeType(::std::boxed::Box::new(
449 <FlowMaybeType as ::treesitter_types::FromNode>::from_node(node, src)?,
450 ))),
451 "generic_type" => Ok(Self::GenericType(::std::boxed::Box::new(
452 <GenericType as ::treesitter_types::FromNode>::from_node(node, src)?,
453 ))),
454 "index_type_query" => Ok(Self::IndexTypeQuery(::std::boxed::Box::new(
455 <IndexTypeQuery as ::treesitter_types::FromNode>::from_node(node, src)?,
456 ))),
457 "intersection_type" => Ok(Self::IntersectionType(::std::boxed::Box::new(
458 <IntersectionType as ::treesitter_types::FromNode>::from_node(node, src)?,
459 ))),
460 "literal_type" => Ok(Self::LiteralType(::std::boxed::Box::new(
461 <LiteralType as ::treesitter_types::FromNode>::from_node(node, src)?,
462 ))),
463 "lookup_type" => Ok(Self::LookupType(::std::boxed::Box::new(
464 <LookupType as ::treesitter_types::FromNode>::from_node(node, src)?,
465 ))),
466 "nested_type_identifier" => Ok(Self::NestedTypeIdentifier(::std::boxed::Box::new(
467 <NestedTypeIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
468 ))),
469 "object_type" => Ok(Self::ObjectType(::std::boxed::Box::new(
470 <ObjectType as ::treesitter_types::FromNode>::from_node(node, src)?,
471 ))),
472 "parenthesized_type" => Ok(Self::ParenthesizedType(::std::boxed::Box::new(
473 <ParenthesizedType as ::treesitter_types::FromNode>::from_node(node, src)?,
474 ))),
475 "predefined_type" => Ok(Self::PredefinedType(::std::boxed::Box::new(
476 <PredefinedType as ::treesitter_types::FromNode>::from_node(node, src)?,
477 ))),
478 "template_literal_type" => Ok(Self::TemplateLiteralType(::std::boxed::Box::new(
479 <TemplateLiteralType as ::treesitter_types::FromNode>::from_node(node, src)?,
480 ))),
481 "this_type" => Ok(Self::ThisType(::std::boxed::Box::new(
482 <ThisType as ::treesitter_types::FromNode>::from_node(node, src)?,
483 ))),
484 "tuple_type" => Ok(Self::TupleType(::std::boxed::Box::new(
485 <TupleType as ::treesitter_types::FromNode>::from_node(node, src)?,
486 ))),
487 "type_identifier" => Ok(Self::TypeIdentifier(::std::boxed::Box::new(
488 <TypeIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
489 ))),
490 "type_query" => Ok(Self::TypeQuery(::std::boxed::Box::new(
491 <TypeQuery as ::treesitter_types::FromNode>::from_node(node, src)?,
492 ))),
493 "union_type" => Ok(Self::UnionType(::std::boxed::Box::new(
494 <UnionType as ::treesitter_types::FromNode>::from_node(node, src)?,
495 ))),
496 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
497 }
498 }
499}
500impl ::treesitter_types::Spanned for PrimaryType<'_> {
501 fn span(&self) -> ::treesitter_types::Span {
502 match self {
503 Self::ArrayType(inner) => inner.span(),
504 Self::ConditionalType(inner) => inner.span(),
505 Self::Const(span) => *span,
506 Self::ExistentialType(inner) => inner.span(),
507 Self::FlowMaybeType(inner) => inner.span(),
508 Self::GenericType(inner) => inner.span(),
509 Self::IndexTypeQuery(inner) => inner.span(),
510 Self::IntersectionType(inner) => inner.span(),
511 Self::LiteralType(inner) => inner.span(),
512 Self::LookupType(inner) => inner.span(),
513 Self::NestedTypeIdentifier(inner) => inner.span(),
514 Self::ObjectType(inner) => inner.span(),
515 Self::ParenthesizedType(inner) => inner.span(),
516 Self::PredefinedType(inner) => inner.span(),
517 Self::TemplateLiteralType(inner) => inner.span(),
518 Self::ThisType(inner) => inner.span(),
519 Self::TupleType(inner) => inner.span(),
520 Self::TypeIdentifier(inner) => inner.span(),
521 Self::TypeQuery(inner) => inner.span(),
522 Self::UnionType(inner) => inner.span(),
523 }
524 }
525}
526#[derive(Debug, Clone, PartialEq, Eq)]
527pub enum Statement<'tree> {
528 BreakStatement(::std::boxed::Box<BreakStatement<'tree>>),
529 ContinueStatement(::std::boxed::Box<ContinueStatement<'tree>>),
530 DebuggerStatement(::std::boxed::Box<DebuggerStatement<'tree>>),
531 Declaration(::std::boxed::Box<Declaration<'tree>>),
532 DoStatement(::std::boxed::Box<DoStatement<'tree>>),
533 EmptyStatement(::std::boxed::Box<EmptyStatement<'tree>>),
534 ExportStatement(::std::boxed::Box<ExportStatement<'tree>>),
535 ExpressionStatement(::std::boxed::Box<ExpressionStatement<'tree>>),
536 ForInStatement(::std::boxed::Box<ForInStatement<'tree>>),
537 ForStatement(::std::boxed::Box<ForStatement<'tree>>),
538 IfStatement(::std::boxed::Box<IfStatement<'tree>>),
539 ImportStatement(::std::boxed::Box<ImportStatement<'tree>>),
540 LabeledStatement(::std::boxed::Box<LabeledStatement<'tree>>),
541 ReturnStatement(::std::boxed::Box<ReturnStatement<'tree>>),
542 StatementBlock(::std::boxed::Box<StatementBlock<'tree>>),
543 SwitchStatement(::std::boxed::Box<SwitchStatement<'tree>>),
544 ThrowStatement(::std::boxed::Box<ThrowStatement<'tree>>),
545 TryStatement(::std::boxed::Box<TryStatement<'tree>>),
546 WhileStatement(::std::boxed::Box<WhileStatement<'tree>>),
547 WithStatement(::std::boxed::Box<WithStatement<'tree>>),
548}
549impl<'tree> ::treesitter_types::FromNode<'tree> for Statement<'tree> {
550 #[allow(clippy::collapsible_else_if)]
551 fn from_node(
552 node: ::tree_sitter::Node<'tree>,
553 src: &'tree [u8],
554 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
555 match node.kind() {
556 "break_statement" => Ok(Self::BreakStatement(::std::boxed::Box::new(
557 <BreakStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
558 ))),
559 "continue_statement" => Ok(Self::ContinueStatement(::std::boxed::Box::new(
560 <ContinueStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
561 ))),
562 "debugger_statement" => Ok(Self::DebuggerStatement(::std::boxed::Box::new(
563 <DebuggerStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
564 ))),
565 "do_statement" => Ok(Self::DoStatement(::std::boxed::Box::new(
566 <DoStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
567 ))),
568 "empty_statement" => Ok(Self::EmptyStatement(::std::boxed::Box::new(
569 <EmptyStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
570 ))),
571 "export_statement" => Ok(Self::ExportStatement(::std::boxed::Box::new(
572 <ExportStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
573 ))),
574 "expression_statement" => Ok(Self::ExpressionStatement(::std::boxed::Box::new(
575 <ExpressionStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
576 ))),
577 "for_in_statement" => Ok(Self::ForInStatement(::std::boxed::Box::new(
578 <ForInStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
579 ))),
580 "for_statement" => Ok(Self::ForStatement(::std::boxed::Box::new(
581 <ForStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
582 ))),
583 "if_statement" => Ok(Self::IfStatement(::std::boxed::Box::new(
584 <IfStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
585 ))),
586 "import_statement" => Ok(Self::ImportStatement(::std::boxed::Box::new(
587 <ImportStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
588 ))),
589 "labeled_statement" => Ok(Self::LabeledStatement(::std::boxed::Box::new(
590 <LabeledStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
591 ))),
592 "return_statement" => Ok(Self::ReturnStatement(::std::boxed::Box::new(
593 <ReturnStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
594 ))),
595 "statement_block" => Ok(Self::StatementBlock(::std::boxed::Box::new(
596 <StatementBlock as ::treesitter_types::FromNode>::from_node(node, src)?,
597 ))),
598 "switch_statement" => Ok(Self::SwitchStatement(::std::boxed::Box::new(
599 <SwitchStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
600 ))),
601 "throw_statement" => Ok(Self::ThrowStatement(::std::boxed::Box::new(
602 <ThrowStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
603 ))),
604 "try_statement" => Ok(Self::TryStatement(::std::boxed::Box::new(
605 <TryStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
606 ))),
607 "while_statement" => Ok(Self::WhileStatement(::std::boxed::Box::new(
608 <WhileStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
609 ))),
610 "with_statement" => Ok(Self::WithStatement(::std::boxed::Box::new(
611 <WithStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
612 ))),
613 _other => {
614 if let Ok(v) = <Declaration as ::treesitter_types::FromNode>::from_node(node, src) {
615 Ok(Self::Declaration(::std::boxed::Box::new(v)))
616 } else {
617 Err(::treesitter_types::ParseError::unexpected_kind(
618 _other, node,
619 ))
620 }
621 }
622 }
623 }
624}
625impl ::treesitter_types::Spanned for Statement<'_> {
626 fn span(&self) -> ::treesitter_types::Span {
627 match self {
628 Self::BreakStatement(inner) => inner.span(),
629 Self::ContinueStatement(inner) => inner.span(),
630 Self::DebuggerStatement(inner) => inner.span(),
631 Self::Declaration(inner) => inner.span(),
632 Self::DoStatement(inner) => inner.span(),
633 Self::EmptyStatement(inner) => inner.span(),
634 Self::ExportStatement(inner) => inner.span(),
635 Self::ExpressionStatement(inner) => inner.span(),
636 Self::ForInStatement(inner) => inner.span(),
637 Self::ForStatement(inner) => inner.span(),
638 Self::IfStatement(inner) => inner.span(),
639 Self::ImportStatement(inner) => inner.span(),
640 Self::LabeledStatement(inner) => inner.span(),
641 Self::ReturnStatement(inner) => inner.span(),
642 Self::StatementBlock(inner) => inner.span(),
643 Self::SwitchStatement(inner) => inner.span(),
644 Self::ThrowStatement(inner) => inner.span(),
645 Self::TryStatement(inner) => inner.span(),
646 Self::WhileStatement(inner) => inner.span(),
647 Self::WithStatement(inner) => inner.span(),
648 }
649 }
650}
651#[derive(Debug, Clone, PartialEq, Eq)]
652pub enum Type<'tree> {
653 CallExpression(::std::boxed::Box<CallExpression<'tree>>),
654 ConstructorType(::std::boxed::Box<ConstructorType<'tree>>),
655 FunctionType(::std::boxed::Box<FunctionType<'tree>>),
656 InferType(::std::boxed::Box<InferType<'tree>>),
657 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
658 PrimaryType(::std::boxed::Box<PrimaryType<'tree>>),
659 ReadonlyType(::std::boxed::Box<ReadonlyType<'tree>>),
660}
661impl<'tree> ::treesitter_types::FromNode<'tree> for Type<'tree> {
662 #[allow(clippy::collapsible_else_if)]
663 fn from_node(
664 node: ::tree_sitter::Node<'tree>,
665 src: &'tree [u8],
666 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
667 match node.kind() {
668 "call_expression" => Ok(Self::CallExpression(::std::boxed::Box::new(
669 <CallExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
670 ))),
671 "constructor_type" => Ok(Self::ConstructorType(::std::boxed::Box::new(
672 <ConstructorType as ::treesitter_types::FromNode>::from_node(node, src)?,
673 ))),
674 "function_type" => Ok(Self::FunctionType(::std::boxed::Box::new(
675 <FunctionType as ::treesitter_types::FromNode>::from_node(node, src)?,
676 ))),
677 "infer_type" => Ok(Self::InferType(::std::boxed::Box::new(
678 <InferType as ::treesitter_types::FromNode>::from_node(node, src)?,
679 ))),
680 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
681 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
682 ))),
683 "readonly_type" => Ok(Self::ReadonlyType(::std::boxed::Box::new(
684 <ReadonlyType as ::treesitter_types::FromNode>::from_node(node, src)?,
685 ))),
686 _other => {
687 if let Ok(v) = <PrimaryType as ::treesitter_types::FromNode>::from_node(node, src) {
688 Ok(Self::PrimaryType(::std::boxed::Box::new(v)))
689 } else {
690 Err(::treesitter_types::ParseError::unexpected_kind(
691 _other, node,
692 ))
693 }
694 }
695 }
696 }
697}
698impl ::treesitter_types::Spanned for Type<'_> {
699 fn span(&self) -> ::treesitter_types::Span {
700 match self {
701 Self::CallExpression(inner) => inner.span(),
702 Self::ConstructorType(inner) => inner.span(),
703 Self::FunctionType(inner) => inner.span(),
704 Self::InferType(inner) => inner.span(),
705 Self::MemberExpression(inner) => inner.span(),
706 Self::PrimaryType(inner) => inner.span(),
707 Self::ReadonlyType(inner) => inner.span(),
708 }
709 }
710}
711#[derive(Debug, Clone, PartialEq, Eq)]
712pub struct AbstractClassDeclaration<'tree> {
713 pub span: ::treesitter_types::Span,
714 pub body: ClassBody<'tree>,
715 pub decorator: ::std::vec::Vec<Decorator<'tree>>,
716 pub name: TypeIdentifier<'tree>,
717 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
718 pub children: ::core::option::Option<ClassHeritage<'tree>>,
719}
720impl<'tree> ::treesitter_types::FromNode<'tree> for AbstractClassDeclaration<'tree> {
721 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
722 fn from_node(
723 node: ::tree_sitter::Node<'tree>,
724 src: &'tree [u8],
725 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
726 debug_assert_eq!(node.kind(), "abstract_class_declaration");
727 Ok(Self {
728 span: ::treesitter_types::Span::from(node),
729 body: {
730 let child = node
731 .child_by_field_name("body")
732 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
733 <ClassBody as ::treesitter_types::FromNode>::from_node(child, src)?
734 },
735 decorator: {
736 let mut cursor = node.walk();
737 let mut items = ::std::vec::Vec::new();
738 for child in node.children_by_field_name("decorator", &mut cursor) {
739 items.push(<Decorator as ::treesitter_types::FromNode>::from_node(
740 child, src,
741 )?);
742 }
743 items
744 },
745 name: {
746 let child = node
747 .child_by_field_name("name")
748 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
749 <TypeIdentifier as ::treesitter_types::FromNode>::from_node(child, src)?
750 },
751 type_parameters: match node.child_by_field_name("type_parameters") {
752 Some(child) => Some(<TypeParameters as ::treesitter_types::FromNode>::from_node(
753 child, src,
754 )?),
755 None => None,
756 },
757 children: {
758 #[allow(clippy::suspicious_else_formatting)]
759 let non_field_children = {
760 let mut cursor = node.walk();
761 let mut result = ::std::vec::Vec::new();
762 if cursor.goto_first_child() {
763 loop {
764 if cursor.field_name().is_none()
765 && cursor.node().is_named()
766 && !cursor.node().is_extra()
767 {
768 result.push(cursor.node());
769 }
770 if !cursor.goto_next_sibling() {
771 break;
772 }
773 }
774 }
775 result
776 };
777 match non_field_children.first() {
778 Some(&child) => Some(
779 <ClassHeritage as ::treesitter_types::FromNode>::from_node(child, src)?,
780 ),
781 None => None,
782 }
783 },
784 })
785 }
786}
787impl ::treesitter_types::Spanned for AbstractClassDeclaration<'_> {
788 fn span(&self) -> ::treesitter_types::Span {
789 self.span
790 }
791}
792#[derive(Debug, Clone, PartialEq, Eq)]
793pub struct AbstractMethodSignature<'tree> {
794 pub span: ::treesitter_types::Span,
795 pub name: AbstractMethodSignatureName<'tree>,
796 pub parameters: FormalParameters<'tree>,
797 pub return_type: ::core::option::Option<AbstractMethodSignatureReturnType<'tree>>,
798 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
799 pub children: ::std::vec::Vec<AbstractMethodSignatureChildren<'tree>>,
800}
801impl<'tree> ::treesitter_types::FromNode<'tree> for AbstractMethodSignature<'tree> {
802 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
803 fn from_node(
804 node: ::tree_sitter::Node<'tree>,
805 src: &'tree [u8],
806 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
807 debug_assert_eq!(node.kind(), "abstract_method_signature");
808 Ok(Self {
809 span: ::treesitter_types::Span::from(node),
810 name: {
811 let child = node
812 .child_by_field_name("name")
813 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
814 <AbstractMethodSignatureName as ::treesitter_types::FromNode>::from_node(
815 child, src,
816 )?
817 },
818 parameters: {
819 let child = node.child_by_field_name("parameters").ok_or_else(|| {
820 ::treesitter_types::ParseError::missing_field("parameters", node)
821 })?;
822 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)?
823 },
824 return_type: match node.child_by_field_name("return_type") {
825 Some(child) => Some(
826 <AbstractMethodSignatureReturnType as ::treesitter_types::FromNode>::from_node(
827 child, src,
828 )?,
829 ),
830 None => None,
831 },
832 type_parameters: match node.child_by_field_name("type_parameters") {
833 Some(child) => Some(<TypeParameters as ::treesitter_types::FromNode>::from_node(
834 child, src,
835 )?),
836 None => None,
837 },
838 children: {
839 #[allow(clippy::suspicious_else_formatting)]
840 let non_field_children = {
841 let mut cursor = node.walk();
842 let mut result = ::std::vec::Vec::new();
843 if cursor.goto_first_child() {
844 loop {
845 if cursor.field_name().is_none()
846 && cursor.node().is_named()
847 && !cursor.node().is_extra()
848 {
849 result.push(cursor.node());
850 }
851 if !cursor.goto_next_sibling() {
852 break;
853 }
854 }
855 }
856 result
857 };
858 let mut items = ::std::vec::Vec::new();
859 for child in non_field_children {
860 items
861 .push(
862 <AbstractMethodSignatureChildren as ::treesitter_types::FromNode>::from_node(
863 child,
864 src,
865 )?,
866 );
867 }
868 items
869 },
870 })
871 }
872}
873impl ::treesitter_types::Spanned for AbstractMethodSignature<'_> {
874 fn span(&self) -> ::treesitter_types::Span {
875 self.span
876 }
877}
878#[derive(Debug, Clone, PartialEq, Eq)]
879pub struct AccessibilityModifier<'tree> {
880 pub span: ::treesitter_types::Span,
881 text: &'tree str,
882}
883impl<'tree> ::treesitter_types::FromNode<'tree> for AccessibilityModifier<'tree> {
884 fn from_node(
885 node: ::tree_sitter::Node<'tree>,
886 src: &'tree [u8],
887 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
888 debug_assert_eq!(node.kind(), "accessibility_modifier");
889 Ok(Self {
890 span: ::treesitter_types::Span::from(node),
891 text: node.utf8_text(src)?,
892 })
893 }
894}
895impl<'tree> ::treesitter_types::LeafNode<'tree> for AccessibilityModifier<'tree> {
896 fn text(&self) -> &'tree str {
897 self.text
898 }
899}
900impl ::treesitter_types::Spanned for AccessibilityModifier<'_> {
901 fn span(&self) -> ::treesitter_types::Span {
902 self.span
903 }
904}
905#[derive(Debug, Clone, PartialEq, Eq)]
906pub struct AddingTypeAnnotation<'tree> {
907 pub span: ::treesitter_types::Span,
908 pub children: Type<'tree>,
909}
910impl<'tree> ::treesitter_types::FromNode<'tree> for AddingTypeAnnotation<'tree> {
911 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
912 fn from_node(
913 node: ::tree_sitter::Node<'tree>,
914 src: &'tree [u8],
915 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
916 debug_assert_eq!(node.kind(), "adding_type_annotation");
917 Ok(Self {
918 span: ::treesitter_types::Span::from(node),
919 children: {
920 #[allow(clippy::suspicious_else_formatting)]
921 let non_field_children = {
922 let mut cursor = node.walk();
923 let mut result = ::std::vec::Vec::new();
924 if cursor.goto_first_child() {
925 loop {
926 if cursor.field_name().is_none()
927 && cursor.node().is_named()
928 && !cursor.node().is_extra()
929 {
930 result.push(cursor.node());
931 }
932 if !cursor.goto_next_sibling() {
933 break;
934 }
935 }
936 }
937 result
938 };
939 let child = if let Some(&c) = non_field_children.first() {
940 c
941 } else {
942 let mut fallback_cursor = node.walk();
943 let mut fallback_child = None;
944 if fallback_cursor.goto_first_child() {
945 loop {
946 if fallback_cursor.field_name().is_none()
947 && !fallback_cursor.node().is_extra()
948 {
949 let candidate = fallback_cursor.node();
950 #[allow(clippy::needless_question_mark)]
951 if (|| -> ::core::result::Result<
952 _,
953 ::treesitter_types::ParseError,
954 > {
955 let child = candidate;
956 Ok(
957 <Type as ::treesitter_types::FromNode>::from_node(
958 child,
959 src,
960 )?,
961 )
962 })()
963 .is_ok()
964 {
965 fallback_child = Some(candidate);
966 break;
967 }
968 }
969 if !fallback_cursor.goto_next_sibling() {
970 break;
971 }
972 }
973 }
974 if fallback_child.is_none() {
975 let mut cursor2 = node.walk();
976 if cursor2.goto_first_child() {
977 loop {
978 if cursor2.node().is_named() && !cursor2.node().is_extra() {
979 let candidate = cursor2.node();
980 #[allow(clippy::needless_question_mark)]
981 if (|| -> ::core::result::Result<
982 _,
983 ::treesitter_types::ParseError,
984 > {
985 let child = candidate;
986 Ok(
987 <Type as ::treesitter_types::FromNode>::from_node(
988 child,
989 src,
990 )?,
991 )
992 })()
993 .is_ok()
994 {
995 fallback_child = Some(candidate);
996 break;
997 }
998 }
999 if !cursor2.goto_next_sibling() {
1000 break;
1001 }
1002 }
1003 }
1004 }
1005 fallback_child.ok_or_else(|| {
1006 ::treesitter_types::ParseError::missing_field("children", node)
1007 })?
1008 };
1009 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
1010 },
1011 })
1012 }
1013}
1014impl ::treesitter_types::Spanned for AddingTypeAnnotation<'_> {
1015 fn span(&self) -> ::treesitter_types::Span {
1016 self.span
1017 }
1018}
1019#[derive(Debug, Clone, PartialEq, Eq)]
1020pub struct AmbientDeclaration<'tree> {
1021 pub span: ::treesitter_types::Span,
1022 pub children: ::std::vec::Vec<AmbientDeclarationChildren<'tree>>,
1023}
1024impl<'tree> ::treesitter_types::FromNode<'tree> for AmbientDeclaration<'tree> {
1025 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1026 fn from_node(
1027 node: ::tree_sitter::Node<'tree>,
1028 src: &'tree [u8],
1029 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1030 debug_assert_eq!(node.kind(), "ambient_declaration");
1031 Ok(Self {
1032 span: ::treesitter_types::Span::from(node),
1033 children: {
1034 #[allow(clippy::suspicious_else_formatting)]
1035 let non_field_children = {
1036 let mut cursor = node.walk();
1037 let mut result = ::std::vec::Vec::new();
1038 if cursor.goto_first_child() {
1039 loop {
1040 if cursor.field_name().is_none()
1041 && cursor.node().is_named()
1042 && !cursor.node().is_extra()
1043 {
1044 result.push(cursor.node());
1045 }
1046 if !cursor.goto_next_sibling() {
1047 break;
1048 }
1049 }
1050 }
1051 result
1052 };
1053 let mut items = ::std::vec::Vec::new();
1054 for child in non_field_children {
1055 items.push(
1056 <AmbientDeclarationChildren as ::treesitter_types::FromNode>::from_node(
1057 child, src,
1058 )?,
1059 );
1060 }
1061 items
1062 },
1063 })
1064 }
1065}
1066impl ::treesitter_types::Spanned for AmbientDeclaration<'_> {
1067 fn span(&self) -> ::treesitter_types::Span {
1068 self.span
1069 }
1070}
1071#[derive(Debug, Clone, PartialEq, Eq)]
1072pub struct Arguments<'tree> {
1073 pub span: ::treesitter_types::Span,
1074 pub children: ::std::vec::Vec<ArgumentsChildren<'tree>>,
1075}
1076impl<'tree> ::treesitter_types::FromNode<'tree> for Arguments<'tree> {
1077 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1078 fn from_node(
1079 node: ::tree_sitter::Node<'tree>,
1080 src: &'tree [u8],
1081 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1082 debug_assert_eq!(node.kind(), "arguments");
1083 Ok(Self {
1084 span: ::treesitter_types::Span::from(node),
1085 children: {
1086 #[allow(clippy::suspicious_else_formatting)]
1087 let non_field_children = {
1088 let mut cursor = node.walk();
1089 let mut result = ::std::vec::Vec::new();
1090 if cursor.goto_first_child() {
1091 loop {
1092 if cursor.field_name().is_none()
1093 && cursor.node().is_named()
1094 && !cursor.node().is_extra()
1095 {
1096 result.push(cursor.node());
1097 }
1098 if !cursor.goto_next_sibling() {
1099 break;
1100 }
1101 }
1102 }
1103 result
1104 };
1105 let mut items = ::std::vec::Vec::new();
1106 for child in non_field_children {
1107 items.push(
1108 <ArgumentsChildren as ::treesitter_types::FromNode>::from_node(child, src)?,
1109 );
1110 }
1111 items
1112 },
1113 })
1114 }
1115}
1116impl ::treesitter_types::Spanned for Arguments<'_> {
1117 fn span(&self) -> ::treesitter_types::Span {
1118 self.span
1119 }
1120}
1121#[derive(Debug, Clone, PartialEq, Eq)]
1122pub struct Array<'tree> {
1123 pub span: ::treesitter_types::Span,
1124 pub children: ::std::vec::Vec<ArrayChildren<'tree>>,
1125}
1126impl<'tree> ::treesitter_types::FromNode<'tree> for Array<'tree> {
1127 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1128 fn from_node(
1129 node: ::tree_sitter::Node<'tree>,
1130 src: &'tree [u8],
1131 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1132 debug_assert_eq!(node.kind(), "array");
1133 Ok(Self {
1134 span: ::treesitter_types::Span::from(node),
1135 children: {
1136 #[allow(clippy::suspicious_else_formatting)]
1137 let non_field_children = {
1138 let mut cursor = node.walk();
1139 let mut result = ::std::vec::Vec::new();
1140 if cursor.goto_first_child() {
1141 loop {
1142 if cursor.field_name().is_none()
1143 && cursor.node().is_named()
1144 && !cursor.node().is_extra()
1145 {
1146 result.push(cursor.node());
1147 }
1148 if !cursor.goto_next_sibling() {
1149 break;
1150 }
1151 }
1152 }
1153 result
1154 };
1155 let mut items = ::std::vec::Vec::new();
1156 for child in non_field_children {
1157 items.push(<ArrayChildren as ::treesitter_types::FromNode>::from_node(
1158 child, src,
1159 )?);
1160 }
1161 items
1162 },
1163 })
1164 }
1165}
1166impl ::treesitter_types::Spanned for Array<'_> {
1167 fn span(&self) -> ::treesitter_types::Span {
1168 self.span
1169 }
1170}
1171#[derive(Debug, Clone, PartialEq, Eq)]
1172pub struct ArrayPattern<'tree> {
1173 pub span: ::treesitter_types::Span,
1174 pub children: ::std::vec::Vec<ArrayPatternChildren<'tree>>,
1175}
1176impl<'tree> ::treesitter_types::FromNode<'tree> for ArrayPattern<'tree> {
1177 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1178 fn from_node(
1179 node: ::tree_sitter::Node<'tree>,
1180 src: &'tree [u8],
1181 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1182 debug_assert_eq!(node.kind(), "array_pattern");
1183 Ok(Self {
1184 span: ::treesitter_types::Span::from(node),
1185 children: {
1186 #[allow(clippy::suspicious_else_formatting)]
1187 let non_field_children = {
1188 let mut cursor = node.walk();
1189 let mut result = ::std::vec::Vec::new();
1190 if cursor.goto_first_child() {
1191 loop {
1192 if cursor.field_name().is_none()
1193 && cursor.node().is_named()
1194 && !cursor.node().is_extra()
1195 {
1196 result.push(cursor.node());
1197 }
1198 if !cursor.goto_next_sibling() {
1199 break;
1200 }
1201 }
1202 }
1203 result
1204 };
1205 let mut items = ::std::vec::Vec::new();
1206 for child in non_field_children {
1207 items.push(
1208 <ArrayPatternChildren as ::treesitter_types::FromNode>::from_node(
1209 child, src,
1210 )?,
1211 );
1212 }
1213 items
1214 },
1215 })
1216 }
1217}
1218impl ::treesitter_types::Spanned for ArrayPattern<'_> {
1219 fn span(&self) -> ::treesitter_types::Span {
1220 self.span
1221 }
1222}
1223#[derive(Debug, Clone, PartialEq, Eq)]
1224pub struct ArrayType<'tree> {
1225 pub span: ::treesitter_types::Span,
1226 pub children: PrimaryType<'tree>,
1227}
1228impl<'tree> ::treesitter_types::FromNode<'tree> for ArrayType<'tree> {
1229 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1230 fn from_node(
1231 node: ::tree_sitter::Node<'tree>,
1232 src: &'tree [u8],
1233 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1234 debug_assert_eq!(node.kind(), "array_type");
1235 Ok(Self {
1236 span: ::treesitter_types::Span::from(node),
1237 children: {
1238 #[allow(clippy::suspicious_else_formatting)]
1239 let non_field_children = {
1240 let mut cursor = node.walk();
1241 let mut result = ::std::vec::Vec::new();
1242 if cursor.goto_first_child() {
1243 loop {
1244 if cursor.field_name().is_none()
1245 && cursor.node().is_named()
1246 && !cursor.node().is_extra()
1247 {
1248 result.push(cursor.node());
1249 }
1250 if !cursor.goto_next_sibling() {
1251 break;
1252 }
1253 }
1254 }
1255 result
1256 };
1257 let child = if let Some(&c) = non_field_children.first() {
1258 c
1259 } else {
1260 let mut fallback_cursor = node.walk();
1261 let mut fallback_child = None;
1262 if fallback_cursor.goto_first_child() {
1263 loop {
1264 if fallback_cursor.field_name().is_none()
1265 && !fallback_cursor.node().is_extra()
1266 {
1267 let candidate = fallback_cursor.node();
1268 #[allow(clippy::needless_question_mark)]
1269 if (|| -> ::core::result::Result<
1270 _,
1271 ::treesitter_types::ParseError,
1272 > {
1273 let child = candidate;
1274 Ok(
1275 <PrimaryType as ::treesitter_types::FromNode>::from_node(
1276 child,
1277 src,
1278 )?,
1279 )
1280 })()
1281 .is_ok()
1282 {
1283 fallback_child = Some(candidate);
1284 break;
1285 }
1286 }
1287 if !fallback_cursor.goto_next_sibling() {
1288 break;
1289 }
1290 }
1291 }
1292 if fallback_child.is_none() {
1293 let mut cursor2 = node.walk();
1294 if cursor2.goto_first_child() {
1295 loop {
1296 if cursor2.node().is_named() && !cursor2.node().is_extra() {
1297 let candidate = cursor2.node();
1298 #[allow(clippy::needless_question_mark)]
1299 if (|| -> ::core::result::Result<
1300 _,
1301 ::treesitter_types::ParseError,
1302 > {
1303 let child = candidate;
1304 Ok(
1305 <PrimaryType as ::treesitter_types::FromNode>::from_node(
1306 child,
1307 src,
1308 )?,
1309 )
1310 })()
1311 .is_ok()
1312 {
1313 fallback_child = Some(candidate);
1314 break;
1315 }
1316 }
1317 if !cursor2.goto_next_sibling() {
1318 break;
1319 }
1320 }
1321 }
1322 }
1323 fallback_child.ok_or_else(|| {
1324 ::treesitter_types::ParseError::missing_field("children", node)
1325 })?
1326 };
1327 <PrimaryType as ::treesitter_types::FromNode>::from_node(child, src)?
1328 },
1329 })
1330 }
1331}
1332impl ::treesitter_types::Spanned for ArrayType<'_> {
1333 fn span(&self) -> ::treesitter_types::Span {
1334 self.span
1335 }
1336}
1337#[derive(Debug, Clone, PartialEq, Eq)]
1338pub struct ArrowFunction<'tree> {
1339 pub span: ::treesitter_types::Span,
1340 pub body: ArrowFunctionBody<'tree>,
1341 pub parameter: ::core::option::Option<Identifier<'tree>>,
1342 pub parameters: ::core::option::Option<FormalParameters<'tree>>,
1343 pub return_type: ::core::option::Option<ArrowFunctionReturnType<'tree>>,
1344 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
1345}
1346impl<'tree> ::treesitter_types::FromNode<'tree> for ArrowFunction<'tree> {
1347 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1348 fn from_node(
1349 node: ::tree_sitter::Node<'tree>,
1350 src: &'tree [u8],
1351 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1352 debug_assert_eq!(node.kind(), "arrow_function");
1353 Ok(Self {
1354 span: ::treesitter_types::Span::from(node),
1355 body: {
1356 let child = node
1357 .child_by_field_name("body")
1358 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
1359 <ArrowFunctionBody as ::treesitter_types::FromNode>::from_node(child, src)?
1360 },
1361 parameter: match node.child_by_field_name("parameter") {
1362 Some(child) => Some(<Identifier as ::treesitter_types::FromNode>::from_node(
1363 child, src,
1364 )?),
1365 None => None,
1366 },
1367 parameters: match node.child_by_field_name("parameters") {
1368 Some(child) => {
1369 Some(<FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)?)
1370 }
1371 None => None,
1372 },
1373 return_type: match node.child_by_field_name("return_type") {
1374 Some(child) => Some(
1375 <ArrowFunctionReturnType as ::treesitter_types::FromNode>::from_node(
1376 child, src,
1377 )?,
1378 ),
1379 None => None,
1380 },
1381 type_parameters: match node.child_by_field_name("type_parameters") {
1382 Some(child) => Some(<TypeParameters as ::treesitter_types::FromNode>::from_node(
1383 child, src,
1384 )?),
1385 None => None,
1386 },
1387 })
1388 }
1389}
1390impl ::treesitter_types::Spanned for ArrowFunction<'_> {
1391 fn span(&self) -> ::treesitter_types::Span {
1392 self.span
1393 }
1394}
1395#[derive(Debug, Clone, PartialEq, Eq)]
1396pub struct AsExpression<'tree> {
1397 pub span: ::treesitter_types::Span,
1398 pub children: ::std::vec::Vec<AsExpressionChildren<'tree>>,
1399}
1400impl<'tree> ::treesitter_types::FromNode<'tree> for AsExpression<'tree> {
1401 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1402 fn from_node(
1403 node: ::tree_sitter::Node<'tree>,
1404 src: &'tree [u8],
1405 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1406 debug_assert_eq!(node.kind(), "as_expression");
1407 Ok(Self {
1408 span: ::treesitter_types::Span::from(node),
1409 children: {
1410 #[allow(clippy::suspicious_else_formatting)]
1411 let non_field_children = {
1412 let mut cursor = node.walk();
1413 let mut result = ::std::vec::Vec::new();
1414 if cursor.goto_first_child() {
1415 loop {
1416 if cursor.field_name().is_none()
1417 && cursor.node().is_named()
1418 && !cursor.node().is_extra()
1419 {
1420 result.push(cursor.node());
1421 }
1422 if !cursor.goto_next_sibling() {
1423 break;
1424 }
1425 }
1426 }
1427 result
1428 };
1429 let mut items = ::std::vec::Vec::new();
1430 for child in non_field_children {
1431 items.push(
1432 <AsExpressionChildren as ::treesitter_types::FromNode>::from_node(
1433 child, src,
1434 )?,
1435 );
1436 }
1437 items
1438 },
1439 })
1440 }
1441}
1442impl ::treesitter_types::Spanned for AsExpression<'_> {
1443 fn span(&self) -> ::treesitter_types::Span {
1444 self.span
1445 }
1446}
1447#[derive(Debug, Clone, PartialEq, Eq)]
1448pub struct Asserts<'tree> {
1449 pub span: ::treesitter_types::Span,
1450 pub children: AssertsChildren<'tree>,
1451}
1452impl<'tree> ::treesitter_types::FromNode<'tree> for Asserts<'tree> {
1453 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1454 fn from_node(
1455 node: ::tree_sitter::Node<'tree>,
1456 src: &'tree [u8],
1457 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1458 debug_assert_eq!(node.kind(), "asserts");
1459 Ok(Self {
1460 span: ::treesitter_types::Span::from(node),
1461 children: {
1462 #[allow(clippy::suspicious_else_formatting)]
1463 let non_field_children = {
1464 let mut cursor = node.walk();
1465 let mut result = ::std::vec::Vec::new();
1466 if cursor.goto_first_child() {
1467 loop {
1468 if cursor.field_name().is_none()
1469 && cursor.node().is_named()
1470 && !cursor.node().is_extra()
1471 {
1472 result.push(cursor.node());
1473 }
1474 if !cursor.goto_next_sibling() {
1475 break;
1476 }
1477 }
1478 }
1479 result
1480 };
1481 let child = if let Some(&c) = non_field_children.first() {
1482 c
1483 } else {
1484 let mut fallback_cursor = node.walk();
1485 let mut fallback_child = None;
1486 if fallback_cursor.goto_first_child() {
1487 loop {
1488 if fallback_cursor.field_name().is_none()
1489 && !fallback_cursor.node().is_extra()
1490 {
1491 let candidate = fallback_cursor.node();
1492 #[allow(clippy::needless_question_mark)]
1493 if (|| -> ::core::result::Result<
1494 _,
1495 ::treesitter_types::ParseError,
1496 > {
1497 let child = candidate;
1498 Ok(
1499 <AssertsChildren as ::treesitter_types::FromNode>::from_node(
1500 child,
1501 src,
1502 )?,
1503 )
1504 })()
1505 .is_ok()
1506 {
1507 fallback_child = Some(candidate);
1508 break;
1509 }
1510 }
1511 if !fallback_cursor.goto_next_sibling() {
1512 break;
1513 }
1514 }
1515 }
1516 if fallback_child.is_none() {
1517 let mut cursor2 = node.walk();
1518 if cursor2.goto_first_child() {
1519 loop {
1520 if cursor2.node().is_named() && !cursor2.node().is_extra() {
1521 let candidate = cursor2.node();
1522 #[allow(clippy::needless_question_mark)]
1523 if (|| -> ::core::result::Result<
1524 _,
1525 ::treesitter_types::ParseError,
1526 > {
1527 let child = candidate;
1528 Ok(
1529 <AssertsChildren as ::treesitter_types::FromNode>::from_node(
1530 child,
1531 src,
1532 )?,
1533 )
1534 })()
1535 .is_ok()
1536 {
1537 fallback_child = Some(candidate);
1538 break;
1539 }
1540 }
1541 if !cursor2.goto_next_sibling() {
1542 break;
1543 }
1544 }
1545 }
1546 }
1547 fallback_child.ok_or_else(|| {
1548 ::treesitter_types::ParseError::missing_field("children", node)
1549 })?
1550 };
1551 <AssertsChildren as ::treesitter_types::FromNode>::from_node(child, src)?
1552 },
1553 })
1554 }
1555}
1556impl ::treesitter_types::Spanned for Asserts<'_> {
1557 fn span(&self) -> ::treesitter_types::Span {
1558 self.span
1559 }
1560}
1561#[derive(Debug, Clone, PartialEq, Eq)]
1562pub struct AssertsAnnotation<'tree> {
1563 pub span: ::treesitter_types::Span,
1564 pub children: Asserts<'tree>,
1565}
1566impl<'tree> ::treesitter_types::FromNode<'tree> for AssertsAnnotation<'tree> {
1567 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1568 fn from_node(
1569 node: ::tree_sitter::Node<'tree>,
1570 src: &'tree [u8],
1571 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1572 debug_assert_eq!(node.kind(), "asserts_annotation");
1573 Ok(Self {
1574 span: ::treesitter_types::Span::from(node),
1575 children: {
1576 #[allow(clippy::suspicious_else_formatting)]
1577 let non_field_children = {
1578 let mut cursor = node.walk();
1579 let mut result = ::std::vec::Vec::new();
1580 if cursor.goto_first_child() {
1581 loop {
1582 if cursor.field_name().is_none()
1583 && cursor.node().is_named()
1584 && !cursor.node().is_extra()
1585 {
1586 result.push(cursor.node());
1587 }
1588 if !cursor.goto_next_sibling() {
1589 break;
1590 }
1591 }
1592 }
1593 result
1594 };
1595 let child = if let Some(&c) = non_field_children.first() {
1596 c
1597 } else {
1598 let mut fallback_cursor = node.walk();
1599 let mut fallback_child = None;
1600 if fallback_cursor.goto_first_child() {
1601 loop {
1602 if fallback_cursor.field_name().is_none()
1603 && !fallback_cursor.node().is_extra()
1604 {
1605 let candidate = fallback_cursor.node();
1606 #[allow(clippy::needless_question_mark)]
1607 if (|| -> ::core::result::Result<
1608 _,
1609 ::treesitter_types::ParseError,
1610 > {
1611 let child = candidate;
1612 Ok(
1613 <Asserts as ::treesitter_types::FromNode>::from_node(
1614 child,
1615 src,
1616 )?,
1617 )
1618 })()
1619 .is_ok()
1620 {
1621 fallback_child = Some(candidate);
1622 break;
1623 }
1624 }
1625 if !fallback_cursor.goto_next_sibling() {
1626 break;
1627 }
1628 }
1629 }
1630 if fallback_child.is_none() {
1631 let mut cursor2 = node.walk();
1632 if cursor2.goto_first_child() {
1633 loop {
1634 if cursor2.node().is_named() && !cursor2.node().is_extra() {
1635 let candidate = cursor2.node();
1636 #[allow(clippy::needless_question_mark)]
1637 if (|| -> ::core::result::Result<
1638 _,
1639 ::treesitter_types::ParseError,
1640 > {
1641 let child = candidate;
1642 Ok(
1643 <Asserts as ::treesitter_types::FromNode>::from_node(
1644 child,
1645 src,
1646 )?,
1647 )
1648 })()
1649 .is_ok()
1650 {
1651 fallback_child = Some(candidate);
1652 break;
1653 }
1654 }
1655 if !cursor2.goto_next_sibling() {
1656 break;
1657 }
1658 }
1659 }
1660 }
1661 fallback_child.ok_or_else(|| {
1662 ::treesitter_types::ParseError::missing_field("children", node)
1663 })?
1664 };
1665 <Asserts as ::treesitter_types::FromNode>::from_node(child, src)?
1666 },
1667 })
1668 }
1669}
1670impl ::treesitter_types::Spanned for AssertsAnnotation<'_> {
1671 fn span(&self) -> ::treesitter_types::Span {
1672 self.span
1673 }
1674}
1675#[derive(Debug, Clone, PartialEq, Eq)]
1676pub struct AssignmentExpression<'tree> {
1677 pub span: ::treesitter_types::Span,
1678 pub left: AssignmentExpressionLeft<'tree>,
1679 pub right: Expression<'tree>,
1680}
1681impl<'tree> ::treesitter_types::FromNode<'tree> for AssignmentExpression<'tree> {
1682 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1683 fn from_node(
1684 node: ::tree_sitter::Node<'tree>,
1685 src: &'tree [u8],
1686 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1687 debug_assert_eq!(node.kind(), "assignment_expression");
1688 Ok(Self {
1689 span: ::treesitter_types::Span::from(node),
1690 left: {
1691 let child = node
1692 .child_by_field_name("left")
1693 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
1694 <AssignmentExpressionLeft as ::treesitter_types::FromNode>::from_node(child, src)?
1695 },
1696 right: {
1697 let child = node
1698 .child_by_field_name("right")
1699 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
1700 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
1701 },
1702 })
1703 }
1704}
1705impl ::treesitter_types::Spanned for AssignmentExpression<'_> {
1706 fn span(&self) -> ::treesitter_types::Span {
1707 self.span
1708 }
1709}
1710#[derive(Debug, Clone, PartialEq, Eq)]
1711pub struct AssignmentPattern<'tree> {
1712 pub span: ::treesitter_types::Span,
1713 pub left: Pattern<'tree>,
1714 pub right: Expression<'tree>,
1715}
1716impl<'tree> ::treesitter_types::FromNode<'tree> for AssignmentPattern<'tree> {
1717 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1718 fn from_node(
1719 node: ::tree_sitter::Node<'tree>,
1720 src: &'tree [u8],
1721 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1722 debug_assert_eq!(node.kind(), "assignment_pattern");
1723 Ok(Self {
1724 span: ::treesitter_types::Span::from(node),
1725 left: {
1726 let child = node
1727 .child_by_field_name("left")
1728 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
1729 <Pattern as ::treesitter_types::FromNode>::from_node(child, src)?
1730 },
1731 right: {
1732 let child = node
1733 .child_by_field_name("right")
1734 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
1735 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
1736 },
1737 })
1738 }
1739}
1740impl ::treesitter_types::Spanned for AssignmentPattern<'_> {
1741 fn span(&self) -> ::treesitter_types::Span {
1742 self.span
1743 }
1744}
1745#[derive(Debug, Clone, PartialEq, Eq)]
1746pub struct AugmentedAssignmentExpression<'tree> {
1747 pub span: ::treesitter_types::Span,
1748 pub left: AugmentedAssignmentExpressionLeft<'tree>,
1749 pub operator: AugmentedAssignmentExpressionOperator,
1750 pub right: Expression<'tree>,
1751}
1752impl<'tree> ::treesitter_types::FromNode<'tree> for AugmentedAssignmentExpression<'tree> {
1753 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1754 fn from_node(
1755 node: ::tree_sitter::Node<'tree>,
1756 src: &'tree [u8],
1757 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1758 debug_assert_eq!(node.kind(), "augmented_assignment_expression");
1759 Ok(Self {
1760 span: ::treesitter_types::Span::from(node),
1761 left: {
1762 let child = node
1763 .child_by_field_name("left")
1764 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
1765 <AugmentedAssignmentExpressionLeft as ::treesitter_types::FromNode>::from_node(
1766 child, src,
1767 )?
1768 },
1769 operator: {
1770 let child = node.child_by_field_name("operator").ok_or_else(|| {
1771 ::treesitter_types::ParseError::missing_field("operator", node)
1772 })?;
1773 <AugmentedAssignmentExpressionOperator as ::treesitter_types::FromNode>::from_node(
1774 child, src,
1775 )?
1776 },
1777 right: {
1778 let child = node
1779 .child_by_field_name("right")
1780 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
1781 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
1782 },
1783 })
1784 }
1785}
1786impl ::treesitter_types::Spanned for AugmentedAssignmentExpression<'_> {
1787 fn span(&self) -> ::treesitter_types::Span {
1788 self.span
1789 }
1790}
1791#[derive(Debug, Clone, PartialEq, Eq)]
1792pub struct AwaitExpression<'tree> {
1793 pub span: ::treesitter_types::Span,
1794 pub children: Expression<'tree>,
1795}
1796impl<'tree> ::treesitter_types::FromNode<'tree> for AwaitExpression<'tree> {
1797 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1798 fn from_node(
1799 node: ::tree_sitter::Node<'tree>,
1800 src: &'tree [u8],
1801 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1802 debug_assert_eq!(node.kind(), "await_expression");
1803 Ok(Self {
1804 span: ::treesitter_types::Span::from(node),
1805 children: {
1806 #[allow(clippy::suspicious_else_formatting)]
1807 let non_field_children = {
1808 let mut cursor = node.walk();
1809 let mut result = ::std::vec::Vec::new();
1810 if cursor.goto_first_child() {
1811 loop {
1812 if cursor.field_name().is_none()
1813 && cursor.node().is_named()
1814 && !cursor.node().is_extra()
1815 {
1816 result.push(cursor.node());
1817 }
1818 if !cursor.goto_next_sibling() {
1819 break;
1820 }
1821 }
1822 }
1823 result
1824 };
1825 let child = if let Some(&c) = non_field_children.first() {
1826 c
1827 } else {
1828 let mut fallback_cursor = node.walk();
1829 let mut fallback_child = None;
1830 if fallback_cursor.goto_first_child() {
1831 loop {
1832 if fallback_cursor.field_name().is_none()
1833 && !fallback_cursor.node().is_extra()
1834 {
1835 let candidate = fallback_cursor.node();
1836 #[allow(clippy::needless_question_mark)]
1837 if (|| -> ::core::result::Result<
1838 _,
1839 ::treesitter_types::ParseError,
1840 > {
1841 let child = candidate;
1842 Ok(
1843 <Expression as ::treesitter_types::FromNode>::from_node(
1844 child,
1845 src,
1846 )?,
1847 )
1848 })()
1849 .is_ok()
1850 {
1851 fallback_child = Some(candidate);
1852 break;
1853 }
1854 }
1855 if !fallback_cursor.goto_next_sibling() {
1856 break;
1857 }
1858 }
1859 }
1860 if fallback_child.is_none() {
1861 let mut cursor2 = node.walk();
1862 if cursor2.goto_first_child() {
1863 loop {
1864 if cursor2.node().is_named() && !cursor2.node().is_extra() {
1865 let candidate = cursor2.node();
1866 #[allow(clippy::needless_question_mark)]
1867 if (|| -> ::core::result::Result<
1868 _,
1869 ::treesitter_types::ParseError,
1870 > {
1871 let child = candidate;
1872 Ok(
1873 <Expression as ::treesitter_types::FromNode>::from_node(
1874 child,
1875 src,
1876 )?,
1877 )
1878 })()
1879 .is_ok()
1880 {
1881 fallback_child = Some(candidate);
1882 break;
1883 }
1884 }
1885 if !cursor2.goto_next_sibling() {
1886 break;
1887 }
1888 }
1889 }
1890 }
1891 fallback_child.ok_or_else(|| {
1892 ::treesitter_types::ParseError::missing_field("children", node)
1893 })?
1894 };
1895 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
1896 },
1897 })
1898 }
1899}
1900impl ::treesitter_types::Spanned for AwaitExpression<'_> {
1901 fn span(&self) -> ::treesitter_types::Span {
1902 self.span
1903 }
1904}
1905#[derive(Debug, Clone, PartialEq, Eq)]
1906pub struct BinaryExpression<'tree> {
1907 pub span: ::treesitter_types::Span,
1908 pub left: BinaryExpressionLeft<'tree>,
1909 pub operator: BinaryExpressionOperator,
1910 pub right: Expression<'tree>,
1911}
1912impl<'tree> ::treesitter_types::FromNode<'tree> for BinaryExpression<'tree> {
1913 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1914 fn from_node(
1915 node: ::tree_sitter::Node<'tree>,
1916 src: &'tree [u8],
1917 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1918 debug_assert_eq!(node.kind(), "binary_expression");
1919 Ok(Self {
1920 span: ::treesitter_types::Span::from(node),
1921 left: {
1922 let child = node
1923 .child_by_field_name("left")
1924 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
1925 <BinaryExpressionLeft as ::treesitter_types::FromNode>::from_node(child, src)?
1926 },
1927 operator: {
1928 let child = node.child_by_field_name("operator").ok_or_else(|| {
1929 ::treesitter_types::ParseError::missing_field("operator", node)
1930 })?;
1931 <BinaryExpressionOperator as ::treesitter_types::FromNode>::from_node(child, src)?
1932 },
1933 right: {
1934 let child = node
1935 .child_by_field_name("right")
1936 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
1937 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
1938 },
1939 })
1940 }
1941}
1942impl ::treesitter_types::Spanned for BinaryExpression<'_> {
1943 fn span(&self) -> ::treesitter_types::Span {
1944 self.span
1945 }
1946}
1947#[derive(Debug, Clone, PartialEq, Eq)]
1948pub struct BreakStatement<'tree> {
1949 pub span: ::treesitter_types::Span,
1950 pub label: ::core::option::Option<StatementIdentifier<'tree>>,
1951}
1952impl<'tree> ::treesitter_types::FromNode<'tree> for BreakStatement<'tree> {
1953 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1954 fn from_node(
1955 node: ::tree_sitter::Node<'tree>,
1956 src: &'tree [u8],
1957 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1958 debug_assert_eq!(node.kind(), "break_statement");
1959 Ok(Self {
1960 span: ::treesitter_types::Span::from(node),
1961 label: match node.child_by_field_name("label") {
1962 Some(child) => Some(
1963 <StatementIdentifier as ::treesitter_types::FromNode>::from_node(child, src)?,
1964 ),
1965 None => None,
1966 },
1967 })
1968 }
1969}
1970impl ::treesitter_types::Spanned for BreakStatement<'_> {
1971 fn span(&self) -> ::treesitter_types::Span {
1972 self.span
1973 }
1974}
1975#[derive(Debug, Clone, PartialEq, Eq)]
1976pub struct CallExpression<'tree> {
1977 pub span: ::treesitter_types::Span,
1978 pub arguments: CallExpressionArguments<'tree>,
1979 pub function: CallExpressionFunction<'tree>,
1980 pub type_arguments: ::core::option::Option<TypeArguments<'tree>>,
1981}
1982impl<'tree> ::treesitter_types::FromNode<'tree> for CallExpression<'tree> {
1983 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1984 fn from_node(
1985 node: ::tree_sitter::Node<'tree>,
1986 src: &'tree [u8],
1987 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1988 debug_assert_eq!(node.kind(), "call_expression");
1989 Ok(Self {
1990 span: ::treesitter_types::Span::from(node),
1991 arguments: {
1992 let child = node.child_by_field_name("arguments").ok_or_else(|| {
1993 ::treesitter_types::ParseError::missing_field("arguments", node)
1994 })?;
1995 <CallExpressionArguments as ::treesitter_types::FromNode>::from_node(child, src)?
1996 },
1997 function: {
1998 let child = node.child_by_field_name("function").ok_or_else(|| {
1999 ::treesitter_types::ParseError::missing_field("function", node)
2000 })?;
2001 <CallExpressionFunction as ::treesitter_types::FromNode>::from_node(child, src)?
2002 },
2003 type_arguments: match node.child_by_field_name("type_arguments") {
2004 Some(child) => Some(<TypeArguments as ::treesitter_types::FromNode>::from_node(
2005 child, src,
2006 )?),
2007 None => None,
2008 },
2009 })
2010 }
2011}
2012impl ::treesitter_types::Spanned for CallExpression<'_> {
2013 fn span(&self) -> ::treesitter_types::Span {
2014 self.span
2015 }
2016}
2017#[derive(Debug, Clone, PartialEq, Eq)]
2018pub struct CallSignature<'tree> {
2019 pub span: ::treesitter_types::Span,
2020 pub parameters: FormalParameters<'tree>,
2021 pub return_type: ::core::option::Option<CallSignatureReturnType<'tree>>,
2022 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
2023}
2024impl<'tree> ::treesitter_types::FromNode<'tree> for CallSignature<'tree> {
2025 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2026 fn from_node(
2027 node: ::tree_sitter::Node<'tree>,
2028 src: &'tree [u8],
2029 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2030 debug_assert_eq!(node.kind(), "call_signature");
2031 Ok(Self {
2032 span: ::treesitter_types::Span::from(node),
2033 parameters: {
2034 let child = node.child_by_field_name("parameters").ok_or_else(|| {
2035 ::treesitter_types::ParseError::missing_field("parameters", node)
2036 })?;
2037 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)?
2038 },
2039 return_type: match node.child_by_field_name("return_type") {
2040 Some(child) => Some(
2041 <CallSignatureReturnType as ::treesitter_types::FromNode>::from_node(
2042 child, src,
2043 )?,
2044 ),
2045 None => None,
2046 },
2047 type_parameters: match node.child_by_field_name("type_parameters") {
2048 Some(child) => Some(<TypeParameters as ::treesitter_types::FromNode>::from_node(
2049 child, src,
2050 )?),
2051 None => None,
2052 },
2053 })
2054 }
2055}
2056impl ::treesitter_types::Spanned for CallSignature<'_> {
2057 fn span(&self) -> ::treesitter_types::Span {
2058 self.span
2059 }
2060}
2061#[derive(Debug, Clone, PartialEq, Eq)]
2062pub struct CatchClause<'tree> {
2063 pub span: ::treesitter_types::Span,
2064 pub body: StatementBlock<'tree>,
2065 pub parameter: ::core::option::Option<CatchClauseParameter<'tree>>,
2066 pub r#type: ::core::option::Option<TypeAnnotation<'tree>>,
2067}
2068impl<'tree> ::treesitter_types::FromNode<'tree> for CatchClause<'tree> {
2069 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2070 fn from_node(
2071 node: ::tree_sitter::Node<'tree>,
2072 src: &'tree [u8],
2073 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2074 debug_assert_eq!(node.kind(), "catch_clause");
2075 Ok(Self {
2076 span: ::treesitter_types::Span::from(node),
2077 body: {
2078 let child = node
2079 .child_by_field_name("body")
2080 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
2081 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)?
2082 },
2083 parameter: match node.child_by_field_name("parameter") {
2084 Some(child) => Some(
2085 <CatchClauseParameter as ::treesitter_types::FromNode>::from_node(child, src)?,
2086 ),
2087 None => None,
2088 },
2089 r#type: match node.child_by_field_name("type") {
2090 Some(child) => Some(<TypeAnnotation as ::treesitter_types::FromNode>::from_node(
2091 child, src,
2092 )?),
2093 None => None,
2094 },
2095 })
2096 }
2097}
2098impl ::treesitter_types::Spanned for CatchClause<'_> {
2099 fn span(&self) -> ::treesitter_types::Span {
2100 self.span
2101 }
2102}
2103#[derive(Debug, Clone, PartialEq, Eq)]
2104pub struct Class<'tree> {
2105 pub span: ::treesitter_types::Span,
2106 pub body: ClassBody<'tree>,
2107 pub decorator: ::std::vec::Vec<Decorator<'tree>>,
2108 pub name: ::core::option::Option<TypeIdentifier<'tree>>,
2109 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
2110 pub children: ::core::option::Option<ClassHeritage<'tree>>,
2111}
2112impl<'tree> ::treesitter_types::FromNode<'tree> for Class<'tree> {
2113 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2114 fn from_node(
2115 node: ::tree_sitter::Node<'tree>,
2116 src: &'tree [u8],
2117 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2118 debug_assert_eq!(node.kind(), "class");
2119 Ok(Self {
2120 span: ::treesitter_types::Span::from(node),
2121 body: {
2122 let child = node
2123 .child_by_field_name("body")
2124 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
2125 <ClassBody as ::treesitter_types::FromNode>::from_node(child, src)?
2126 },
2127 decorator: {
2128 let mut cursor = node.walk();
2129 let mut items = ::std::vec::Vec::new();
2130 for child in node.children_by_field_name("decorator", &mut cursor) {
2131 items.push(<Decorator as ::treesitter_types::FromNode>::from_node(
2132 child, src,
2133 )?);
2134 }
2135 items
2136 },
2137 name: match node.child_by_field_name("name") {
2138 Some(child) => Some(<TypeIdentifier as ::treesitter_types::FromNode>::from_node(
2139 child, src,
2140 )?),
2141 None => None,
2142 },
2143 type_parameters: match node.child_by_field_name("type_parameters") {
2144 Some(child) => Some(<TypeParameters as ::treesitter_types::FromNode>::from_node(
2145 child, src,
2146 )?),
2147 None => None,
2148 },
2149 children: {
2150 #[allow(clippy::suspicious_else_formatting)]
2151 let non_field_children = {
2152 let mut cursor = node.walk();
2153 let mut result = ::std::vec::Vec::new();
2154 if cursor.goto_first_child() {
2155 loop {
2156 if cursor.field_name().is_none()
2157 && cursor.node().is_named()
2158 && !cursor.node().is_extra()
2159 {
2160 result.push(cursor.node());
2161 }
2162 if !cursor.goto_next_sibling() {
2163 break;
2164 }
2165 }
2166 }
2167 result
2168 };
2169 match non_field_children.first() {
2170 Some(&child) => Some(
2171 <ClassHeritage as ::treesitter_types::FromNode>::from_node(child, src)?,
2172 ),
2173 None => None,
2174 }
2175 },
2176 })
2177 }
2178}
2179impl ::treesitter_types::Spanned for Class<'_> {
2180 fn span(&self) -> ::treesitter_types::Span {
2181 self.span
2182 }
2183}
2184#[derive(Debug, Clone, PartialEq, Eq)]
2185pub struct ClassBody<'tree> {
2186 pub span: ::treesitter_types::Span,
2187 pub decorator: ::std::vec::Vec<Decorator<'tree>>,
2188 pub children: ::std::vec::Vec<ClassBodyChildren<'tree>>,
2189}
2190impl<'tree> ::treesitter_types::FromNode<'tree> for ClassBody<'tree> {
2191 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2192 fn from_node(
2193 node: ::tree_sitter::Node<'tree>,
2194 src: &'tree [u8],
2195 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2196 debug_assert_eq!(node.kind(), "class_body");
2197 Ok(Self {
2198 span: ::treesitter_types::Span::from(node),
2199 decorator: {
2200 let mut cursor = node.walk();
2201 let mut items = ::std::vec::Vec::new();
2202 for child in node.children_by_field_name("decorator", &mut cursor) {
2203 items.push(<Decorator as ::treesitter_types::FromNode>::from_node(
2204 child, src,
2205 )?);
2206 }
2207 items
2208 },
2209 children: {
2210 #[allow(clippy::suspicious_else_formatting)]
2211 let non_field_children = {
2212 let mut cursor = node.walk();
2213 let mut result = ::std::vec::Vec::new();
2214 if cursor.goto_first_child() {
2215 loop {
2216 if cursor.field_name().is_none()
2217 && cursor.node().is_named()
2218 && !cursor.node().is_extra()
2219 {
2220 result.push(cursor.node());
2221 }
2222 if !cursor.goto_next_sibling() {
2223 break;
2224 }
2225 }
2226 }
2227 result
2228 };
2229 let mut items = ::std::vec::Vec::new();
2230 for child in non_field_children {
2231 items.push(
2232 <ClassBodyChildren as ::treesitter_types::FromNode>::from_node(child, src)?,
2233 );
2234 }
2235 items
2236 },
2237 })
2238 }
2239}
2240impl ::treesitter_types::Spanned for ClassBody<'_> {
2241 fn span(&self) -> ::treesitter_types::Span {
2242 self.span
2243 }
2244}
2245#[derive(Debug, Clone, PartialEq, Eq)]
2246pub struct ClassDeclaration<'tree> {
2247 pub span: ::treesitter_types::Span,
2248 pub body: ClassBody<'tree>,
2249 pub decorator: ::std::vec::Vec<Decorator<'tree>>,
2250 pub name: TypeIdentifier<'tree>,
2251 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
2252 pub children: ::core::option::Option<ClassHeritage<'tree>>,
2253}
2254impl<'tree> ::treesitter_types::FromNode<'tree> for ClassDeclaration<'tree> {
2255 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2256 fn from_node(
2257 node: ::tree_sitter::Node<'tree>,
2258 src: &'tree [u8],
2259 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2260 debug_assert_eq!(node.kind(), "class_declaration");
2261 Ok(Self {
2262 span: ::treesitter_types::Span::from(node),
2263 body: {
2264 let child = node
2265 .child_by_field_name("body")
2266 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
2267 <ClassBody as ::treesitter_types::FromNode>::from_node(child, src)?
2268 },
2269 decorator: {
2270 let mut cursor = node.walk();
2271 let mut items = ::std::vec::Vec::new();
2272 for child in node.children_by_field_name("decorator", &mut cursor) {
2273 items.push(<Decorator as ::treesitter_types::FromNode>::from_node(
2274 child, src,
2275 )?);
2276 }
2277 items
2278 },
2279 name: {
2280 let child = node
2281 .child_by_field_name("name")
2282 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
2283 <TypeIdentifier as ::treesitter_types::FromNode>::from_node(child, src)?
2284 },
2285 type_parameters: match node.child_by_field_name("type_parameters") {
2286 Some(child) => Some(<TypeParameters as ::treesitter_types::FromNode>::from_node(
2287 child, src,
2288 )?),
2289 None => None,
2290 },
2291 children: {
2292 #[allow(clippy::suspicious_else_formatting)]
2293 let non_field_children = {
2294 let mut cursor = node.walk();
2295 let mut result = ::std::vec::Vec::new();
2296 if cursor.goto_first_child() {
2297 loop {
2298 if cursor.field_name().is_none()
2299 && cursor.node().is_named()
2300 && !cursor.node().is_extra()
2301 {
2302 result.push(cursor.node());
2303 }
2304 if !cursor.goto_next_sibling() {
2305 break;
2306 }
2307 }
2308 }
2309 result
2310 };
2311 match non_field_children.first() {
2312 Some(&child) => Some(
2313 <ClassHeritage as ::treesitter_types::FromNode>::from_node(child, src)?,
2314 ),
2315 None => None,
2316 }
2317 },
2318 })
2319 }
2320}
2321impl ::treesitter_types::Spanned for ClassDeclaration<'_> {
2322 fn span(&self) -> ::treesitter_types::Span {
2323 self.span
2324 }
2325}
2326#[derive(Debug, Clone, PartialEq, Eq)]
2327pub struct ClassHeritage<'tree> {
2328 pub span: ::treesitter_types::Span,
2329 pub children: ::std::vec::Vec<ClassHeritageChildren<'tree>>,
2330}
2331impl<'tree> ::treesitter_types::FromNode<'tree> for ClassHeritage<'tree> {
2332 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2333 fn from_node(
2334 node: ::tree_sitter::Node<'tree>,
2335 src: &'tree [u8],
2336 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2337 debug_assert_eq!(node.kind(), "class_heritage");
2338 Ok(Self {
2339 span: ::treesitter_types::Span::from(node),
2340 children: {
2341 #[allow(clippy::suspicious_else_formatting)]
2342 let non_field_children = {
2343 let mut cursor = node.walk();
2344 let mut result = ::std::vec::Vec::new();
2345 if cursor.goto_first_child() {
2346 loop {
2347 if cursor.field_name().is_none()
2348 && cursor.node().is_named()
2349 && !cursor.node().is_extra()
2350 {
2351 result.push(cursor.node());
2352 }
2353 if !cursor.goto_next_sibling() {
2354 break;
2355 }
2356 }
2357 }
2358 result
2359 };
2360 let mut items = ::std::vec::Vec::new();
2361 for child in non_field_children {
2362 items.push(
2363 <ClassHeritageChildren as ::treesitter_types::FromNode>::from_node(
2364 child, src,
2365 )?,
2366 );
2367 }
2368 items
2369 },
2370 })
2371 }
2372}
2373impl ::treesitter_types::Spanned for ClassHeritage<'_> {
2374 fn span(&self) -> ::treesitter_types::Span {
2375 self.span
2376 }
2377}
2378#[derive(Debug, Clone, PartialEq, Eq)]
2379pub struct ClassStaticBlock<'tree> {
2380 pub span: ::treesitter_types::Span,
2381 pub body: StatementBlock<'tree>,
2382}
2383impl<'tree> ::treesitter_types::FromNode<'tree> for ClassStaticBlock<'tree> {
2384 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2385 fn from_node(
2386 node: ::tree_sitter::Node<'tree>,
2387 src: &'tree [u8],
2388 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2389 debug_assert_eq!(node.kind(), "class_static_block");
2390 Ok(Self {
2391 span: ::treesitter_types::Span::from(node),
2392 body: {
2393 let child = node
2394 .child_by_field_name("body")
2395 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
2396 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)?
2397 },
2398 })
2399 }
2400}
2401impl ::treesitter_types::Spanned for ClassStaticBlock<'_> {
2402 fn span(&self) -> ::treesitter_types::Span {
2403 self.span
2404 }
2405}
2406#[derive(Debug, Clone, PartialEq, Eq)]
2407pub struct ComputedPropertyName<'tree> {
2408 pub span: ::treesitter_types::Span,
2409 pub children: Expression<'tree>,
2410}
2411impl<'tree> ::treesitter_types::FromNode<'tree> for ComputedPropertyName<'tree> {
2412 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2413 fn from_node(
2414 node: ::tree_sitter::Node<'tree>,
2415 src: &'tree [u8],
2416 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2417 debug_assert_eq!(node.kind(), "computed_property_name");
2418 Ok(Self {
2419 span: ::treesitter_types::Span::from(node),
2420 children: {
2421 #[allow(clippy::suspicious_else_formatting)]
2422 let non_field_children = {
2423 let mut cursor = node.walk();
2424 let mut result = ::std::vec::Vec::new();
2425 if cursor.goto_first_child() {
2426 loop {
2427 if cursor.field_name().is_none()
2428 && cursor.node().is_named()
2429 && !cursor.node().is_extra()
2430 {
2431 result.push(cursor.node());
2432 }
2433 if !cursor.goto_next_sibling() {
2434 break;
2435 }
2436 }
2437 }
2438 result
2439 };
2440 let child = if let Some(&c) = non_field_children.first() {
2441 c
2442 } else {
2443 let mut fallback_cursor = node.walk();
2444 let mut fallback_child = None;
2445 if fallback_cursor.goto_first_child() {
2446 loop {
2447 if fallback_cursor.field_name().is_none()
2448 && !fallback_cursor.node().is_extra()
2449 {
2450 let candidate = fallback_cursor.node();
2451 #[allow(clippy::needless_question_mark)]
2452 if (|| -> ::core::result::Result<
2453 _,
2454 ::treesitter_types::ParseError,
2455 > {
2456 let child = candidate;
2457 Ok(
2458 <Expression as ::treesitter_types::FromNode>::from_node(
2459 child,
2460 src,
2461 )?,
2462 )
2463 })()
2464 .is_ok()
2465 {
2466 fallback_child = Some(candidate);
2467 break;
2468 }
2469 }
2470 if !fallback_cursor.goto_next_sibling() {
2471 break;
2472 }
2473 }
2474 }
2475 if fallback_child.is_none() {
2476 let mut cursor2 = node.walk();
2477 if cursor2.goto_first_child() {
2478 loop {
2479 if cursor2.node().is_named() && !cursor2.node().is_extra() {
2480 let candidate = cursor2.node();
2481 #[allow(clippy::needless_question_mark)]
2482 if (|| -> ::core::result::Result<
2483 _,
2484 ::treesitter_types::ParseError,
2485 > {
2486 let child = candidate;
2487 Ok(
2488 <Expression as ::treesitter_types::FromNode>::from_node(
2489 child,
2490 src,
2491 )?,
2492 )
2493 })()
2494 .is_ok()
2495 {
2496 fallback_child = Some(candidate);
2497 break;
2498 }
2499 }
2500 if !cursor2.goto_next_sibling() {
2501 break;
2502 }
2503 }
2504 }
2505 }
2506 fallback_child.ok_or_else(|| {
2507 ::treesitter_types::ParseError::missing_field("children", node)
2508 })?
2509 };
2510 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
2511 },
2512 })
2513 }
2514}
2515impl ::treesitter_types::Spanned for ComputedPropertyName<'_> {
2516 fn span(&self) -> ::treesitter_types::Span {
2517 self.span
2518 }
2519}
2520#[derive(Debug, Clone, PartialEq, Eq)]
2521pub struct ConditionalType<'tree> {
2522 pub span: ::treesitter_types::Span,
2523 pub alternative: Type<'tree>,
2524 pub consequence: Type<'tree>,
2525 pub left: Type<'tree>,
2526 pub right: Type<'tree>,
2527}
2528impl<'tree> ::treesitter_types::FromNode<'tree> for ConditionalType<'tree> {
2529 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2530 fn from_node(
2531 node: ::tree_sitter::Node<'tree>,
2532 src: &'tree [u8],
2533 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2534 debug_assert_eq!(node.kind(), "conditional_type");
2535 Ok(Self {
2536 span: ::treesitter_types::Span::from(node),
2537 alternative: {
2538 let child = node.child_by_field_name("alternative").ok_or_else(|| {
2539 ::treesitter_types::ParseError::missing_field("alternative", node)
2540 })?;
2541 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
2542 },
2543 consequence: {
2544 let child = node.child_by_field_name("consequence").ok_or_else(|| {
2545 ::treesitter_types::ParseError::missing_field("consequence", node)
2546 })?;
2547 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
2548 },
2549 left: {
2550 let child = node
2551 .child_by_field_name("left")
2552 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
2553 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
2554 },
2555 right: {
2556 let child = node
2557 .child_by_field_name("right")
2558 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
2559 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
2560 },
2561 })
2562 }
2563}
2564impl ::treesitter_types::Spanned for ConditionalType<'_> {
2565 fn span(&self) -> ::treesitter_types::Span {
2566 self.span
2567 }
2568}
2569#[derive(Debug, Clone, PartialEq, Eq)]
2570pub struct Constraint<'tree> {
2571 pub span: ::treesitter_types::Span,
2572 pub children: Type<'tree>,
2573}
2574impl<'tree> ::treesitter_types::FromNode<'tree> for Constraint<'tree> {
2575 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2576 fn from_node(
2577 node: ::tree_sitter::Node<'tree>,
2578 src: &'tree [u8],
2579 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2580 debug_assert_eq!(node.kind(), "constraint");
2581 Ok(Self {
2582 span: ::treesitter_types::Span::from(node),
2583 children: {
2584 #[allow(clippy::suspicious_else_formatting)]
2585 let non_field_children = {
2586 let mut cursor = node.walk();
2587 let mut result = ::std::vec::Vec::new();
2588 if cursor.goto_first_child() {
2589 loop {
2590 if cursor.field_name().is_none()
2591 && cursor.node().is_named()
2592 && !cursor.node().is_extra()
2593 {
2594 result.push(cursor.node());
2595 }
2596 if !cursor.goto_next_sibling() {
2597 break;
2598 }
2599 }
2600 }
2601 result
2602 };
2603 let child = if let Some(&c) = non_field_children.first() {
2604 c
2605 } else {
2606 let mut fallback_cursor = node.walk();
2607 let mut fallback_child = None;
2608 if fallback_cursor.goto_first_child() {
2609 loop {
2610 if fallback_cursor.field_name().is_none()
2611 && !fallback_cursor.node().is_extra()
2612 {
2613 let candidate = fallback_cursor.node();
2614 #[allow(clippy::needless_question_mark)]
2615 if (|| -> ::core::result::Result<
2616 _,
2617 ::treesitter_types::ParseError,
2618 > {
2619 let child = candidate;
2620 Ok(
2621 <Type as ::treesitter_types::FromNode>::from_node(
2622 child,
2623 src,
2624 )?,
2625 )
2626 })()
2627 .is_ok()
2628 {
2629 fallback_child = Some(candidate);
2630 break;
2631 }
2632 }
2633 if !fallback_cursor.goto_next_sibling() {
2634 break;
2635 }
2636 }
2637 }
2638 if fallback_child.is_none() {
2639 let mut cursor2 = node.walk();
2640 if cursor2.goto_first_child() {
2641 loop {
2642 if cursor2.node().is_named() && !cursor2.node().is_extra() {
2643 let candidate = cursor2.node();
2644 #[allow(clippy::needless_question_mark)]
2645 if (|| -> ::core::result::Result<
2646 _,
2647 ::treesitter_types::ParseError,
2648 > {
2649 let child = candidate;
2650 Ok(
2651 <Type as ::treesitter_types::FromNode>::from_node(
2652 child,
2653 src,
2654 )?,
2655 )
2656 })()
2657 .is_ok()
2658 {
2659 fallback_child = Some(candidate);
2660 break;
2661 }
2662 }
2663 if !cursor2.goto_next_sibling() {
2664 break;
2665 }
2666 }
2667 }
2668 }
2669 fallback_child.ok_or_else(|| {
2670 ::treesitter_types::ParseError::missing_field("children", node)
2671 })?
2672 };
2673 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
2674 },
2675 })
2676 }
2677}
2678impl ::treesitter_types::Spanned for Constraint<'_> {
2679 fn span(&self) -> ::treesitter_types::Span {
2680 self.span
2681 }
2682}
2683#[derive(Debug, Clone, PartialEq, Eq)]
2684pub struct ConstructSignature<'tree> {
2685 pub span: ::treesitter_types::Span,
2686 pub parameters: FormalParameters<'tree>,
2687 pub r#type: ::core::option::Option<TypeAnnotation<'tree>>,
2688 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
2689}
2690impl<'tree> ::treesitter_types::FromNode<'tree> for ConstructSignature<'tree> {
2691 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2692 fn from_node(
2693 node: ::tree_sitter::Node<'tree>,
2694 src: &'tree [u8],
2695 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2696 debug_assert_eq!(node.kind(), "construct_signature");
2697 Ok(Self {
2698 span: ::treesitter_types::Span::from(node),
2699 parameters: {
2700 let child = node.child_by_field_name("parameters").ok_or_else(|| {
2701 ::treesitter_types::ParseError::missing_field("parameters", node)
2702 })?;
2703 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)?
2704 },
2705 r#type: match node.child_by_field_name("type") {
2706 Some(child) => Some(<TypeAnnotation as ::treesitter_types::FromNode>::from_node(
2707 child, src,
2708 )?),
2709 None => None,
2710 },
2711 type_parameters: match node.child_by_field_name("type_parameters") {
2712 Some(child) => Some(<TypeParameters as ::treesitter_types::FromNode>::from_node(
2713 child, src,
2714 )?),
2715 None => None,
2716 },
2717 })
2718 }
2719}
2720impl ::treesitter_types::Spanned for ConstructSignature<'_> {
2721 fn span(&self) -> ::treesitter_types::Span {
2722 self.span
2723 }
2724}
2725#[derive(Debug, Clone, PartialEq, Eq)]
2726pub struct ConstructorType<'tree> {
2727 pub span: ::treesitter_types::Span,
2728 pub parameters: FormalParameters<'tree>,
2729 pub r#type: Type<'tree>,
2730 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
2731}
2732impl<'tree> ::treesitter_types::FromNode<'tree> for ConstructorType<'tree> {
2733 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2734 fn from_node(
2735 node: ::tree_sitter::Node<'tree>,
2736 src: &'tree [u8],
2737 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2738 debug_assert_eq!(node.kind(), "constructor_type");
2739 Ok(Self {
2740 span: ::treesitter_types::Span::from(node),
2741 parameters: {
2742 let child = node.child_by_field_name("parameters").ok_or_else(|| {
2743 ::treesitter_types::ParseError::missing_field("parameters", node)
2744 })?;
2745 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)?
2746 },
2747 r#type: {
2748 let child = node
2749 .child_by_field_name("type")
2750 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("type", node))?;
2751 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
2752 },
2753 type_parameters: match node.child_by_field_name("type_parameters") {
2754 Some(child) => Some(<TypeParameters as ::treesitter_types::FromNode>::from_node(
2755 child, src,
2756 )?),
2757 None => None,
2758 },
2759 })
2760 }
2761}
2762impl ::treesitter_types::Spanned for ConstructorType<'_> {
2763 fn span(&self) -> ::treesitter_types::Span {
2764 self.span
2765 }
2766}
2767#[derive(Debug, Clone, PartialEq, Eq)]
2768pub struct ContinueStatement<'tree> {
2769 pub span: ::treesitter_types::Span,
2770 pub label: ::core::option::Option<StatementIdentifier<'tree>>,
2771}
2772impl<'tree> ::treesitter_types::FromNode<'tree> for ContinueStatement<'tree> {
2773 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2774 fn from_node(
2775 node: ::tree_sitter::Node<'tree>,
2776 src: &'tree [u8],
2777 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2778 debug_assert_eq!(node.kind(), "continue_statement");
2779 Ok(Self {
2780 span: ::treesitter_types::Span::from(node),
2781 label: match node.child_by_field_name("label") {
2782 Some(child) => Some(
2783 <StatementIdentifier as ::treesitter_types::FromNode>::from_node(child, src)?,
2784 ),
2785 None => None,
2786 },
2787 })
2788 }
2789}
2790impl ::treesitter_types::Spanned for ContinueStatement<'_> {
2791 fn span(&self) -> ::treesitter_types::Span {
2792 self.span
2793 }
2794}
2795#[derive(Debug, Clone, PartialEq, Eq)]
2796pub struct DebuggerStatement<'tree> {
2797 pub span: ::treesitter_types::Span,
2798 text: &'tree str,
2799}
2800impl<'tree> ::treesitter_types::FromNode<'tree> for DebuggerStatement<'tree> {
2801 fn from_node(
2802 node: ::tree_sitter::Node<'tree>,
2803 src: &'tree [u8],
2804 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2805 debug_assert_eq!(node.kind(), "debugger_statement");
2806 Ok(Self {
2807 span: ::treesitter_types::Span::from(node),
2808 text: node.utf8_text(src)?,
2809 })
2810 }
2811}
2812impl<'tree> ::treesitter_types::LeafNode<'tree> for DebuggerStatement<'tree> {
2813 fn text(&self) -> &'tree str {
2814 self.text
2815 }
2816}
2817impl ::treesitter_types::Spanned for DebuggerStatement<'_> {
2818 fn span(&self) -> ::treesitter_types::Span {
2819 self.span
2820 }
2821}
2822#[derive(Debug, Clone, PartialEq, Eq)]
2823pub struct Decorator<'tree> {
2824 pub span: ::treesitter_types::Span,
2825 pub children: DecoratorChildren<'tree>,
2826}
2827impl<'tree> ::treesitter_types::FromNode<'tree> for Decorator<'tree> {
2828 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2829 fn from_node(
2830 node: ::tree_sitter::Node<'tree>,
2831 src: &'tree [u8],
2832 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2833 debug_assert_eq!(node.kind(), "decorator");
2834 Ok(Self {
2835 span: ::treesitter_types::Span::from(node),
2836 children: {
2837 #[allow(clippy::suspicious_else_formatting)]
2838 let non_field_children = {
2839 let mut cursor = node.walk();
2840 let mut result = ::std::vec::Vec::new();
2841 if cursor.goto_first_child() {
2842 loop {
2843 if cursor.field_name().is_none()
2844 && cursor.node().is_named()
2845 && !cursor.node().is_extra()
2846 {
2847 result.push(cursor.node());
2848 }
2849 if !cursor.goto_next_sibling() {
2850 break;
2851 }
2852 }
2853 }
2854 result
2855 };
2856 let child = if let Some(&c) = non_field_children.first() {
2857 c
2858 } else {
2859 let mut fallback_cursor = node.walk();
2860 let mut fallback_child = None;
2861 if fallback_cursor.goto_first_child() {
2862 loop {
2863 if fallback_cursor.field_name().is_none()
2864 && !fallback_cursor.node().is_extra()
2865 {
2866 let candidate = fallback_cursor.node();
2867 #[allow(clippy::needless_question_mark)]
2868 if (|| -> ::core::result::Result<
2869 _,
2870 ::treesitter_types::ParseError,
2871 > {
2872 let child = candidate;
2873 Ok(
2874 <DecoratorChildren as ::treesitter_types::FromNode>::from_node(
2875 child,
2876 src,
2877 )?,
2878 )
2879 })()
2880 .is_ok()
2881 {
2882 fallback_child = Some(candidate);
2883 break;
2884 }
2885 }
2886 if !fallback_cursor.goto_next_sibling() {
2887 break;
2888 }
2889 }
2890 }
2891 if fallback_child.is_none() {
2892 let mut cursor2 = node.walk();
2893 if cursor2.goto_first_child() {
2894 loop {
2895 if cursor2.node().is_named() && !cursor2.node().is_extra() {
2896 let candidate = cursor2.node();
2897 #[allow(clippy::needless_question_mark)]
2898 if (|| -> ::core::result::Result<
2899 _,
2900 ::treesitter_types::ParseError,
2901 > {
2902 let child = candidate;
2903 Ok(
2904 <DecoratorChildren as ::treesitter_types::FromNode>::from_node(
2905 child,
2906 src,
2907 )?,
2908 )
2909 })()
2910 .is_ok()
2911 {
2912 fallback_child = Some(candidate);
2913 break;
2914 }
2915 }
2916 if !cursor2.goto_next_sibling() {
2917 break;
2918 }
2919 }
2920 }
2921 }
2922 fallback_child.ok_or_else(|| {
2923 ::treesitter_types::ParseError::missing_field("children", node)
2924 })?
2925 };
2926 <DecoratorChildren as ::treesitter_types::FromNode>::from_node(child, src)?
2927 },
2928 })
2929 }
2930}
2931impl ::treesitter_types::Spanned for Decorator<'_> {
2932 fn span(&self) -> ::treesitter_types::Span {
2933 self.span
2934 }
2935}
2936#[derive(Debug, Clone, PartialEq, Eq)]
2937pub struct DefaultType<'tree> {
2938 pub span: ::treesitter_types::Span,
2939 pub children: Type<'tree>,
2940}
2941impl<'tree> ::treesitter_types::FromNode<'tree> for DefaultType<'tree> {
2942 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2943 fn from_node(
2944 node: ::tree_sitter::Node<'tree>,
2945 src: &'tree [u8],
2946 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2947 debug_assert_eq!(node.kind(), "default_type");
2948 Ok(Self {
2949 span: ::treesitter_types::Span::from(node),
2950 children: {
2951 #[allow(clippy::suspicious_else_formatting)]
2952 let non_field_children = {
2953 let mut cursor = node.walk();
2954 let mut result = ::std::vec::Vec::new();
2955 if cursor.goto_first_child() {
2956 loop {
2957 if cursor.field_name().is_none()
2958 && cursor.node().is_named()
2959 && !cursor.node().is_extra()
2960 {
2961 result.push(cursor.node());
2962 }
2963 if !cursor.goto_next_sibling() {
2964 break;
2965 }
2966 }
2967 }
2968 result
2969 };
2970 let child = if let Some(&c) = non_field_children.first() {
2971 c
2972 } else {
2973 let mut fallback_cursor = node.walk();
2974 let mut fallback_child = None;
2975 if fallback_cursor.goto_first_child() {
2976 loop {
2977 if fallback_cursor.field_name().is_none()
2978 && !fallback_cursor.node().is_extra()
2979 {
2980 let candidate = fallback_cursor.node();
2981 #[allow(clippy::needless_question_mark)]
2982 if (|| -> ::core::result::Result<
2983 _,
2984 ::treesitter_types::ParseError,
2985 > {
2986 let child = candidate;
2987 Ok(
2988 <Type as ::treesitter_types::FromNode>::from_node(
2989 child,
2990 src,
2991 )?,
2992 )
2993 })()
2994 .is_ok()
2995 {
2996 fallback_child = Some(candidate);
2997 break;
2998 }
2999 }
3000 if !fallback_cursor.goto_next_sibling() {
3001 break;
3002 }
3003 }
3004 }
3005 if fallback_child.is_none() {
3006 let mut cursor2 = node.walk();
3007 if cursor2.goto_first_child() {
3008 loop {
3009 if cursor2.node().is_named() && !cursor2.node().is_extra() {
3010 let candidate = cursor2.node();
3011 #[allow(clippy::needless_question_mark)]
3012 if (|| -> ::core::result::Result<
3013 _,
3014 ::treesitter_types::ParseError,
3015 > {
3016 let child = candidate;
3017 Ok(
3018 <Type as ::treesitter_types::FromNode>::from_node(
3019 child,
3020 src,
3021 )?,
3022 )
3023 })()
3024 .is_ok()
3025 {
3026 fallback_child = Some(candidate);
3027 break;
3028 }
3029 }
3030 if !cursor2.goto_next_sibling() {
3031 break;
3032 }
3033 }
3034 }
3035 }
3036 fallback_child.ok_or_else(|| {
3037 ::treesitter_types::ParseError::missing_field("children", node)
3038 })?
3039 };
3040 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
3041 },
3042 })
3043 }
3044}
3045impl ::treesitter_types::Spanned for DefaultType<'_> {
3046 fn span(&self) -> ::treesitter_types::Span {
3047 self.span
3048 }
3049}
3050#[derive(Debug, Clone, PartialEq, Eq)]
3051pub struct DoStatement<'tree> {
3052 pub span: ::treesitter_types::Span,
3053 pub body: Statement<'tree>,
3054 pub condition: ParenthesizedExpression<'tree>,
3055}
3056impl<'tree> ::treesitter_types::FromNode<'tree> for DoStatement<'tree> {
3057 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3058 fn from_node(
3059 node: ::tree_sitter::Node<'tree>,
3060 src: &'tree [u8],
3061 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3062 debug_assert_eq!(node.kind(), "do_statement");
3063 Ok(Self {
3064 span: ::treesitter_types::Span::from(node),
3065 body: {
3066 let child = node
3067 .child_by_field_name("body")
3068 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
3069 <Statement as ::treesitter_types::FromNode>::from_node(child, src)?
3070 },
3071 condition: {
3072 let child = node.child_by_field_name("condition").ok_or_else(|| {
3073 ::treesitter_types::ParseError::missing_field("condition", node)
3074 })?;
3075 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(child, src)?
3076 },
3077 })
3078 }
3079}
3080impl ::treesitter_types::Spanned for DoStatement<'_> {
3081 fn span(&self) -> ::treesitter_types::Span {
3082 self.span
3083 }
3084}
3085#[derive(Debug, Clone, PartialEq, Eq)]
3086pub struct ElseClause<'tree> {
3087 pub span: ::treesitter_types::Span,
3088 pub children: Statement<'tree>,
3089}
3090impl<'tree> ::treesitter_types::FromNode<'tree> for ElseClause<'tree> {
3091 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3092 fn from_node(
3093 node: ::tree_sitter::Node<'tree>,
3094 src: &'tree [u8],
3095 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3096 debug_assert_eq!(node.kind(), "else_clause");
3097 Ok(Self {
3098 span: ::treesitter_types::Span::from(node),
3099 children: {
3100 #[allow(clippy::suspicious_else_formatting)]
3101 let non_field_children = {
3102 let mut cursor = node.walk();
3103 let mut result = ::std::vec::Vec::new();
3104 if cursor.goto_first_child() {
3105 loop {
3106 if cursor.field_name().is_none()
3107 && cursor.node().is_named()
3108 && !cursor.node().is_extra()
3109 {
3110 result.push(cursor.node());
3111 }
3112 if !cursor.goto_next_sibling() {
3113 break;
3114 }
3115 }
3116 }
3117 result
3118 };
3119 let child = if let Some(&c) = non_field_children.first() {
3120 c
3121 } else {
3122 let mut fallback_cursor = node.walk();
3123 let mut fallback_child = None;
3124 if fallback_cursor.goto_first_child() {
3125 loop {
3126 if fallback_cursor.field_name().is_none()
3127 && !fallback_cursor.node().is_extra()
3128 {
3129 let candidate = fallback_cursor.node();
3130 #[allow(clippy::needless_question_mark)]
3131 if (|| -> ::core::result::Result<
3132 _,
3133 ::treesitter_types::ParseError,
3134 > {
3135 let child = candidate;
3136 Ok(
3137 <Statement as ::treesitter_types::FromNode>::from_node(
3138 child,
3139 src,
3140 )?,
3141 )
3142 })()
3143 .is_ok()
3144 {
3145 fallback_child = Some(candidate);
3146 break;
3147 }
3148 }
3149 if !fallback_cursor.goto_next_sibling() {
3150 break;
3151 }
3152 }
3153 }
3154 if fallback_child.is_none() {
3155 let mut cursor2 = node.walk();
3156 if cursor2.goto_first_child() {
3157 loop {
3158 if cursor2.node().is_named() && !cursor2.node().is_extra() {
3159 let candidate = cursor2.node();
3160 #[allow(clippy::needless_question_mark)]
3161 if (|| -> ::core::result::Result<
3162 _,
3163 ::treesitter_types::ParseError,
3164 > {
3165 let child = candidate;
3166 Ok(
3167 <Statement as ::treesitter_types::FromNode>::from_node(
3168 child,
3169 src,
3170 )?,
3171 )
3172 })()
3173 .is_ok()
3174 {
3175 fallback_child = Some(candidate);
3176 break;
3177 }
3178 }
3179 if !cursor2.goto_next_sibling() {
3180 break;
3181 }
3182 }
3183 }
3184 }
3185 fallback_child.ok_or_else(|| {
3186 ::treesitter_types::ParseError::missing_field("children", node)
3187 })?
3188 };
3189 <Statement as ::treesitter_types::FromNode>::from_node(child, src)?
3190 },
3191 })
3192 }
3193}
3194impl ::treesitter_types::Spanned for ElseClause<'_> {
3195 fn span(&self) -> ::treesitter_types::Span {
3196 self.span
3197 }
3198}
3199#[derive(Debug, Clone, PartialEq, Eq)]
3200pub struct EmptyStatement<'tree> {
3201 pub span: ::treesitter_types::Span,
3202 text: &'tree str,
3203}
3204impl<'tree> ::treesitter_types::FromNode<'tree> for EmptyStatement<'tree> {
3205 fn from_node(
3206 node: ::tree_sitter::Node<'tree>,
3207 src: &'tree [u8],
3208 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3209 debug_assert_eq!(node.kind(), "empty_statement");
3210 Ok(Self {
3211 span: ::treesitter_types::Span::from(node),
3212 text: node.utf8_text(src)?,
3213 })
3214 }
3215}
3216impl<'tree> ::treesitter_types::LeafNode<'tree> for EmptyStatement<'tree> {
3217 fn text(&self) -> &'tree str {
3218 self.text
3219 }
3220}
3221impl ::treesitter_types::Spanned for EmptyStatement<'_> {
3222 fn span(&self) -> ::treesitter_types::Span {
3223 self.span
3224 }
3225}
3226#[derive(Debug, Clone, PartialEq, Eq)]
3227pub struct EnumAssignment<'tree> {
3228 pub span: ::treesitter_types::Span,
3229 pub name: EnumAssignmentName<'tree>,
3230 pub value: Expression<'tree>,
3231}
3232impl<'tree> ::treesitter_types::FromNode<'tree> for EnumAssignment<'tree> {
3233 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3234 fn from_node(
3235 node: ::tree_sitter::Node<'tree>,
3236 src: &'tree [u8],
3237 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3238 debug_assert_eq!(node.kind(), "enum_assignment");
3239 Ok(Self {
3240 span: ::treesitter_types::Span::from(node),
3241 name: {
3242 let child = node
3243 .child_by_field_name("name")
3244 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
3245 <EnumAssignmentName as ::treesitter_types::FromNode>::from_node(child, src)?
3246 },
3247 value: {
3248 let child = node
3249 .child_by_field_name("value")
3250 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
3251 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
3252 },
3253 })
3254 }
3255}
3256impl ::treesitter_types::Spanned for EnumAssignment<'_> {
3257 fn span(&self) -> ::treesitter_types::Span {
3258 self.span
3259 }
3260}
3261#[derive(Debug, Clone, PartialEq, Eq)]
3262pub struct EnumBody<'tree> {
3263 pub span: ::treesitter_types::Span,
3264 pub name: ::std::vec::Vec<EnumBodyName<'tree>>,
3265 pub children: ::std::vec::Vec<EnumAssignment<'tree>>,
3266}
3267impl<'tree> ::treesitter_types::FromNode<'tree> for EnumBody<'tree> {
3268 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3269 fn from_node(
3270 node: ::tree_sitter::Node<'tree>,
3271 src: &'tree [u8],
3272 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3273 debug_assert_eq!(node.kind(), "enum_body");
3274 Ok(Self {
3275 span: ::treesitter_types::Span::from(node),
3276 name: {
3277 let mut cursor = node.walk();
3278 let mut items = ::std::vec::Vec::new();
3279 for child in node.children_by_field_name("name", &mut cursor) {
3280 items.push(<EnumBodyName as ::treesitter_types::FromNode>::from_node(
3281 child, src,
3282 )?);
3283 }
3284 items
3285 },
3286 children: {
3287 #[allow(clippy::suspicious_else_formatting)]
3288 let non_field_children = {
3289 let mut cursor = node.walk();
3290 let mut result = ::std::vec::Vec::new();
3291 if cursor.goto_first_child() {
3292 loop {
3293 if cursor.field_name().is_none()
3294 && cursor.node().is_named()
3295 && !cursor.node().is_extra()
3296 {
3297 result.push(cursor.node());
3298 }
3299 if !cursor.goto_next_sibling() {
3300 break;
3301 }
3302 }
3303 }
3304 result
3305 };
3306 let mut items = ::std::vec::Vec::new();
3307 for child in non_field_children {
3308 items.push(<EnumAssignment as ::treesitter_types::FromNode>::from_node(
3309 child, src,
3310 )?);
3311 }
3312 items
3313 },
3314 })
3315 }
3316}
3317impl ::treesitter_types::Spanned for EnumBody<'_> {
3318 fn span(&self) -> ::treesitter_types::Span {
3319 self.span
3320 }
3321}
3322#[derive(Debug, Clone, PartialEq, Eq)]
3323pub struct EnumDeclaration<'tree> {
3324 pub span: ::treesitter_types::Span,
3325 pub body: EnumBody<'tree>,
3326 pub name: Identifier<'tree>,
3327}
3328impl<'tree> ::treesitter_types::FromNode<'tree> for EnumDeclaration<'tree> {
3329 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3330 fn from_node(
3331 node: ::tree_sitter::Node<'tree>,
3332 src: &'tree [u8],
3333 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3334 debug_assert_eq!(node.kind(), "enum_declaration");
3335 Ok(Self {
3336 span: ::treesitter_types::Span::from(node),
3337 body: {
3338 let child = node
3339 .child_by_field_name("body")
3340 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
3341 <EnumBody as ::treesitter_types::FromNode>::from_node(child, src)?
3342 },
3343 name: {
3344 let child = node
3345 .child_by_field_name("name")
3346 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
3347 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)?
3348 },
3349 })
3350 }
3351}
3352impl ::treesitter_types::Spanned for EnumDeclaration<'_> {
3353 fn span(&self) -> ::treesitter_types::Span {
3354 self.span
3355 }
3356}
3357#[derive(Debug, Clone, PartialEq, Eq)]
3358pub struct ExistentialType<'tree> {
3359 pub span: ::treesitter_types::Span,
3360 text: &'tree str,
3361}
3362impl<'tree> ::treesitter_types::FromNode<'tree> for ExistentialType<'tree> {
3363 fn from_node(
3364 node: ::tree_sitter::Node<'tree>,
3365 src: &'tree [u8],
3366 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3367 debug_assert_eq!(node.kind(), "existential_type");
3368 Ok(Self {
3369 span: ::treesitter_types::Span::from(node),
3370 text: node.utf8_text(src)?,
3371 })
3372 }
3373}
3374impl<'tree> ::treesitter_types::LeafNode<'tree> for ExistentialType<'tree> {
3375 fn text(&self) -> &'tree str {
3376 self.text
3377 }
3378}
3379impl ::treesitter_types::Spanned for ExistentialType<'_> {
3380 fn span(&self) -> ::treesitter_types::Span {
3381 self.span
3382 }
3383}
3384#[derive(Debug, Clone, PartialEq, Eq)]
3385pub struct ExportClause<'tree> {
3386 pub span: ::treesitter_types::Span,
3387 pub children: ::std::vec::Vec<ExportSpecifier<'tree>>,
3388}
3389impl<'tree> ::treesitter_types::FromNode<'tree> for ExportClause<'tree> {
3390 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3391 fn from_node(
3392 node: ::tree_sitter::Node<'tree>,
3393 src: &'tree [u8],
3394 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3395 debug_assert_eq!(node.kind(), "export_clause");
3396 Ok(Self {
3397 span: ::treesitter_types::Span::from(node),
3398 children: {
3399 #[allow(clippy::suspicious_else_formatting)]
3400 let non_field_children = {
3401 let mut cursor = node.walk();
3402 let mut result = ::std::vec::Vec::new();
3403 if cursor.goto_first_child() {
3404 loop {
3405 if cursor.field_name().is_none()
3406 && cursor.node().is_named()
3407 && !cursor.node().is_extra()
3408 {
3409 result.push(cursor.node());
3410 }
3411 if !cursor.goto_next_sibling() {
3412 break;
3413 }
3414 }
3415 }
3416 result
3417 };
3418 let mut items = ::std::vec::Vec::new();
3419 for child in non_field_children {
3420 items.push(
3421 <ExportSpecifier as ::treesitter_types::FromNode>::from_node(child, src)?,
3422 );
3423 }
3424 items
3425 },
3426 })
3427 }
3428}
3429impl ::treesitter_types::Spanned for ExportClause<'_> {
3430 fn span(&self) -> ::treesitter_types::Span {
3431 self.span
3432 }
3433}
3434#[derive(Debug, Clone, PartialEq, Eq)]
3435pub struct ExportSpecifier<'tree> {
3436 pub span: ::treesitter_types::Span,
3437 pub alias: ::core::option::Option<ExportSpecifierAlias<'tree>>,
3438 pub name: ExportSpecifierName<'tree>,
3439}
3440impl<'tree> ::treesitter_types::FromNode<'tree> for ExportSpecifier<'tree> {
3441 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3442 fn from_node(
3443 node: ::tree_sitter::Node<'tree>,
3444 src: &'tree [u8],
3445 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3446 debug_assert_eq!(node.kind(), "export_specifier");
3447 Ok(Self {
3448 span: ::treesitter_types::Span::from(node),
3449 alias: match node.child_by_field_name("alias") {
3450 Some(child) => Some(
3451 <ExportSpecifierAlias as ::treesitter_types::FromNode>::from_node(child, src)?,
3452 ),
3453 None => None,
3454 },
3455 name: {
3456 let child = node
3457 .child_by_field_name("name")
3458 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
3459 <ExportSpecifierName as ::treesitter_types::FromNode>::from_node(child, src)?
3460 },
3461 })
3462 }
3463}
3464impl ::treesitter_types::Spanned for ExportSpecifier<'_> {
3465 fn span(&self) -> ::treesitter_types::Span {
3466 self.span
3467 }
3468}
3469#[derive(Debug, Clone, PartialEq, Eq)]
3470pub struct ExportStatement<'tree> {
3471 pub span: ::treesitter_types::Span,
3472 pub declaration: ::core::option::Option<Declaration<'tree>>,
3473 pub decorator: ::std::vec::Vec<Decorator<'tree>>,
3474 pub source: ::core::option::Option<String<'tree>>,
3475 pub value: ::core::option::Option<Expression<'tree>>,
3476 pub children: ::core::option::Option<ExportStatementChildren<'tree>>,
3477}
3478impl<'tree> ::treesitter_types::FromNode<'tree> for ExportStatement<'tree> {
3479 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3480 fn from_node(
3481 node: ::tree_sitter::Node<'tree>,
3482 src: &'tree [u8],
3483 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3484 debug_assert_eq!(node.kind(), "export_statement");
3485 Ok(Self {
3486 span: ::treesitter_types::Span::from(node),
3487 declaration: match node.child_by_field_name("declaration") {
3488 Some(child) => Some(<Declaration as ::treesitter_types::FromNode>::from_node(
3489 child, src,
3490 )?),
3491 None => None,
3492 },
3493 decorator: {
3494 let mut cursor = node.walk();
3495 let mut items = ::std::vec::Vec::new();
3496 for child in node.children_by_field_name("decorator", &mut cursor) {
3497 items.push(<Decorator as ::treesitter_types::FromNode>::from_node(
3498 child, src,
3499 )?);
3500 }
3501 items
3502 },
3503 source: match node.child_by_field_name("source") {
3504 Some(child) => Some(<String as ::treesitter_types::FromNode>::from_node(
3505 child, src,
3506 )?),
3507 None => None,
3508 },
3509 value: match node.child_by_field_name("value") {
3510 Some(child) => Some(<Expression as ::treesitter_types::FromNode>::from_node(
3511 child, src,
3512 )?),
3513 None => None,
3514 },
3515 children: {
3516 #[allow(clippy::suspicious_else_formatting)]
3517 let non_field_children = {
3518 let mut cursor = node.walk();
3519 let mut result = ::std::vec::Vec::new();
3520 if cursor.goto_first_child() {
3521 loop {
3522 if cursor.field_name().is_none()
3523 && cursor.node().is_named()
3524 && !cursor.node().is_extra()
3525 {
3526 result.push(cursor.node());
3527 }
3528 if !cursor.goto_next_sibling() {
3529 break;
3530 }
3531 }
3532 }
3533 result
3534 };
3535 match non_field_children.first() {
3536 Some(&child) => Some(
3537 <ExportStatementChildren as ::treesitter_types::FromNode>::from_node(
3538 child, src,
3539 )?,
3540 ),
3541 None => None,
3542 }
3543 },
3544 })
3545 }
3546}
3547impl ::treesitter_types::Spanned for ExportStatement<'_> {
3548 fn span(&self) -> ::treesitter_types::Span {
3549 self.span
3550 }
3551}
3552#[derive(Debug, Clone, PartialEq, Eq)]
3553pub struct ExpressionStatement<'tree> {
3554 pub span: ::treesitter_types::Span,
3555 pub children: ExpressionStatementChildren<'tree>,
3556}
3557impl<'tree> ::treesitter_types::FromNode<'tree> for ExpressionStatement<'tree> {
3558 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3559 fn from_node(
3560 node: ::tree_sitter::Node<'tree>,
3561 src: &'tree [u8],
3562 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3563 debug_assert_eq!(node.kind(), "expression_statement");
3564 Ok(Self {
3565 span: ::treesitter_types::Span::from(node),
3566 children: {
3567 #[allow(clippy::suspicious_else_formatting)]
3568 let non_field_children = {
3569 let mut cursor = node.walk();
3570 let mut result = ::std::vec::Vec::new();
3571 if cursor.goto_first_child() {
3572 loop {
3573 if cursor.field_name().is_none()
3574 && cursor.node().is_named()
3575 && !cursor.node().is_extra()
3576 {
3577 result.push(cursor.node());
3578 }
3579 if !cursor.goto_next_sibling() {
3580 break;
3581 }
3582 }
3583 }
3584 result
3585 };
3586 let child = if let Some(&c) = non_field_children.first() {
3587 c
3588 } else {
3589 let mut fallback_cursor = node.walk();
3590 let mut fallback_child = None;
3591 if fallback_cursor.goto_first_child() {
3592 loop {
3593 if fallback_cursor.field_name().is_none()
3594 && !fallback_cursor.node().is_extra()
3595 {
3596 let candidate = fallback_cursor.node();
3597 #[allow(clippy::needless_question_mark)]
3598 if (|| -> ::core::result::Result<
3599 _,
3600 ::treesitter_types::ParseError,
3601 > {
3602 let child = candidate;
3603 Ok(
3604 <ExpressionStatementChildren as ::treesitter_types::FromNode>::from_node(
3605 child,
3606 src,
3607 )?,
3608 )
3609 })()
3610 .is_ok()
3611 {
3612 fallback_child = Some(candidate);
3613 break;
3614 }
3615 }
3616 if !fallback_cursor.goto_next_sibling() {
3617 break;
3618 }
3619 }
3620 }
3621 if fallback_child.is_none() {
3622 let mut cursor2 = node.walk();
3623 if cursor2.goto_first_child() {
3624 loop {
3625 if cursor2.node().is_named() && !cursor2.node().is_extra() {
3626 let candidate = cursor2.node();
3627 #[allow(clippy::needless_question_mark)]
3628 if (|| -> ::core::result::Result<
3629 _,
3630 ::treesitter_types::ParseError,
3631 > {
3632 let child = candidate;
3633 Ok(
3634 <ExpressionStatementChildren as ::treesitter_types::FromNode>::from_node(
3635 child,
3636 src,
3637 )?,
3638 )
3639 })()
3640 .is_ok()
3641 {
3642 fallback_child = Some(candidate);
3643 break;
3644 }
3645 }
3646 if !cursor2.goto_next_sibling() {
3647 break;
3648 }
3649 }
3650 }
3651 }
3652 fallback_child.ok_or_else(|| {
3653 ::treesitter_types::ParseError::missing_field("children", node)
3654 })?
3655 };
3656 <ExpressionStatementChildren as ::treesitter_types::FromNode>::from_node(
3657 child, src,
3658 )?
3659 },
3660 })
3661 }
3662}
3663impl ::treesitter_types::Spanned for ExpressionStatement<'_> {
3664 fn span(&self) -> ::treesitter_types::Span {
3665 self.span
3666 }
3667}
3668#[derive(Debug, Clone, PartialEq, Eq)]
3669pub struct ExtendsClause<'tree> {
3670 pub span: ::treesitter_types::Span,
3671 pub type_arguments: ::std::vec::Vec<TypeArguments<'tree>>,
3672 pub value: ::std::vec::Vec<Expression<'tree>>,
3673}
3674impl<'tree> ::treesitter_types::FromNode<'tree> for ExtendsClause<'tree> {
3675 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3676 fn from_node(
3677 node: ::tree_sitter::Node<'tree>,
3678 src: &'tree [u8],
3679 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3680 debug_assert_eq!(node.kind(), "extends_clause");
3681 Ok(Self {
3682 span: ::treesitter_types::Span::from(node),
3683 type_arguments: {
3684 let mut cursor = node.walk();
3685 let mut items = ::std::vec::Vec::new();
3686 for child in node.children_by_field_name("type_arguments", &mut cursor) {
3687 items.push(<TypeArguments as ::treesitter_types::FromNode>::from_node(
3688 child, src,
3689 )?);
3690 }
3691 items
3692 },
3693 value: {
3694 let mut cursor = node.walk();
3695 let mut items = ::std::vec::Vec::new();
3696 for child in node.children_by_field_name("value", &mut cursor) {
3697 items.push(<Expression as ::treesitter_types::FromNode>::from_node(
3698 child, src,
3699 )?);
3700 }
3701 items
3702 },
3703 })
3704 }
3705}
3706impl ::treesitter_types::Spanned for ExtendsClause<'_> {
3707 fn span(&self) -> ::treesitter_types::Span {
3708 self.span
3709 }
3710}
3711#[derive(Debug, Clone, PartialEq, Eq)]
3712pub struct ExtendsTypeClause<'tree> {
3713 pub span: ::treesitter_types::Span,
3714 pub r#type: ::std::vec::Vec<ExtendsTypeClauseType<'tree>>,
3715}
3716impl<'tree> ::treesitter_types::FromNode<'tree> for ExtendsTypeClause<'tree> {
3717 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3718 fn from_node(
3719 node: ::tree_sitter::Node<'tree>,
3720 src: &'tree [u8],
3721 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3722 debug_assert_eq!(node.kind(), "extends_type_clause");
3723 Ok(Self {
3724 span: ::treesitter_types::Span::from(node),
3725 r#type: {
3726 let mut cursor = node.walk();
3727 let mut items = ::std::vec::Vec::new();
3728 for child in node.children_by_field_name("type", &mut cursor) {
3729 items.push(
3730 <ExtendsTypeClauseType as ::treesitter_types::FromNode>::from_node(
3731 child, src,
3732 )?,
3733 );
3734 }
3735 items
3736 },
3737 })
3738 }
3739}
3740impl ::treesitter_types::Spanned for ExtendsTypeClause<'_> {
3741 fn span(&self) -> ::treesitter_types::Span {
3742 self.span
3743 }
3744}
3745#[derive(Debug, Clone, PartialEq, Eq)]
3746pub struct FinallyClause<'tree> {
3747 pub span: ::treesitter_types::Span,
3748 pub body: StatementBlock<'tree>,
3749}
3750impl<'tree> ::treesitter_types::FromNode<'tree> for FinallyClause<'tree> {
3751 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3752 fn from_node(
3753 node: ::tree_sitter::Node<'tree>,
3754 src: &'tree [u8],
3755 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3756 debug_assert_eq!(node.kind(), "finally_clause");
3757 Ok(Self {
3758 span: ::treesitter_types::Span::from(node),
3759 body: {
3760 let child = node
3761 .child_by_field_name("body")
3762 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
3763 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)?
3764 },
3765 })
3766 }
3767}
3768impl ::treesitter_types::Spanned for FinallyClause<'_> {
3769 fn span(&self) -> ::treesitter_types::Span {
3770 self.span
3771 }
3772}
3773#[derive(Debug, Clone, PartialEq, Eq)]
3774pub struct FlowMaybeType<'tree> {
3775 pub span: ::treesitter_types::Span,
3776 pub children: PrimaryType<'tree>,
3777}
3778impl<'tree> ::treesitter_types::FromNode<'tree> for FlowMaybeType<'tree> {
3779 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3780 fn from_node(
3781 node: ::tree_sitter::Node<'tree>,
3782 src: &'tree [u8],
3783 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3784 debug_assert_eq!(node.kind(), "flow_maybe_type");
3785 Ok(Self {
3786 span: ::treesitter_types::Span::from(node),
3787 children: {
3788 #[allow(clippy::suspicious_else_formatting)]
3789 let non_field_children = {
3790 let mut cursor = node.walk();
3791 let mut result = ::std::vec::Vec::new();
3792 if cursor.goto_first_child() {
3793 loop {
3794 if cursor.field_name().is_none()
3795 && cursor.node().is_named()
3796 && !cursor.node().is_extra()
3797 {
3798 result.push(cursor.node());
3799 }
3800 if !cursor.goto_next_sibling() {
3801 break;
3802 }
3803 }
3804 }
3805 result
3806 };
3807 let child = if let Some(&c) = non_field_children.first() {
3808 c
3809 } else {
3810 let mut fallback_cursor = node.walk();
3811 let mut fallback_child = None;
3812 if fallback_cursor.goto_first_child() {
3813 loop {
3814 if fallback_cursor.field_name().is_none()
3815 && !fallback_cursor.node().is_extra()
3816 {
3817 let candidate = fallback_cursor.node();
3818 #[allow(clippy::needless_question_mark)]
3819 if (|| -> ::core::result::Result<
3820 _,
3821 ::treesitter_types::ParseError,
3822 > {
3823 let child = candidate;
3824 Ok(
3825 <PrimaryType as ::treesitter_types::FromNode>::from_node(
3826 child,
3827 src,
3828 )?,
3829 )
3830 })()
3831 .is_ok()
3832 {
3833 fallback_child = Some(candidate);
3834 break;
3835 }
3836 }
3837 if !fallback_cursor.goto_next_sibling() {
3838 break;
3839 }
3840 }
3841 }
3842 if fallback_child.is_none() {
3843 let mut cursor2 = node.walk();
3844 if cursor2.goto_first_child() {
3845 loop {
3846 if cursor2.node().is_named() && !cursor2.node().is_extra() {
3847 let candidate = cursor2.node();
3848 #[allow(clippy::needless_question_mark)]
3849 if (|| -> ::core::result::Result<
3850 _,
3851 ::treesitter_types::ParseError,
3852 > {
3853 let child = candidate;
3854 Ok(
3855 <PrimaryType as ::treesitter_types::FromNode>::from_node(
3856 child,
3857 src,
3858 )?,
3859 )
3860 })()
3861 .is_ok()
3862 {
3863 fallback_child = Some(candidate);
3864 break;
3865 }
3866 }
3867 if !cursor2.goto_next_sibling() {
3868 break;
3869 }
3870 }
3871 }
3872 }
3873 fallback_child.ok_or_else(|| {
3874 ::treesitter_types::ParseError::missing_field("children", node)
3875 })?
3876 };
3877 <PrimaryType as ::treesitter_types::FromNode>::from_node(child, src)?
3878 },
3879 })
3880 }
3881}
3882impl ::treesitter_types::Spanned for FlowMaybeType<'_> {
3883 fn span(&self) -> ::treesitter_types::Span {
3884 self.span
3885 }
3886}
3887#[derive(Debug, Clone, PartialEq, Eq)]
3888pub struct ForInStatement<'tree> {
3889 pub span: ::treesitter_types::Span,
3890 pub body: Statement<'tree>,
3891 pub kind: ::core::option::Option<ForInStatementKind>,
3892 pub left: ForInStatementLeft<'tree>,
3893 pub operator: ForInStatementOperator,
3894 pub right: ForInStatementRight<'tree>,
3895 pub value: ::core::option::Option<Expression<'tree>>,
3896}
3897impl<'tree> ::treesitter_types::FromNode<'tree> for ForInStatement<'tree> {
3898 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3899 fn from_node(
3900 node: ::tree_sitter::Node<'tree>,
3901 src: &'tree [u8],
3902 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3903 debug_assert_eq!(node.kind(), "for_in_statement");
3904 Ok(Self {
3905 span: ::treesitter_types::Span::from(node),
3906 body: {
3907 let child = node
3908 .child_by_field_name("body")
3909 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
3910 <Statement as ::treesitter_types::FromNode>::from_node(child, src)?
3911 },
3912 kind: match node.child_by_field_name("kind") {
3913 Some(child) => Some(
3914 <ForInStatementKind as ::treesitter_types::FromNode>::from_node(child, src)?,
3915 ),
3916 None => None,
3917 },
3918 left: {
3919 let child = node
3920 .child_by_field_name("left")
3921 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
3922 <ForInStatementLeft as ::treesitter_types::FromNode>::from_node(child, src)?
3923 },
3924 operator: {
3925 let child = node.child_by_field_name("operator").ok_or_else(|| {
3926 ::treesitter_types::ParseError::missing_field("operator", node)
3927 })?;
3928 <ForInStatementOperator as ::treesitter_types::FromNode>::from_node(child, src)?
3929 },
3930 right: {
3931 let child = node
3932 .child_by_field_name("right")
3933 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
3934 <ForInStatementRight as ::treesitter_types::FromNode>::from_node(child, src)?
3935 },
3936 value: match node.child_by_field_name("value") {
3937 Some(child) => Some(<Expression as ::treesitter_types::FromNode>::from_node(
3938 child, src,
3939 )?),
3940 None => None,
3941 },
3942 })
3943 }
3944}
3945impl ::treesitter_types::Spanned for ForInStatement<'_> {
3946 fn span(&self) -> ::treesitter_types::Span {
3947 self.span
3948 }
3949}
3950#[derive(Debug, Clone, PartialEq, Eq)]
3951pub struct ForStatement<'tree> {
3952 pub span: ::treesitter_types::Span,
3953 pub body: Statement<'tree>,
3954 pub condition: ::std::vec::Vec<ForStatementCondition<'tree>>,
3955 pub increment: ::core::option::Option<ForStatementIncrement<'tree>>,
3956 pub initializer: ForStatementInitializer<'tree>,
3957}
3958impl<'tree> ::treesitter_types::FromNode<'tree> for ForStatement<'tree> {
3959 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3960 fn from_node(
3961 node: ::tree_sitter::Node<'tree>,
3962 src: &'tree [u8],
3963 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3964 debug_assert_eq!(node.kind(), "for_statement");
3965 Ok(Self {
3966 span: ::treesitter_types::Span::from(node),
3967 body: {
3968 let child = node
3969 .child_by_field_name("body")
3970 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
3971 <Statement as ::treesitter_types::FromNode>::from_node(child, src)?
3972 },
3973 condition: {
3974 let mut cursor = node.walk();
3975 let mut items = ::std::vec::Vec::new();
3976 for child in node.children_by_field_name("condition", &mut cursor) {
3977 items.push(
3978 <ForStatementCondition as ::treesitter_types::FromNode>::from_node(
3979 child, src,
3980 )?,
3981 );
3982 }
3983 items
3984 },
3985 increment: match node.child_by_field_name("increment") {
3986 Some(child) => Some(
3987 <ForStatementIncrement as ::treesitter_types::FromNode>::from_node(child, src)?,
3988 ),
3989 None => None,
3990 },
3991 initializer: {
3992 let child = node.child_by_field_name("initializer").ok_or_else(|| {
3993 ::treesitter_types::ParseError::missing_field("initializer", node)
3994 })?;
3995 <ForStatementInitializer as ::treesitter_types::FromNode>::from_node(child, src)?
3996 },
3997 })
3998 }
3999}
4000impl ::treesitter_types::Spanned for ForStatement<'_> {
4001 fn span(&self) -> ::treesitter_types::Span {
4002 self.span
4003 }
4004}
4005#[derive(Debug, Clone, PartialEq, Eq)]
4006pub struct FormalParameters<'tree> {
4007 pub span: ::treesitter_types::Span,
4008 pub children: ::std::vec::Vec<FormalParametersChildren<'tree>>,
4009}
4010impl<'tree> ::treesitter_types::FromNode<'tree> for FormalParameters<'tree> {
4011 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4012 fn from_node(
4013 node: ::tree_sitter::Node<'tree>,
4014 src: &'tree [u8],
4015 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4016 debug_assert_eq!(node.kind(), "formal_parameters");
4017 Ok(Self {
4018 span: ::treesitter_types::Span::from(node),
4019 children: {
4020 #[allow(clippy::suspicious_else_formatting)]
4021 let non_field_children = {
4022 let mut cursor = node.walk();
4023 let mut result = ::std::vec::Vec::new();
4024 if cursor.goto_first_child() {
4025 loop {
4026 if cursor.field_name().is_none()
4027 && cursor.node().is_named()
4028 && !cursor.node().is_extra()
4029 {
4030 result.push(cursor.node());
4031 }
4032 if !cursor.goto_next_sibling() {
4033 break;
4034 }
4035 }
4036 }
4037 result
4038 };
4039 let mut items = ::std::vec::Vec::new();
4040 for child in non_field_children {
4041 items.push(
4042 <FormalParametersChildren as ::treesitter_types::FromNode>::from_node(
4043 child, src,
4044 )?,
4045 );
4046 }
4047 items
4048 },
4049 })
4050 }
4051}
4052impl ::treesitter_types::Spanned for FormalParameters<'_> {
4053 fn span(&self) -> ::treesitter_types::Span {
4054 self.span
4055 }
4056}
4057#[derive(Debug, Clone, PartialEq, Eq)]
4058pub struct FunctionDeclaration<'tree> {
4059 pub span: ::treesitter_types::Span,
4060 pub body: StatementBlock<'tree>,
4061 pub name: Identifier<'tree>,
4062 pub parameters: FormalParameters<'tree>,
4063 pub return_type: ::core::option::Option<FunctionDeclarationReturnType<'tree>>,
4064 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
4065}
4066impl<'tree> ::treesitter_types::FromNode<'tree> for FunctionDeclaration<'tree> {
4067 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4068 fn from_node(
4069 node: ::tree_sitter::Node<'tree>,
4070 src: &'tree [u8],
4071 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4072 debug_assert_eq!(node.kind(), "function_declaration");
4073 Ok(Self {
4074 span: ::treesitter_types::Span::from(node),
4075 body: {
4076 let child = node
4077 .child_by_field_name("body")
4078 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
4079 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)?
4080 },
4081 name: {
4082 let child = node
4083 .child_by_field_name("name")
4084 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
4085 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)?
4086 },
4087 parameters: {
4088 let child = node.child_by_field_name("parameters").ok_or_else(|| {
4089 ::treesitter_types::ParseError::missing_field("parameters", node)
4090 })?;
4091 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)?
4092 },
4093 return_type: match node.child_by_field_name("return_type") {
4094 Some(child) => Some(
4095 <FunctionDeclarationReturnType as ::treesitter_types::FromNode>::from_node(
4096 child, src,
4097 )?,
4098 ),
4099 None => None,
4100 },
4101 type_parameters: match node.child_by_field_name("type_parameters") {
4102 Some(child) => Some(<TypeParameters as ::treesitter_types::FromNode>::from_node(
4103 child, src,
4104 )?),
4105 None => None,
4106 },
4107 })
4108 }
4109}
4110impl ::treesitter_types::Spanned for FunctionDeclaration<'_> {
4111 fn span(&self) -> ::treesitter_types::Span {
4112 self.span
4113 }
4114}
4115#[derive(Debug, Clone, PartialEq, Eq)]
4116pub struct FunctionExpression<'tree> {
4117 pub span: ::treesitter_types::Span,
4118 pub body: StatementBlock<'tree>,
4119 pub name: ::core::option::Option<Identifier<'tree>>,
4120 pub parameters: FormalParameters<'tree>,
4121 pub return_type: ::core::option::Option<FunctionExpressionReturnType<'tree>>,
4122 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
4123}
4124impl<'tree> ::treesitter_types::FromNode<'tree> for FunctionExpression<'tree> {
4125 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4126 fn from_node(
4127 node: ::tree_sitter::Node<'tree>,
4128 src: &'tree [u8],
4129 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4130 debug_assert_eq!(node.kind(), "function_expression");
4131 Ok(Self {
4132 span: ::treesitter_types::Span::from(node),
4133 body: {
4134 let child = node
4135 .child_by_field_name("body")
4136 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
4137 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)?
4138 },
4139 name: match node.child_by_field_name("name") {
4140 Some(child) => Some(<Identifier as ::treesitter_types::FromNode>::from_node(
4141 child, src,
4142 )?),
4143 None => None,
4144 },
4145 parameters: {
4146 let child = node.child_by_field_name("parameters").ok_or_else(|| {
4147 ::treesitter_types::ParseError::missing_field("parameters", node)
4148 })?;
4149 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)?
4150 },
4151 return_type: match node.child_by_field_name("return_type") {
4152 Some(child) => Some(
4153 <FunctionExpressionReturnType as ::treesitter_types::FromNode>::from_node(
4154 child, src,
4155 )?,
4156 ),
4157 None => None,
4158 },
4159 type_parameters: match node.child_by_field_name("type_parameters") {
4160 Some(child) => Some(<TypeParameters as ::treesitter_types::FromNode>::from_node(
4161 child, src,
4162 )?),
4163 None => None,
4164 },
4165 })
4166 }
4167}
4168impl ::treesitter_types::Spanned for FunctionExpression<'_> {
4169 fn span(&self) -> ::treesitter_types::Span {
4170 self.span
4171 }
4172}
4173#[derive(Debug, Clone, PartialEq, Eq)]
4174pub struct FunctionSignature<'tree> {
4175 pub span: ::treesitter_types::Span,
4176 pub name: Identifier<'tree>,
4177 pub parameters: FormalParameters<'tree>,
4178 pub return_type: ::core::option::Option<FunctionSignatureReturnType<'tree>>,
4179 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
4180}
4181impl<'tree> ::treesitter_types::FromNode<'tree> for FunctionSignature<'tree> {
4182 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4183 fn from_node(
4184 node: ::tree_sitter::Node<'tree>,
4185 src: &'tree [u8],
4186 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4187 debug_assert_eq!(node.kind(), "function_signature");
4188 Ok(Self {
4189 span: ::treesitter_types::Span::from(node),
4190 name: {
4191 let child = node
4192 .child_by_field_name("name")
4193 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
4194 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)?
4195 },
4196 parameters: {
4197 let child = node.child_by_field_name("parameters").ok_or_else(|| {
4198 ::treesitter_types::ParseError::missing_field("parameters", node)
4199 })?;
4200 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)?
4201 },
4202 return_type: match node.child_by_field_name("return_type") {
4203 Some(child) => Some(
4204 <FunctionSignatureReturnType as ::treesitter_types::FromNode>::from_node(
4205 child, src,
4206 )?,
4207 ),
4208 None => None,
4209 },
4210 type_parameters: match node.child_by_field_name("type_parameters") {
4211 Some(child) => Some(<TypeParameters as ::treesitter_types::FromNode>::from_node(
4212 child, src,
4213 )?),
4214 None => None,
4215 },
4216 })
4217 }
4218}
4219impl ::treesitter_types::Spanned for FunctionSignature<'_> {
4220 fn span(&self) -> ::treesitter_types::Span {
4221 self.span
4222 }
4223}
4224#[derive(Debug, Clone, PartialEq, Eq)]
4225pub struct FunctionType<'tree> {
4226 pub span: ::treesitter_types::Span,
4227 pub parameters: FormalParameters<'tree>,
4228 pub return_type: FunctionTypeReturnType<'tree>,
4229 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
4230}
4231impl<'tree> ::treesitter_types::FromNode<'tree> for FunctionType<'tree> {
4232 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4233 fn from_node(
4234 node: ::tree_sitter::Node<'tree>,
4235 src: &'tree [u8],
4236 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4237 debug_assert_eq!(node.kind(), "function_type");
4238 Ok(Self {
4239 span: ::treesitter_types::Span::from(node),
4240 parameters: {
4241 let child = node.child_by_field_name("parameters").ok_or_else(|| {
4242 ::treesitter_types::ParseError::missing_field("parameters", node)
4243 })?;
4244 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)?
4245 },
4246 return_type: {
4247 let child = node.child_by_field_name("return_type").ok_or_else(|| {
4248 ::treesitter_types::ParseError::missing_field("return_type", node)
4249 })?;
4250 <FunctionTypeReturnType as ::treesitter_types::FromNode>::from_node(child, src)?
4251 },
4252 type_parameters: match node.child_by_field_name("type_parameters") {
4253 Some(child) => Some(<TypeParameters as ::treesitter_types::FromNode>::from_node(
4254 child, src,
4255 )?),
4256 None => None,
4257 },
4258 })
4259 }
4260}
4261impl ::treesitter_types::Spanned for FunctionType<'_> {
4262 fn span(&self) -> ::treesitter_types::Span {
4263 self.span
4264 }
4265}
4266#[derive(Debug, Clone, PartialEq, Eq)]
4267pub struct GeneratorFunction<'tree> {
4268 pub span: ::treesitter_types::Span,
4269 pub body: StatementBlock<'tree>,
4270 pub name: ::core::option::Option<Identifier<'tree>>,
4271 pub parameters: FormalParameters<'tree>,
4272 pub return_type: ::core::option::Option<GeneratorFunctionReturnType<'tree>>,
4273 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
4274}
4275impl<'tree> ::treesitter_types::FromNode<'tree> for GeneratorFunction<'tree> {
4276 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4277 fn from_node(
4278 node: ::tree_sitter::Node<'tree>,
4279 src: &'tree [u8],
4280 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4281 debug_assert_eq!(node.kind(), "generator_function");
4282 Ok(Self {
4283 span: ::treesitter_types::Span::from(node),
4284 body: {
4285 let child = node
4286 .child_by_field_name("body")
4287 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
4288 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)?
4289 },
4290 name: match node.child_by_field_name("name") {
4291 Some(child) => Some(<Identifier as ::treesitter_types::FromNode>::from_node(
4292 child, src,
4293 )?),
4294 None => None,
4295 },
4296 parameters: {
4297 let child = node.child_by_field_name("parameters").ok_or_else(|| {
4298 ::treesitter_types::ParseError::missing_field("parameters", node)
4299 })?;
4300 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)?
4301 },
4302 return_type: match node.child_by_field_name("return_type") {
4303 Some(child) => Some(
4304 <GeneratorFunctionReturnType as ::treesitter_types::FromNode>::from_node(
4305 child, src,
4306 )?,
4307 ),
4308 None => None,
4309 },
4310 type_parameters: match node.child_by_field_name("type_parameters") {
4311 Some(child) => Some(<TypeParameters as ::treesitter_types::FromNode>::from_node(
4312 child, src,
4313 )?),
4314 None => None,
4315 },
4316 })
4317 }
4318}
4319impl ::treesitter_types::Spanned for GeneratorFunction<'_> {
4320 fn span(&self) -> ::treesitter_types::Span {
4321 self.span
4322 }
4323}
4324#[derive(Debug, Clone, PartialEq, Eq)]
4325pub struct GeneratorFunctionDeclaration<'tree> {
4326 pub span: ::treesitter_types::Span,
4327 pub body: StatementBlock<'tree>,
4328 pub name: Identifier<'tree>,
4329 pub parameters: FormalParameters<'tree>,
4330 pub return_type: ::core::option::Option<GeneratorFunctionDeclarationReturnType<'tree>>,
4331 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
4332}
4333impl<'tree> ::treesitter_types::FromNode<'tree> for GeneratorFunctionDeclaration<'tree> {
4334 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4335 fn from_node(
4336 node: ::tree_sitter::Node<'tree>,
4337 src: &'tree [u8],
4338 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4339 debug_assert_eq!(node.kind(), "generator_function_declaration");
4340 Ok(Self {
4341 span: ::treesitter_types::Span::from(node),
4342 body: {
4343 let child = node
4344 .child_by_field_name("body")
4345 .ok_or_else(|| ::treesitter_types::ParseError::missing_field(
4346 "body",
4347 node,
4348 ))?;
4349 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)?
4350 },
4351 name: {
4352 let child = node
4353 .child_by_field_name("name")
4354 .ok_or_else(|| ::treesitter_types::ParseError::missing_field(
4355 "name",
4356 node,
4357 ))?;
4358 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)?
4359 },
4360 parameters: {
4361 let child = node
4362 .child_by_field_name("parameters")
4363 .ok_or_else(|| ::treesitter_types::ParseError::missing_field(
4364 "parameters",
4365 node,
4366 ))?;
4367 <FormalParameters as ::treesitter_types::FromNode>::from_node(
4368 child,
4369 src,
4370 )?
4371 },
4372 return_type: match node.child_by_field_name("return_type") {
4373 Some(child) => {
4374 Some(
4375 <GeneratorFunctionDeclarationReturnType as ::treesitter_types::FromNode>::from_node(
4376 child,
4377 src,
4378 )?,
4379 )
4380 }
4381 None => None,
4382 },
4383 type_parameters: match node.child_by_field_name("type_parameters") {
4384 Some(child) => {
4385 Some(
4386 <TypeParameters as ::treesitter_types::FromNode>::from_node(
4387 child,
4388 src,
4389 )?,
4390 )
4391 }
4392 None => None,
4393 },
4394 })
4395 }
4396}
4397impl ::treesitter_types::Spanned for GeneratorFunctionDeclaration<'_> {
4398 fn span(&self) -> ::treesitter_types::Span {
4399 self.span
4400 }
4401}
4402#[derive(Debug, Clone, PartialEq, Eq)]
4403pub struct GenericType<'tree> {
4404 pub span: ::treesitter_types::Span,
4405 pub name: GenericTypeName<'tree>,
4406 pub type_arguments: TypeArguments<'tree>,
4407}
4408impl<'tree> ::treesitter_types::FromNode<'tree> for GenericType<'tree> {
4409 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4410 fn from_node(
4411 node: ::tree_sitter::Node<'tree>,
4412 src: &'tree [u8],
4413 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4414 debug_assert_eq!(node.kind(), "generic_type");
4415 Ok(Self {
4416 span: ::treesitter_types::Span::from(node),
4417 name: {
4418 let child = node
4419 .child_by_field_name("name")
4420 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
4421 <GenericTypeName as ::treesitter_types::FromNode>::from_node(child, src)?
4422 },
4423 type_arguments: {
4424 let child = node.child_by_field_name("type_arguments").ok_or_else(|| {
4425 ::treesitter_types::ParseError::missing_field("type_arguments", node)
4426 })?;
4427 <TypeArguments as ::treesitter_types::FromNode>::from_node(child, src)?
4428 },
4429 })
4430 }
4431}
4432impl ::treesitter_types::Spanned for GenericType<'_> {
4433 fn span(&self) -> ::treesitter_types::Span {
4434 self.span
4435 }
4436}
4437#[derive(Debug, Clone, PartialEq, Eq)]
4438pub struct Identifier<'tree> {
4439 pub span: ::treesitter_types::Span,
4440 text: &'tree str,
4441}
4442impl<'tree> ::treesitter_types::FromNode<'tree> for Identifier<'tree> {
4443 fn from_node(
4444 node: ::tree_sitter::Node<'tree>,
4445 src: &'tree [u8],
4446 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4447 debug_assert_eq!(node.kind(), "identifier");
4448 Ok(Self {
4449 span: ::treesitter_types::Span::from(node),
4450 text: node.utf8_text(src)?,
4451 })
4452 }
4453}
4454impl<'tree> ::treesitter_types::LeafNode<'tree> for Identifier<'tree> {
4455 fn text(&self) -> &'tree str {
4456 self.text
4457 }
4458}
4459impl ::treesitter_types::Spanned for Identifier<'_> {
4460 fn span(&self) -> ::treesitter_types::Span {
4461 self.span
4462 }
4463}
4464#[derive(Debug, Clone, PartialEq, Eq)]
4465pub struct IfStatement<'tree> {
4466 pub span: ::treesitter_types::Span,
4467 pub alternative: ::core::option::Option<ElseClause<'tree>>,
4468 pub condition: ParenthesizedExpression<'tree>,
4469 pub consequence: Statement<'tree>,
4470}
4471impl<'tree> ::treesitter_types::FromNode<'tree> for IfStatement<'tree> {
4472 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4473 fn from_node(
4474 node: ::tree_sitter::Node<'tree>,
4475 src: &'tree [u8],
4476 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4477 debug_assert_eq!(node.kind(), "if_statement");
4478 Ok(Self {
4479 span: ::treesitter_types::Span::from(node),
4480 alternative: match node.child_by_field_name("alternative") {
4481 Some(child) => Some(<ElseClause as ::treesitter_types::FromNode>::from_node(
4482 child, src,
4483 )?),
4484 None => None,
4485 },
4486 condition: {
4487 let child = node.child_by_field_name("condition").ok_or_else(|| {
4488 ::treesitter_types::ParseError::missing_field("condition", node)
4489 })?;
4490 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(child, src)?
4491 },
4492 consequence: {
4493 let child = node.child_by_field_name("consequence").ok_or_else(|| {
4494 ::treesitter_types::ParseError::missing_field("consequence", node)
4495 })?;
4496 <Statement as ::treesitter_types::FromNode>::from_node(child, src)?
4497 },
4498 })
4499 }
4500}
4501impl ::treesitter_types::Spanned for IfStatement<'_> {
4502 fn span(&self) -> ::treesitter_types::Span {
4503 self.span
4504 }
4505}
4506#[derive(Debug, Clone, PartialEq, Eq)]
4507pub struct ImplementsClause<'tree> {
4508 pub span: ::treesitter_types::Span,
4509 pub children: ::std::vec::Vec<Type<'tree>>,
4510}
4511impl<'tree> ::treesitter_types::FromNode<'tree> for ImplementsClause<'tree> {
4512 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4513 fn from_node(
4514 node: ::tree_sitter::Node<'tree>,
4515 src: &'tree [u8],
4516 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4517 debug_assert_eq!(node.kind(), "implements_clause");
4518 Ok(Self {
4519 span: ::treesitter_types::Span::from(node),
4520 children: {
4521 #[allow(clippy::suspicious_else_formatting)]
4522 let non_field_children = {
4523 let mut cursor = node.walk();
4524 let mut result = ::std::vec::Vec::new();
4525 if cursor.goto_first_child() {
4526 loop {
4527 if cursor.field_name().is_none()
4528 && cursor.node().is_named()
4529 && !cursor.node().is_extra()
4530 {
4531 result.push(cursor.node());
4532 }
4533 if !cursor.goto_next_sibling() {
4534 break;
4535 }
4536 }
4537 }
4538 result
4539 };
4540 let mut items = ::std::vec::Vec::new();
4541 for child in non_field_children {
4542 items.push(<Type as ::treesitter_types::FromNode>::from_node(
4543 child, src,
4544 )?);
4545 }
4546 items
4547 },
4548 })
4549 }
4550}
4551impl ::treesitter_types::Spanned for ImplementsClause<'_> {
4552 fn span(&self) -> ::treesitter_types::Span {
4553 self.span
4554 }
4555}
4556#[derive(Debug, Clone, PartialEq, Eq)]
4557pub struct Import<'tree> {
4558 pub span: ::treesitter_types::Span,
4559 text: &'tree str,
4560}
4561impl<'tree> ::treesitter_types::FromNode<'tree> for Import<'tree> {
4562 fn from_node(
4563 node: ::tree_sitter::Node<'tree>,
4564 src: &'tree [u8],
4565 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4566 debug_assert_eq!(node.kind(), "import");
4567 Ok(Self {
4568 span: ::treesitter_types::Span::from(node),
4569 text: node.utf8_text(src)?,
4570 })
4571 }
4572}
4573impl<'tree> ::treesitter_types::LeafNode<'tree> for Import<'tree> {
4574 fn text(&self) -> &'tree str {
4575 self.text
4576 }
4577}
4578impl ::treesitter_types::Spanned for Import<'_> {
4579 fn span(&self) -> ::treesitter_types::Span {
4580 self.span
4581 }
4582}
4583#[derive(Debug, Clone, PartialEq, Eq)]
4584pub struct ImportAlias<'tree> {
4585 pub span: ::treesitter_types::Span,
4586 pub children: ::std::vec::Vec<ImportAliasChildren<'tree>>,
4587}
4588impl<'tree> ::treesitter_types::FromNode<'tree> for ImportAlias<'tree> {
4589 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4590 fn from_node(
4591 node: ::tree_sitter::Node<'tree>,
4592 src: &'tree [u8],
4593 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4594 debug_assert_eq!(node.kind(), "import_alias");
4595 Ok(Self {
4596 span: ::treesitter_types::Span::from(node),
4597 children: {
4598 #[allow(clippy::suspicious_else_formatting)]
4599 let non_field_children = {
4600 let mut cursor = node.walk();
4601 let mut result = ::std::vec::Vec::new();
4602 if cursor.goto_first_child() {
4603 loop {
4604 if cursor.field_name().is_none()
4605 && cursor.node().is_named()
4606 && !cursor.node().is_extra()
4607 {
4608 result.push(cursor.node());
4609 }
4610 if !cursor.goto_next_sibling() {
4611 break;
4612 }
4613 }
4614 }
4615 result
4616 };
4617 let mut items = ::std::vec::Vec::new();
4618 for child in non_field_children {
4619 items.push(
4620 <ImportAliasChildren as ::treesitter_types::FromNode>::from_node(
4621 child, src,
4622 )?,
4623 );
4624 }
4625 items
4626 },
4627 })
4628 }
4629}
4630impl ::treesitter_types::Spanned for ImportAlias<'_> {
4631 fn span(&self) -> ::treesitter_types::Span {
4632 self.span
4633 }
4634}
4635#[derive(Debug, Clone, PartialEq, Eq)]
4636pub struct ImportAttribute<'tree> {
4637 pub span: ::treesitter_types::Span,
4638 pub children: Object<'tree>,
4639}
4640impl<'tree> ::treesitter_types::FromNode<'tree> for ImportAttribute<'tree> {
4641 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4642 fn from_node(
4643 node: ::tree_sitter::Node<'tree>,
4644 src: &'tree [u8],
4645 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4646 debug_assert_eq!(node.kind(), "import_attribute");
4647 Ok(Self {
4648 span: ::treesitter_types::Span::from(node),
4649 children: {
4650 #[allow(clippy::suspicious_else_formatting)]
4651 let non_field_children = {
4652 let mut cursor = node.walk();
4653 let mut result = ::std::vec::Vec::new();
4654 if cursor.goto_first_child() {
4655 loop {
4656 if cursor.field_name().is_none()
4657 && cursor.node().is_named()
4658 && !cursor.node().is_extra()
4659 {
4660 result.push(cursor.node());
4661 }
4662 if !cursor.goto_next_sibling() {
4663 break;
4664 }
4665 }
4666 }
4667 result
4668 };
4669 let child = if let Some(&c) = non_field_children.first() {
4670 c
4671 } else {
4672 let mut fallback_cursor = node.walk();
4673 let mut fallback_child = None;
4674 if fallback_cursor.goto_first_child() {
4675 loop {
4676 if fallback_cursor.field_name().is_none()
4677 && !fallback_cursor.node().is_extra()
4678 {
4679 let candidate = fallback_cursor.node();
4680 #[allow(clippy::needless_question_mark)]
4681 if (|| -> ::core::result::Result<
4682 _,
4683 ::treesitter_types::ParseError,
4684 > {
4685 let child = candidate;
4686 Ok(
4687 <Object as ::treesitter_types::FromNode>::from_node(
4688 child,
4689 src,
4690 )?,
4691 )
4692 })()
4693 .is_ok()
4694 {
4695 fallback_child = Some(candidate);
4696 break;
4697 }
4698 }
4699 if !fallback_cursor.goto_next_sibling() {
4700 break;
4701 }
4702 }
4703 }
4704 if fallback_child.is_none() {
4705 let mut cursor2 = node.walk();
4706 if cursor2.goto_first_child() {
4707 loop {
4708 if cursor2.node().is_named() && !cursor2.node().is_extra() {
4709 let candidate = cursor2.node();
4710 #[allow(clippy::needless_question_mark)]
4711 if (|| -> ::core::result::Result<
4712 _,
4713 ::treesitter_types::ParseError,
4714 > {
4715 let child = candidate;
4716 Ok(
4717 <Object as ::treesitter_types::FromNode>::from_node(
4718 child,
4719 src,
4720 )?,
4721 )
4722 })()
4723 .is_ok()
4724 {
4725 fallback_child = Some(candidate);
4726 break;
4727 }
4728 }
4729 if !cursor2.goto_next_sibling() {
4730 break;
4731 }
4732 }
4733 }
4734 }
4735 fallback_child.ok_or_else(|| {
4736 ::treesitter_types::ParseError::missing_field("children", node)
4737 })?
4738 };
4739 <Object as ::treesitter_types::FromNode>::from_node(child, src)?
4740 },
4741 })
4742 }
4743}
4744impl ::treesitter_types::Spanned for ImportAttribute<'_> {
4745 fn span(&self) -> ::treesitter_types::Span {
4746 self.span
4747 }
4748}
4749#[derive(Debug, Clone, PartialEq, Eq)]
4750pub struct ImportClause<'tree> {
4751 pub span: ::treesitter_types::Span,
4752 pub children: ::std::vec::Vec<ImportClauseChildren<'tree>>,
4753}
4754impl<'tree> ::treesitter_types::FromNode<'tree> for ImportClause<'tree> {
4755 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4756 fn from_node(
4757 node: ::tree_sitter::Node<'tree>,
4758 src: &'tree [u8],
4759 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4760 debug_assert_eq!(node.kind(), "import_clause");
4761 Ok(Self {
4762 span: ::treesitter_types::Span::from(node),
4763 children: {
4764 #[allow(clippy::suspicious_else_formatting)]
4765 let non_field_children = {
4766 let mut cursor = node.walk();
4767 let mut result = ::std::vec::Vec::new();
4768 if cursor.goto_first_child() {
4769 loop {
4770 if cursor.field_name().is_none()
4771 && cursor.node().is_named()
4772 && !cursor.node().is_extra()
4773 {
4774 result.push(cursor.node());
4775 }
4776 if !cursor.goto_next_sibling() {
4777 break;
4778 }
4779 }
4780 }
4781 result
4782 };
4783 let mut items = ::std::vec::Vec::new();
4784 for child in non_field_children {
4785 items.push(
4786 <ImportClauseChildren as ::treesitter_types::FromNode>::from_node(
4787 child, src,
4788 )?,
4789 );
4790 }
4791 items
4792 },
4793 })
4794 }
4795}
4796impl ::treesitter_types::Spanned for ImportClause<'_> {
4797 fn span(&self) -> ::treesitter_types::Span {
4798 self.span
4799 }
4800}
4801#[derive(Debug, Clone, PartialEq, Eq)]
4802pub struct ImportRequireClause<'tree> {
4803 pub span: ::treesitter_types::Span,
4804 pub source: String<'tree>,
4805 pub children: Identifier<'tree>,
4806}
4807impl<'tree> ::treesitter_types::FromNode<'tree> for ImportRequireClause<'tree> {
4808 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4809 fn from_node(
4810 node: ::tree_sitter::Node<'tree>,
4811 src: &'tree [u8],
4812 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4813 debug_assert_eq!(node.kind(), "import_require_clause");
4814 Ok(Self {
4815 span: ::treesitter_types::Span::from(node),
4816 source: {
4817 let child = node
4818 .child_by_field_name("source")
4819 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("source", node))?;
4820 <String as ::treesitter_types::FromNode>::from_node(child, src)?
4821 },
4822 children: {
4823 #[allow(clippy::suspicious_else_formatting)]
4824 let non_field_children = {
4825 let mut cursor = node.walk();
4826 let mut result = ::std::vec::Vec::new();
4827 if cursor.goto_first_child() {
4828 loop {
4829 if cursor.field_name().is_none()
4830 && cursor.node().is_named()
4831 && !cursor.node().is_extra()
4832 {
4833 result.push(cursor.node());
4834 }
4835 if !cursor.goto_next_sibling() {
4836 break;
4837 }
4838 }
4839 }
4840 result
4841 };
4842 let child = if let Some(&c) = non_field_children.first() {
4843 c
4844 } else {
4845 let mut fallback_cursor = node.walk();
4846 let mut fallback_child = None;
4847 if fallback_cursor.goto_first_child() {
4848 loop {
4849 if fallback_cursor.field_name().is_none()
4850 && !fallback_cursor.node().is_extra()
4851 {
4852 let candidate = fallback_cursor.node();
4853 #[allow(clippy::needless_question_mark)]
4854 if (|| -> ::core::result::Result<
4855 _,
4856 ::treesitter_types::ParseError,
4857 > {
4858 let child = candidate;
4859 Ok(
4860 <Identifier as ::treesitter_types::FromNode>::from_node(
4861 child,
4862 src,
4863 )?,
4864 )
4865 })()
4866 .is_ok()
4867 {
4868 fallback_child = Some(candidate);
4869 break;
4870 }
4871 }
4872 if !fallback_cursor.goto_next_sibling() {
4873 break;
4874 }
4875 }
4876 }
4877 if fallback_child.is_none() {
4878 let mut cursor2 = node.walk();
4879 if cursor2.goto_first_child() {
4880 loop {
4881 if cursor2.node().is_named() && !cursor2.node().is_extra() {
4882 let candidate = cursor2.node();
4883 #[allow(clippy::needless_question_mark)]
4884 if (|| -> ::core::result::Result<
4885 _,
4886 ::treesitter_types::ParseError,
4887 > {
4888 let child = candidate;
4889 Ok(
4890 <Identifier as ::treesitter_types::FromNode>::from_node(
4891 child,
4892 src,
4893 )?,
4894 )
4895 })()
4896 .is_ok()
4897 {
4898 fallback_child = Some(candidate);
4899 break;
4900 }
4901 }
4902 if !cursor2.goto_next_sibling() {
4903 break;
4904 }
4905 }
4906 }
4907 }
4908 fallback_child.ok_or_else(|| {
4909 ::treesitter_types::ParseError::missing_field("children", node)
4910 })?
4911 };
4912 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)?
4913 },
4914 })
4915 }
4916}
4917impl ::treesitter_types::Spanned for ImportRequireClause<'_> {
4918 fn span(&self) -> ::treesitter_types::Span {
4919 self.span
4920 }
4921}
4922#[derive(Debug, Clone, PartialEq, Eq)]
4923pub struct ImportSpecifier<'tree> {
4924 pub span: ::treesitter_types::Span,
4925 pub alias: ::core::option::Option<Identifier<'tree>>,
4926 pub name: ImportSpecifierName<'tree>,
4927}
4928impl<'tree> ::treesitter_types::FromNode<'tree> for ImportSpecifier<'tree> {
4929 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4930 fn from_node(
4931 node: ::tree_sitter::Node<'tree>,
4932 src: &'tree [u8],
4933 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4934 debug_assert_eq!(node.kind(), "import_specifier");
4935 Ok(Self {
4936 span: ::treesitter_types::Span::from(node),
4937 alias: match node.child_by_field_name("alias") {
4938 Some(child) => Some(<Identifier as ::treesitter_types::FromNode>::from_node(
4939 child, src,
4940 )?),
4941 None => None,
4942 },
4943 name: {
4944 let child = node
4945 .child_by_field_name("name")
4946 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
4947 <ImportSpecifierName as ::treesitter_types::FromNode>::from_node(child, src)?
4948 },
4949 })
4950 }
4951}
4952impl ::treesitter_types::Spanned for ImportSpecifier<'_> {
4953 fn span(&self) -> ::treesitter_types::Span {
4954 self.span
4955 }
4956}
4957#[derive(Debug, Clone, PartialEq, Eq)]
4958pub struct ImportStatement<'tree> {
4959 pub span: ::treesitter_types::Span,
4960 pub source: ::core::option::Option<String<'tree>>,
4961 pub children: ::std::vec::Vec<ImportStatementChildren<'tree>>,
4962}
4963impl<'tree> ::treesitter_types::FromNode<'tree> for ImportStatement<'tree> {
4964 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4965 fn from_node(
4966 node: ::tree_sitter::Node<'tree>,
4967 src: &'tree [u8],
4968 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4969 debug_assert_eq!(node.kind(), "import_statement");
4970 Ok(Self {
4971 span: ::treesitter_types::Span::from(node),
4972 source: match node.child_by_field_name("source") {
4973 Some(child) => Some(<String as ::treesitter_types::FromNode>::from_node(
4974 child, src,
4975 )?),
4976 None => None,
4977 },
4978 children: {
4979 #[allow(clippy::suspicious_else_formatting)]
4980 let non_field_children = {
4981 let mut cursor = node.walk();
4982 let mut result = ::std::vec::Vec::new();
4983 if cursor.goto_first_child() {
4984 loop {
4985 if cursor.field_name().is_none()
4986 && cursor.node().is_named()
4987 && !cursor.node().is_extra()
4988 {
4989 result.push(cursor.node());
4990 }
4991 if !cursor.goto_next_sibling() {
4992 break;
4993 }
4994 }
4995 }
4996 result
4997 };
4998 let mut items = ::std::vec::Vec::new();
4999 for child in non_field_children {
5000 items.push(
5001 <ImportStatementChildren as ::treesitter_types::FromNode>::from_node(
5002 child, src,
5003 )?,
5004 );
5005 }
5006 items
5007 },
5008 })
5009 }
5010}
5011impl ::treesitter_types::Spanned for ImportStatement<'_> {
5012 fn span(&self) -> ::treesitter_types::Span {
5013 self.span
5014 }
5015}
5016#[derive(Debug, Clone, PartialEq, Eq)]
5017pub struct IndexSignature<'tree> {
5018 pub span: ::treesitter_types::Span,
5019 pub index_type: ::core::option::Option<Type<'tree>>,
5020 pub name: ::core::option::Option<Identifier<'tree>>,
5021 pub sign: ::core::option::Option<IndexSignatureSign>,
5022 pub r#type: IndexSignatureType<'tree>,
5023 pub children: ::core::option::Option<MappedTypeClause<'tree>>,
5024}
5025impl<'tree> ::treesitter_types::FromNode<'tree> for IndexSignature<'tree> {
5026 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5027 fn from_node(
5028 node: ::tree_sitter::Node<'tree>,
5029 src: &'tree [u8],
5030 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5031 debug_assert_eq!(node.kind(), "index_signature");
5032 Ok(Self {
5033 span: ::treesitter_types::Span::from(node),
5034 index_type: match node.child_by_field_name("index_type") {
5035 Some(child) => Some(<Type as ::treesitter_types::FromNode>::from_node(
5036 child, src,
5037 )?),
5038 None => None,
5039 },
5040 name: match node.child_by_field_name("name") {
5041 Some(child) => Some(<Identifier as ::treesitter_types::FromNode>::from_node(
5042 child, src,
5043 )?),
5044 None => None,
5045 },
5046 sign: match node.child_by_field_name("sign") {
5047 Some(child) => Some(
5048 <IndexSignatureSign as ::treesitter_types::FromNode>::from_node(child, src)?,
5049 ),
5050 None => None,
5051 },
5052 r#type: {
5053 let child = node
5054 .child_by_field_name("type")
5055 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("type", node))?;
5056 <IndexSignatureType as ::treesitter_types::FromNode>::from_node(child, src)?
5057 },
5058 children: {
5059 #[allow(clippy::suspicious_else_formatting)]
5060 let non_field_children = {
5061 let mut cursor = node.walk();
5062 let mut result = ::std::vec::Vec::new();
5063 if cursor.goto_first_child() {
5064 loop {
5065 if cursor.field_name().is_none()
5066 && cursor.node().is_named()
5067 && !cursor.node().is_extra()
5068 {
5069 result.push(cursor.node());
5070 }
5071 if !cursor.goto_next_sibling() {
5072 break;
5073 }
5074 }
5075 }
5076 result
5077 };
5078 match non_field_children.first() {
5079 Some(&child) => Some(
5080 <MappedTypeClause as ::treesitter_types::FromNode>::from_node(child, src)?,
5081 ),
5082 None => None,
5083 }
5084 },
5085 })
5086 }
5087}
5088impl ::treesitter_types::Spanned for IndexSignature<'_> {
5089 fn span(&self) -> ::treesitter_types::Span {
5090 self.span
5091 }
5092}
5093#[derive(Debug, Clone, PartialEq, Eq)]
5094pub struct IndexTypeQuery<'tree> {
5095 pub span: ::treesitter_types::Span,
5096 pub children: PrimaryType<'tree>,
5097}
5098impl<'tree> ::treesitter_types::FromNode<'tree> for IndexTypeQuery<'tree> {
5099 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5100 fn from_node(
5101 node: ::tree_sitter::Node<'tree>,
5102 src: &'tree [u8],
5103 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5104 debug_assert_eq!(node.kind(), "index_type_query");
5105 Ok(Self {
5106 span: ::treesitter_types::Span::from(node),
5107 children: {
5108 #[allow(clippy::suspicious_else_formatting)]
5109 let non_field_children = {
5110 let mut cursor = node.walk();
5111 let mut result = ::std::vec::Vec::new();
5112 if cursor.goto_first_child() {
5113 loop {
5114 if cursor.field_name().is_none()
5115 && cursor.node().is_named()
5116 && !cursor.node().is_extra()
5117 {
5118 result.push(cursor.node());
5119 }
5120 if !cursor.goto_next_sibling() {
5121 break;
5122 }
5123 }
5124 }
5125 result
5126 };
5127 let child = if let Some(&c) = non_field_children.first() {
5128 c
5129 } else {
5130 let mut fallback_cursor = node.walk();
5131 let mut fallback_child = None;
5132 if fallback_cursor.goto_first_child() {
5133 loop {
5134 if fallback_cursor.field_name().is_none()
5135 && !fallback_cursor.node().is_extra()
5136 {
5137 let candidate = fallback_cursor.node();
5138 #[allow(clippy::needless_question_mark)]
5139 if (|| -> ::core::result::Result<
5140 _,
5141 ::treesitter_types::ParseError,
5142 > {
5143 let child = candidate;
5144 Ok(
5145 <PrimaryType as ::treesitter_types::FromNode>::from_node(
5146 child,
5147 src,
5148 )?,
5149 )
5150 })()
5151 .is_ok()
5152 {
5153 fallback_child = Some(candidate);
5154 break;
5155 }
5156 }
5157 if !fallback_cursor.goto_next_sibling() {
5158 break;
5159 }
5160 }
5161 }
5162 if fallback_child.is_none() {
5163 let mut cursor2 = node.walk();
5164 if cursor2.goto_first_child() {
5165 loop {
5166 if cursor2.node().is_named() && !cursor2.node().is_extra() {
5167 let candidate = cursor2.node();
5168 #[allow(clippy::needless_question_mark)]
5169 if (|| -> ::core::result::Result<
5170 _,
5171 ::treesitter_types::ParseError,
5172 > {
5173 let child = candidate;
5174 Ok(
5175 <PrimaryType as ::treesitter_types::FromNode>::from_node(
5176 child,
5177 src,
5178 )?,
5179 )
5180 })()
5181 .is_ok()
5182 {
5183 fallback_child = Some(candidate);
5184 break;
5185 }
5186 }
5187 if !cursor2.goto_next_sibling() {
5188 break;
5189 }
5190 }
5191 }
5192 }
5193 fallback_child.ok_or_else(|| {
5194 ::treesitter_types::ParseError::missing_field("children", node)
5195 })?
5196 };
5197 <PrimaryType as ::treesitter_types::FromNode>::from_node(child, src)?
5198 },
5199 })
5200 }
5201}
5202impl ::treesitter_types::Spanned for IndexTypeQuery<'_> {
5203 fn span(&self) -> ::treesitter_types::Span {
5204 self.span
5205 }
5206}
5207#[derive(Debug, Clone, PartialEq, Eq)]
5208pub struct InferType<'tree> {
5209 pub span: ::treesitter_types::Span,
5210 pub children: ::std::vec::Vec<InferTypeChildren<'tree>>,
5211}
5212impl<'tree> ::treesitter_types::FromNode<'tree> for InferType<'tree> {
5213 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5214 fn from_node(
5215 node: ::tree_sitter::Node<'tree>,
5216 src: &'tree [u8],
5217 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5218 debug_assert_eq!(node.kind(), "infer_type");
5219 Ok(Self {
5220 span: ::treesitter_types::Span::from(node),
5221 children: {
5222 #[allow(clippy::suspicious_else_formatting)]
5223 let non_field_children = {
5224 let mut cursor = node.walk();
5225 let mut result = ::std::vec::Vec::new();
5226 if cursor.goto_first_child() {
5227 loop {
5228 if cursor.field_name().is_none()
5229 && cursor.node().is_named()
5230 && !cursor.node().is_extra()
5231 {
5232 result.push(cursor.node());
5233 }
5234 if !cursor.goto_next_sibling() {
5235 break;
5236 }
5237 }
5238 }
5239 result
5240 };
5241 let mut items = ::std::vec::Vec::new();
5242 for child in non_field_children {
5243 items.push(
5244 <InferTypeChildren as ::treesitter_types::FromNode>::from_node(child, src)?,
5245 );
5246 }
5247 items
5248 },
5249 })
5250 }
5251}
5252impl ::treesitter_types::Spanned for InferType<'_> {
5253 fn span(&self) -> ::treesitter_types::Span {
5254 self.span
5255 }
5256}
5257#[derive(Debug, Clone, PartialEq, Eq)]
5258pub struct InstantiationExpression<'tree> {
5259 pub span: ::treesitter_types::Span,
5260 pub function: ::core::option::Option<InstantiationExpressionFunction<'tree>>,
5261 pub type_arguments: TypeArguments<'tree>,
5262 pub children: ::core::option::Option<Expression<'tree>>,
5263}
5264impl<'tree> ::treesitter_types::FromNode<'tree> for InstantiationExpression<'tree> {
5265 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5266 fn from_node(
5267 node: ::tree_sitter::Node<'tree>,
5268 src: &'tree [u8],
5269 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5270 debug_assert_eq!(node.kind(), "instantiation_expression");
5271 Ok(Self {
5272 span: ::treesitter_types::Span::from(node),
5273 function: match node.child_by_field_name("function") {
5274 Some(child) => Some(
5275 <InstantiationExpressionFunction as ::treesitter_types::FromNode>::from_node(
5276 child, src,
5277 )?,
5278 ),
5279 None => None,
5280 },
5281 type_arguments: {
5282 let child = node.child_by_field_name("type_arguments").ok_or_else(|| {
5283 ::treesitter_types::ParseError::missing_field("type_arguments", node)
5284 })?;
5285 <TypeArguments as ::treesitter_types::FromNode>::from_node(child, src)?
5286 },
5287 children: {
5288 #[allow(clippy::suspicious_else_formatting)]
5289 let non_field_children = {
5290 let mut cursor = node.walk();
5291 let mut result = ::std::vec::Vec::new();
5292 if cursor.goto_first_child() {
5293 loop {
5294 if cursor.field_name().is_none()
5295 && cursor.node().is_named()
5296 && !cursor.node().is_extra()
5297 {
5298 result.push(cursor.node());
5299 }
5300 if !cursor.goto_next_sibling() {
5301 break;
5302 }
5303 }
5304 }
5305 result
5306 };
5307 match non_field_children.first() {
5308 Some(&child) => Some(<Expression as ::treesitter_types::FromNode>::from_node(
5309 child, src,
5310 )?),
5311 None => None,
5312 }
5313 },
5314 })
5315 }
5316}
5317impl ::treesitter_types::Spanned for InstantiationExpression<'_> {
5318 fn span(&self) -> ::treesitter_types::Span {
5319 self.span
5320 }
5321}
5322#[derive(Debug, Clone, PartialEq, Eq)]
5323pub struct InterfaceBody<'tree> {
5324 pub span: ::treesitter_types::Span,
5325 pub children: ::std::vec::Vec<InterfaceBodyChildren<'tree>>,
5326}
5327impl<'tree> ::treesitter_types::FromNode<'tree> for InterfaceBody<'tree> {
5328 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5329 fn from_node(
5330 node: ::tree_sitter::Node<'tree>,
5331 src: &'tree [u8],
5332 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5333 debug_assert_eq!(node.kind(), "interface_body");
5334 Ok(Self {
5335 span: ::treesitter_types::Span::from(node),
5336 children: {
5337 #[allow(clippy::suspicious_else_formatting)]
5338 let non_field_children = {
5339 let mut cursor = node.walk();
5340 let mut result = ::std::vec::Vec::new();
5341 if cursor.goto_first_child() {
5342 loop {
5343 if cursor.field_name().is_none()
5344 && cursor.node().is_named()
5345 && !cursor.node().is_extra()
5346 {
5347 result.push(cursor.node());
5348 }
5349 if !cursor.goto_next_sibling() {
5350 break;
5351 }
5352 }
5353 }
5354 result
5355 };
5356 let mut items = ::std::vec::Vec::new();
5357 for child in non_field_children {
5358 items.push(
5359 <InterfaceBodyChildren as ::treesitter_types::FromNode>::from_node(
5360 child, src,
5361 )?,
5362 );
5363 }
5364 items
5365 },
5366 })
5367 }
5368}
5369impl ::treesitter_types::Spanned for InterfaceBody<'_> {
5370 fn span(&self) -> ::treesitter_types::Span {
5371 self.span
5372 }
5373}
5374#[derive(Debug, Clone, PartialEq, Eq)]
5375pub struct InterfaceDeclaration<'tree> {
5376 pub span: ::treesitter_types::Span,
5377 pub body: InterfaceBody<'tree>,
5378 pub name: TypeIdentifier<'tree>,
5379 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
5380 pub children: ::core::option::Option<ExtendsTypeClause<'tree>>,
5381}
5382impl<'tree> ::treesitter_types::FromNode<'tree> for InterfaceDeclaration<'tree> {
5383 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5384 fn from_node(
5385 node: ::tree_sitter::Node<'tree>,
5386 src: &'tree [u8],
5387 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5388 debug_assert_eq!(node.kind(), "interface_declaration");
5389 Ok(Self {
5390 span: ::treesitter_types::Span::from(node),
5391 body: {
5392 let child = node
5393 .child_by_field_name("body")
5394 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
5395 <InterfaceBody as ::treesitter_types::FromNode>::from_node(child, src)?
5396 },
5397 name: {
5398 let child = node
5399 .child_by_field_name("name")
5400 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
5401 <TypeIdentifier as ::treesitter_types::FromNode>::from_node(child, src)?
5402 },
5403 type_parameters: match node.child_by_field_name("type_parameters") {
5404 Some(child) => Some(<TypeParameters as ::treesitter_types::FromNode>::from_node(
5405 child, src,
5406 )?),
5407 None => None,
5408 },
5409 children: {
5410 #[allow(clippy::suspicious_else_formatting)]
5411 let non_field_children = {
5412 let mut cursor = node.walk();
5413 let mut result = ::std::vec::Vec::new();
5414 if cursor.goto_first_child() {
5415 loop {
5416 if cursor.field_name().is_none()
5417 && cursor.node().is_named()
5418 && !cursor.node().is_extra()
5419 {
5420 result.push(cursor.node());
5421 }
5422 if !cursor.goto_next_sibling() {
5423 break;
5424 }
5425 }
5426 }
5427 result
5428 };
5429 match non_field_children.first() {
5430 Some(&child) => Some(
5431 <ExtendsTypeClause as ::treesitter_types::FromNode>::from_node(child, src)?,
5432 ),
5433 None => None,
5434 }
5435 },
5436 })
5437 }
5438}
5439impl ::treesitter_types::Spanned for InterfaceDeclaration<'_> {
5440 fn span(&self) -> ::treesitter_types::Span {
5441 self.span
5442 }
5443}
5444#[derive(Debug, Clone, PartialEq, Eq)]
5445pub struct InternalModule<'tree> {
5446 pub span: ::treesitter_types::Span,
5447 pub body: ::core::option::Option<StatementBlock<'tree>>,
5448 pub name: InternalModuleName<'tree>,
5449}
5450impl<'tree> ::treesitter_types::FromNode<'tree> for InternalModule<'tree> {
5451 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5452 fn from_node(
5453 node: ::tree_sitter::Node<'tree>,
5454 src: &'tree [u8],
5455 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5456 debug_assert_eq!(node.kind(), "internal_module");
5457 Ok(Self {
5458 span: ::treesitter_types::Span::from(node),
5459 body: match node.child_by_field_name("body") {
5460 Some(child) => Some(<StatementBlock as ::treesitter_types::FromNode>::from_node(
5461 child, src,
5462 )?),
5463 None => None,
5464 },
5465 name: {
5466 let child = node
5467 .child_by_field_name("name")
5468 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
5469 <InternalModuleName as ::treesitter_types::FromNode>::from_node(child, src)?
5470 },
5471 })
5472 }
5473}
5474impl ::treesitter_types::Spanned for InternalModule<'_> {
5475 fn span(&self) -> ::treesitter_types::Span {
5476 self.span
5477 }
5478}
5479#[derive(Debug, Clone, PartialEq, Eq)]
5480pub struct IntersectionType<'tree> {
5481 pub span: ::treesitter_types::Span,
5482 pub children: ::std::vec::Vec<Type<'tree>>,
5483}
5484impl<'tree> ::treesitter_types::FromNode<'tree> for IntersectionType<'tree> {
5485 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5486 fn from_node(
5487 node: ::tree_sitter::Node<'tree>,
5488 src: &'tree [u8],
5489 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5490 debug_assert_eq!(node.kind(), "intersection_type");
5491 Ok(Self {
5492 span: ::treesitter_types::Span::from(node),
5493 children: {
5494 #[allow(clippy::suspicious_else_formatting)]
5495 let non_field_children = {
5496 let mut cursor = node.walk();
5497 let mut result = ::std::vec::Vec::new();
5498 if cursor.goto_first_child() {
5499 loop {
5500 if cursor.field_name().is_none()
5501 && cursor.node().is_named()
5502 && !cursor.node().is_extra()
5503 {
5504 result.push(cursor.node());
5505 }
5506 if !cursor.goto_next_sibling() {
5507 break;
5508 }
5509 }
5510 }
5511 result
5512 };
5513 let mut items = ::std::vec::Vec::new();
5514 for child in non_field_children {
5515 items.push(<Type as ::treesitter_types::FromNode>::from_node(
5516 child, src,
5517 )?);
5518 }
5519 items
5520 },
5521 })
5522 }
5523}
5524impl ::treesitter_types::Spanned for IntersectionType<'_> {
5525 fn span(&self) -> ::treesitter_types::Span {
5526 self.span
5527 }
5528}
5529#[derive(Debug, Clone, PartialEq, Eq)]
5530pub struct LabeledStatement<'tree> {
5531 pub span: ::treesitter_types::Span,
5532 pub body: Statement<'tree>,
5533 pub label: StatementIdentifier<'tree>,
5534}
5535impl<'tree> ::treesitter_types::FromNode<'tree> for LabeledStatement<'tree> {
5536 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5537 fn from_node(
5538 node: ::tree_sitter::Node<'tree>,
5539 src: &'tree [u8],
5540 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5541 debug_assert_eq!(node.kind(), "labeled_statement");
5542 Ok(Self {
5543 span: ::treesitter_types::Span::from(node),
5544 body: {
5545 let child = node
5546 .child_by_field_name("body")
5547 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
5548 <Statement as ::treesitter_types::FromNode>::from_node(child, src)?
5549 },
5550 label: {
5551 let child = node
5552 .child_by_field_name("label")
5553 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("label", node))?;
5554 <StatementIdentifier as ::treesitter_types::FromNode>::from_node(child, src)?
5555 },
5556 })
5557 }
5558}
5559impl ::treesitter_types::Spanned for LabeledStatement<'_> {
5560 fn span(&self) -> ::treesitter_types::Span {
5561 self.span
5562 }
5563}
5564#[derive(Debug, Clone, PartialEq, Eq)]
5565pub struct LexicalDeclaration<'tree> {
5566 pub span: ::treesitter_types::Span,
5567 pub kind: LexicalDeclarationKind,
5568 pub children: ::std::vec::Vec<VariableDeclarator<'tree>>,
5569}
5570impl<'tree> ::treesitter_types::FromNode<'tree> for LexicalDeclaration<'tree> {
5571 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5572 fn from_node(
5573 node: ::tree_sitter::Node<'tree>,
5574 src: &'tree [u8],
5575 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5576 debug_assert_eq!(node.kind(), "lexical_declaration");
5577 Ok(Self {
5578 span: ::treesitter_types::Span::from(node),
5579 kind: {
5580 let child = node
5581 .child_by_field_name("kind")
5582 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("kind", node))?;
5583 <LexicalDeclarationKind as ::treesitter_types::FromNode>::from_node(child, src)?
5584 },
5585 children: {
5586 #[allow(clippy::suspicious_else_formatting)]
5587 let non_field_children = {
5588 let mut cursor = node.walk();
5589 let mut result = ::std::vec::Vec::new();
5590 if cursor.goto_first_child() {
5591 loop {
5592 if cursor.field_name().is_none()
5593 && cursor.node().is_named()
5594 && !cursor.node().is_extra()
5595 {
5596 result.push(cursor.node());
5597 }
5598 if !cursor.goto_next_sibling() {
5599 break;
5600 }
5601 }
5602 }
5603 result
5604 };
5605 let mut items = ::std::vec::Vec::new();
5606 for child in non_field_children {
5607 items.push(
5608 <VariableDeclarator as ::treesitter_types::FromNode>::from_node(
5609 child, src,
5610 )?,
5611 );
5612 }
5613 items
5614 },
5615 })
5616 }
5617}
5618impl ::treesitter_types::Spanned for LexicalDeclaration<'_> {
5619 fn span(&self) -> ::treesitter_types::Span {
5620 self.span
5621 }
5622}
5623#[derive(Debug, Clone, PartialEq, Eq)]
5624pub struct LiteralType<'tree> {
5625 pub span: ::treesitter_types::Span,
5626 pub children: LiteralTypeChildren<'tree>,
5627}
5628impl<'tree> ::treesitter_types::FromNode<'tree> for LiteralType<'tree> {
5629 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5630 fn from_node(
5631 node: ::tree_sitter::Node<'tree>,
5632 src: &'tree [u8],
5633 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5634 debug_assert_eq!(node.kind(), "literal_type");
5635 Ok(Self {
5636 span: ::treesitter_types::Span::from(node),
5637 children: {
5638 #[allow(clippy::suspicious_else_formatting)]
5639 let non_field_children = {
5640 let mut cursor = node.walk();
5641 let mut result = ::std::vec::Vec::new();
5642 if cursor.goto_first_child() {
5643 loop {
5644 if cursor.field_name().is_none()
5645 && cursor.node().is_named()
5646 && !cursor.node().is_extra()
5647 {
5648 result.push(cursor.node());
5649 }
5650 if !cursor.goto_next_sibling() {
5651 break;
5652 }
5653 }
5654 }
5655 result
5656 };
5657 let child = if let Some(&c) = non_field_children.first() {
5658 c
5659 } else {
5660 let mut fallback_cursor = node.walk();
5661 let mut fallback_child = None;
5662 if fallback_cursor.goto_first_child() {
5663 loop {
5664 if fallback_cursor.field_name().is_none()
5665 && !fallback_cursor.node().is_extra()
5666 {
5667 let candidate = fallback_cursor.node();
5668 #[allow(clippy::needless_question_mark)]
5669 if (|| -> ::core::result::Result<
5670 _,
5671 ::treesitter_types::ParseError,
5672 > {
5673 let child = candidate;
5674 Ok(
5675 <LiteralTypeChildren as ::treesitter_types::FromNode>::from_node(
5676 child,
5677 src,
5678 )?,
5679 )
5680 })()
5681 .is_ok()
5682 {
5683 fallback_child = Some(candidate);
5684 break;
5685 }
5686 }
5687 if !fallback_cursor.goto_next_sibling() {
5688 break;
5689 }
5690 }
5691 }
5692 if fallback_child.is_none() {
5693 let mut cursor2 = node.walk();
5694 if cursor2.goto_first_child() {
5695 loop {
5696 if cursor2.node().is_named() && !cursor2.node().is_extra() {
5697 let candidate = cursor2.node();
5698 #[allow(clippy::needless_question_mark)]
5699 if (|| -> ::core::result::Result<
5700 _,
5701 ::treesitter_types::ParseError,
5702 > {
5703 let child = candidate;
5704 Ok(
5705 <LiteralTypeChildren as ::treesitter_types::FromNode>::from_node(
5706 child,
5707 src,
5708 )?,
5709 )
5710 })()
5711 .is_ok()
5712 {
5713 fallback_child = Some(candidate);
5714 break;
5715 }
5716 }
5717 if !cursor2.goto_next_sibling() {
5718 break;
5719 }
5720 }
5721 }
5722 }
5723 fallback_child.ok_or_else(|| {
5724 ::treesitter_types::ParseError::missing_field("children", node)
5725 })?
5726 };
5727 <LiteralTypeChildren as ::treesitter_types::FromNode>::from_node(child, src)?
5728 },
5729 })
5730 }
5731}
5732impl ::treesitter_types::Spanned for LiteralType<'_> {
5733 fn span(&self) -> ::treesitter_types::Span {
5734 self.span
5735 }
5736}
5737#[derive(Debug, Clone, PartialEq, Eq)]
5738pub struct LookupType<'tree> {
5739 pub span: ::treesitter_types::Span,
5740 pub children: ::std::vec::Vec<Type<'tree>>,
5741}
5742impl<'tree> ::treesitter_types::FromNode<'tree> for LookupType<'tree> {
5743 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5744 fn from_node(
5745 node: ::tree_sitter::Node<'tree>,
5746 src: &'tree [u8],
5747 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5748 debug_assert_eq!(node.kind(), "lookup_type");
5749 Ok(Self {
5750 span: ::treesitter_types::Span::from(node),
5751 children: {
5752 #[allow(clippy::suspicious_else_formatting)]
5753 let non_field_children = {
5754 let mut cursor = node.walk();
5755 let mut result = ::std::vec::Vec::new();
5756 if cursor.goto_first_child() {
5757 loop {
5758 if cursor.field_name().is_none()
5759 && cursor.node().is_named()
5760 && !cursor.node().is_extra()
5761 {
5762 result.push(cursor.node());
5763 }
5764 if !cursor.goto_next_sibling() {
5765 break;
5766 }
5767 }
5768 }
5769 result
5770 };
5771 let mut items = ::std::vec::Vec::new();
5772 for child in non_field_children {
5773 items.push(<Type as ::treesitter_types::FromNode>::from_node(
5774 child, src,
5775 )?);
5776 }
5777 items
5778 },
5779 })
5780 }
5781}
5782impl ::treesitter_types::Spanned for LookupType<'_> {
5783 fn span(&self) -> ::treesitter_types::Span {
5784 self.span
5785 }
5786}
5787#[derive(Debug, Clone, PartialEq, Eq)]
5788pub struct MappedTypeClause<'tree> {
5789 pub span: ::treesitter_types::Span,
5790 pub alias: ::core::option::Option<Type<'tree>>,
5791 pub name: TypeIdentifier<'tree>,
5792 pub r#type: Type<'tree>,
5793}
5794impl<'tree> ::treesitter_types::FromNode<'tree> for MappedTypeClause<'tree> {
5795 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5796 fn from_node(
5797 node: ::tree_sitter::Node<'tree>,
5798 src: &'tree [u8],
5799 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5800 debug_assert_eq!(node.kind(), "mapped_type_clause");
5801 Ok(Self {
5802 span: ::treesitter_types::Span::from(node),
5803 alias: match node.child_by_field_name("alias") {
5804 Some(child) => Some(<Type as ::treesitter_types::FromNode>::from_node(
5805 child, src,
5806 )?),
5807 None => None,
5808 },
5809 name: {
5810 let child = node
5811 .child_by_field_name("name")
5812 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
5813 <TypeIdentifier as ::treesitter_types::FromNode>::from_node(child, src)?
5814 },
5815 r#type: {
5816 let child = node
5817 .child_by_field_name("type")
5818 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("type", node))?;
5819 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
5820 },
5821 })
5822 }
5823}
5824impl ::treesitter_types::Spanned for MappedTypeClause<'_> {
5825 fn span(&self) -> ::treesitter_types::Span {
5826 self.span
5827 }
5828}
5829#[derive(Debug, Clone, PartialEq, Eq)]
5830pub struct MemberExpression<'tree> {
5831 pub span: ::treesitter_types::Span,
5832 pub object: MemberExpressionObject<'tree>,
5833 pub optional_chain: ::core::option::Option<OptionalChain<'tree>>,
5834 pub property: MemberExpressionProperty<'tree>,
5835}
5836impl<'tree> ::treesitter_types::FromNode<'tree> for MemberExpression<'tree> {
5837 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5838 fn from_node(
5839 node: ::tree_sitter::Node<'tree>,
5840 src: &'tree [u8],
5841 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5842 debug_assert_eq!(node.kind(), "member_expression");
5843 Ok(Self {
5844 span: ::treesitter_types::Span::from(node),
5845 object: {
5846 let child = node
5847 .child_by_field_name("object")
5848 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("object", node))?;
5849 <MemberExpressionObject as ::treesitter_types::FromNode>::from_node(child, src)?
5850 },
5851 optional_chain: match node.child_by_field_name("optional_chain") {
5852 Some(child) => Some(<OptionalChain as ::treesitter_types::FromNode>::from_node(
5853 child, src,
5854 )?),
5855 None => None,
5856 },
5857 property: {
5858 let child = node.child_by_field_name("property").ok_or_else(|| {
5859 ::treesitter_types::ParseError::missing_field("property", node)
5860 })?;
5861 <MemberExpressionProperty as ::treesitter_types::FromNode>::from_node(child, src)?
5862 },
5863 })
5864 }
5865}
5866impl ::treesitter_types::Spanned for MemberExpression<'_> {
5867 fn span(&self) -> ::treesitter_types::Span {
5868 self.span
5869 }
5870}
5871#[derive(Debug, Clone, PartialEq, Eq)]
5872pub struct MetaProperty<'tree> {
5873 pub span: ::treesitter_types::Span,
5874 text: &'tree str,
5875}
5876impl<'tree> ::treesitter_types::FromNode<'tree> for MetaProperty<'tree> {
5877 fn from_node(
5878 node: ::tree_sitter::Node<'tree>,
5879 src: &'tree [u8],
5880 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5881 debug_assert_eq!(node.kind(), "meta_property");
5882 Ok(Self {
5883 span: ::treesitter_types::Span::from(node),
5884 text: node.utf8_text(src)?,
5885 })
5886 }
5887}
5888impl<'tree> ::treesitter_types::LeafNode<'tree> for MetaProperty<'tree> {
5889 fn text(&self) -> &'tree str {
5890 self.text
5891 }
5892}
5893impl ::treesitter_types::Spanned for MetaProperty<'_> {
5894 fn span(&self) -> ::treesitter_types::Span {
5895 self.span
5896 }
5897}
5898#[derive(Debug, Clone, PartialEq, Eq)]
5899pub struct MethodDefinition<'tree> {
5900 pub span: ::treesitter_types::Span,
5901 pub body: StatementBlock<'tree>,
5902 pub name: MethodDefinitionName<'tree>,
5903 pub parameters: FormalParameters<'tree>,
5904 pub return_type: ::core::option::Option<MethodDefinitionReturnType<'tree>>,
5905 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
5906 pub children: ::std::vec::Vec<MethodDefinitionChildren<'tree>>,
5907}
5908impl<'tree> ::treesitter_types::FromNode<'tree> for MethodDefinition<'tree> {
5909 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5910 fn from_node(
5911 node: ::tree_sitter::Node<'tree>,
5912 src: &'tree [u8],
5913 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5914 debug_assert_eq!(node.kind(), "method_definition");
5915 Ok(Self {
5916 span: ::treesitter_types::Span::from(node),
5917 body: {
5918 let child = node
5919 .child_by_field_name("body")
5920 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
5921 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)?
5922 },
5923 name: {
5924 let child = node
5925 .child_by_field_name("name")
5926 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
5927 <MethodDefinitionName as ::treesitter_types::FromNode>::from_node(child, src)?
5928 },
5929 parameters: {
5930 let child = node.child_by_field_name("parameters").ok_or_else(|| {
5931 ::treesitter_types::ParseError::missing_field("parameters", node)
5932 })?;
5933 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)?
5934 },
5935 return_type: match node.child_by_field_name("return_type") {
5936 Some(child) => Some(
5937 <MethodDefinitionReturnType as ::treesitter_types::FromNode>::from_node(
5938 child, src,
5939 )?,
5940 ),
5941 None => None,
5942 },
5943 type_parameters: match node.child_by_field_name("type_parameters") {
5944 Some(child) => Some(<TypeParameters as ::treesitter_types::FromNode>::from_node(
5945 child, src,
5946 )?),
5947 None => None,
5948 },
5949 children: {
5950 #[allow(clippy::suspicious_else_formatting)]
5951 let non_field_children = {
5952 let mut cursor = node.walk();
5953 let mut result = ::std::vec::Vec::new();
5954 if cursor.goto_first_child() {
5955 loop {
5956 if cursor.field_name().is_none()
5957 && cursor.node().is_named()
5958 && !cursor.node().is_extra()
5959 {
5960 result.push(cursor.node());
5961 }
5962 if !cursor.goto_next_sibling() {
5963 break;
5964 }
5965 }
5966 }
5967 result
5968 };
5969 let mut items = ::std::vec::Vec::new();
5970 for child in non_field_children {
5971 items.push(
5972 <MethodDefinitionChildren as ::treesitter_types::FromNode>::from_node(
5973 child, src,
5974 )?,
5975 );
5976 }
5977 items
5978 },
5979 })
5980 }
5981}
5982impl ::treesitter_types::Spanned for MethodDefinition<'_> {
5983 fn span(&self) -> ::treesitter_types::Span {
5984 self.span
5985 }
5986}
5987#[derive(Debug, Clone, PartialEq, Eq)]
5988pub struct MethodSignature<'tree> {
5989 pub span: ::treesitter_types::Span,
5990 pub name: MethodSignatureName<'tree>,
5991 pub parameters: FormalParameters<'tree>,
5992 pub return_type: ::core::option::Option<MethodSignatureReturnType<'tree>>,
5993 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
5994 pub children: ::std::vec::Vec<MethodSignatureChildren<'tree>>,
5995}
5996impl<'tree> ::treesitter_types::FromNode<'tree> for MethodSignature<'tree> {
5997 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5998 fn from_node(
5999 node: ::tree_sitter::Node<'tree>,
6000 src: &'tree [u8],
6001 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6002 debug_assert_eq!(node.kind(), "method_signature");
6003 Ok(Self {
6004 span: ::treesitter_types::Span::from(node),
6005 name: {
6006 let child = node
6007 .child_by_field_name("name")
6008 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
6009 <MethodSignatureName as ::treesitter_types::FromNode>::from_node(child, src)?
6010 },
6011 parameters: {
6012 let child = node.child_by_field_name("parameters").ok_or_else(|| {
6013 ::treesitter_types::ParseError::missing_field("parameters", node)
6014 })?;
6015 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)?
6016 },
6017 return_type: match node.child_by_field_name("return_type") {
6018 Some(child) => Some(
6019 <MethodSignatureReturnType as ::treesitter_types::FromNode>::from_node(
6020 child, src,
6021 )?,
6022 ),
6023 None => None,
6024 },
6025 type_parameters: match node.child_by_field_name("type_parameters") {
6026 Some(child) => Some(<TypeParameters as ::treesitter_types::FromNode>::from_node(
6027 child, src,
6028 )?),
6029 None => None,
6030 },
6031 children: {
6032 #[allow(clippy::suspicious_else_formatting)]
6033 let non_field_children = {
6034 let mut cursor = node.walk();
6035 let mut result = ::std::vec::Vec::new();
6036 if cursor.goto_first_child() {
6037 loop {
6038 if cursor.field_name().is_none()
6039 && cursor.node().is_named()
6040 && !cursor.node().is_extra()
6041 {
6042 result.push(cursor.node());
6043 }
6044 if !cursor.goto_next_sibling() {
6045 break;
6046 }
6047 }
6048 }
6049 result
6050 };
6051 let mut items = ::std::vec::Vec::new();
6052 for child in non_field_children {
6053 items.push(
6054 <MethodSignatureChildren as ::treesitter_types::FromNode>::from_node(
6055 child, src,
6056 )?,
6057 );
6058 }
6059 items
6060 },
6061 })
6062 }
6063}
6064impl ::treesitter_types::Spanned for MethodSignature<'_> {
6065 fn span(&self) -> ::treesitter_types::Span {
6066 self.span
6067 }
6068}
6069#[derive(Debug, Clone, PartialEq, Eq)]
6070pub struct Module<'tree> {
6071 pub span: ::treesitter_types::Span,
6072 pub body: ::core::option::Option<StatementBlock<'tree>>,
6073 pub name: ModuleName<'tree>,
6074}
6075impl<'tree> ::treesitter_types::FromNode<'tree> for Module<'tree> {
6076 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6077 fn from_node(
6078 node: ::tree_sitter::Node<'tree>,
6079 src: &'tree [u8],
6080 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6081 debug_assert_eq!(node.kind(), "module");
6082 Ok(Self {
6083 span: ::treesitter_types::Span::from(node),
6084 body: match node.child_by_field_name("body") {
6085 Some(child) => Some(<StatementBlock as ::treesitter_types::FromNode>::from_node(
6086 child, src,
6087 )?),
6088 None => None,
6089 },
6090 name: {
6091 let child = node
6092 .child_by_field_name("name")
6093 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
6094 <ModuleName as ::treesitter_types::FromNode>::from_node(child, src)?
6095 },
6096 })
6097 }
6098}
6099impl ::treesitter_types::Spanned for Module<'_> {
6100 fn span(&self) -> ::treesitter_types::Span {
6101 self.span
6102 }
6103}
6104#[derive(Debug, Clone, PartialEq, Eq)]
6105pub struct NamedImports<'tree> {
6106 pub span: ::treesitter_types::Span,
6107 pub children: ::std::vec::Vec<ImportSpecifier<'tree>>,
6108}
6109impl<'tree> ::treesitter_types::FromNode<'tree> for NamedImports<'tree> {
6110 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6111 fn from_node(
6112 node: ::tree_sitter::Node<'tree>,
6113 src: &'tree [u8],
6114 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6115 debug_assert_eq!(node.kind(), "named_imports");
6116 Ok(Self {
6117 span: ::treesitter_types::Span::from(node),
6118 children: {
6119 #[allow(clippy::suspicious_else_formatting)]
6120 let non_field_children = {
6121 let mut cursor = node.walk();
6122 let mut result = ::std::vec::Vec::new();
6123 if cursor.goto_first_child() {
6124 loop {
6125 if cursor.field_name().is_none()
6126 && cursor.node().is_named()
6127 && !cursor.node().is_extra()
6128 {
6129 result.push(cursor.node());
6130 }
6131 if !cursor.goto_next_sibling() {
6132 break;
6133 }
6134 }
6135 }
6136 result
6137 };
6138 let mut items = ::std::vec::Vec::new();
6139 for child in non_field_children {
6140 items.push(
6141 <ImportSpecifier as ::treesitter_types::FromNode>::from_node(child, src)?,
6142 );
6143 }
6144 items
6145 },
6146 })
6147 }
6148}
6149impl ::treesitter_types::Spanned for NamedImports<'_> {
6150 fn span(&self) -> ::treesitter_types::Span {
6151 self.span
6152 }
6153}
6154#[derive(Debug, Clone, PartialEq, Eq)]
6155pub struct NamespaceExport<'tree> {
6156 pub span: ::treesitter_types::Span,
6157 pub children: NamespaceExportChildren<'tree>,
6158}
6159impl<'tree> ::treesitter_types::FromNode<'tree> for NamespaceExport<'tree> {
6160 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6161 fn from_node(
6162 node: ::tree_sitter::Node<'tree>,
6163 src: &'tree [u8],
6164 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6165 debug_assert_eq!(node.kind(), "namespace_export");
6166 Ok(Self {
6167 span: ::treesitter_types::Span::from(node),
6168 children: {
6169 #[allow(clippy::suspicious_else_formatting)]
6170 let non_field_children = {
6171 let mut cursor = node.walk();
6172 let mut result = ::std::vec::Vec::new();
6173 if cursor.goto_first_child() {
6174 loop {
6175 if cursor.field_name().is_none()
6176 && cursor.node().is_named()
6177 && !cursor.node().is_extra()
6178 {
6179 result.push(cursor.node());
6180 }
6181 if !cursor.goto_next_sibling() {
6182 break;
6183 }
6184 }
6185 }
6186 result
6187 };
6188 let child = if let Some(&c) = non_field_children.first() {
6189 c
6190 } else {
6191 let mut fallback_cursor = node.walk();
6192 let mut fallback_child = None;
6193 if fallback_cursor.goto_first_child() {
6194 loop {
6195 if fallback_cursor.field_name().is_none()
6196 && !fallback_cursor.node().is_extra()
6197 {
6198 let candidate = fallback_cursor.node();
6199 #[allow(clippy::needless_question_mark)]
6200 if (|| -> ::core::result::Result<
6201 _,
6202 ::treesitter_types::ParseError,
6203 > {
6204 let child = candidate;
6205 Ok(
6206 <NamespaceExportChildren as ::treesitter_types::FromNode>::from_node(
6207 child,
6208 src,
6209 )?,
6210 )
6211 })()
6212 .is_ok()
6213 {
6214 fallback_child = Some(candidate);
6215 break;
6216 }
6217 }
6218 if !fallback_cursor.goto_next_sibling() {
6219 break;
6220 }
6221 }
6222 }
6223 if fallback_child.is_none() {
6224 let mut cursor2 = node.walk();
6225 if cursor2.goto_first_child() {
6226 loop {
6227 if cursor2.node().is_named() && !cursor2.node().is_extra() {
6228 let candidate = cursor2.node();
6229 #[allow(clippy::needless_question_mark)]
6230 if (|| -> ::core::result::Result<
6231 _,
6232 ::treesitter_types::ParseError,
6233 > {
6234 let child = candidate;
6235 Ok(
6236 <NamespaceExportChildren as ::treesitter_types::FromNode>::from_node(
6237 child,
6238 src,
6239 )?,
6240 )
6241 })()
6242 .is_ok()
6243 {
6244 fallback_child = Some(candidate);
6245 break;
6246 }
6247 }
6248 if !cursor2.goto_next_sibling() {
6249 break;
6250 }
6251 }
6252 }
6253 }
6254 fallback_child.ok_or_else(|| {
6255 ::treesitter_types::ParseError::missing_field("children", node)
6256 })?
6257 };
6258 <NamespaceExportChildren as ::treesitter_types::FromNode>::from_node(child, src)?
6259 },
6260 })
6261 }
6262}
6263impl ::treesitter_types::Spanned for NamespaceExport<'_> {
6264 fn span(&self) -> ::treesitter_types::Span {
6265 self.span
6266 }
6267}
6268#[derive(Debug, Clone, PartialEq, Eq)]
6269pub struct NamespaceImport<'tree> {
6270 pub span: ::treesitter_types::Span,
6271 pub children: Identifier<'tree>,
6272}
6273impl<'tree> ::treesitter_types::FromNode<'tree> for NamespaceImport<'tree> {
6274 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6275 fn from_node(
6276 node: ::tree_sitter::Node<'tree>,
6277 src: &'tree [u8],
6278 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6279 debug_assert_eq!(node.kind(), "namespace_import");
6280 Ok(Self {
6281 span: ::treesitter_types::Span::from(node),
6282 children: {
6283 #[allow(clippy::suspicious_else_formatting)]
6284 let non_field_children = {
6285 let mut cursor = node.walk();
6286 let mut result = ::std::vec::Vec::new();
6287 if cursor.goto_first_child() {
6288 loop {
6289 if cursor.field_name().is_none()
6290 && cursor.node().is_named()
6291 && !cursor.node().is_extra()
6292 {
6293 result.push(cursor.node());
6294 }
6295 if !cursor.goto_next_sibling() {
6296 break;
6297 }
6298 }
6299 }
6300 result
6301 };
6302 let child = if let Some(&c) = non_field_children.first() {
6303 c
6304 } else {
6305 let mut fallback_cursor = node.walk();
6306 let mut fallback_child = None;
6307 if fallback_cursor.goto_first_child() {
6308 loop {
6309 if fallback_cursor.field_name().is_none()
6310 && !fallback_cursor.node().is_extra()
6311 {
6312 let candidate = fallback_cursor.node();
6313 #[allow(clippy::needless_question_mark)]
6314 if (|| -> ::core::result::Result<
6315 _,
6316 ::treesitter_types::ParseError,
6317 > {
6318 let child = candidate;
6319 Ok(
6320 <Identifier as ::treesitter_types::FromNode>::from_node(
6321 child,
6322 src,
6323 )?,
6324 )
6325 })()
6326 .is_ok()
6327 {
6328 fallback_child = Some(candidate);
6329 break;
6330 }
6331 }
6332 if !fallback_cursor.goto_next_sibling() {
6333 break;
6334 }
6335 }
6336 }
6337 if fallback_child.is_none() {
6338 let mut cursor2 = node.walk();
6339 if cursor2.goto_first_child() {
6340 loop {
6341 if cursor2.node().is_named() && !cursor2.node().is_extra() {
6342 let candidate = cursor2.node();
6343 #[allow(clippy::needless_question_mark)]
6344 if (|| -> ::core::result::Result<
6345 _,
6346 ::treesitter_types::ParseError,
6347 > {
6348 let child = candidate;
6349 Ok(
6350 <Identifier as ::treesitter_types::FromNode>::from_node(
6351 child,
6352 src,
6353 )?,
6354 )
6355 })()
6356 .is_ok()
6357 {
6358 fallback_child = Some(candidate);
6359 break;
6360 }
6361 }
6362 if !cursor2.goto_next_sibling() {
6363 break;
6364 }
6365 }
6366 }
6367 }
6368 fallback_child.ok_or_else(|| {
6369 ::treesitter_types::ParseError::missing_field("children", node)
6370 })?
6371 };
6372 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)?
6373 },
6374 })
6375 }
6376}
6377impl ::treesitter_types::Spanned for NamespaceImport<'_> {
6378 fn span(&self) -> ::treesitter_types::Span {
6379 self.span
6380 }
6381}
6382#[derive(Debug, Clone, PartialEq, Eq)]
6383pub struct NestedIdentifier<'tree> {
6384 pub span: ::treesitter_types::Span,
6385 pub object: NestedIdentifierObject<'tree>,
6386 pub property: PropertyIdentifier<'tree>,
6387}
6388impl<'tree> ::treesitter_types::FromNode<'tree> for NestedIdentifier<'tree> {
6389 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6390 fn from_node(
6391 node: ::tree_sitter::Node<'tree>,
6392 src: &'tree [u8],
6393 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6394 debug_assert_eq!(node.kind(), "nested_identifier");
6395 Ok(Self {
6396 span: ::treesitter_types::Span::from(node),
6397 object: {
6398 let child = node
6399 .child_by_field_name("object")
6400 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("object", node))?;
6401 <NestedIdentifierObject as ::treesitter_types::FromNode>::from_node(child, src)?
6402 },
6403 property: {
6404 let child = node.child_by_field_name("property").ok_or_else(|| {
6405 ::treesitter_types::ParseError::missing_field("property", node)
6406 })?;
6407 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(child, src)?
6408 },
6409 })
6410 }
6411}
6412impl ::treesitter_types::Spanned for NestedIdentifier<'_> {
6413 fn span(&self) -> ::treesitter_types::Span {
6414 self.span
6415 }
6416}
6417#[derive(Debug, Clone, PartialEq, Eq)]
6418pub struct NestedTypeIdentifier<'tree> {
6419 pub span: ::treesitter_types::Span,
6420 pub module: NestedTypeIdentifierModule<'tree>,
6421 pub name: TypeIdentifier<'tree>,
6422}
6423impl<'tree> ::treesitter_types::FromNode<'tree> for NestedTypeIdentifier<'tree> {
6424 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6425 fn from_node(
6426 node: ::tree_sitter::Node<'tree>,
6427 src: &'tree [u8],
6428 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6429 debug_assert_eq!(node.kind(), "nested_type_identifier");
6430 Ok(Self {
6431 span: ::treesitter_types::Span::from(node),
6432 module: {
6433 let child = node
6434 .child_by_field_name("module")
6435 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("module", node))?;
6436 <NestedTypeIdentifierModule as ::treesitter_types::FromNode>::from_node(child, src)?
6437 },
6438 name: {
6439 let child = node
6440 .child_by_field_name("name")
6441 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
6442 <TypeIdentifier as ::treesitter_types::FromNode>::from_node(child, src)?
6443 },
6444 })
6445 }
6446}
6447impl ::treesitter_types::Spanned for NestedTypeIdentifier<'_> {
6448 fn span(&self) -> ::treesitter_types::Span {
6449 self.span
6450 }
6451}
6452#[derive(Debug, Clone, PartialEq, Eq)]
6453pub struct NewExpression<'tree> {
6454 pub span: ::treesitter_types::Span,
6455 pub arguments: ::core::option::Option<Arguments<'tree>>,
6456 pub constructor: PrimaryExpression<'tree>,
6457 pub type_arguments: ::core::option::Option<TypeArguments<'tree>>,
6458}
6459impl<'tree> ::treesitter_types::FromNode<'tree> for NewExpression<'tree> {
6460 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6461 fn from_node(
6462 node: ::tree_sitter::Node<'tree>,
6463 src: &'tree [u8],
6464 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6465 debug_assert_eq!(node.kind(), "new_expression");
6466 Ok(Self {
6467 span: ::treesitter_types::Span::from(node),
6468 arguments: match node.child_by_field_name("arguments") {
6469 Some(child) => Some(<Arguments as ::treesitter_types::FromNode>::from_node(
6470 child, src,
6471 )?),
6472 None => None,
6473 },
6474 constructor: {
6475 let child = node.child_by_field_name("constructor").ok_or_else(|| {
6476 ::treesitter_types::ParseError::missing_field("constructor", node)
6477 })?;
6478 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(child, src)?
6479 },
6480 type_arguments: match node.child_by_field_name("type_arguments") {
6481 Some(child) => Some(<TypeArguments as ::treesitter_types::FromNode>::from_node(
6482 child, src,
6483 )?),
6484 None => None,
6485 },
6486 })
6487 }
6488}
6489impl ::treesitter_types::Spanned for NewExpression<'_> {
6490 fn span(&self) -> ::treesitter_types::Span {
6491 self.span
6492 }
6493}
6494#[derive(Debug, Clone, PartialEq, Eq)]
6495pub struct NonNullExpression<'tree> {
6496 pub span: ::treesitter_types::Span,
6497 pub children: Expression<'tree>,
6498}
6499impl<'tree> ::treesitter_types::FromNode<'tree> for NonNullExpression<'tree> {
6500 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6501 fn from_node(
6502 node: ::tree_sitter::Node<'tree>,
6503 src: &'tree [u8],
6504 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6505 debug_assert_eq!(node.kind(), "non_null_expression");
6506 Ok(Self {
6507 span: ::treesitter_types::Span::from(node),
6508 children: {
6509 #[allow(clippy::suspicious_else_formatting)]
6510 let non_field_children = {
6511 let mut cursor = node.walk();
6512 let mut result = ::std::vec::Vec::new();
6513 if cursor.goto_first_child() {
6514 loop {
6515 if cursor.field_name().is_none()
6516 && cursor.node().is_named()
6517 && !cursor.node().is_extra()
6518 {
6519 result.push(cursor.node());
6520 }
6521 if !cursor.goto_next_sibling() {
6522 break;
6523 }
6524 }
6525 }
6526 result
6527 };
6528 let child = if let Some(&c) = non_field_children.first() {
6529 c
6530 } else {
6531 let mut fallback_cursor = node.walk();
6532 let mut fallback_child = None;
6533 if fallback_cursor.goto_first_child() {
6534 loop {
6535 if fallback_cursor.field_name().is_none()
6536 && !fallback_cursor.node().is_extra()
6537 {
6538 let candidate = fallback_cursor.node();
6539 #[allow(clippy::needless_question_mark)]
6540 if (|| -> ::core::result::Result<
6541 _,
6542 ::treesitter_types::ParseError,
6543 > {
6544 let child = candidate;
6545 Ok(
6546 <Expression as ::treesitter_types::FromNode>::from_node(
6547 child,
6548 src,
6549 )?,
6550 )
6551 })()
6552 .is_ok()
6553 {
6554 fallback_child = Some(candidate);
6555 break;
6556 }
6557 }
6558 if !fallback_cursor.goto_next_sibling() {
6559 break;
6560 }
6561 }
6562 }
6563 if fallback_child.is_none() {
6564 let mut cursor2 = node.walk();
6565 if cursor2.goto_first_child() {
6566 loop {
6567 if cursor2.node().is_named() && !cursor2.node().is_extra() {
6568 let candidate = cursor2.node();
6569 #[allow(clippy::needless_question_mark)]
6570 if (|| -> ::core::result::Result<
6571 _,
6572 ::treesitter_types::ParseError,
6573 > {
6574 let child = candidate;
6575 Ok(
6576 <Expression as ::treesitter_types::FromNode>::from_node(
6577 child,
6578 src,
6579 )?,
6580 )
6581 })()
6582 .is_ok()
6583 {
6584 fallback_child = Some(candidate);
6585 break;
6586 }
6587 }
6588 if !cursor2.goto_next_sibling() {
6589 break;
6590 }
6591 }
6592 }
6593 }
6594 fallback_child.ok_or_else(|| {
6595 ::treesitter_types::ParseError::missing_field("children", node)
6596 })?
6597 };
6598 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
6599 },
6600 })
6601 }
6602}
6603impl ::treesitter_types::Spanned for NonNullExpression<'_> {
6604 fn span(&self) -> ::treesitter_types::Span {
6605 self.span
6606 }
6607}
6608#[derive(Debug, Clone, PartialEq, Eq)]
6609pub struct Object<'tree> {
6610 pub span: ::treesitter_types::Span,
6611 pub children: ::std::vec::Vec<ObjectChildren<'tree>>,
6612}
6613impl<'tree> ::treesitter_types::FromNode<'tree> for Object<'tree> {
6614 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6615 fn from_node(
6616 node: ::tree_sitter::Node<'tree>,
6617 src: &'tree [u8],
6618 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6619 debug_assert_eq!(node.kind(), "object");
6620 Ok(Self {
6621 span: ::treesitter_types::Span::from(node),
6622 children: {
6623 #[allow(clippy::suspicious_else_formatting)]
6624 let non_field_children = {
6625 let mut cursor = node.walk();
6626 let mut result = ::std::vec::Vec::new();
6627 if cursor.goto_first_child() {
6628 loop {
6629 if cursor.field_name().is_none()
6630 && cursor.node().is_named()
6631 && !cursor.node().is_extra()
6632 {
6633 result.push(cursor.node());
6634 }
6635 if !cursor.goto_next_sibling() {
6636 break;
6637 }
6638 }
6639 }
6640 result
6641 };
6642 let mut items = ::std::vec::Vec::new();
6643 for child in non_field_children {
6644 items.push(<ObjectChildren as ::treesitter_types::FromNode>::from_node(
6645 child, src,
6646 )?);
6647 }
6648 items
6649 },
6650 })
6651 }
6652}
6653impl ::treesitter_types::Spanned for Object<'_> {
6654 fn span(&self) -> ::treesitter_types::Span {
6655 self.span
6656 }
6657}
6658#[derive(Debug, Clone, PartialEq, Eq)]
6659pub struct ObjectAssignmentPattern<'tree> {
6660 pub span: ::treesitter_types::Span,
6661 pub left: ObjectAssignmentPatternLeft<'tree>,
6662 pub right: Expression<'tree>,
6663}
6664impl<'tree> ::treesitter_types::FromNode<'tree> for ObjectAssignmentPattern<'tree> {
6665 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6666 fn from_node(
6667 node: ::tree_sitter::Node<'tree>,
6668 src: &'tree [u8],
6669 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6670 debug_assert_eq!(node.kind(), "object_assignment_pattern");
6671 Ok(Self {
6672 span: ::treesitter_types::Span::from(node),
6673 left: {
6674 let child = node
6675 .child_by_field_name("left")
6676 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
6677 <ObjectAssignmentPatternLeft as ::treesitter_types::FromNode>::from_node(
6678 child, src,
6679 )?
6680 },
6681 right: {
6682 let child = node
6683 .child_by_field_name("right")
6684 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
6685 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
6686 },
6687 })
6688 }
6689}
6690impl ::treesitter_types::Spanned for ObjectAssignmentPattern<'_> {
6691 fn span(&self) -> ::treesitter_types::Span {
6692 self.span
6693 }
6694}
6695#[derive(Debug, Clone, PartialEq, Eq)]
6696pub struct ObjectPattern<'tree> {
6697 pub span: ::treesitter_types::Span,
6698 pub children: ::std::vec::Vec<ObjectPatternChildren<'tree>>,
6699}
6700impl<'tree> ::treesitter_types::FromNode<'tree> for ObjectPattern<'tree> {
6701 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6702 fn from_node(
6703 node: ::tree_sitter::Node<'tree>,
6704 src: &'tree [u8],
6705 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6706 debug_assert_eq!(node.kind(), "object_pattern");
6707 Ok(Self {
6708 span: ::treesitter_types::Span::from(node),
6709 children: {
6710 #[allow(clippy::suspicious_else_formatting)]
6711 let non_field_children = {
6712 let mut cursor = node.walk();
6713 let mut result = ::std::vec::Vec::new();
6714 if cursor.goto_first_child() {
6715 loop {
6716 if cursor.field_name().is_none()
6717 && cursor.node().is_named()
6718 && !cursor.node().is_extra()
6719 {
6720 result.push(cursor.node());
6721 }
6722 if !cursor.goto_next_sibling() {
6723 break;
6724 }
6725 }
6726 }
6727 result
6728 };
6729 let mut items = ::std::vec::Vec::new();
6730 for child in non_field_children {
6731 items.push(
6732 <ObjectPatternChildren as ::treesitter_types::FromNode>::from_node(
6733 child, src,
6734 )?,
6735 );
6736 }
6737 items
6738 },
6739 })
6740 }
6741}
6742impl ::treesitter_types::Spanned for ObjectPattern<'_> {
6743 fn span(&self) -> ::treesitter_types::Span {
6744 self.span
6745 }
6746}
6747#[derive(Debug, Clone, PartialEq, Eq)]
6748pub struct ObjectType<'tree> {
6749 pub span: ::treesitter_types::Span,
6750 pub children: ::std::vec::Vec<ObjectTypeChildren<'tree>>,
6751}
6752impl<'tree> ::treesitter_types::FromNode<'tree> for ObjectType<'tree> {
6753 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6754 fn from_node(
6755 node: ::tree_sitter::Node<'tree>,
6756 src: &'tree [u8],
6757 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6758 debug_assert_eq!(node.kind(), "object_type");
6759 Ok(Self {
6760 span: ::treesitter_types::Span::from(node),
6761 children: {
6762 #[allow(clippy::suspicious_else_formatting)]
6763 let non_field_children = {
6764 let mut cursor = node.walk();
6765 let mut result = ::std::vec::Vec::new();
6766 if cursor.goto_first_child() {
6767 loop {
6768 if cursor.field_name().is_none()
6769 && cursor.node().is_named()
6770 && !cursor.node().is_extra()
6771 {
6772 result.push(cursor.node());
6773 }
6774 if !cursor.goto_next_sibling() {
6775 break;
6776 }
6777 }
6778 }
6779 result
6780 };
6781 let mut items = ::std::vec::Vec::new();
6782 for child in non_field_children {
6783 items.push(
6784 <ObjectTypeChildren as ::treesitter_types::FromNode>::from_node(
6785 child, src,
6786 )?,
6787 );
6788 }
6789 items
6790 },
6791 })
6792 }
6793}
6794impl ::treesitter_types::Spanned for ObjectType<'_> {
6795 fn span(&self) -> ::treesitter_types::Span {
6796 self.span
6797 }
6798}
6799#[derive(Debug, Clone, PartialEq, Eq)]
6800pub struct OmittingTypeAnnotation<'tree> {
6801 pub span: ::treesitter_types::Span,
6802 pub children: Type<'tree>,
6803}
6804impl<'tree> ::treesitter_types::FromNode<'tree> for OmittingTypeAnnotation<'tree> {
6805 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6806 fn from_node(
6807 node: ::tree_sitter::Node<'tree>,
6808 src: &'tree [u8],
6809 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6810 debug_assert_eq!(node.kind(), "omitting_type_annotation");
6811 Ok(Self {
6812 span: ::treesitter_types::Span::from(node),
6813 children: {
6814 #[allow(clippy::suspicious_else_formatting)]
6815 let non_field_children = {
6816 let mut cursor = node.walk();
6817 let mut result = ::std::vec::Vec::new();
6818 if cursor.goto_first_child() {
6819 loop {
6820 if cursor.field_name().is_none()
6821 && cursor.node().is_named()
6822 && !cursor.node().is_extra()
6823 {
6824 result.push(cursor.node());
6825 }
6826 if !cursor.goto_next_sibling() {
6827 break;
6828 }
6829 }
6830 }
6831 result
6832 };
6833 let child = if let Some(&c) = non_field_children.first() {
6834 c
6835 } else {
6836 let mut fallback_cursor = node.walk();
6837 let mut fallback_child = None;
6838 if fallback_cursor.goto_first_child() {
6839 loop {
6840 if fallback_cursor.field_name().is_none()
6841 && !fallback_cursor.node().is_extra()
6842 {
6843 let candidate = fallback_cursor.node();
6844 #[allow(clippy::needless_question_mark)]
6845 if (|| -> ::core::result::Result<
6846 _,
6847 ::treesitter_types::ParseError,
6848 > {
6849 let child = candidate;
6850 Ok(
6851 <Type as ::treesitter_types::FromNode>::from_node(
6852 child,
6853 src,
6854 )?,
6855 )
6856 })()
6857 .is_ok()
6858 {
6859 fallback_child = Some(candidate);
6860 break;
6861 }
6862 }
6863 if !fallback_cursor.goto_next_sibling() {
6864 break;
6865 }
6866 }
6867 }
6868 if fallback_child.is_none() {
6869 let mut cursor2 = node.walk();
6870 if cursor2.goto_first_child() {
6871 loop {
6872 if cursor2.node().is_named() && !cursor2.node().is_extra() {
6873 let candidate = cursor2.node();
6874 #[allow(clippy::needless_question_mark)]
6875 if (|| -> ::core::result::Result<
6876 _,
6877 ::treesitter_types::ParseError,
6878 > {
6879 let child = candidate;
6880 Ok(
6881 <Type as ::treesitter_types::FromNode>::from_node(
6882 child,
6883 src,
6884 )?,
6885 )
6886 })()
6887 .is_ok()
6888 {
6889 fallback_child = Some(candidate);
6890 break;
6891 }
6892 }
6893 if !cursor2.goto_next_sibling() {
6894 break;
6895 }
6896 }
6897 }
6898 }
6899 fallback_child.ok_or_else(|| {
6900 ::treesitter_types::ParseError::missing_field("children", node)
6901 })?
6902 };
6903 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
6904 },
6905 })
6906 }
6907}
6908impl ::treesitter_types::Spanned for OmittingTypeAnnotation<'_> {
6909 fn span(&self) -> ::treesitter_types::Span {
6910 self.span
6911 }
6912}
6913#[derive(Debug, Clone, PartialEq, Eq)]
6914pub struct OptingTypeAnnotation<'tree> {
6915 pub span: ::treesitter_types::Span,
6916 pub children: Type<'tree>,
6917}
6918impl<'tree> ::treesitter_types::FromNode<'tree> for OptingTypeAnnotation<'tree> {
6919 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6920 fn from_node(
6921 node: ::tree_sitter::Node<'tree>,
6922 src: &'tree [u8],
6923 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6924 debug_assert_eq!(node.kind(), "opting_type_annotation");
6925 Ok(Self {
6926 span: ::treesitter_types::Span::from(node),
6927 children: {
6928 #[allow(clippy::suspicious_else_formatting)]
6929 let non_field_children = {
6930 let mut cursor = node.walk();
6931 let mut result = ::std::vec::Vec::new();
6932 if cursor.goto_first_child() {
6933 loop {
6934 if cursor.field_name().is_none()
6935 && cursor.node().is_named()
6936 && !cursor.node().is_extra()
6937 {
6938 result.push(cursor.node());
6939 }
6940 if !cursor.goto_next_sibling() {
6941 break;
6942 }
6943 }
6944 }
6945 result
6946 };
6947 let child = if let Some(&c) = non_field_children.first() {
6948 c
6949 } else {
6950 let mut fallback_cursor = node.walk();
6951 let mut fallback_child = None;
6952 if fallback_cursor.goto_first_child() {
6953 loop {
6954 if fallback_cursor.field_name().is_none()
6955 && !fallback_cursor.node().is_extra()
6956 {
6957 let candidate = fallback_cursor.node();
6958 #[allow(clippy::needless_question_mark)]
6959 if (|| -> ::core::result::Result<
6960 _,
6961 ::treesitter_types::ParseError,
6962 > {
6963 let child = candidate;
6964 Ok(
6965 <Type as ::treesitter_types::FromNode>::from_node(
6966 child,
6967 src,
6968 )?,
6969 )
6970 })()
6971 .is_ok()
6972 {
6973 fallback_child = Some(candidate);
6974 break;
6975 }
6976 }
6977 if !fallback_cursor.goto_next_sibling() {
6978 break;
6979 }
6980 }
6981 }
6982 if fallback_child.is_none() {
6983 let mut cursor2 = node.walk();
6984 if cursor2.goto_first_child() {
6985 loop {
6986 if cursor2.node().is_named() && !cursor2.node().is_extra() {
6987 let candidate = cursor2.node();
6988 #[allow(clippy::needless_question_mark)]
6989 if (|| -> ::core::result::Result<
6990 _,
6991 ::treesitter_types::ParseError,
6992 > {
6993 let child = candidate;
6994 Ok(
6995 <Type as ::treesitter_types::FromNode>::from_node(
6996 child,
6997 src,
6998 )?,
6999 )
7000 })()
7001 .is_ok()
7002 {
7003 fallback_child = Some(candidate);
7004 break;
7005 }
7006 }
7007 if !cursor2.goto_next_sibling() {
7008 break;
7009 }
7010 }
7011 }
7012 }
7013 fallback_child.ok_or_else(|| {
7014 ::treesitter_types::ParseError::missing_field("children", node)
7015 })?
7016 };
7017 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
7018 },
7019 })
7020 }
7021}
7022impl ::treesitter_types::Spanned for OptingTypeAnnotation<'_> {
7023 fn span(&self) -> ::treesitter_types::Span {
7024 self.span
7025 }
7026}
7027#[derive(Debug, Clone, PartialEq, Eq)]
7028pub struct OptionalChain<'tree> {
7029 pub span: ::treesitter_types::Span,
7030 text: &'tree str,
7031}
7032impl<'tree> ::treesitter_types::FromNode<'tree> for OptionalChain<'tree> {
7033 fn from_node(
7034 node: ::tree_sitter::Node<'tree>,
7035 src: &'tree [u8],
7036 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7037 debug_assert_eq!(node.kind(), "optional_chain");
7038 Ok(Self {
7039 span: ::treesitter_types::Span::from(node),
7040 text: node.utf8_text(src)?,
7041 })
7042 }
7043}
7044impl<'tree> ::treesitter_types::LeafNode<'tree> for OptionalChain<'tree> {
7045 fn text(&self) -> &'tree str {
7046 self.text
7047 }
7048}
7049impl ::treesitter_types::Spanned for OptionalChain<'_> {
7050 fn span(&self) -> ::treesitter_types::Span {
7051 self.span
7052 }
7053}
7054#[derive(Debug, Clone, PartialEq, Eq)]
7055pub struct OptionalParameter<'tree> {
7056 pub span: ::treesitter_types::Span,
7057 pub decorator: ::std::vec::Vec<Decorator<'tree>>,
7058 pub name: ::core::option::Option<Identifier<'tree>>,
7059 pub pattern: ::core::option::Option<OptionalParameterPattern<'tree>>,
7060 pub r#type: ::core::option::Option<TypeAnnotation<'tree>>,
7061 pub value: ::core::option::Option<Expression<'tree>>,
7062 pub children: ::std::vec::Vec<OptionalParameterChildren<'tree>>,
7063}
7064impl<'tree> ::treesitter_types::FromNode<'tree> for OptionalParameter<'tree> {
7065 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7066 fn from_node(
7067 node: ::tree_sitter::Node<'tree>,
7068 src: &'tree [u8],
7069 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7070 debug_assert_eq!(node.kind(), "optional_parameter");
7071 Ok(Self {
7072 span: ::treesitter_types::Span::from(node),
7073 decorator: {
7074 let mut cursor = node.walk();
7075 let mut items = ::std::vec::Vec::new();
7076 for child in node.children_by_field_name("decorator", &mut cursor) {
7077 items.push(<Decorator as ::treesitter_types::FromNode>::from_node(
7078 child, src,
7079 )?);
7080 }
7081 items
7082 },
7083 name: match node.child_by_field_name("name") {
7084 Some(child) => Some(<Identifier as ::treesitter_types::FromNode>::from_node(
7085 child, src,
7086 )?),
7087 None => None,
7088 },
7089 pattern: match node.child_by_field_name("pattern") {
7090 Some(child) => Some(
7091 <OptionalParameterPattern as ::treesitter_types::FromNode>::from_node(
7092 child, src,
7093 )?,
7094 ),
7095 None => None,
7096 },
7097 r#type: match node.child_by_field_name("type") {
7098 Some(child) => Some(<TypeAnnotation as ::treesitter_types::FromNode>::from_node(
7099 child, src,
7100 )?),
7101 None => None,
7102 },
7103 value: match node.child_by_field_name("value") {
7104 Some(child) => Some(<Expression as ::treesitter_types::FromNode>::from_node(
7105 child, src,
7106 )?),
7107 None => None,
7108 },
7109 children: {
7110 #[allow(clippy::suspicious_else_formatting)]
7111 let non_field_children = {
7112 let mut cursor = node.walk();
7113 let mut result = ::std::vec::Vec::new();
7114 if cursor.goto_first_child() {
7115 loop {
7116 if cursor.field_name().is_none()
7117 && cursor.node().is_named()
7118 && !cursor.node().is_extra()
7119 {
7120 result.push(cursor.node());
7121 }
7122 if !cursor.goto_next_sibling() {
7123 break;
7124 }
7125 }
7126 }
7127 result
7128 };
7129 let mut items = ::std::vec::Vec::new();
7130 for child in non_field_children {
7131 items.push(
7132 <OptionalParameterChildren as ::treesitter_types::FromNode>::from_node(
7133 child, src,
7134 )?,
7135 );
7136 }
7137 items
7138 },
7139 })
7140 }
7141}
7142impl ::treesitter_types::Spanned for OptionalParameter<'_> {
7143 fn span(&self) -> ::treesitter_types::Span {
7144 self.span
7145 }
7146}
7147#[derive(Debug, Clone, PartialEq, Eq)]
7148pub struct OptionalType<'tree> {
7149 pub span: ::treesitter_types::Span,
7150 pub children: Type<'tree>,
7151}
7152impl<'tree> ::treesitter_types::FromNode<'tree> for OptionalType<'tree> {
7153 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7154 fn from_node(
7155 node: ::tree_sitter::Node<'tree>,
7156 src: &'tree [u8],
7157 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7158 debug_assert_eq!(node.kind(), "optional_type");
7159 Ok(Self {
7160 span: ::treesitter_types::Span::from(node),
7161 children: {
7162 #[allow(clippy::suspicious_else_formatting)]
7163 let non_field_children = {
7164 let mut cursor = node.walk();
7165 let mut result = ::std::vec::Vec::new();
7166 if cursor.goto_first_child() {
7167 loop {
7168 if cursor.field_name().is_none()
7169 && cursor.node().is_named()
7170 && !cursor.node().is_extra()
7171 {
7172 result.push(cursor.node());
7173 }
7174 if !cursor.goto_next_sibling() {
7175 break;
7176 }
7177 }
7178 }
7179 result
7180 };
7181 let child = if let Some(&c) = non_field_children.first() {
7182 c
7183 } else {
7184 let mut fallback_cursor = node.walk();
7185 let mut fallback_child = None;
7186 if fallback_cursor.goto_first_child() {
7187 loop {
7188 if fallback_cursor.field_name().is_none()
7189 && !fallback_cursor.node().is_extra()
7190 {
7191 let candidate = fallback_cursor.node();
7192 #[allow(clippy::needless_question_mark)]
7193 if (|| -> ::core::result::Result<
7194 _,
7195 ::treesitter_types::ParseError,
7196 > {
7197 let child = candidate;
7198 Ok(
7199 <Type as ::treesitter_types::FromNode>::from_node(
7200 child,
7201 src,
7202 )?,
7203 )
7204 })()
7205 .is_ok()
7206 {
7207 fallback_child = Some(candidate);
7208 break;
7209 }
7210 }
7211 if !fallback_cursor.goto_next_sibling() {
7212 break;
7213 }
7214 }
7215 }
7216 if fallback_child.is_none() {
7217 let mut cursor2 = node.walk();
7218 if cursor2.goto_first_child() {
7219 loop {
7220 if cursor2.node().is_named() && !cursor2.node().is_extra() {
7221 let candidate = cursor2.node();
7222 #[allow(clippy::needless_question_mark)]
7223 if (|| -> ::core::result::Result<
7224 _,
7225 ::treesitter_types::ParseError,
7226 > {
7227 let child = candidate;
7228 Ok(
7229 <Type as ::treesitter_types::FromNode>::from_node(
7230 child,
7231 src,
7232 )?,
7233 )
7234 })()
7235 .is_ok()
7236 {
7237 fallback_child = Some(candidate);
7238 break;
7239 }
7240 }
7241 if !cursor2.goto_next_sibling() {
7242 break;
7243 }
7244 }
7245 }
7246 }
7247 fallback_child.ok_or_else(|| {
7248 ::treesitter_types::ParseError::missing_field("children", node)
7249 })?
7250 };
7251 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
7252 },
7253 })
7254 }
7255}
7256impl ::treesitter_types::Spanned for OptionalType<'_> {
7257 fn span(&self) -> ::treesitter_types::Span {
7258 self.span
7259 }
7260}
7261#[derive(Debug, Clone, PartialEq, Eq)]
7262pub struct OverrideModifier<'tree> {
7263 pub span: ::treesitter_types::Span,
7264 text: &'tree str,
7265}
7266impl<'tree> ::treesitter_types::FromNode<'tree> for OverrideModifier<'tree> {
7267 fn from_node(
7268 node: ::tree_sitter::Node<'tree>,
7269 src: &'tree [u8],
7270 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7271 debug_assert_eq!(node.kind(), "override_modifier");
7272 Ok(Self {
7273 span: ::treesitter_types::Span::from(node),
7274 text: node.utf8_text(src)?,
7275 })
7276 }
7277}
7278impl<'tree> ::treesitter_types::LeafNode<'tree> for OverrideModifier<'tree> {
7279 fn text(&self) -> &'tree str {
7280 self.text
7281 }
7282}
7283impl ::treesitter_types::Spanned for OverrideModifier<'_> {
7284 fn span(&self) -> ::treesitter_types::Span {
7285 self.span
7286 }
7287}
7288#[derive(Debug, Clone, PartialEq, Eq)]
7289pub struct Pair<'tree> {
7290 pub span: ::treesitter_types::Span,
7291 pub key: PairKey<'tree>,
7292 pub value: Expression<'tree>,
7293}
7294impl<'tree> ::treesitter_types::FromNode<'tree> for Pair<'tree> {
7295 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7296 fn from_node(
7297 node: ::tree_sitter::Node<'tree>,
7298 src: &'tree [u8],
7299 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7300 debug_assert_eq!(node.kind(), "pair");
7301 Ok(Self {
7302 span: ::treesitter_types::Span::from(node),
7303 key: {
7304 let child = node
7305 .child_by_field_name("key")
7306 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("key", node))?;
7307 <PairKey as ::treesitter_types::FromNode>::from_node(child, src)?
7308 },
7309 value: {
7310 let child = node
7311 .child_by_field_name("value")
7312 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
7313 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
7314 },
7315 })
7316 }
7317}
7318impl ::treesitter_types::Spanned for Pair<'_> {
7319 fn span(&self) -> ::treesitter_types::Span {
7320 self.span
7321 }
7322}
7323#[derive(Debug, Clone, PartialEq, Eq)]
7324pub struct PairPattern<'tree> {
7325 pub span: ::treesitter_types::Span,
7326 pub key: PairPatternKey<'tree>,
7327 pub value: PairPatternValue<'tree>,
7328}
7329impl<'tree> ::treesitter_types::FromNode<'tree> for PairPattern<'tree> {
7330 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7331 fn from_node(
7332 node: ::tree_sitter::Node<'tree>,
7333 src: &'tree [u8],
7334 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7335 debug_assert_eq!(node.kind(), "pair_pattern");
7336 Ok(Self {
7337 span: ::treesitter_types::Span::from(node),
7338 key: {
7339 let child = node
7340 .child_by_field_name("key")
7341 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("key", node))?;
7342 <PairPatternKey as ::treesitter_types::FromNode>::from_node(child, src)?
7343 },
7344 value: {
7345 let child = node
7346 .child_by_field_name("value")
7347 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
7348 <PairPatternValue as ::treesitter_types::FromNode>::from_node(child, src)?
7349 },
7350 })
7351 }
7352}
7353impl ::treesitter_types::Spanned for PairPattern<'_> {
7354 fn span(&self) -> ::treesitter_types::Span {
7355 self.span
7356 }
7357}
7358#[derive(Debug, Clone, PartialEq, Eq)]
7359pub struct ParenthesizedExpression<'tree> {
7360 pub span: ::treesitter_types::Span,
7361 pub r#type: ::core::option::Option<TypeAnnotation<'tree>>,
7362 pub children: ParenthesizedExpressionChildren<'tree>,
7363}
7364impl<'tree> ::treesitter_types::FromNode<'tree> for ParenthesizedExpression<'tree> {
7365 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7366 fn from_node(
7367 node: ::tree_sitter::Node<'tree>,
7368 src: &'tree [u8],
7369 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7370 debug_assert_eq!(node.kind(), "parenthesized_expression");
7371 Ok(Self {
7372 span: ::treesitter_types::Span::from(node),
7373 r#type: match node.child_by_field_name("type") {
7374 Some(child) => Some(<TypeAnnotation as ::treesitter_types::FromNode>::from_node(
7375 child, src,
7376 )?),
7377 None => None,
7378 },
7379 children: {
7380 #[allow(clippy::suspicious_else_formatting)]
7381 let non_field_children = {
7382 let mut cursor = node.walk();
7383 let mut result = ::std::vec::Vec::new();
7384 if cursor.goto_first_child() {
7385 loop {
7386 if cursor.field_name().is_none()
7387 && cursor.node().is_named()
7388 && !cursor.node().is_extra()
7389 {
7390 result.push(cursor.node());
7391 }
7392 if !cursor.goto_next_sibling() {
7393 break;
7394 }
7395 }
7396 }
7397 result
7398 };
7399 let child = if let Some(&c) = non_field_children.first() {
7400 c
7401 } else {
7402 let mut fallback_cursor = node.walk();
7403 let mut fallback_child = None;
7404 if fallback_cursor.goto_first_child() {
7405 loop {
7406 if fallback_cursor.field_name().is_none()
7407 && !fallback_cursor.node().is_extra()
7408 {
7409 let candidate = fallback_cursor.node();
7410 #[allow(clippy::needless_question_mark)]
7411 if (|| -> ::core::result::Result<
7412 _,
7413 ::treesitter_types::ParseError,
7414 > {
7415 let child = candidate;
7416 Ok(
7417 <ParenthesizedExpressionChildren as ::treesitter_types::FromNode>::from_node(
7418 child,
7419 src,
7420 )?,
7421 )
7422 })()
7423 .is_ok()
7424 {
7425 fallback_child = Some(candidate);
7426 break;
7427 }
7428 }
7429 if !fallback_cursor.goto_next_sibling() {
7430 break;
7431 }
7432 }
7433 }
7434 if fallback_child.is_none() {
7435 let mut cursor2 = node.walk();
7436 if cursor2.goto_first_child() {
7437 loop {
7438 if cursor2.node().is_named() && !cursor2.node().is_extra() {
7439 let candidate = cursor2.node();
7440 #[allow(clippy::needless_question_mark)]
7441 if (|| -> ::core::result::Result<
7442 _,
7443 ::treesitter_types::ParseError,
7444 > {
7445 let child = candidate;
7446 Ok(
7447 <ParenthesizedExpressionChildren as ::treesitter_types::FromNode>::from_node(
7448 child,
7449 src,
7450 )?,
7451 )
7452 })()
7453 .is_ok()
7454 {
7455 fallback_child = Some(candidate);
7456 break;
7457 }
7458 }
7459 if !cursor2.goto_next_sibling() {
7460 break;
7461 }
7462 }
7463 }
7464 }
7465 fallback_child.ok_or_else(|| {
7466 ::treesitter_types::ParseError::missing_field("children", node)
7467 })?
7468 };
7469 <ParenthesizedExpressionChildren as ::treesitter_types::FromNode>::from_node(
7470 child, src,
7471 )?
7472 },
7473 })
7474 }
7475}
7476impl ::treesitter_types::Spanned for ParenthesizedExpression<'_> {
7477 fn span(&self) -> ::treesitter_types::Span {
7478 self.span
7479 }
7480}
7481#[derive(Debug, Clone, PartialEq, Eq)]
7482pub struct ParenthesizedType<'tree> {
7483 pub span: ::treesitter_types::Span,
7484 pub children: Type<'tree>,
7485}
7486impl<'tree> ::treesitter_types::FromNode<'tree> for ParenthesizedType<'tree> {
7487 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7488 fn from_node(
7489 node: ::tree_sitter::Node<'tree>,
7490 src: &'tree [u8],
7491 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7492 debug_assert_eq!(node.kind(), "parenthesized_type");
7493 Ok(Self {
7494 span: ::treesitter_types::Span::from(node),
7495 children: {
7496 #[allow(clippy::suspicious_else_formatting)]
7497 let non_field_children = {
7498 let mut cursor = node.walk();
7499 let mut result = ::std::vec::Vec::new();
7500 if cursor.goto_first_child() {
7501 loop {
7502 if cursor.field_name().is_none()
7503 && cursor.node().is_named()
7504 && !cursor.node().is_extra()
7505 {
7506 result.push(cursor.node());
7507 }
7508 if !cursor.goto_next_sibling() {
7509 break;
7510 }
7511 }
7512 }
7513 result
7514 };
7515 let child = if let Some(&c) = non_field_children.first() {
7516 c
7517 } else {
7518 let mut fallback_cursor = node.walk();
7519 let mut fallback_child = None;
7520 if fallback_cursor.goto_first_child() {
7521 loop {
7522 if fallback_cursor.field_name().is_none()
7523 && !fallback_cursor.node().is_extra()
7524 {
7525 let candidate = fallback_cursor.node();
7526 #[allow(clippy::needless_question_mark)]
7527 if (|| -> ::core::result::Result<
7528 _,
7529 ::treesitter_types::ParseError,
7530 > {
7531 let child = candidate;
7532 Ok(
7533 <Type as ::treesitter_types::FromNode>::from_node(
7534 child,
7535 src,
7536 )?,
7537 )
7538 })()
7539 .is_ok()
7540 {
7541 fallback_child = Some(candidate);
7542 break;
7543 }
7544 }
7545 if !fallback_cursor.goto_next_sibling() {
7546 break;
7547 }
7548 }
7549 }
7550 if fallback_child.is_none() {
7551 let mut cursor2 = node.walk();
7552 if cursor2.goto_first_child() {
7553 loop {
7554 if cursor2.node().is_named() && !cursor2.node().is_extra() {
7555 let candidate = cursor2.node();
7556 #[allow(clippy::needless_question_mark)]
7557 if (|| -> ::core::result::Result<
7558 _,
7559 ::treesitter_types::ParseError,
7560 > {
7561 let child = candidate;
7562 Ok(
7563 <Type as ::treesitter_types::FromNode>::from_node(
7564 child,
7565 src,
7566 )?,
7567 )
7568 })()
7569 .is_ok()
7570 {
7571 fallback_child = Some(candidate);
7572 break;
7573 }
7574 }
7575 if !cursor2.goto_next_sibling() {
7576 break;
7577 }
7578 }
7579 }
7580 }
7581 fallback_child.ok_or_else(|| {
7582 ::treesitter_types::ParseError::missing_field("children", node)
7583 })?
7584 };
7585 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
7586 },
7587 })
7588 }
7589}
7590impl ::treesitter_types::Spanned for ParenthesizedType<'_> {
7591 fn span(&self) -> ::treesitter_types::Span {
7592 self.span
7593 }
7594}
7595#[derive(Debug, Clone, PartialEq, Eq)]
7596pub struct PredefinedType<'tree> {
7597 pub span: ::treesitter_types::Span,
7598 text: &'tree str,
7599}
7600impl<'tree> ::treesitter_types::FromNode<'tree> for PredefinedType<'tree> {
7601 fn from_node(
7602 node: ::tree_sitter::Node<'tree>,
7603 src: &'tree [u8],
7604 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7605 debug_assert_eq!(node.kind(), "predefined_type");
7606 Ok(Self {
7607 span: ::treesitter_types::Span::from(node),
7608 text: node.utf8_text(src)?,
7609 })
7610 }
7611}
7612impl<'tree> ::treesitter_types::LeafNode<'tree> for PredefinedType<'tree> {
7613 fn text(&self) -> &'tree str {
7614 self.text
7615 }
7616}
7617impl ::treesitter_types::Spanned for PredefinedType<'_> {
7618 fn span(&self) -> ::treesitter_types::Span {
7619 self.span
7620 }
7621}
7622#[derive(Debug, Clone, PartialEq, Eq)]
7623pub struct Program<'tree> {
7624 pub span: ::treesitter_types::Span,
7625 pub children: ::std::vec::Vec<ProgramChildren<'tree>>,
7626}
7627impl<'tree> ::treesitter_types::FromNode<'tree> for Program<'tree> {
7628 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7629 fn from_node(
7630 node: ::tree_sitter::Node<'tree>,
7631 src: &'tree [u8],
7632 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7633 debug_assert_eq!(node.kind(), "program");
7634 Ok(Self {
7635 span: ::treesitter_types::Span::from(node),
7636 children: {
7637 #[allow(clippy::suspicious_else_formatting)]
7638 let non_field_children = {
7639 let mut cursor = node.walk();
7640 let mut result = ::std::vec::Vec::new();
7641 if cursor.goto_first_child() {
7642 loop {
7643 if cursor.field_name().is_none()
7644 && cursor.node().is_named()
7645 && !cursor.node().is_extra()
7646 {
7647 result.push(cursor.node());
7648 }
7649 if !cursor.goto_next_sibling() {
7650 break;
7651 }
7652 }
7653 }
7654 result
7655 };
7656 let mut items = ::std::vec::Vec::new();
7657 for child in non_field_children {
7658 items.push(
7659 <ProgramChildren as ::treesitter_types::FromNode>::from_node(child, src)?,
7660 );
7661 }
7662 items
7663 },
7664 })
7665 }
7666}
7667impl ::treesitter_types::Spanned for Program<'_> {
7668 fn span(&self) -> ::treesitter_types::Span {
7669 self.span
7670 }
7671}
7672#[derive(Debug, Clone, PartialEq, Eq)]
7673pub struct PropertySignature<'tree> {
7674 pub span: ::treesitter_types::Span,
7675 pub name: PropertySignatureName<'tree>,
7676 pub r#type: ::core::option::Option<TypeAnnotation<'tree>>,
7677 pub children: ::std::vec::Vec<PropertySignatureChildren<'tree>>,
7678}
7679impl<'tree> ::treesitter_types::FromNode<'tree> for PropertySignature<'tree> {
7680 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7681 fn from_node(
7682 node: ::tree_sitter::Node<'tree>,
7683 src: &'tree [u8],
7684 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7685 debug_assert_eq!(node.kind(), "property_signature");
7686 Ok(Self {
7687 span: ::treesitter_types::Span::from(node),
7688 name: {
7689 let child = node
7690 .child_by_field_name("name")
7691 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
7692 <PropertySignatureName as ::treesitter_types::FromNode>::from_node(child, src)?
7693 },
7694 r#type: match node.child_by_field_name("type") {
7695 Some(child) => Some(<TypeAnnotation as ::treesitter_types::FromNode>::from_node(
7696 child, src,
7697 )?),
7698 None => None,
7699 },
7700 children: {
7701 #[allow(clippy::suspicious_else_formatting)]
7702 let non_field_children = {
7703 let mut cursor = node.walk();
7704 let mut result = ::std::vec::Vec::new();
7705 if cursor.goto_first_child() {
7706 loop {
7707 if cursor.field_name().is_none()
7708 && cursor.node().is_named()
7709 && !cursor.node().is_extra()
7710 {
7711 result.push(cursor.node());
7712 }
7713 if !cursor.goto_next_sibling() {
7714 break;
7715 }
7716 }
7717 }
7718 result
7719 };
7720 let mut items = ::std::vec::Vec::new();
7721 for child in non_field_children {
7722 items.push(
7723 <PropertySignatureChildren as ::treesitter_types::FromNode>::from_node(
7724 child, src,
7725 )?,
7726 );
7727 }
7728 items
7729 },
7730 })
7731 }
7732}
7733impl ::treesitter_types::Spanned for PropertySignature<'_> {
7734 fn span(&self) -> ::treesitter_types::Span {
7735 self.span
7736 }
7737}
7738#[derive(Debug, Clone, PartialEq, Eq)]
7739pub struct PublicFieldDefinition<'tree> {
7740 pub span: ::treesitter_types::Span,
7741 pub decorator: ::std::vec::Vec<Decorator<'tree>>,
7742 pub name: PublicFieldDefinitionName<'tree>,
7743 pub r#type: ::core::option::Option<TypeAnnotation<'tree>>,
7744 pub value: ::core::option::Option<Expression<'tree>>,
7745 pub children: ::std::vec::Vec<PublicFieldDefinitionChildren<'tree>>,
7746}
7747impl<'tree> ::treesitter_types::FromNode<'tree> for PublicFieldDefinition<'tree> {
7748 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7749 fn from_node(
7750 node: ::tree_sitter::Node<'tree>,
7751 src: &'tree [u8],
7752 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7753 debug_assert_eq!(node.kind(), "public_field_definition");
7754 Ok(Self {
7755 span: ::treesitter_types::Span::from(node),
7756 decorator: {
7757 let mut cursor = node.walk();
7758 let mut items = ::std::vec::Vec::new();
7759 for child in node.children_by_field_name("decorator", &mut cursor) {
7760 items.push(<Decorator as ::treesitter_types::FromNode>::from_node(
7761 child, src,
7762 )?);
7763 }
7764 items
7765 },
7766 name: {
7767 let child = node
7768 .child_by_field_name("name")
7769 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
7770 <PublicFieldDefinitionName as ::treesitter_types::FromNode>::from_node(child, src)?
7771 },
7772 r#type: match node.child_by_field_name("type") {
7773 Some(child) => Some(<TypeAnnotation as ::treesitter_types::FromNode>::from_node(
7774 child, src,
7775 )?),
7776 None => None,
7777 },
7778 value: match node.child_by_field_name("value") {
7779 Some(child) => Some(<Expression as ::treesitter_types::FromNode>::from_node(
7780 child, src,
7781 )?),
7782 None => None,
7783 },
7784 children: {
7785 #[allow(clippy::suspicious_else_formatting)]
7786 let non_field_children = {
7787 let mut cursor = node.walk();
7788 let mut result = ::std::vec::Vec::new();
7789 if cursor.goto_first_child() {
7790 loop {
7791 if cursor.field_name().is_none()
7792 && cursor.node().is_named()
7793 && !cursor.node().is_extra()
7794 {
7795 result.push(cursor.node());
7796 }
7797 if !cursor.goto_next_sibling() {
7798 break;
7799 }
7800 }
7801 }
7802 result
7803 };
7804 let mut items = ::std::vec::Vec::new();
7805 for child in non_field_children {
7806 items.push(
7807 <PublicFieldDefinitionChildren as ::treesitter_types::FromNode>::from_node(
7808 child, src,
7809 )?,
7810 );
7811 }
7812 items
7813 },
7814 })
7815 }
7816}
7817impl ::treesitter_types::Spanned for PublicFieldDefinition<'_> {
7818 fn span(&self) -> ::treesitter_types::Span {
7819 self.span
7820 }
7821}
7822#[derive(Debug, Clone, PartialEq, Eq)]
7823pub struct ReadonlyType<'tree> {
7824 pub span: ::treesitter_types::Span,
7825 pub children: Type<'tree>,
7826}
7827impl<'tree> ::treesitter_types::FromNode<'tree> for ReadonlyType<'tree> {
7828 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7829 fn from_node(
7830 node: ::tree_sitter::Node<'tree>,
7831 src: &'tree [u8],
7832 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7833 debug_assert_eq!(node.kind(), "readonly_type");
7834 Ok(Self {
7835 span: ::treesitter_types::Span::from(node),
7836 children: {
7837 #[allow(clippy::suspicious_else_formatting)]
7838 let non_field_children = {
7839 let mut cursor = node.walk();
7840 let mut result = ::std::vec::Vec::new();
7841 if cursor.goto_first_child() {
7842 loop {
7843 if cursor.field_name().is_none()
7844 && cursor.node().is_named()
7845 && !cursor.node().is_extra()
7846 {
7847 result.push(cursor.node());
7848 }
7849 if !cursor.goto_next_sibling() {
7850 break;
7851 }
7852 }
7853 }
7854 result
7855 };
7856 let child = if let Some(&c) = non_field_children.first() {
7857 c
7858 } else {
7859 let mut fallback_cursor = node.walk();
7860 let mut fallback_child = None;
7861 if fallback_cursor.goto_first_child() {
7862 loop {
7863 if fallback_cursor.field_name().is_none()
7864 && !fallback_cursor.node().is_extra()
7865 {
7866 let candidate = fallback_cursor.node();
7867 #[allow(clippy::needless_question_mark)]
7868 if (|| -> ::core::result::Result<
7869 _,
7870 ::treesitter_types::ParseError,
7871 > {
7872 let child = candidate;
7873 Ok(
7874 <Type as ::treesitter_types::FromNode>::from_node(
7875 child,
7876 src,
7877 )?,
7878 )
7879 })()
7880 .is_ok()
7881 {
7882 fallback_child = Some(candidate);
7883 break;
7884 }
7885 }
7886 if !fallback_cursor.goto_next_sibling() {
7887 break;
7888 }
7889 }
7890 }
7891 if fallback_child.is_none() {
7892 let mut cursor2 = node.walk();
7893 if cursor2.goto_first_child() {
7894 loop {
7895 if cursor2.node().is_named() && !cursor2.node().is_extra() {
7896 let candidate = cursor2.node();
7897 #[allow(clippy::needless_question_mark)]
7898 if (|| -> ::core::result::Result<
7899 _,
7900 ::treesitter_types::ParseError,
7901 > {
7902 let child = candidate;
7903 Ok(
7904 <Type as ::treesitter_types::FromNode>::from_node(
7905 child,
7906 src,
7907 )?,
7908 )
7909 })()
7910 .is_ok()
7911 {
7912 fallback_child = Some(candidate);
7913 break;
7914 }
7915 }
7916 if !cursor2.goto_next_sibling() {
7917 break;
7918 }
7919 }
7920 }
7921 }
7922 fallback_child.ok_or_else(|| {
7923 ::treesitter_types::ParseError::missing_field("children", node)
7924 })?
7925 };
7926 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
7927 },
7928 })
7929 }
7930}
7931impl ::treesitter_types::Spanned for ReadonlyType<'_> {
7932 fn span(&self) -> ::treesitter_types::Span {
7933 self.span
7934 }
7935}
7936#[derive(Debug, Clone, PartialEq, Eq)]
7937pub struct Regex<'tree> {
7938 pub span: ::treesitter_types::Span,
7939 pub flags: ::core::option::Option<RegexFlags<'tree>>,
7940 pub pattern: RegexPattern<'tree>,
7941}
7942impl<'tree> ::treesitter_types::FromNode<'tree> for Regex<'tree> {
7943 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7944 fn from_node(
7945 node: ::tree_sitter::Node<'tree>,
7946 src: &'tree [u8],
7947 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7948 debug_assert_eq!(node.kind(), "regex");
7949 Ok(Self {
7950 span: ::treesitter_types::Span::from(node),
7951 flags: match node.child_by_field_name("flags") {
7952 Some(child) => Some(<RegexFlags as ::treesitter_types::FromNode>::from_node(
7953 child, src,
7954 )?),
7955 None => None,
7956 },
7957 pattern: {
7958 let child = node.child_by_field_name("pattern").ok_or_else(|| {
7959 ::treesitter_types::ParseError::missing_field("pattern", node)
7960 })?;
7961 <RegexPattern as ::treesitter_types::FromNode>::from_node(child, src)?
7962 },
7963 })
7964 }
7965}
7966impl ::treesitter_types::Spanned for Regex<'_> {
7967 fn span(&self) -> ::treesitter_types::Span {
7968 self.span
7969 }
7970}
7971#[derive(Debug, Clone, PartialEq, Eq)]
7972pub struct RequiredParameter<'tree> {
7973 pub span: ::treesitter_types::Span,
7974 pub decorator: ::std::vec::Vec<Decorator<'tree>>,
7975 pub name: ::core::option::Option<RequiredParameterName<'tree>>,
7976 pub pattern: ::core::option::Option<RequiredParameterPattern<'tree>>,
7977 pub r#type: ::core::option::Option<TypeAnnotation<'tree>>,
7978 pub value: ::core::option::Option<Expression<'tree>>,
7979 pub children: ::std::vec::Vec<RequiredParameterChildren<'tree>>,
7980}
7981impl<'tree> ::treesitter_types::FromNode<'tree> for RequiredParameter<'tree> {
7982 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7983 fn from_node(
7984 node: ::tree_sitter::Node<'tree>,
7985 src: &'tree [u8],
7986 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7987 debug_assert_eq!(node.kind(), "required_parameter");
7988 Ok(Self {
7989 span: ::treesitter_types::Span::from(node),
7990 decorator: {
7991 let mut cursor = node.walk();
7992 let mut items = ::std::vec::Vec::new();
7993 for child in node.children_by_field_name("decorator", &mut cursor) {
7994 items.push(<Decorator as ::treesitter_types::FromNode>::from_node(
7995 child, src,
7996 )?);
7997 }
7998 items
7999 },
8000 name: match node.child_by_field_name("name") {
8001 Some(child) => Some(
8002 <RequiredParameterName as ::treesitter_types::FromNode>::from_node(child, src)?,
8003 ),
8004 None => None,
8005 },
8006 pattern: match node.child_by_field_name("pattern") {
8007 Some(child) => Some(
8008 <RequiredParameterPattern as ::treesitter_types::FromNode>::from_node(
8009 child, src,
8010 )?,
8011 ),
8012 None => None,
8013 },
8014 r#type: match node.child_by_field_name("type") {
8015 Some(child) => Some(<TypeAnnotation as ::treesitter_types::FromNode>::from_node(
8016 child, src,
8017 )?),
8018 None => None,
8019 },
8020 value: match node.child_by_field_name("value") {
8021 Some(child) => Some(<Expression as ::treesitter_types::FromNode>::from_node(
8022 child, src,
8023 )?),
8024 None => None,
8025 },
8026 children: {
8027 #[allow(clippy::suspicious_else_formatting)]
8028 let non_field_children = {
8029 let mut cursor = node.walk();
8030 let mut result = ::std::vec::Vec::new();
8031 if cursor.goto_first_child() {
8032 loop {
8033 if cursor.field_name().is_none()
8034 && cursor.node().is_named()
8035 && !cursor.node().is_extra()
8036 {
8037 result.push(cursor.node());
8038 }
8039 if !cursor.goto_next_sibling() {
8040 break;
8041 }
8042 }
8043 }
8044 result
8045 };
8046 let mut items = ::std::vec::Vec::new();
8047 for child in non_field_children {
8048 items.push(
8049 <RequiredParameterChildren as ::treesitter_types::FromNode>::from_node(
8050 child, src,
8051 )?,
8052 );
8053 }
8054 items
8055 },
8056 })
8057 }
8058}
8059impl ::treesitter_types::Spanned for RequiredParameter<'_> {
8060 fn span(&self) -> ::treesitter_types::Span {
8061 self.span
8062 }
8063}
8064#[derive(Debug, Clone, PartialEq, Eq)]
8065pub struct RestPattern<'tree> {
8066 pub span: ::treesitter_types::Span,
8067 pub children: RestPatternChildren<'tree>,
8068}
8069impl<'tree> ::treesitter_types::FromNode<'tree> for RestPattern<'tree> {
8070 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8071 fn from_node(
8072 node: ::tree_sitter::Node<'tree>,
8073 src: &'tree [u8],
8074 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8075 debug_assert_eq!(node.kind(), "rest_pattern");
8076 Ok(Self {
8077 span: ::treesitter_types::Span::from(node),
8078 children: {
8079 #[allow(clippy::suspicious_else_formatting)]
8080 let non_field_children = {
8081 let mut cursor = node.walk();
8082 let mut result = ::std::vec::Vec::new();
8083 if cursor.goto_first_child() {
8084 loop {
8085 if cursor.field_name().is_none()
8086 && cursor.node().is_named()
8087 && !cursor.node().is_extra()
8088 {
8089 result.push(cursor.node());
8090 }
8091 if !cursor.goto_next_sibling() {
8092 break;
8093 }
8094 }
8095 }
8096 result
8097 };
8098 let child = if let Some(&c) = non_field_children.first() {
8099 c
8100 } else {
8101 let mut fallback_cursor = node.walk();
8102 let mut fallback_child = None;
8103 if fallback_cursor.goto_first_child() {
8104 loop {
8105 if fallback_cursor.field_name().is_none()
8106 && !fallback_cursor.node().is_extra()
8107 {
8108 let candidate = fallback_cursor.node();
8109 #[allow(clippy::needless_question_mark)]
8110 if (|| -> ::core::result::Result<
8111 _,
8112 ::treesitter_types::ParseError,
8113 > {
8114 let child = candidate;
8115 Ok(
8116 <RestPatternChildren as ::treesitter_types::FromNode>::from_node(
8117 child,
8118 src,
8119 )?,
8120 )
8121 })()
8122 .is_ok()
8123 {
8124 fallback_child = Some(candidate);
8125 break;
8126 }
8127 }
8128 if !fallback_cursor.goto_next_sibling() {
8129 break;
8130 }
8131 }
8132 }
8133 if fallback_child.is_none() {
8134 let mut cursor2 = node.walk();
8135 if cursor2.goto_first_child() {
8136 loop {
8137 if cursor2.node().is_named() && !cursor2.node().is_extra() {
8138 let candidate = cursor2.node();
8139 #[allow(clippy::needless_question_mark)]
8140 if (|| -> ::core::result::Result<
8141 _,
8142 ::treesitter_types::ParseError,
8143 > {
8144 let child = candidate;
8145 Ok(
8146 <RestPatternChildren as ::treesitter_types::FromNode>::from_node(
8147 child,
8148 src,
8149 )?,
8150 )
8151 })()
8152 .is_ok()
8153 {
8154 fallback_child = Some(candidate);
8155 break;
8156 }
8157 }
8158 if !cursor2.goto_next_sibling() {
8159 break;
8160 }
8161 }
8162 }
8163 }
8164 fallback_child.ok_or_else(|| {
8165 ::treesitter_types::ParseError::missing_field("children", node)
8166 })?
8167 };
8168 <RestPatternChildren as ::treesitter_types::FromNode>::from_node(child, src)?
8169 },
8170 })
8171 }
8172}
8173impl ::treesitter_types::Spanned for RestPattern<'_> {
8174 fn span(&self) -> ::treesitter_types::Span {
8175 self.span
8176 }
8177}
8178#[derive(Debug, Clone, PartialEq, Eq)]
8179pub struct RestType<'tree> {
8180 pub span: ::treesitter_types::Span,
8181 pub children: Type<'tree>,
8182}
8183impl<'tree> ::treesitter_types::FromNode<'tree> for RestType<'tree> {
8184 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8185 fn from_node(
8186 node: ::tree_sitter::Node<'tree>,
8187 src: &'tree [u8],
8188 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8189 debug_assert_eq!(node.kind(), "rest_type");
8190 Ok(Self {
8191 span: ::treesitter_types::Span::from(node),
8192 children: {
8193 #[allow(clippy::suspicious_else_formatting)]
8194 let non_field_children = {
8195 let mut cursor = node.walk();
8196 let mut result = ::std::vec::Vec::new();
8197 if cursor.goto_first_child() {
8198 loop {
8199 if cursor.field_name().is_none()
8200 && cursor.node().is_named()
8201 && !cursor.node().is_extra()
8202 {
8203 result.push(cursor.node());
8204 }
8205 if !cursor.goto_next_sibling() {
8206 break;
8207 }
8208 }
8209 }
8210 result
8211 };
8212 let child = if let Some(&c) = non_field_children.first() {
8213 c
8214 } else {
8215 let mut fallback_cursor = node.walk();
8216 let mut fallback_child = None;
8217 if fallback_cursor.goto_first_child() {
8218 loop {
8219 if fallback_cursor.field_name().is_none()
8220 && !fallback_cursor.node().is_extra()
8221 {
8222 let candidate = fallback_cursor.node();
8223 #[allow(clippy::needless_question_mark)]
8224 if (|| -> ::core::result::Result<
8225 _,
8226 ::treesitter_types::ParseError,
8227 > {
8228 let child = candidate;
8229 Ok(
8230 <Type as ::treesitter_types::FromNode>::from_node(
8231 child,
8232 src,
8233 )?,
8234 )
8235 })()
8236 .is_ok()
8237 {
8238 fallback_child = Some(candidate);
8239 break;
8240 }
8241 }
8242 if !fallback_cursor.goto_next_sibling() {
8243 break;
8244 }
8245 }
8246 }
8247 if fallback_child.is_none() {
8248 let mut cursor2 = node.walk();
8249 if cursor2.goto_first_child() {
8250 loop {
8251 if cursor2.node().is_named() && !cursor2.node().is_extra() {
8252 let candidate = cursor2.node();
8253 #[allow(clippy::needless_question_mark)]
8254 if (|| -> ::core::result::Result<
8255 _,
8256 ::treesitter_types::ParseError,
8257 > {
8258 let child = candidate;
8259 Ok(
8260 <Type as ::treesitter_types::FromNode>::from_node(
8261 child,
8262 src,
8263 )?,
8264 )
8265 })()
8266 .is_ok()
8267 {
8268 fallback_child = Some(candidate);
8269 break;
8270 }
8271 }
8272 if !cursor2.goto_next_sibling() {
8273 break;
8274 }
8275 }
8276 }
8277 }
8278 fallback_child.ok_or_else(|| {
8279 ::treesitter_types::ParseError::missing_field("children", node)
8280 })?
8281 };
8282 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
8283 },
8284 })
8285 }
8286}
8287impl ::treesitter_types::Spanned for RestType<'_> {
8288 fn span(&self) -> ::treesitter_types::Span {
8289 self.span
8290 }
8291}
8292#[derive(Debug, Clone, PartialEq, Eq)]
8293pub struct ReturnStatement<'tree> {
8294 pub span: ::treesitter_types::Span,
8295 pub children: ::core::option::Option<ReturnStatementChildren<'tree>>,
8296}
8297impl<'tree> ::treesitter_types::FromNode<'tree> for ReturnStatement<'tree> {
8298 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8299 fn from_node(
8300 node: ::tree_sitter::Node<'tree>,
8301 src: &'tree [u8],
8302 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8303 debug_assert_eq!(node.kind(), "return_statement");
8304 Ok(Self {
8305 span: ::treesitter_types::Span::from(node),
8306 children: {
8307 #[allow(clippy::suspicious_else_formatting)]
8308 let non_field_children = {
8309 let mut cursor = node.walk();
8310 let mut result = ::std::vec::Vec::new();
8311 if cursor.goto_first_child() {
8312 loop {
8313 if cursor.field_name().is_none()
8314 && cursor.node().is_named()
8315 && !cursor.node().is_extra()
8316 {
8317 result.push(cursor.node());
8318 }
8319 if !cursor.goto_next_sibling() {
8320 break;
8321 }
8322 }
8323 }
8324 result
8325 };
8326 match non_field_children.first() {
8327 Some(&child) => Some(
8328 <ReturnStatementChildren as ::treesitter_types::FromNode>::from_node(
8329 child, src,
8330 )?,
8331 ),
8332 None => None,
8333 }
8334 },
8335 })
8336 }
8337}
8338impl ::treesitter_types::Spanned for ReturnStatement<'_> {
8339 fn span(&self) -> ::treesitter_types::Span {
8340 self.span
8341 }
8342}
8343#[derive(Debug, Clone, PartialEq, Eq)]
8344pub struct SatisfiesExpression<'tree> {
8345 pub span: ::treesitter_types::Span,
8346 pub children: ::std::vec::Vec<SatisfiesExpressionChildren<'tree>>,
8347}
8348impl<'tree> ::treesitter_types::FromNode<'tree> for SatisfiesExpression<'tree> {
8349 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8350 fn from_node(
8351 node: ::tree_sitter::Node<'tree>,
8352 src: &'tree [u8],
8353 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8354 debug_assert_eq!(node.kind(), "satisfies_expression");
8355 Ok(Self {
8356 span: ::treesitter_types::Span::from(node),
8357 children: {
8358 #[allow(clippy::suspicious_else_formatting)]
8359 let non_field_children = {
8360 let mut cursor = node.walk();
8361 let mut result = ::std::vec::Vec::new();
8362 if cursor.goto_first_child() {
8363 loop {
8364 if cursor.field_name().is_none()
8365 && cursor.node().is_named()
8366 && !cursor.node().is_extra()
8367 {
8368 result.push(cursor.node());
8369 }
8370 if !cursor.goto_next_sibling() {
8371 break;
8372 }
8373 }
8374 }
8375 result
8376 };
8377 let mut items = ::std::vec::Vec::new();
8378 for child in non_field_children {
8379 items.push(
8380 <SatisfiesExpressionChildren as ::treesitter_types::FromNode>::from_node(
8381 child, src,
8382 )?,
8383 );
8384 }
8385 items
8386 },
8387 })
8388 }
8389}
8390impl ::treesitter_types::Spanned for SatisfiesExpression<'_> {
8391 fn span(&self) -> ::treesitter_types::Span {
8392 self.span
8393 }
8394}
8395#[derive(Debug, Clone, PartialEq, Eq)]
8396pub struct SequenceExpression<'tree> {
8397 pub span: ::treesitter_types::Span,
8398 pub children: ::std::vec::Vec<Expression<'tree>>,
8399}
8400impl<'tree> ::treesitter_types::FromNode<'tree> for SequenceExpression<'tree> {
8401 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8402 fn from_node(
8403 node: ::tree_sitter::Node<'tree>,
8404 src: &'tree [u8],
8405 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8406 debug_assert_eq!(node.kind(), "sequence_expression");
8407 Ok(Self {
8408 span: ::treesitter_types::Span::from(node),
8409 children: {
8410 #[allow(clippy::suspicious_else_formatting)]
8411 let non_field_children = {
8412 let mut cursor = node.walk();
8413 let mut result = ::std::vec::Vec::new();
8414 if cursor.goto_first_child() {
8415 loop {
8416 if cursor.field_name().is_none()
8417 && cursor.node().is_named()
8418 && !cursor.node().is_extra()
8419 {
8420 result.push(cursor.node());
8421 }
8422 if !cursor.goto_next_sibling() {
8423 break;
8424 }
8425 }
8426 }
8427 result
8428 };
8429 let mut items = ::std::vec::Vec::new();
8430 for child in non_field_children {
8431 items.push(<Expression as ::treesitter_types::FromNode>::from_node(
8432 child, src,
8433 )?);
8434 }
8435 items
8436 },
8437 })
8438 }
8439}
8440impl ::treesitter_types::Spanned for SequenceExpression<'_> {
8441 fn span(&self) -> ::treesitter_types::Span {
8442 self.span
8443 }
8444}
8445#[derive(Debug, Clone, PartialEq, Eq)]
8446pub struct SpreadElement<'tree> {
8447 pub span: ::treesitter_types::Span,
8448 pub children: Expression<'tree>,
8449}
8450impl<'tree> ::treesitter_types::FromNode<'tree> for SpreadElement<'tree> {
8451 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8452 fn from_node(
8453 node: ::tree_sitter::Node<'tree>,
8454 src: &'tree [u8],
8455 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8456 debug_assert_eq!(node.kind(), "spread_element");
8457 Ok(Self {
8458 span: ::treesitter_types::Span::from(node),
8459 children: {
8460 #[allow(clippy::suspicious_else_formatting)]
8461 let non_field_children = {
8462 let mut cursor = node.walk();
8463 let mut result = ::std::vec::Vec::new();
8464 if cursor.goto_first_child() {
8465 loop {
8466 if cursor.field_name().is_none()
8467 && cursor.node().is_named()
8468 && !cursor.node().is_extra()
8469 {
8470 result.push(cursor.node());
8471 }
8472 if !cursor.goto_next_sibling() {
8473 break;
8474 }
8475 }
8476 }
8477 result
8478 };
8479 let child = if let Some(&c) = non_field_children.first() {
8480 c
8481 } else {
8482 let mut fallback_cursor = node.walk();
8483 let mut fallback_child = None;
8484 if fallback_cursor.goto_first_child() {
8485 loop {
8486 if fallback_cursor.field_name().is_none()
8487 && !fallback_cursor.node().is_extra()
8488 {
8489 let candidate = fallback_cursor.node();
8490 #[allow(clippy::needless_question_mark)]
8491 if (|| -> ::core::result::Result<
8492 _,
8493 ::treesitter_types::ParseError,
8494 > {
8495 let child = candidate;
8496 Ok(
8497 <Expression as ::treesitter_types::FromNode>::from_node(
8498 child,
8499 src,
8500 )?,
8501 )
8502 })()
8503 .is_ok()
8504 {
8505 fallback_child = Some(candidate);
8506 break;
8507 }
8508 }
8509 if !fallback_cursor.goto_next_sibling() {
8510 break;
8511 }
8512 }
8513 }
8514 if fallback_child.is_none() {
8515 let mut cursor2 = node.walk();
8516 if cursor2.goto_first_child() {
8517 loop {
8518 if cursor2.node().is_named() && !cursor2.node().is_extra() {
8519 let candidate = cursor2.node();
8520 #[allow(clippy::needless_question_mark)]
8521 if (|| -> ::core::result::Result<
8522 _,
8523 ::treesitter_types::ParseError,
8524 > {
8525 let child = candidate;
8526 Ok(
8527 <Expression as ::treesitter_types::FromNode>::from_node(
8528 child,
8529 src,
8530 )?,
8531 )
8532 })()
8533 .is_ok()
8534 {
8535 fallback_child = Some(candidate);
8536 break;
8537 }
8538 }
8539 if !cursor2.goto_next_sibling() {
8540 break;
8541 }
8542 }
8543 }
8544 }
8545 fallback_child.ok_or_else(|| {
8546 ::treesitter_types::ParseError::missing_field("children", node)
8547 })?
8548 };
8549 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
8550 },
8551 })
8552 }
8553}
8554impl ::treesitter_types::Spanned for SpreadElement<'_> {
8555 fn span(&self) -> ::treesitter_types::Span {
8556 self.span
8557 }
8558}
8559#[derive(Debug, Clone, PartialEq, Eq)]
8560pub struct StatementBlock<'tree> {
8561 pub span: ::treesitter_types::Span,
8562 pub children: ::std::vec::Vec<Statement<'tree>>,
8563}
8564impl<'tree> ::treesitter_types::FromNode<'tree> for StatementBlock<'tree> {
8565 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8566 fn from_node(
8567 node: ::tree_sitter::Node<'tree>,
8568 src: &'tree [u8],
8569 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8570 debug_assert_eq!(node.kind(), "statement_block");
8571 Ok(Self {
8572 span: ::treesitter_types::Span::from(node),
8573 children: {
8574 #[allow(clippy::suspicious_else_formatting)]
8575 let non_field_children = {
8576 let mut cursor = node.walk();
8577 let mut result = ::std::vec::Vec::new();
8578 if cursor.goto_first_child() {
8579 loop {
8580 if cursor.field_name().is_none()
8581 && cursor.node().is_named()
8582 && !cursor.node().is_extra()
8583 {
8584 result.push(cursor.node());
8585 }
8586 if !cursor.goto_next_sibling() {
8587 break;
8588 }
8589 }
8590 }
8591 result
8592 };
8593 let mut items = ::std::vec::Vec::new();
8594 for child in non_field_children {
8595 items.push(<Statement as ::treesitter_types::FromNode>::from_node(
8596 child, src,
8597 )?);
8598 }
8599 items
8600 },
8601 })
8602 }
8603}
8604impl ::treesitter_types::Spanned for StatementBlock<'_> {
8605 fn span(&self) -> ::treesitter_types::Span {
8606 self.span
8607 }
8608}
8609#[derive(Debug, Clone, PartialEq, Eq)]
8610pub struct String<'tree> {
8611 pub span: ::treesitter_types::Span,
8612 pub children: ::std::vec::Vec<StringChildren<'tree>>,
8613}
8614impl<'tree> ::treesitter_types::FromNode<'tree> for String<'tree> {
8615 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8616 fn from_node(
8617 node: ::tree_sitter::Node<'tree>,
8618 src: &'tree [u8],
8619 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8620 debug_assert_eq!(node.kind(), "string");
8621 Ok(Self {
8622 span: ::treesitter_types::Span::from(node),
8623 children: {
8624 #[allow(clippy::suspicious_else_formatting)]
8625 let non_field_children = {
8626 let mut cursor = node.walk();
8627 let mut result = ::std::vec::Vec::new();
8628 if cursor.goto_first_child() {
8629 loop {
8630 if cursor.field_name().is_none()
8631 && cursor.node().is_named()
8632 && !cursor.node().is_extra()
8633 {
8634 result.push(cursor.node());
8635 }
8636 if !cursor.goto_next_sibling() {
8637 break;
8638 }
8639 }
8640 }
8641 result
8642 };
8643 let mut items = ::std::vec::Vec::new();
8644 for child in non_field_children {
8645 items.push(<StringChildren as ::treesitter_types::FromNode>::from_node(
8646 child, src,
8647 )?);
8648 }
8649 items
8650 },
8651 })
8652 }
8653}
8654impl ::treesitter_types::Spanned for String<'_> {
8655 fn span(&self) -> ::treesitter_types::Span {
8656 self.span
8657 }
8658}
8659#[derive(Debug, Clone, PartialEq, Eq)]
8660pub struct SubscriptExpression<'tree> {
8661 pub span: ::treesitter_types::Span,
8662 pub index: SubscriptExpressionIndex<'tree>,
8663 pub object: Expression<'tree>,
8664 pub optional_chain: ::core::option::Option<OptionalChain<'tree>>,
8665}
8666impl<'tree> ::treesitter_types::FromNode<'tree> for SubscriptExpression<'tree> {
8667 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8668 fn from_node(
8669 node: ::tree_sitter::Node<'tree>,
8670 src: &'tree [u8],
8671 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8672 debug_assert_eq!(node.kind(), "subscript_expression");
8673 Ok(Self {
8674 span: ::treesitter_types::Span::from(node),
8675 index: {
8676 let child = node
8677 .child_by_field_name("index")
8678 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("index", node))?;
8679 <SubscriptExpressionIndex as ::treesitter_types::FromNode>::from_node(child, src)?
8680 },
8681 object: {
8682 let child = node
8683 .child_by_field_name("object")
8684 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("object", node))?;
8685 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
8686 },
8687 optional_chain: match node.child_by_field_name("optional_chain") {
8688 Some(child) => Some(<OptionalChain as ::treesitter_types::FromNode>::from_node(
8689 child, src,
8690 )?),
8691 None => None,
8692 },
8693 })
8694 }
8695}
8696impl ::treesitter_types::Spanned for SubscriptExpression<'_> {
8697 fn span(&self) -> ::treesitter_types::Span {
8698 self.span
8699 }
8700}
8701#[derive(Debug, Clone, PartialEq, Eq)]
8702pub struct SwitchBody<'tree> {
8703 pub span: ::treesitter_types::Span,
8704 pub children: ::std::vec::Vec<SwitchBodyChildren<'tree>>,
8705}
8706impl<'tree> ::treesitter_types::FromNode<'tree> for SwitchBody<'tree> {
8707 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8708 fn from_node(
8709 node: ::tree_sitter::Node<'tree>,
8710 src: &'tree [u8],
8711 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8712 debug_assert_eq!(node.kind(), "switch_body");
8713 Ok(Self {
8714 span: ::treesitter_types::Span::from(node),
8715 children: {
8716 #[allow(clippy::suspicious_else_formatting)]
8717 let non_field_children = {
8718 let mut cursor = node.walk();
8719 let mut result = ::std::vec::Vec::new();
8720 if cursor.goto_first_child() {
8721 loop {
8722 if cursor.field_name().is_none()
8723 && cursor.node().is_named()
8724 && !cursor.node().is_extra()
8725 {
8726 result.push(cursor.node());
8727 }
8728 if !cursor.goto_next_sibling() {
8729 break;
8730 }
8731 }
8732 }
8733 result
8734 };
8735 let mut items = ::std::vec::Vec::new();
8736 for child in non_field_children {
8737 items.push(
8738 <SwitchBodyChildren as ::treesitter_types::FromNode>::from_node(
8739 child, src,
8740 )?,
8741 );
8742 }
8743 items
8744 },
8745 })
8746 }
8747}
8748impl ::treesitter_types::Spanned for SwitchBody<'_> {
8749 fn span(&self) -> ::treesitter_types::Span {
8750 self.span
8751 }
8752}
8753#[derive(Debug, Clone, PartialEq, Eq)]
8754pub struct SwitchCase<'tree> {
8755 pub span: ::treesitter_types::Span,
8756 pub body: ::std::vec::Vec<Statement<'tree>>,
8757 pub value: SwitchCaseValue<'tree>,
8758}
8759impl<'tree> ::treesitter_types::FromNode<'tree> for SwitchCase<'tree> {
8760 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8761 fn from_node(
8762 node: ::tree_sitter::Node<'tree>,
8763 src: &'tree [u8],
8764 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8765 debug_assert_eq!(node.kind(), "switch_case");
8766 Ok(Self {
8767 span: ::treesitter_types::Span::from(node),
8768 body: {
8769 let mut cursor = node.walk();
8770 let mut items = ::std::vec::Vec::new();
8771 for child in node.children_by_field_name("body", &mut cursor) {
8772 items.push(<Statement as ::treesitter_types::FromNode>::from_node(
8773 child, src,
8774 )?);
8775 }
8776 items
8777 },
8778 value: {
8779 let child = node
8780 .child_by_field_name("value")
8781 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
8782 <SwitchCaseValue as ::treesitter_types::FromNode>::from_node(child, src)?
8783 },
8784 })
8785 }
8786}
8787impl ::treesitter_types::Spanned for SwitchCase<'_> {
8788 fn span(&self) -> ::treesitter_types::Span {
8789 self.span
8790 }
8791}
8792#[derive(Debug, Clone, PartialEq, Eq)]
8793pub struct SwitchDefault<'tree> {
8794 pub span: ::treesitter_types::Span,
8795 pub body: ::std::vec::Vec<Statement<'tree>>,
8796}
8797impl<'tree> ::treesitter_types::FromNode<'tree> for SwitchDefault<'tree> {
8798 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8799 fn from_node(
8800 node: ::tree_sitter::Node<'tree>,
8801 src: &'tree [u8],
8802 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8803 debug_assert_eq!(node.kind(), "switch_default");
8804 Ok(Self {
8805 span: ::treesitter_types::Span::from(node),
8806 body: {
8807 let mut cursor = node.walk();
8808 let mut items = ::std::vec::Vec::new();
8809 for child in node.children_by_field_name("body", &mut cursor) {
8810 items.push(<Statement as ::treesitter_types::FromNode>::from_node(
8811 child, src,
8812 )?);
8813 }
8814 items
8815 },
8816 })
8817 }
8818}
8819impl ::treesitter_types::Spanned for SwitchDefault<'_> {
8820 fn span(&self) -> ::treesitter_types::Span {
8821 self.span
8822 }
8823}
8824#[derive(Debug, Clone, PartialEq, Eq)]
8825pub struct SwitchStatement<'tree> {
8826 pub span: ::treesitter_types::Span,
8827 pub body: SwitchBody<'tree>,
8828 pub value: ParenthesizedExpression<'tree>,
8829}
8830impl<'tree> ::treesitter_types::FromNode<'tree> for SwitchStatement<'tree> {
8831 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8832 fn from_node(
8833 node: ::tree_sitter::Node<'tree>,
8834 src: &'tree [u8],
8835 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8836 debug_assert_eq!(node.kind(), "switch_statement");
8837 Ok(Self {
8838 span: ::treesitter_types::Span::from(node),
8839 body: {
8840 let child = node
8841 .child_by_field_name("body")
8842 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
8843 <SwitchBody as ::treesitter_types::FromNode>::from_node(child, src)?
8844 },
8845 value: {
8846 let child = node
8847 .child_by_field_name("value")
8848 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
8849 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(child, src)?
8850 },
8851 })
8852 }
8853}
8854impl ::treesitter_types::Spanned for SwitchStatement<'_> {
8855 fn span(&self) -> ::treesitter_types::Span {
8856 self.span
8857 }
8858}
8859#[derive(Debug, Clone, PartialEq, Eq)]
8860pub struct TemplateLiteralType<'tree> {
8861 pub span: ::treesitter_types::Span,
8862 pub children: ::std::vec::Vec<TemplateLiteralTypeChildren<'tree>>,
8863}
8864impl<'tree> ::treesitter_types::FromNode<'tree> for TemplateLiteralType<'tree> {
8865 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8866 fn from_node(
8867 node: ::tree_sitter::Node<'tree>,
8868 src: &'tree [u8],
8869 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8870 debug_assert_eq!(node.kind(), "template_literal_type");
8871 Ok(Self {
8872 span: ::treesitter_types::Span::from(node),
8873 children: {
8874 #[allow(clippy::suspicious_else_formatting)]
8875 let non_field_children = {
8876 let mut cursor = node.walk();
8877 let mut result = ::std::vec::Vec::new();
8878 if cursor.goto_first_child() {
8879 loop {
8880 if cursor.field_name().is_none()
8881 && cursor.node().is_named()
8882 && !cursor.node().is_extra()
8883 {
8884 result.push(cursor.node());
8885 }
8886 if !cursor.goto_next_sibling() {
8887 break;
8888 }
8889 }
8890 }
8891 result
8892 };
8893 let mut items = ::std::vec::Vec::new();
8894 for child in non_field_children {
8895 items.push(
8896 <TemplateLiteralTypeChildren as ::treesitter_types::FromNode>::from_node(
8897 child, src,
8898 )?,
8899 );
8900 }
8901 items
8902 },
8903 })
8904 }
8905}
8906impl ::treesitter_types::Spanned for TemplateLiteralType<'_> {
8907 fn span(&self) -> ::treesitter_types::Span {
8908 self.span
8909 }
8910}
8911#[derive(Debug, Clone, PartialEq, Eq)]
8912pub struct TemplateString<'tree> {
8913 pub span: ::treesitter_types::Span,
8914 pub children: ::std::vec::Vec<TemplateStringChildren<'tree>>,
8915}
8916impl<'tree> ::treesitter_types::FromNode<'tree> for TemplateString<'tree> {
8917 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8918 fn from_node(
8919 node: ::tree_sitter::Node<'tree>,
8920 src: &'tree [u8],
8921 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8922 debug_assert_eq!(node.kind(), "template_string");
8923 Ok(Self {
8924 span: ::treesitter_types::Span::from(node),
8925 children: {
8926 #[allow(clippy::suspicious_else_formatting)]
8927 let non_field_children = {
8928 let mut cursor = node.walk();
8929 let mut result = ::std::vec::Vec::new();
8930 if cursor.goto_first_child() {
8931 loop {
8932 if cursor.field_name().is_none()
8933 && cursor.node().is_named()
8934 && !cursor.node().is_extra()
8935 {
8936 result.push(cursor.node());
8937 }
8938 if !cursor.goto_next_sibling() {
8939 break;
8940 }
8941 }
8942 }
8943 result
8944 };
8945 let mut items = ::std::vec::Vec::new();
8946 for child in non_field_children {
8947 items.push(
8948 <TemplateStringChildren as ::treesitter_types::FromNode>::from_node(
8949 child, src,
8950 )?,
8951 );
8952 }
8953 items
8954 },
8955 })
8956 }
8957}
8958impl ::treesitter_types::Spanned for TemplateString<'_> {
8959 fn span(&self) -> ::treesitter_types::Span {
8960 self.span
8961 }
8962}
8963#[derive(Debug, Clone, PartialEq, Eq)]
8964pub struct TemplateSubstitution<'tree> {
8965 pub span: ::treesitter_types::Span,
8966 pub children: TemplateSubstitutionChildren<'tree>,
8967}
8968impl<'tree> ::treesitter_types::FromNode<'tree> for TemplateSubstitution<'tree> {
8969 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8970 fn from_node(
8971 node: ::tree_sitter::Node<'tree>,
8972 src: &'tree [u8],
8973 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8974 debug_assert_eq!(node.kind(), "template_substitution");
8975 Ok(Self {
8976 span: ::treesitter_types::Span::from(node),
8977 children: {
8978 #[allow(clippy::suspicious_else_formatting)]
8979 let non_field_children = {
8980 let mut cursor = node.walk();
8981 let mut result = ::std::vec::Vec::new();
8982 if cursor.goto_first_child() {
8983 loop {
8984 if cursor.field_name().is_none()
8985 && cursor.node().is_named()
8986 && !cursor.node().is_extra()
8987 {
8988 result.push(cursor.node());
8989 }
8990 if !cursor.goto_next_sibling() {
8991 break;
8992 }
8993 }
8994 }
8995 result
8996 };
8997 let child = if let Some(&c) = non_field_children.first() {
8998 c
8999 } else {
9000 let mut fallback_cursor = node.walk();
9001 let mut fallback_child = None;
9002 if fallback_cursor.goto_first_child() {
9003 loop {
9004 if fallback_cursor.field_name().is_none()
9005 && !fallback_cursor.node().is_extra()
9006 {
9007 let candidate = fallback_cursor.node();
9008 #[allow(clippy::needless_question_mark)]
9009 if (|| -> ::core::result::Result<
9010 _,
9011 ::treesitter_types::ParseError,
9012 > {
9013 let child = candidate;
9014 Ok(
9015 <TemplateSubstitutionChildren as ::treesitter_types::FromNode>::from_node(
9016 child,
9017 src,
9018 )?,
9019 )
9020 })()
9021 .is_ok()
9022 {
9023 fallback_child = Some(candidate);
9024 break;
9025 }
9026 }
9027 if !fallback_cursor.goto_next_sibling() {
9028 break;
9029 }
9030 }
9031 }
9032 if fallback_child.is_none() {
9033 let mut cursor2 = node.walk();
9034 if cursor2.goto_first_child() {
9035 loop {
9036 if cursor2.node().is_named() && !cursor2.node().is_extra() {
9037 let candidate = cursor2.node();
9038 #[allow(clippy::needless_question_mark)]
9039 if (|| -> ::core::result::Result<
9040 _,
9041 ::treesitter_types::ParseError,
9042 > {
9043 let child = candidate;
9044 Ok(
9045 <TemplateSubstitutionChildren as ::treesitter_types::FromNode>::from_node(
9046 child,
9047 src,
9048 )?,
9049 )
9050 })()
9051 .is_ok()
9052 {
9053 fallback_child = Some(candidate);
9054 break;
9055 }
9056 }
9057 if !cursor2.goto_next_sibling() {
9058 break;
9059 }
9060 }
9061 }
9062 }
9063 fallback_child.ok_or_else(|| {
9064 ::treesitter_types::ParseError::missing_field("children", node)
9065 })?
9066 };
9067 <TemplateSubstitutionChildren as ::treesitter_types::FromNode>::from_node(
9068 child, src,
9069 )?
9070 },
9071 })
9072 }
9073}
9074impl ::treesitter_types::Spanned for TemplateSubstitution<'_> {
9075 fn span(&self) -> ::treesitter_types::Span {
9076 self.span
9077 }
9078}
9079#[derive(Debug, Clone, PartialEq, Eq)]
9080pub struct TemplateType<'tree> {
9081 pub span: ::treesitter_types::Span,
9082 pub children: TemplateTypeChildren<'tree>,
9083}
9084impl<'tree> ::treesitter_types::FromNode<'tree> for TemplateType<'tree> {
9085 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9086 fn from_node(
9087 node: ::tree_sitter::Node<'tree>,
9088 src: &'tree [u8],
9089 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9090 debug_assert_eq!(node.kind(), "template_type");
9091 Ok(Self {
9092 span: ::treesitter_types::Span::from(node),
9093 children: {
9094 #[allow(clippy::suspicious_else_formatting)]
9095 let non_field_children = {
9096 let mut cursor = node.walk();
9097 let mut result = ::std::vec::Vec::new();
9098 if cursor.goto_first_child() {
9099 loop {
9100 if cursor.field_name().is_none()
9101 && cursor.node().is_named()
9102 && !cursor.node().is_extra()
9103 {
9104 result.push(cursor.node());
9105 }
9106 if !cursor.goto_next_sibling() {
9107 break;
9108 }
9109 }
9110 }
9111 result
9112 };
9113 let child = if let Some(&c) = non_field_children.first() {
9114 c
9115 } else {
9116 let mut fallback_cursor = node.walk();
9117 let mut fallback_child = None;
9118 if fallback_cursor.goto_first_child() {
9119 loop {
9120 if fallback_cursor.field_name().is_none()
9121 && !fallback_cursor.node().is_extra()
9122 {
9123 let candidate = fallback_cursor.node();
9124 #[allow(clippy::needless_question_mark)]
9125 if (|| -> ::core::result::Result<
9126 _,
9127 ::treesitter_types::ParseError,
9128 > {
9129 let child = candidate;
9130 Ok(
9131 <TemplateTypeChildren as ::treesitter_types::FromNode>::from_node(
9132 child,
9133 src,
9134 )?,
9135 )
9136 })()
9137 .is_ok()
9138 {
9139 fallback_child = Some(candidate);
9140 break;
9141 }
9142 }
9143 if !fallback_cursor.goto_next_sibling() {
9144 break;
9145 }
9146 }
9147 }
9148 if fallback_child.is_none() {
9149 let mut cursor2 = node.walk();
9150 if cursor2.goto_first_child() {
9151 loop {
9152 if cursor2.node().is_named() && !cursor2.node().is_extra() {
9153 let candidate = cursor2.node();
9154 #[allow(clippy::needless_question_mark)]
9155 if (|| -> ::core::result::Result<
9156 _,
9157 ::treesitter_types::ParseError,
9158 > {
9159 let child = candidate;
9160 Ok(
9161 <TemplateTypeChildren as ::treesitter_types::FromNode>::from_node(
9162 child,
9163 src,
9164 )?,
9165 )
9166 })()
9167 .is_ok()
9168 {
9169 fallback_child = Some(candidate);
9170 break;
9171 }
9172 }
9173 if !cursor2.goto_next_sibling() {
9174 break;
9175 }
9176 }
9177 }
9178 }
9179 fallback_child.ok_or_else(|| {
9180 ::treesitter_types::ParseError::missing_field("children", node)
9181 })?
9182 };
9183 <TemplateTypeChildren as ::treesitter_types::FromNode>::from_node(child, src)?
9184 },
9185 })
9186 }
9187}
9188impl ::treesitter_types::Spanned for TemplateType<'_> {
9189 fn span(&self) -> ::treesitter_types::Span {
9190 self.span
9191 }
9192}
9193#[derive(Debug, Clone, PartialEq, Eq)]
9194pub struct TernaryExpression<'tree> {
9195 pub span: ::treesitter_types::Span,
9196 pub alternative: Expression<'tree>,
9197 pub condition: Expression<'tree>,
9198 pub consequence: Expression<'tree>,
9199}
9200impl<'tree> ::treesitter_types::FromNode<'tree> for TernaryExpression<'tree> {
9201 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9202 fn from_node(
9203 node: ::tree_sitter::Node<'tree>,
9204 src: &'tree [u8],
9205 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9206 debug_assert_eq!(node.kind(), "ternary_expression");
9207 Ok(Self {
9208 span: ::treesitter_types::Span::from(node),
9209 alternative: {
9210 let child = node.child_by_field_name("alternative").ok_or_else(|| {
9211 ::treesitter_types::ParseError::missing_field("alternative", node)
9212 })?;
9213 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
9214 },
9215 condition: {
9216 let child = node.child_by_field_name("condition").ok_or_else(|| {
9217 ::treesitter_types::ParseError::missing_field("condition", node)
9218 })?;
9219 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
9220 },
9221 consequence: {
9222 let child = node.child_by_field_name("consequence").ok_or_else(|| {
9223 ::treesitter_types::ParseError::missing_field("consequence", node)
9224 })?;
9225 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
9226 },
9227 })
9228 }
9229}
9230impl ::treesitter_types::Spanned for TernaryExpression<'_> {
9231 fn span(&self) -> ::treesitter_types::Span {
9232 self.span
9233 }
9234}
9235#[derive(Debug, Clone, PartialEq, Eq)]
9236pub struct ThrowStatement<'tree> {
9237 pub span: ::treesitter_types::Span,
9238 pub children: ThrowStatementChildren<'tree>,
9239}
9240impl<'tree> ::treesitter_types::FromNode<'tree> for ThrowStatement<'tree> {
9241 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9242 fn from_node(
9243 node: ::tree_sitter::Node<'tree>,
9244 src: &'tree [u8],
9245 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9246 debug_assert_eq!(node.kind(), "throw_statement");
9247 Ok(Self {
9248 span: ::treesitter_types::Span::from(node),
9249 children: {
9250 #[allow(clippy::suspicious_else_formatting)]
9251 let non_field_children = {
9252 let mut cursor = node.walk();
9253 let mut result = ::std::vec::Vec::new();
9254 if cursor.goto_first_child() {
9255 loop {
9256 if cursor.field_name().is_none()
9257 && cursor.node().is_named()
9258 && !cursor.node().is_extra()
9259 {
9260 result.push(cursor.node());
9261 }
9262 if !cursor.goto_next_sibling() {
9263 break;
9264 }
9265 }
9266 }
9267 result
9268 };
9269 let child = if let Some(&c) = non_field_children.first() {
9270 c
9271 } else {
9272 let mut fallback_cursor = node.walk();
9273 let mut fallback_child = None;
9274 if fallback_cursor.goto_first_child() {
9275 loop {
9276 if fallback_cursor.field_name().is_none()
9277 && !fallback_cursor.node().is_extra()
9278 {
9279 let candidate = fallback_cursor.node();
9280 #[allow(clippy::needless_question_mark)]
9281 if (|| -> ::core::result::Result<
9282 _,
9283 ::treesitter_types::ParseError,
9284 > {
9285 let child = candidate;
9286 Ok(
9287 <ThrowStatementChildren as ::treesitter_types::FromNode>::from_node(
9288 child,
9289 src,
9290 )?,
9291 )
9292 })()
9293 .is_ok()
9294 {
9295 fallback_child = Some(candidate);
9296 break;
9297 }
9298 }
9299 if !fallback_cursor.goto_next_sibling() {
9300 break;
9301 }
9302 }
9303 }
9304 if fallback_child.is_none() {
9305 let mut cursor2 = node.walk();
9306 if cursor2.goto_first_child() {
9307 loop {
9308 if cursor2.node().is_named() && !cursor2.node().is_extra() {
9309 let candidate = cursor2.node();
9310 #[allow(clippy::needless_question_mark)]
9311 if (|| -> ::core::result::Result<
9312 _,
9313 ::treesitter_types::ParseError,
9314 > {
9315 let child = candidate;
9316 Ok(
9317 <ThrowStatementChildren as ::treesitter_types::FromNode>::from_node(
9318 child,
9319 src,
9320 )?,
9321 )
9322 })()
9323 .is_ok()
9324 {
9325 fallback_child = Some(candidate);
9326 break;
9327 }
9328 }
9329 if !cursor2.goto_next_sibling() {
9330 break;
9331 }
9332 }
9333 }
9334 }
9335 fallback_child.ok_or_else(|| {
9336 ::treesitter_types::ParseError::missing_field("children", node)
9337 })?
9338 };
9339 <ThrowStatementChildren as ::treesitter_types::FromNode>::from_node(child, src)?
9340 },
9341 })
9342 }
9343}
9344impl ::treesitter_types::Spanned for ThrowStatement<'_> {
9345 fn span(&self) -> ::treesitter_types::Span {
9346 self.span
9347 }
9348}
9349#[derive(Debug, Clone, PartialEq, Eq)]
9350pub struct TryStatement<'tree> {
9351 pub span: ::treesitter_types::Span,
9352 pub body: StatementBlock<'tree>,
9353 pub finalizer: ::core::option::Option<FinallyClause<'tree>>,
9354 pub handler: ::core::option::Option<CatchClause<'tree>>,
9355}
9356impl<'tree> ::treesitter_types::FromNode<'tree> for TryStatement<'tree> {
9357 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9358 fn from_node(
9359 node: ::tree_sitter::Node<'tree>,
9360 src: &'tree [u8],
9361 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9362 debug_assert_eq!(node.kind(), "try_statement");
9363 Ok(Self {
9364 span: ::treesitter_types::Span::from(node),
9365 body: {
9366 let child = node
9367 .child_by_field_name("body")
9368 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
9369 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)?
9370 },
9371 finalizer: match node.child_by_field_name("finalizer") {
9372 Some(child) => Some(<FinallyClause as ::treesitter_types::FromNode>::from_node(
9373 child, src,
9374 )?),
9375 None => None,
9376 },
9377 handler: match node.child_by_field_name("handler") {
9378 Some(child) => Some(<CatchClause as ::treesitter_types::FromNode>::from_node(
9379 child, src,
9380 )?),
9381 None => None,
9382 },
9383 })
9384 }
9385}
9386impl ::treesitter_types::Spanned for TryStatement<'_> {
9387 fn span(&self) -> ::treesitter_types::Span {
9388 self.span
9389 }
9390}
9391#[derive(Debug, Clone, PartialEq, Eq)]
9392pub struct TupleType<'tree> {
9393 pub span: ::treesitter_types::Span,
9394 pub children: ::std::vec::Vec<TupleTypeChildren<'tree>>,
9395}
9396impl<'tree> ::treesitter_types::FromNode<'tree> for TupleType<'tree> {
9397 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9398 fn from_node(
9399 node: ::tree_sitter::Node<'tree>,
9400 src: &'tree [u8],
9401 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9402 debug_assert_eq!(node.kind(), "tuple_type");
9403 Ok(Self {
9404 span: ::treesitter_types::Span::from(node),
9405 children: {
9406 #[allow(clippy::suspicious_else_formatting)]
9407 let non_field_children = {
9408 let mut cursor = node.walk();
9409 let mut result = ::std::vec::Vec::new();
9410 if cursor.goto_first_child() {
9411 loop {
9412 if cursor.field_name().is_none()
9413 && cursor.node().is_named()
9414 && !cursor.node().is_extra()
9415 {
9416 result.push(cursor.node());
9417 }
9418 if !cursor.goto_next_sibling() {
9419 break;
9420 }
9421 }
9422 }
9423 result
9424 };
9425 let mut items = ::std::vec::Vec::new();
9426 for child in non_field_children {
9427 items.push(
9428 <TupleTypeChildren as ::treesitter_types::FromNode>::from_node(child, src)?,
9429 );
9430 }
9431 items
9432 },
9433 })
9434 }
9435}
9436impl ::treesitter_types::Spanned for TupleType<'_> {
9437 fn span(&self) -> ::treesitter_types::Span {
9438 self.span
9439 }
9440}
9441#[derive(Debug, Clone, PartialEq, Eq)]
9442pub struct TypeAliasDeclaration<'tree> {
9443 pub span: ::treesitter_types::Span,
9444 pub name: TypeIdentifier<'tree>,
9445 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
9446 pub value: Type<'tree>,
9447}
9448impl<'tree> ::treesitter_types::FromNode<'tree> for TypeAliasDeclaration<'tree> {
9449 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9450 fn from_node(
9451 node: ::tree_sitter::Node<'tree>,
9452 src: &'tree [u8],
9453 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9454 debug_assert_eq!(node.kind(), "type_alias_declaration");
9455 Ok(Self {
9456 span: ::treesitter_types::Span::from(node),
9457 name: {
9458 let child = node
9459 .child_by_field_name("name")
9460 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
9461 <TypeIdentifier as ::treesitter_types::FromNode>::from_node(child, src)?
9462 },
9463 type_parameters: match node.child_by_field_name("type_parameters") {
9464 Some(child) => Some(<TypeParameters as ::treesitter_types::FromNode>::from_node(
9465 child, src,
9466 )?),
9467 None => None,
9468 },
9469 value: {
9470 let child = node
9471 .child_by_field_name("value")
9472 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
9473 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
9474 },
9475 })
9476 }
9477}
9478impl ::treesitter_types::Spanned for TypeAliasDeclaration<'_> {
9479 fn span(&self) -> ::treesitter_types::Span {
9480 self.span
9481 }
9482}
9483#[derive(Debug, Clone, PartialEq, Eq)]
9484pub struct TypeAnnotation<'tree> {
9485 pub span: ::treesitter_types::Span,
9486 pub children: Type<'tree>,
9487}
9488impl<'tree> ::treesitter_types::FromNode<'tree> for TypeAnnotation<'tree> {
9489 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9490 fn from_node(
9491 node: ::tree_sitter::Node<'tree>,
9492 src: &'tree [u8],
9493 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9494 debug_assert_eq!(node.kind(), "type_annotation");
9495 Ok(Self {
9496 span: ::treesitter_types::Span::from(node),
9497 children: {
9498 #[allow(clippy::suspicious_else_formatting)]
9499 let non_field_children = {
9500 let mut cursor = node.walk();
9501 let mut result = ::std::vec::Vec::new();
9502 if cursor.goto_first_child() {
9503 loop {
9504 if cursor.field_name().is_none()
9505 && cursor.node().is_named()
9506 && !cursor.node().is_extra()
9507 {
9508 result.push(cursor.node());
9509 }
9510 if !cursor.goto_next_sibling() {
9511 break;
9512 }
9513 }
9514 }
9515 result
9516 };
9517 let child = if let Some(&c) = non_field_children.first() {
9518 c
9519 } else {
9520 let mut fallback_cursor = node.walk();
9521 let mut fallback_child = None;
9522 if fallback_cursor.goto_first_child() {
9523 loop {
9524 if fallback_cursor.field_name().is_none()
9525 && !fallback_cursor.node().is_extra()
9526 {
9527 let candidate = fallback_cursor.node();
9528 #[allow(clippy::needless_question_mark)]
9529 if (|| -> ::core::result::Result<
9530 _,
9531 ::treesitter_types::ParseError,
9532 > {
9533 let child = candidate;
9534 Ok(
9535 <Type as ::treesitter_types::FromNode>::from_node(
9536 child,
9537 src,
9538 )?,
9539 )
9540 })()
9541 .is_ok()
9542 {
9543 fallback_child = Some(candidate);
9544 break;
9545 }
9546 }
9547 if !fallback_cursor.goto_next_sibling() {
9548 break;
9549 }
9550 }
9551 }
9552 if fallback_child.is_none() {
9553 let mut cursor2 = node.walk();
9554 if cursor2.goto_first_child() {
9555 loop {
9556 if cursor2.node().is_named() && !cursor2.node().is_extra() {
9557 let candidate = cursor2.node();
9558 #[allow(clippy::needless_question_mark)]
9559 if (|| -> ::core::result::Result<
9560 _,
9561 ::treesitter_types::ParseError,
9562 > {
9563 let child = candidate;
9564 Ok(
9565 <Type as ::treesitter_types::FromNode>::from_node(
9566 child,
9567 src,
9568 )?,
9569 )
9570 })()
9571 .is_ok()
9572 {
9573 fallback_child = Some(candidate);
9574 break;
9575 }
9576 }
9577 if !cursor2.goto_next_sibling() {
9578 break;
9579 }
9580 }
9581 }
9582 }
9583 fallback_child.ok_or_else(|| {
9584 ::treesitter_types::ParseError::missing_field("children", node)
9585 })?
9586 };
9587 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
9588 },
9589 })
9590 }
9591}
9592impl ::treesitter_types::Spanned for TypeAnnotation<'_> {
9593 fn span(&self) -> ::treesitter_types::Span {
9594 self.span
9595 }
9596}
9597#[derive(Debug, Clone, PartialEq, Eq)]
9598pub struct TypeArguments<'tree> {
9599 pub span: ::treesitter_types::Span,
9600 pub children: ::std::vec::Vec<Type<'tree>>,
9601}
9602impl<'tree> ::treesitter_types::FromNode<'tree> for TypeArguments<'tree> {
9603 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9604 fn from_node(
9605 node: ::tree_sitter::Node<'tree>,
9606 src: &'tree [u8],
9607 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9608 debug_assert_eq!(node.kind(), "type_arguments");
9609 Ok(Self {
9610 span: ::treesitter_types::Span::from(node),
9611 children: {
9612 #[allow(clippy::suspicious_else_formatting)]
9613 let non_field_children = {
9614 let mut cursor = node.walk();
9615 let mut result = ::std::vec::Vec::new();
9616 if cursor.goto_first_child() {
9617 loop {
9618 if cursor.field_name().is_none()
9619 && cursor.node().is_named()
9620 && !cursor.node().is_extra()
9621 {
9622 result.push(cursor.node());
9623 }
9624 if !cursor.goto_next_sibling() {
9625 break;
9626 }
9627 }
9628 }
9629 result
9630 };
9631 let mut items = ::std::vec::Vec::new();
9632 for child in non_field_children {
9633 items.push(<Type as ::treesitter_types::FromNode>::from_node(
9634 child, src,
9635 )?);
9636 }
9637 items
9638 },
9639 })
9640 }
9641}
9642impl ::treesitter_types::Spanned for TypeArguments<'_> {
9643 fn span(&self) -> ::treesitter_types::Span {
9644 self.span
9645 }
9646}
9647#[derive(Debug, Clone, PartialEq, Eq)]
9648pub struct TypeAssertion<'tree> {
9649 pub span: ::treesitter_types::Span,
9650 pub children: ::std::vec::Vec<TypeAssertionChildren<'tree>>,
9651}
9652impl<'tree> ::treesitter_types::FromNode<'tree> for TypeAssertion<'tree> {
9653 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9654 fn from_node(
9655 node: ::tree_sitter::Node<'tree>,
9656 src: &'tree [u8],
9657 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9658 debug_assert_eq!(node.kind(), "type_assertion");
9659 Ok(Self {
9660 span: ::treesitter_types::Span::from(node),
9661 children: {
9662 #[allow(clippy::suspicious_else_formatting)]
9663 let non_field_children = {
9664 let mut cursor = node.walk();
9665 let mut result = ::std::vec::Vec::new();
9666 if cursor.goto_first_child() {
9667 loop {
9668 if cursor.field_name().is_none()
9669 && cursor.node().is_named()
9670 && !cursor.node().is_extra()
9671 {
9672 result.push(cursor.node());
9673 }
9674 if !cursor.goto_next_sibling() {
9675 break;
9676 }
9677 }
9678 }
9679 result
9680 };
9681 let mut items = ::std::vec::Vec::new();
9682 for child in non_field_children {
9683 items.push(
9684 <TypeAssertionChildren as ::treesitter_types::FromNode>::from_node(
9685 child, src,
9686 )?,
9687 );
9688 }
9689 items
9690 },
9691 })
9692 }
9693}
9694impl ::treesitter_types::Spanned for TypeAssertion<'_> {
9695 fn span(&self) -> ::treesitter_types::Span {
9696 self.span
9697 }
9698}
9699#[derive(Debug, Clone, PartialEq, Eq)]
9700pub struct TypeParameter<'tree> {
9701 pub span: ::treesitter_types::Span,
9702 pub constraint: ::core::option::Option<Constraint<'tree>>,
9703 pub name: TypeIdentifier<'tree>,
9704 pub value: ::core::option::Option<DefaultType<'tree>>,
9705}
9706impl<'tree> ::treesitter_types::FromNode<'tree> for TypeParameter<'tree> {
9707 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9708 fn from_node(
9709 node: ::tree_sitter::Node<'tree>,
9710 src: &'tree [u8],
9711 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9712 debug_assert_eq!(node.kind(), "type_parameter");
9713 Ok(Self {
9714 span: ::treesitter_types::Span::from(node),
9715 constraint: match node.child_by_field_name("constraint") {
9716 Some(child) => Some(<Constraint as ::treesitter_types::FromNode>::from_node(
9717 child, src,
9718 )?),
9719 None => None,
9720 },
9721 name: {
9722 let child = node
9723 .child_by_field_name("name")
9724 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
9725 <TypeIdentifier as ::treesitter_types::FromNode>::from_node(child, src)?
9726 },
9727 value: match node.child_by_field_name("value") {
9728 Some(child) => Some(<DefaultType as ::treesitter_types::FromNode>::from_node(
9729 child, src,
9730 )?),
9731 None => None,
9732 },
9733 })
9734 }
9735}
9736impl ::treesitter_types::Spanned for TypeParameter<'_> {
9737 fn span(&self) -> ::treesitter_types::Span {
9738 self.span
9739 }
9740}
9741#[derive(Debug, Clone, PartialEq, Eq)]
9742pub struct TypeParameters<'tree> {
9743 pub span: ::treesitter_types::Span,
9744 pub children: ::std::vec::Vec<TypeParameter<'tree>>,
9745}
9746impl<'tree> ::treesitter_types::FromNode<'tree> for TypeParameters<'tree> {
9747 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9748 fn from_node(
9749 node: ::tree_sitter::Node<'tree>,
9750 src: &'tree [u8],
9751 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9752 debug_assert_eq!(node.kind(), "type_parameters");
9753 Ok(Self {
9754 span: ::treesitter_types::Span::from(node),
9755 children: {
9756 #[allow(clippy::suspicious_else_formatting)]
9757 let non_field_children = {
9758 let mut cursor = node.walk();
9759 let mut result = ::std::vec::Vec::new();
9760 if cursor.goto_first_child() {
9761 loop {
9762 if cursor.field_name().is_none()
9763 && cursor.node().is_named()
9764 && !cursor.node().is_extra()
9765 {
9766 result.push(cursor.node());
9767 }
9768 if !cursor.goto_next_sibling() {
9769 break;
9770 }
9771 }
9772 }
9773 result
9774 };
9775 let mut items = ::std::vec::Vec::new();
9776 for child in non_field_children {
9777 items.push(<TypeParameter as ::treesitter_types::FromNode>::from_node(
9778 child, src,
9779 )?);
9780 }
9781 items
9782 },
9783 })
9784 }
9785}
9786impl ::treesitter_types::Spanned for TypeParameters<'_> {
9787 fn span(&self) -> ::treesitter_types::Span {
9788 self.span
9789 }
9790}
9791#[derive(Debug, Clone, PartialEq, Eq)]
9792pub struct TypePredicate<'tree> {
9793 pub span: ::treesitter_types::Span,
9794 pub name: TypePredicateName<'tree>,
9795 pub r#type: Type<'tree>,
9796}
9797impl<'tree> ::treesitter_types::FromNode<'tree> for TypePredicate<'tree> {
9798 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9799 fn from_node(
9800 node: ::tree_sitter::Node<'tree>,
9801 src: &'tree [u8],
9802 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9803 debug_assert_eq!(node.kind(), "type_predicate");
9804 Ok(Self {
9805 span: ::treesitter_types::Span::from(node),
9806 name: {
9807 let child = node
9808 .child_by_field_name("name")
9809 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
9810 <TypePredicateName as ::treesitter_types::FromNode>::from_node(child, src)?
9811 },
9812 r#type: {
9813 let child = node
9814 .child_by_field_name("type")
9815 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("type", node))?;
9816 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
9817 },
9818 })
9819 }
9820}
9821impl ::treesitter_types::Spanned for TypePredicate<'_> {
9822 fn span(&self) -> ::treesitter_types::Span {
9823 self.span
9824 }
9825}
9826#[derive(Debug, Clone, PartialEq, Eq)]
9827pub struct TypePredicateAnnotation<'tree> {
9828 pub span: ::treesitter_types::Span,
9829 pub children: TypePredicate<'tree>,
9830}
9831impl<'tree> ::treesitter_types::FromNode<'tree> for TypePredicateAnnotation<'tree> {
9832 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9833 fn from_node(
9834 node: ::tree_sitter::Node<'tree>,
9835 src: &'tree [u8],
9836 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9837 debug_assert_eq!(node.kind(), "type_predicate_annotation");
9838 Ok(Self {
9839 span: ::treesitter_types::Span::from(node),
9840 children: {
9841 #[allow(clippy::suspicious_else_formatting)]
9842 let non_field_children = {
9843 let mut cursor = node.walk();
9844 let mut result = ::std::vec::Vec::new();
9845 if cursor.goto_first_child() {
9846 loop {
9847 if cursor.field_name().is_none()
9848 && cursor.node().is_named()
9849 && !cursor.node().is_extra()
9850 {
9851 result.push(cursor.node());
9852 }
9853 if !cursor.goto_next_sibling() {
9854 break;
9855 }
9856 }
9857 }
9858 result
9859 };
9860 let child = if let Some(&c) = non_field_children.first() {
9861 c
9862 } else {
9863 let mut fallback_cursor = node.walk();
9864 let mut fallback_child = None;
9865 if fallback_cursor.goto_first_child() {
9866 loop {
9867 if fallback_cursor.field_name().is_none()
9868 && !fallback_cursor.node().is_extra()
9869 {
9870 let candidate = fallback_cursor.node();
9871 #[allow(clippy::needless_question_mark)]
9872 if (|| -> ::core::result::Result<
9873 _,
9874 ::treesitter_types::ParseError,
9875 > {
9876 let child = candidate;
9877 Ok(
9878 <TypePredicate as ::treesitter_types::FromNode>::from_node(
9879 child,
9880 src,
9881 )?,
9882 )
9883 })()
9884 .is_ok()
9885 {
9886 fallback_child = Some(candidate);
9887 break;
9888 }
9889 }
9890 if !fallback_cursor.goto_next_sibling() {
9891 break;
9892 }
9893 }
9894 }
9895 if fallback_child.is_none() {
9896 let mut cursor2 = node.walk();
9897 if cursor2.goto_first_child() {
9898 loop {
9899 if cursor2.node().is_named() && !cursor2.node().is_extra() {
9900 let candidate = cursor2.node();
9901 #[allow(clippy::needless_question_mark)]
9902 if (|| -> ::core::result::Result<
9903 _,
9904 ::treesitter_types::ParseError,
9905 > {
9906 let child = candidate;
9907 Ok(
9908 <TypePredicate as ::treesitter_types::FromNode>::from_node(
9909 child,
9910 src,
9911 )?,
9912 )
9913 })()
9914 .is_ok()
9915 {
9916 fallback_child = Some(candidate);
9917 break;
9918 }
9919 }
9920 if !cursor2.goto_next_sibling() {
9921 break;
9922 }
9923 }
9924 }
9925 }
9926 fallback_child.ok_or_else(|| {
9927 ::treesitter_types::ParseError::missing_field("children", node)
9928 })?
9929 };
9930 <TypePredicate as ::treesitter_types::FromNode>::from_node(child, src)?
9931 },
9932 })
9933 }
9934}
9935impl ::treesitter_types::Spanned for TypePredicateAnnotation<'_> {
9936 fn span(&self) -> ::treesitter_types::Span {
9937 self.span
9938 }
9939}
9940#[derive(Debug, Clone, PartialEq, Eq)]
9941pub struct TypeQuery<'tree> {
9942 pub span: ::treesitter_types::Span,
9943 pub children: TypeQueryChildren<'tree>,
9944}
9945impl<'tree> ::treesitter_types::FromNode<'tree> for TypeQuery<'tree> {
9946 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9947 fn from_node(
9948 node: ::tree_sitter::Node<'tree>,
9949 src: &'tree [u8],
9950 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9951 debug_assert_eq!(node.kind(), "type_query");
9952 Ok(Self {
9953 span: ::treesitter_types::Span::from(node),
9954 children: {
9955 #[allow(clippy::suspicious_else_formatting)]
9956 let non_field_children = {
9957 let mut cursor = node.walk();
9958 let mut result = ::std::vec::Vec::new();
9959 if cursor.goto_first_child() {
9960 loop {
9961 if cursor.field_name().is_none()
9962 && cursor.node().is_named()
9963 && !cursor.node().is_extra()
9964 {
9965 result.push(cursor.node());
9966 }
9967 if !cursor.goto_next_sibling() {
9968 break;
9969 }
9970 }
9971 }
9972 result
9973 };
9974 let child = if let Some(&c) = non_field_children.first() {
9975 c
9976 } else {
9977 let mut fallback_cursor = node.walk();
9978 let mut fallback_child = None;
9979 if fallback_cursor.goto_first_child() {
9980 loop {
9981 if fallback_cursor.field_name().is_none()
9982 && !fallback_cursor.node().is_extra()
9983 {
9984 let candidate = fallback_cursor.node();
9985 #[allow(clippy::needless_question_mark)]
9986 if (|| -> ::core::result::Result<
9987 _,
9988 ::treesitter_types::ParseError,
9989 > {
9990 let child = candidate;
9991 Ok(
9992 <TypeQueryChildren as ::treesitter_types::FromNode>::from_node(
9993 child,
9994 src,
9995 )?,
9996 )
9997 })()
9998 .is_ok()
9999 {
10000 fallback_child = Some(candidate);
10001 break;
10002 }
10003 }
10004 if !fallback_cursor.goto_next_sibling() {
10005 break;
10006 }
10007 }
10008 }
10009 if fallback_child.is_none() {
10010 let mut cursor2 = node.walk();
10011 if cursor2.goto_first_child() {
10012 loop {
10013 if cursor2.node().is_named() && !cursor2.node().is_extra() {
10014 let candidate = cursor2.node();
10015 #[allow(clippy::needless_question_mark)]
10016 if (|| -> ::core::result::Result<
10017 _,
10018 ::treesitter_types::ParseError,
10019 > {
10020 let child = candidate;
10021 Ok(
10022 <TypeQueryChildren as ::treesitter_types::FromNode>::from_node(
10023 child,
10024 src,
10025 )?,
10026 )
10027 })()
10028 .is_ok()
10029 {
10030 fallback_child = Some(candidate);
10031 break;
10032 }
10033 }
10034 if !cursor2.goto_next_sibling() {
10035 break;
10036 }
10037 }
10038 }
10039 }
10040 fallback_child.ok_or_else(|| {
10041 ::treesitter_types::ParseError::missing_field("children", node)
10042 })?
10043 };
10044 <TypeQueryChildren as ::treesitter_types::FromNode>::from_node(child, src)?
10045 },
10046 })
10047 }
10048}
10049impl ::treesitter_types::Spanned for TypeQuery<'_> {
10050 fn span(&self) -> ::treesitter_types::Span {
10051 self.span
10052 }
10053}
10054#[derive(Debug, Clone, PartialEq, Eq)]
10055pub struct UnaryExpression<'tree> {
10056 pub span: ::treesitter_types::Span,
10057 pub argument: UnaryExpressionArgument<'tree>,
10058 pub operator: UnaryExpressionOperator,
10059}
10060impl<'tree> ::treesitter_types::FromNode<'tree> for UnaryExpression<'tree> {
10061 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
10062 fn from_node(
10063 node: ::tree_sitter::Node<'tree>,
10064 src: &'tree [u8],
10065 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10066 debug_assert_eq!(node.kind(), "unary_expression");
10067 Ok(Self {
10068 span: ::treesitter_types::Span::from(node),
10069 argument: {
10070 let child = node.child_by_field_name("argument").ok_or_else(|| {
10071 ::treesitter_types::ParseError::missing_field("argument", node)
10072 })?;
10073 <UnaryExpressionArgument as ::treesitter_types::FromNode>::from_node(child, src)?
10074 },
10075 operator: {
10076 let child = node.child_by_field_name("operator").ok_or_else(|| {
10077 ::treesitter_types::ParseError::missing_field("operator", node)
10078 })?;
10079 <UnaryExpressionOperator as ::treesitter_types::FromNode>::from_node(child, src)?
10080 },
10081 })
10082 }
10083}
10084impl ::treesitter_types::Spanned for UnaryExpression<'_> {
10085 fn span(&self) -> ::treesitter_types::Span {
10086 self.span
10087 }
10088}
10089#[derive(Debug, Clone, PartialEq, Eq)]
10090pub struct UnionType<'tree> {
10091 pub span: ::treesitter_types::Span,
10092 pub children: ::std::vec::Vec<Type<'tree>>,
10093}
10094impl<'tree> ::treesitter_types::FromNode<'tree> for UnionType<'tree> {
10095 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
10096 fn from_node(
10097 node: ::tree_sitter::Node<'tree>,
10098 src: &'tree [u8],
10099 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10100 debug_assert_eq!(node.kind(), "union_type");
10101 Ok(Self {
10102 span: ::treesitter_types::Span::from(node),
10103 children: {
10104 #[allow(clippy::suspicious_else_formatting)]
10105 let non_field_children = {
10106 let mut cursor = node.walk();
10107 let mut result = ::std::vec::Vec::new();
10108 if cursor.goto_first_child() {
10109 loop {
10110 if cursor.field_name().is_none()
10111 && cursor.node().is_named()
10112 && !cursor.node().is_extra()
10113 {
10114 result.push(cursor.node());
10115 }
10116 if !cursor.goto_next_sibling() {
10117 break;
10118 }
10119 }
10120 }
10121 result
10122 };
10123 let mut items = ::std::vec::Vec::new();
10124 for child in non_field_children {
10125 items.push(<Type as ::treesitter_types::FromNode>::from_node(
10126 child, src,
10127 )?);
10128 }
10129 items
10130 },
10131 })
10132 }
10133}
10134impl ::treesitter_types::Spanned for UnionType<'_> {
10135 fn span(&self) -> ::treesitter_types::Span {
10136 self.span
10137 }
10138}
10139#[derive(Debug, Clone, PartialEq, Eq)]
10140pub struct UpdateExpression<'tree> {
10141 pub span: ::treesitter_types::Span,
10142 pub argument: Expression<'tree>,
10143 pub operator: UpdateExpressionOperator,
10144}
10145impl<'tree> ::treesitter_types::FromNode<'tree> for UpdateExpression<'tree> {
10146 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
10147 fn from_node(
10148 node: ::tree_sitter::Node<'tree>,
10149 src: &'tree [u8],
10150 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10151 debug_assert_eq!(node.kind(), "update_expression");
10152 Ok(Self {
10153 span: ::treesitter_types::Span::from(node),
10154 argument: {
10155 let child = node.child_by_field_name("argument").ok_or_else(|| {
10156 ::treesitter_types::ParseError::missing_field("argument", node)
10157 })?;
10158 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
10159 },
10160 operator: {
10161 let child = node.child_by_field_name("operator").ok_or_else(|| {
10162 ::treesitter_types::ParseError::missing_field("operator", node)
10163 })?;
10164 <UpdateExpressionOperator as ::treesitter_types::FromNode>::from_node(child, src)?
10165 },
10166 })
10167 }
10168}
10169impl ::treesitter_types::Spanned for UpdateExpression<'_> {
10170 fn span(&self) -> ::treesitter_types::Span {
10171 self.span
10172 }
10173}
10174#[derive(Debug, Clone, PartialEq, Eq)]
10175pub struct VariableDeclaration<'tree> {
10176 pub span: ::treesitter_types::Span,
10177 pub children: ::std::vec::Vec<VariableDeclarator<'tree>>,
10178}
10179impl<'tree> ::treesitter_types::FromNode<'tree> for VariableDeclaration<'tree> {
10180 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
10181 fn from_node(
10182 node: ::tree_sitter::Node<'tree>,
10183 src: &'tree [u8],
10184 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10185 debug_assert_eq!(node.kind(), "variable_declaration");
10186 Ok(Self {
10187 span: ::treesitter_types::Span::from(node),
10188 children: {
10189 #[allow(clippy::suspicious_else_formatting)]
10190 let non_field_children = {
10191 let mut cursor = node.walk();
10192 let mut result = ::std::vec::Vec::new();
10193 if cursor.goto_first_child() {
10194 loop {
10195 if cursor.field_name().is_none()
10196 && cursor.node().is_named()
10197 && !cursor.node().is_extra()
10198 {
10199 result.push(cursor.node());
10200 }
10201 if !cursor.goto_next_sibling() {
10202 break;
10203 }
10204 }
10205 }
10206 result
10207 };
10208 let mut items = ::std::vec::Vec::new();
10209 for child in non_field_children {
10210 items.push(
10211 <VariableDeclarator as ::treesitter_types::FromNode>::from_node(
10212 child, src,
10213 )?,
10214 );
10215 }
10216 items
10217 },
10218 })
10219 }
10220}
10221impl ::treesitter_types::Spanned for VariableDeclaration<'_> {
10222 fn span(&self) -> ::treesitter_types::Span {
10223 self.span
10224 }
10225}
10226#[derive(Debug, Clone, PartialEq, Eq)]
10227pub struct VariableDeclarator<'tree> {
10228 pub span: ::treesitter_types::Span,
10229 pub name: VariableDeclaratorName<'tree>,
10230 pub r#type: ::core::option::Option<TypeAnnotation<'tree>>,
10231 pub value: ::core::option::Option<Expression<'tree>>,
10232}
10233impl<'tree> ::treesitter_types::FromNode<'tree> for VariableDeclarator<'tree> {
10234 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
10235 fn from_node(
10236 node: ::tree_sitter::Node<'tree>,
10237 src: &'tree [u8],
10238 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10239 debug_assert_eq!(node.kind(), "variable_declarator");
10240 Ok(Self {
10241 span: ::treesitter_types::Span::from(node),
10242 name: {
10243 let child = node
10244 .child_by_field_name("name")
10245 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
10246 <VariableDeclaratorName as ::treesitter_types::FromNode>::from_node(child, src)?
10247 },
10248 r#type: match node.child_by_field_name("type") {
10249 Some(child) => Some(<TypeAnnotation as ::treesitter_types::FromNode>::from_node(
10250 child, src,
10251 )?),
10252 None => None,
10253 },
10254 value: match node.child_by_field_name("value") {
10255 Some(child) => Some(<Expression as ::treesitter_types::FromNode>::from_node(
10256 child, src,
10257 )?),
10258 None => None,
10259 },
10260 })
10261 }
10262}
10263impl ::treesitter_types::Spanned for VariableDeclarator<'_> {
10264 fn span(&self) -> ::treesitter_types::Span {
10265 self.span
10266 }
10267}
10268#[derive(Debug, Clone, PartialEq, Eq)]
10269pub struct WhileStatement<'tree> {
10270 pub span: ::treesitter_types::Span,
10271 pub body: Statement<'tree>,
10272 pub condition: ParenthesizedExpression<'tree>,
10273}
10274impl<'tree> ::treesitter_types::FromNode<'tree> for WhileStatement<'tree> {
10275 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
10276 fn from_node(
10277 node: ::tree_sitter::Node<'tree>,
10278 src: &'tree [u8],
10279 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10280 debug_assert_eq!(node.kind(), "while_statement");
10281 Ok(Self {
10282 span: ::treesitter_types::Span::from(node),
10283 body: {
10284 let child = node
10285 .child_by_field_name("body")
10286 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
10287 <Statement as ::treesitter_types::FromNode>::from_node(child, src)?
10288 },
10289 condition: {
10290 let child = node.child_by_field_name("condition").ok_or_else(|| {
10291 ::treesitter_types::ParseError::missing_field("condition", node)
10292 })?;
10293 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(child, src)?
10294 },
10295 })
10296 }
10297}
10298impl ::treesitter_types::Spanned for WhileStatement<'_> {
10299 fn span(&self) -> ::treesitter_types::Span {
10300 self.span
10301 }
10302}
10303#[derive(Debug, Clone, PartialEq, Eq)]
10304pub struct WithStatement<'tree> {
10305 pub span: ::treesitter_types::Span,
10306 pub body: Statement<'tree>,
10307 pub object: ParenthesizedExpression<'tree>,
10308}
10309impl<'tree> ::treesitter_types::FromNode<'tree> for WithStatement<'tree> {
10310 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
10311 fn from_node(
10312 node: ::tree_sitter::Node<'tree>,
10313 src: &'tree [u8],
10314 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10315 debug_assert_eq!(node.kind(), "with_statement");
10316 Ok(Self {
10317 span: ::treesitter_types::Span::from(node),
10318 body: {
10319 let child = node
10320 .child_by_field_name("body")
10321 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
10322 <Statement as ::treesitter_types::FromNode>::from_node(child, src)?
10323 },
10324 object: {
10325 let child = node
10326 .child_by_field_name("object")
10327 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("object", node))?;
10328 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(child, src)?
10329 },
10330 })
10331 }
10332}
10333impl ::treesitter_types::Spanned for WithStatement<'_> {
10334 fn span(&self) -> ::treesitter_types::Span {
10335 self.span
10336 }
10337}
10338#[derive(Debug, Clone, PartialEq, Eq)]
10339pub struct YieldExpression<'tree> {
10340 pub span: ::treesitter_types::Span,
10341 pub children: ::core::option::Option<Expression<'tree>>,
10342}
10343impl<'tree> ::treesitter_types::FromNode<'tree> for YieldExpression<'tree> {
10344 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
10345 fn from_node(
10346 node: ::tree_sitter::Node<'tree>,
10347 src: &'tree [u8],
10348 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10349 debug_assert_eq!(node.kind(), "yield_expression");
10350 Ok(Self {
10351 span: ::treesitter_types::Span::from(node),
10352 children: {
10353 #[allow(clippy::suspicious_else_formatting)]
10354 let non_field_children = {
10355 let mut cursor = node.walk();
10356 let mut result = ::std::vec::Vec::new();
10357 if cursor.goto_first_child() {
10358 loop {
10359 if cursor.field_name().is_none()
10360 && cursor.node().is_named()
10361 && !cursor.node().is_extra()
10362 {
10363 result.push(cursor.node());
10364 }
10365 if !cursor.goto_next_sibling() {
10366 break;
10367 }
10368 }
10369 }
10370 result
10371 };
10372 match non_field_children.first() {
10373 Some(&child) => Some(<Expression as ::treesitter_types::FromNode>::from_node(
10374 child, src,
10375 )?),
10376 None => None,
10377 }
10378 },
10379 })
10380 }
10381}
10382impl ::treesitter_types::Spanned for YieldExpression<'_> {
10383 fn span(&self) -> ::treesitter_types::Span {
10384 self.span
10385 }
10386}
10387#[derive(Debug, Clone, PartialEq, Eq)]
10388pub struct Comment<'tree> {
10389 pub span: ::treesitter_types::Span,
10390 text: &'tree str,
10391}
10392impl<'tree> ::treesitter_types::FromNode<'tree> for Comment<'tree> {
10393 fn from_node(
10394 node: ::tree_sitter::Node<'tree>,
10395 src: &'tree [u8],
10396 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10397 debug_assert_eq!(node.kind(), "comment");
10398 Ok(Self {
10399 span: ::treesitter_types::Span::from(node),
10400 text: node.utf8_text(src)?,
10401 })
10402 }
10403}
10404impl<'tree> ::treesitter_types::LeafNode<'tree> for Comment<'tree> {
10405 fn text(&self) -> &'tree str {
10406 self.text
10407 }
10408}
10409impl ::treesitter_types::Spanned for Comment<'_> {
10410 fn span(&self) -> ::treesitter_types::Span {
10411 self.span
10412 }
10413}
10414#[derive(Debug, Clone, PartialEq, Eq)]
10415pub struct EscapeSequence<'tree> {
10416 pub span: ::treesitter_types::Span,
10417 text: &'tree str,
10418}
10419impl<'tree> ::treesitter_types::FromNode<'tree> for EscapeSequence<'tree> {
10420 fn from_node(
10421 node: ::tree_sitter::Node<'tree>,
10422 src: &'tree [u8],
10423 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10424 debug_assert_eq!(node.kind(), "escape_sequence");
10425 Ok(Self {
10426 span: ::treesitter_types::Span::from(node),
10427 text: node.utf8_text(src)?,
10428 })
10429 }
10430}
10431impl<'tree> ::treesitter_types::LeafNode<'tree> for EscapeSequence<'tree> {
10432 fn text(&self) -> &'tree str {
10433 self.text
10434 }
10435}
10436impl ::treesitter_types::Spanned for EscapeSequence<'_> {
10437 fn span(&self) -> ::treesitter_types::Span {
10438 self.span
10439 }
10440}
10441#[derive(Debug, Clone, PartialEq, Eq)]
10442pub struct False<'tree> {
10443 pub span: ::treesitter_types::Span,
10444 text: &'tree str,
10445}
10446impl<'tree> ::treesitter_types::FromNode<'tree> for False<'tree> {
10447 fn from_node(
10448 node: ::tree_sitter::Node<'tree>,
10449 src: &'tree [u8],
10450 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10451 debug_assert_eq!(node.kind(), "false");
10452 Ok(Self {
10453 span: ::treesitter_types::Span::from(node),
10454 text: node.utf8_text(src)?,
10455 })
10456 }
10457}
10458impl<'tree> ::treesitter_types::LeafNode<'tree> for False<'tree> {
10459 fn text(&self) -> &'tree str {
10460 self.text
10461 }
10462}
10463impl ::treesitter_types::Spanned for False<'_> {
10464 fn span(&self) -> ::treesitter_types::Span {
10465 self.span
10466 }
10467}
10468#[derive(Debug, Clone, PartialEq, Eq)]
10469pub struct HashBangLine<'tree> {
10470 pub span: ::treesitter_types::Span,
10471 text: &'tree str,
10472}
10473impl<'tree> ::treesitter_types::FromNode<'tree> for HashBangLine<'tree> {
10474 fn from_node(
10475 node: ::tree_sitter::Node<'tree>,
10476 src: &'tree [u8],
10477 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10478 debug_assert_eq!(node.kind(), "hash_bang_line");
10479 Ok(Self {
10480 span: ::treesitter_types::Span::from(node),
10481 text: node.utf8_text(src)?,
10482 })
10483 }
10484}
10485impl<'tree> ::treesitter_types::LeafNode<'tree> for HashBangLine<'tree> {
10486 fn text(&self) -> &'tree str {
10487 self.text
10488 }
10489}
10490impl ::treesitter_types::Spanned for HashBangLine<'_> {
10491 fn span(&self) -> ::treesitter_types::Span {
10492 self.span
10493 }
10494}
10495#[derive(Debug, Clone, PartialEq, Eq)]
10496pub struct HtmlComment<'tree> {
10497 pub span: ::treesitter_types::Span,
10498 text: &'tree str,
10499}
10500impl<'tree> ::treesitter_types::FromNode<'tree> for HtmlComment<'tree> {
10501 fn from_node(
10502 node: ::tree_sitter::Node<'tree>,
10503 src: &'tree [u8],
10504 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10505 debug_assert_eq!(node.kind(), "html_comment");
10506 Ok(Self {
10507 span: ::treesitter_types::Span::from(node),
10508 text: node.utf8_text(src)?,
10509 })
10510 }
10511}
10512impl<'tree> ::treesitter_types::LeafNode<'tree> for HtmlComment<'tree> {
10513 fn text(&self) -> &'tree str {
10514 self.text
10515 }
10516}
10517impl ::treesitter_types::Spanned for HtmlComment<'_> {
10518 fn span(&self) -> ::treesitter_types::Span {
10519 self.span
10520 }
10521}
10522#[derive(Debug, Clone, PartialEq, Eq)]
10523pub struct Null<'tree> {
10524 pub span: ::treesitter_types::Span,
10525 text: &'tree str,
10526}
10527impl<'tree> ::treesitter_types::FromNode<'tree> for Null<'tree> {
10528 fn from_node(
10529 node: ::tree_sitter::Node<'tree>,
10530 src: &'tree [u8],
10531 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10532 debug_assert_eq!(node.kind(), "null");
10533 Ok(Self {
10534 span: ::treesitter_types::Span::from(node),
10535 text: node.utf8_text(src)?,
10536 })
10537 }
10538}
10539impl<'tree> ::treesitter_types::LeafNode<'tree> for Null<'tree> {
10540 fn text(&self) -> &'tree str {
10541 self.text
10542 }
10543}
10544impl ::treesitter_types::Spanned for Null<'_> {
10545 fn span(&self) -> ::treesitter_types::Span {
10546 self.span
10547 }
10548}
10549#[derive(Debug, Clone, PartialEq, Eq)]
10550pub struct Number<'tree> {
10551 pub span: ::treesitter_types::Span,
10552 text: &'tree str,
10553}
10554impl<'tree> ::treesitter_types::FromNode<'tree> for Number<'tree> {
10555 fn from_node(
10556 node: ::tree_sitter::Node<'tree>,
10557 src: &'tree [u8],
10558 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10559 debug_assert_eq!(node.kind(), "number");
10560 Ok(Self {
10561 span: ::treesitter_types::Span::from(node),
10562 text: node.utf8_text(src)?,
10563 })
10564 }
10565}
10566impl<'tree> ::treesitter_types::LeafNode<'tree> for Number<'tree> {
10567 fn text(&self) -> &'tree str {
10568 self.text
10569 }
10570}
10571impl ::treesitter_types::Spanned for Number<'_> {
10572 fn span(&self) -> ::treesitter_types::Span {
10573 self.span
10574 }
10575}
10576#[derive(Debug, Clone, PartialEq, Eq)]
10577pub struct PrivatePropertyIdentifier<'tree> {
10578 pub span: ::treesitter_types::Span,
10579 text: &'tree str,
10580}
10581impl<'tree> ::treesitter_types::FromNode<'tree> for PrivatePropertyIdentifier<'tree> {
10582 fn from_node(
10583 node: ::tree_sitter::Node<'tree>,
10584 src: &'tree [u8],
10585 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10586 debug_assert_eq!(node.kind(), "private_property_identifier");
10587 Ok(Self {
10588 span: ::treesitter_types::Span::from(node),
10589 text: node.utf8_text(src)?,
10590 })
10591 }
10592}
10593impl<'tree> ::treesitter_types::LeafNode<'tree> for PrivatePropertyIdentifier<'tree> {
10594 fn text(&self) -> &'tree str {
10595 self.text
10596 }
10597}
10598impl ::treesitter_types::Spanned for PrivatePropertyIdentifier<'_> {
10599 fn span(&self) -> ::treesitter_types::Span {
10600 self.span
10601 }
10602}
10603#[derive(Debug, Clone, PartialEq, Eq)]
10604pub struct PropertyIdentifier<'tree> {
10605 pub span: ::treesitter_types::Span,
10606 text: &'tree str,
10607}
10608impl<'tree> ::treesitter_types::FromNode<'tree> for PropertyIdentifier<'tree> {
10609 fn from_node(
10610 node: ::tree_sitter::Node<'tree>,
10611 src: &'tree [u8],
10612 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10613 debug_assert_eq!(node.kind(), "property_identifier");
10614 Ok(Self {
10615 span: ::treesitter_types::Span::from(node),
10616 text: node.utf8_text(src)?,
10617 })
10618 }
10619}
10620impl<'tree> ::treesitter_types::LeafNode<'tree> for PropertyIdentifier<'tree> {
10621 fn text(&self) -> &'tree str {
10622 self.text
10623 }
10624}
10625impl ::treesitter_types::Spanned for PropertyIdentifier<'_> {
10626 fn span(&self) -> ::treesitter_types::Span {
10627 self.span
10628 }
10629}
10630#[derive(Debug, Clone, PartialEq, Eq)]
10631pub struct RegexFlags<'tree> {
10632 pub span: ::treesitter_types::Span,
10633 text: &'tree str,
10634}
10635impl<'tree> ::treesitter_types::FromNode<'tree> for RegexFlags<'tree> {
10636 fn from_node(
10637 node: ::tree_sitter::Node<'tree>,
10638 src: &'tree [u8],
10639 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10640 debug_assert_eq!(node.kind(), "regex_flags");
10641 Ok(Self {
10642 span: ::treesitter_types::Span::from(node),
10643 text: node.utf8_text(src)?,
10644 })
10645 }
10646}
10647impl<'tree> ::treesitter_types::LeafNode<'tree> for RegexFlags<'tree> {
10648 fn text(&self) -> &'tree str {
10649 self.text
10650 }
10651}
10652impl ::treesitter_types::Spanned for RegexFlags<'_> {
10653 fn span(&self) -> ::treesitter_types::Span {
10654 self.span
10655 }
10656}
10657#[derive(Debug, Clone, PartialEq, Eq)]
10658pub struct RegexPattern<'tree> {
10659 pub span: ::treesitter_types::Span,
10660 text: &'tree str,
10661}
10662impl<'tree> ::treesitter_types::FromNode<'tree> for RegexPattern<'tree> {
10663 fn from_node(
10664 node: ::tree_sitter::Node<'tree>,
10665 src: &'tree [u8],
10666 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10667 debug_assert_eq!(node.kind(), "regex_pattern");
10668 Ok(Self {
10669 span: ::treesitter_types::Span::from(node),
10670 text: node.utf8_text(src)?,
10671 })
10672 }
10673}
10674impl<'tree> ::treesitter_types::LeafNode<'tree> for RegexPattern<'tree> {
10675 fn text(&self) -> &'tree str {
10676 self.text
10677 }
10678}
10679impl ::treesitter_types::Spanned for RegexPattern<'_> {
10680 fn span(&self) -> ::treesitter_types::Span {
10681 self.span
10682 }
10683}
10684#[derive(Debug, Clone, PartialEq, Eq)]
10685pub struct ShorthandPropertyIdentifier<'tree> {
10686 pub span: ::treesitter_types::Span,
10687 text: &'tree str,
10688}
10689impl<'tree> ::treesitter_types::FromNode<'tree> for ShorthandPropertyIdentifier<'tree> {
10690 fn from_node(
10691 node: ::tree_sitter::Node<'tree>,
10692 src: &'tree [u8],
10693 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10694 debug_assert_eq!(node.kind(), "shorthand_property_identifier");
10695 Ok(Self {
10696 span: ::treesitter_types::Span::from(node),
10697 text: node.utf8_text(src)?,
10698 })
10699 }
10700}
10701impl<'tree> ::treesitter_types::LeafNode<'tree> for ShorthandPropertyIdentifier<'tree> {
10702 fn text(&self) -> &'tree str {
10703 self.text
10704 }
10705}
10706impl ::treesitter_types::Spanned for ShorthandPropertyIdentifier<'_> {
10707 fn span(&self) -> ::treesitter_types::Span {
10708 self.span
10709 }
10710}
10711#[derive(Debug, Clone, PartialEq, Eq)]
10712pub struct ShorthandPropertyIdentifierPattern<'tree> {
10713 pub span: ::treesitter_types::Span,
10714 text: &'tree str,
10715}
10716impl<'tree> ::treesitter_types::FromNode<'tree> for ShorthandPropertyIdentifierPattern<'tree> {
10717 fn from_node(
10718 node: ::tree_sitter::Node<'tree>,
10719 src: &'tree [u8],
10720 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10721 debug_assert_eq!(node.kind(), "shorthand_property_identifier_pattern");
10722 Ok(Self {
10723 span: ::treesitter_types::Span::from(node),
10724 text: node.utf8_text(src)?,
10725 })
10726 }
10727}
10728impl<'tree> ::treesitter_types::LeafNode<'tree> for ShorthandPropertyIdentifierPattern<'tree> {
10729 fn text(&self) -> &'tree str {
10730 self.text
10731 }
10732}
10733impl ::treesitter_types::Spanned for ShorthandPropertyIdentifierPattern<'_> {
10734 fn span(&self) -> ::treesitter_types::Span {
10735 self.span
10736 }
10737}
10738#[derive(Debug, Clone, PartialEq, Eq)]
10739pub struct StatementIdentifier<'tree> {
10740 pub span: ::treesitter_types::Span,
10741 text: &'tree str,
10742}
10743impl<'tree> ::treesitter_types::FromNode<'tree> for StatementIdentifier<'tree> {
10744 fn from_node(
10745 node: ::tree_sitter::Node<'tree>,
10746 src: &'tree [u8],
10747 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10748 debug_assert_eq!(node.kind(), "statement_identifier");
10749 Ok(Self {
10750 span: ::treesitter_types::Span::from(node),
10751 text: node.utf8_text(src)?,
10752 })
10753 }
10754}
10755impl<'tree> ::treesitter_types::LeafNode<'tree> for StatementIdentifier<'tree> {
10756 fn text(&self) -> &'tree str {
10757 self.text
10758 }
10759}
10760impl ::treesitter_types::Spanned for StatementIdentifier<'_> {
10761 fn span(&self) -> ::treesitter_types::Span {
10762 self.span
10763 }
10764}
10765#[derive(Debug, Clone, PartialEq, Eq)]
10766pub struct StringFragment<'tree> {
10767 pub span: ::treesitter_types::Span,
10768 text: &'tree str,
10769}
10770impl<'tree> ::treesitter_types::FromNode<'tree> for StringFragment<'tree> {
10771 fn from_node(
10772 node: ::tree_sitter::Node<'tree>,
10773 src: &'tree [u8],
10774 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10775 debug_assert_eq!(node.kind(), "string_fragment");
10776 Ok(Self {
10777 span: ::treesitter_types::Span::from(node),
10778 text: node.utf8_text(src)?,
10779 })
10780 }
10781}
10782impl<'tree> ::treesitter_types::LeafNode<'tree> for StringFragment<'tree> {
10783 fn text(&self) -> &'tree str {
10784 self.text
10785 }
10786}
10787impl ::treesitter_types::Spanned for StringFragment<'_> {
10788 fn span(&self) -> ::treesitter_types::Span {
10789 self.span
10790 }
10791}
10792#[derive(Debug, Clone, PartialEq, Eq)]
10793pub struct Super<'tree> {
10794 pub span: ::treesitter_types::Span,
10795 text: &'tree str,
10796}
10797impl<'tree> ::treesitter_types::FromNode<'tree> for Super<'tree> {
10798 fn from_node(
10799 node: ::tree_sitter::Node<'tree>,
10800 src: &'tree [u8],
10801 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10802 debug_assert_eq!(node.kind(), "super");
10803 Ok(Self {
10804 span: ::treesitter_types::Span::from(node),
10805 text: node.utf8_text(src)?,
10806 })
10807 }
10808}
10809impl<'tree> ::treesitter_types::LeafNode<'tree> for Super<'tree> {
10810 fn text(&self) -> &'tree str {
10811 self.text
10812 }
10813}
10814impl ::treesitter_types::Spanned for Super<'_> {
10815 fn span(&self) -> ::treesitter_types::Span {
10816 self.span
10817 }
10818}
10819#[derive(Debug, Clone, PartialEq, Eq)]
10820pub struct This<'tree> {
10821 pub span: ::treesitter_types::Span,
10822 text: &'tree str,
10823}
10824impl<'tree> ::treesitter_types::FromNode<'tree> for This<'tree> {
10825 fn from_node(
10826 node: ::tree_sitter::Node<'tree>,
10827 src: &'tree [u8],
10828 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10829 debug_assert_eq!(node.kind(), "this");
10830 Ok(Self {
10831 span: ::treesitter_types::Span::from(node),
10832 text: node.utf8_text(src)?,
10833 })
10834 }
10835}
10836impl<'tree> ::treesitter_types::LeafNode<'tree> for This<'tree> {
10837 fn text(&self) -> &'tree str {
10838 self.text
10839 }
10840}
10841impl ::treesitter_types::Spanned for This<'_> {
10842 fn span(&self) -> ::treesitter_types::Span {
10843 self.span
10844 }
10845}
10846#[derive(Debug, Clone, PartialEq, Eq)]
10847pub struct ThisType<'tree> {
10848 pub span: ::treesitter_types::Span,
10849 text: &'tree str,
10850}
10851impl<'tree> ::treesitter_types::FromNode<'tree> for ThisType<'tree> {
10852 fn from_node(
10853 node: ::tree_sitter::Node<'tree>,
10854 src: &'tree [u8],
10855 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10856 debug_assert_eq!(node.kind(), "this_type");
10857 Ok(Self {
10858 span: ::treesitter_types::Span::from(node),
10859 text: node.utf8_text(src)?,
10860 })
10861 }
10862}
10863impl<'tree> ::treesitter_types::LeafNode<'tree> for ThisType<'tree> {
10864 fn text(&self) -> &'tree str {
10865 self.text
10866 }
10867}
10868impl ::treesitter_types::Spanned for ThisType<'_> {
10869 fn span(&self) -> ::treesitter_types::Span {
10870 self.span
10871 }
10872}
10873#[derive(Debug, Clone, PartialEq, Eq)]
10874pub struct True<'tree> {
10875 pub span: ::treesitter_types::Span,
10876 text: &'tree str,
10877}
10878impl<'tree> ::treesitter_types::FromNode<'tree> for True<'tree> {
10879 fn from_node(
10880 node: ::tree_sitter::Node<'tree>,
10881 src: &'tree [u8],
10882 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10883 debug_assert_eq!(node.kind(), "true");
10884 Ok(Self {
10885 span: ::treesitter_types::Span::from(node),
10886 text: node.utf8_text(src)?,
10887 })
10888 }
10889}
10890impl<'tree> ::treesitter_types::LeafNode<'tree> for True<'tree> {
10891 fn text(&self) -> &'tree str {
10892 self.text
10893 }
10894}
10895impl ::treesitter_types::Spanned for True<'_> {
10896 fn span(&self) -> ::treesitter_types::Span {
10897 self.span
10898 }
10899}
10900#[derive(Debug, Clone, PartialEq, Eq)]
10901pub struct TypeIdentifier<'tree> {
10902 pub span: ::treesitter_types::Span,
10903 text: &'tree str,
10904}
10905impl<'tree> ::treesitter_types::FromNode<'tree> for TypeIdentifier<'tree> {
10906 fn from_node(
10907 node: ::tree_sitter::Node<'tree>,
10908 src: &'tree [u8],
10909 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10910 debug_assert_eq!(node.kind(), "type_identifier");
10911 Ok(Self {
10912 span: ::treesitter_types::Span::from(node),
10913 text: node.utf8_text(src)?,
10914 })
10915 }
10916}
10917impl<'tree> ::treesitter_types::LeafNode<'tree> for TypeIdentifier<'tree> {
10918 fn text(&self) -> &'tree str {
10919 self.text
10920 }
10921}
10922impl ::treesitter_types::Spanned for TypeIdentifier<'_> {
10923 fn span(&self) -> ::treesitter_types::Span {
10924 self.span
10925 }
10926}
10927#[derive(Debug, Clone, PartialEq, Eq)]
10928pub struct Undefined<'tree> {
10929 pub span: ::treesitter_types::Span,
10930 text: &'tree str,
10931}
10932impl<'tree> ::treesitter_types::FromNode<'tree> for Undefined<'tree> {
10933 fn from_node(
10934 node: ::tree_sitter::Node<'tree>,
10935 src: &'tree [u8],
10936 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10937 debug_assert_eq!(node.kind(), "undefined");
10938 Ok(Self {
10939 span: ::treesitter_types::Span::from(node),
10940 text: node.utf8_text(src)?,
10941 })
10942 }
10943}
10944impl<'tree> ::treesitter_types::LeafNode<'tree> for Undefined<'tree> {
10945 fn text(&self) -> &'tree str {
10946 self.text
10947 }
10948}
10949impl ::treesitter_types::Spanned for Undefined<'_> {
10950 fn span(&self) -> ::treesitter_types::Span {
10951 self.span
10952 }
10953}
10954#[derive(Debug, Clone, PartialEq, Eq)]
10955pub enum AbstractMethodSignatureName<'tree> {
10956 ComputedPropertyName(::std::boxed::Box<ComputedPropertyName<'tree>>),
10957 Number(::std::boxed::Box<Number<'tree>>),
10958 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
10959 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
10960 String(::std::boxed::Box<String<'tree>>),
10961}
10962impl<'tree> ::treesitter_types::FromNode<'tree> for AbstractMethodSignatureName<'tree> {
10963 #[allow(clippy::collapsible_else_if)]
10964 fn from_node(
10965 node: ::tree_sitter::Node<'tree>,
10966 src: &'tree [u8],
10967 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10968 match node.kind() {
10969 "computed_property_name" => Ok(Self::ComputedPropertyName(::std::boxed::Box::new(
10970 <ComputedPropertyName as ::treesitter_types::FromNode>::from_node(node, src)?,
10971 ))),
10972 "number" => Ok(Self::Number(::std::boxed::Box::new(
10973 <Number as ::treesitter_types::FromNode>::from_node(node, src)?,
10974 ))),
10975 "private_property_identifier" => {
10976 Ok(Self::PrivatePropertyIdentifier(::std::boxed::Box::new(
10977 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
10978 node, src,
10979 )?,
10980 )))
10981 }
10982 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
10983 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
10984 ))),
10985 "string" => Ok(Self::String(::std::boxed::Box::new(
10986 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
10987 ))),
10988 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
10989 }
10990 }
10991}
10992impl ::treesitter_types::Spanned for AbstractMethodSignatureName<'_> {
10993 fn span(&self) -> ::treesitter_types::Span {
10994 match self {
10995 Self::ComputedPropertyName(inner) => inner.span(),
10996 Self::Number(inner) => inner.span(),
10997 Self::PrivatePropertyIdentifier(inner) => inner.span(),
10998 Self::PropertyIdentifier(inner) => inner.span(),
10999 Self::String(inner) => inner.span(),
11000 }
11001 }
11002}
11003#[derive(Debug, Clone, PartialEq, Eq)]
11004pub enum AbstractMethodSignatureReturnType<'tree> {
11005 AssertsAnnotation(::std::boxed::Box<AssertsAnnotation<'tree>>),
11006 TypeAnnotation(::std::boxed::Box<TypeAnnotation<'tree>>),
11007 TypePredicateAnnotation(::std::boxed::Box<TypePredicateAnnotation<'tree>>),
11008}
11009impl<'tree> ::treesitter_types::FromNode<'tree> for AbstractMethodSignatureReturnType<'tree> {
11010 #[allow(clippy::collapsible_else_if)]
11011 fn from_node(
11012 node: ::tree_sitter::Node<'tree>,
11013 src: &'tree [u8],
11014 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11015 match node.kind() {
11016 "asserts_annotation" => Ok(Self::AssertsAnnotation(::std::boxed::Box::new(
11017 <AssertsAnnotation as ::treesitter_types::FromNode>::from_node(node, src)?,
11018 ))),
11019 "type_annotation" => Ok(Self::TypeAnnotation(::std::boxed::Box::new(
11020 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)?,
11021 ))),
11022 "type_predicate_annotation" => {
11023 Ok(Self::TypePredicateAnnotation(::std::boxed::Box::new(
11024 <TypePredicateAnnotation as ::treesitter_types::FromNode>::from_node(
11025 node, src,
11026 )?,
11027 )))
11028 }
11029 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11030 }
11031 }
11032}
11033impl ::treesitter_types::Spanned for AbstractMethodSignatureReturnType<'_> {
11034 fn span(&self) -> ::treesitter_types::Span {
11035 match self {
11036 Self::AssertsAnnotation(inner) => inner.span(),
11037 Self::TypeAnnotation(inner) => inner.span(),
11038 Self::TypePredicateAnnotation(inner) => inner.span(),
11039 }
11040 }
11041}
11042#[derive(Debug, Clone, PartialEq, Eq)]
11043pub enum AbstractMethodSignatureChildren<'tree> {
11044 AccessibilityModifier(::std::boxed::Box<AccessibilityModifier<'tree>>),
11045 OverrideModifier(::std::boxed::Box<OverrideModifier<'tree>>),
11046}
11047impl<'tree> ::treesitter_types::FromNode<'tree> for AbstractMethodSignatureChildren<'tree> {
11048 #[allow(clippy::collapsible_else_if)]
11049 fn from_node(
11050 node: ::tree_sitter::Node<'tree>,
11051 src: &'tree [u8],
11052 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11053 match node.kind() {
11054 "accessibility_modifier" => Ok(Self::AccessibilityModifier(::std::boxed::Box::new(
11055 <AccessibilityModifier as ::treesitter_types::FromNode>::from_node(node, src)?,
11056 ))),
11057 "override_modifier" => Ok(Self::OverrideModifier(::std::boxed::Box::new(
11058 <OverrideModifier as ::treesitter_types::FromNode>::from_node(node, src)?,
11059 ))),
11060 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11061 }
11062 }
11063}
11064impl ::treesitter_types::Spanned for AbstractMethodSignatureChildren<'_> {
11065 fn span(&self) -> ::treesitter_types::Span {
11066 match self {
11067 Self::AccessibilityModifier(inner) => inner.span(),
11068 Self::OverrideModifier(inner) => inner.span(),
11069 }
11070 }
11071}
11072#[derive(Debug, Clone, PartialEq, Eq)]
11073pub enum AmbientDeclarationChildren<'tree> {
11074 Declaration(::std::boxed::Box<Declaration<'tree>>),
11075 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
11076 StatementBlock(::std::boxed::Box<StatementBlock<'tree>>),
11077 Type(::std::boxed::Box<Type<'tree>>),
11078}
11079impl<'tree> ::treesitter_types::FromNode<'tree> for AmbientDeclarationChildren<'tree> {
11080 #[allow(clippy::collapsible_else_if)]
11081 fn from_node(
11082 node: ::tree_sitter::Node<'tree>,
11083 src: &'tree [u8],
11084 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11085 match node.kind() {
11086 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
11087 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
11088 ))),
11089 "statement_block" => Ok(Self::StatementBlock(::std::boxed::Box::new(
11090 <StatementBlock as ::treesitter_types::FromNode>::from_node(node, src)?,
11091 ))),
11092 _other => {
11093 if let Ok(v) = <Declaration as ::treesitter_types::FromNode>::from_node(node, src) {
11094 Ok(Self::Declaration(::std::boxed::Box::new(v)))
11095 } else {
11096 if let Ok(v) = <Type as ::treesitter_types::FromNode>::from_node(node, src) {
11097 Ok(Self::Type(::std::boxed::Box::new(v)))
11098 } else {
11099 Err(::treesitter_types::ParseError::unexpected_kind(
11100 _other, node,
11101 ))
11102 }
11103 }
11104 }
11105 }
11106 }
11107}
11108impl ::treesitter_types::Spanned for AmbientDeclarationChildren<'_> {
11109 fn span(&self) -> ::treesitter_types::Span {
11110 match self {
11111 Self::Declaration(inner) => inner.span(),
11112 Self::PropertyIdentifier(inner) => inner.span(),
11113 Self::StatementBlock(inner) => inner.span(),
11114 Self::Type(inner) => inner.span(),
11115 }
11116 }
11117}
11118#[derive(Debug, Clone, PartialEq, Eq)]
11119pub enum ArgumentsChildren<'tree> {
11120 Expression(::std::boxed::Box<Expression<'tree>>),
11121 SpreadElement(::std::boxed::Box<SpreadElement<'tree>>),
11122}
11123impl<'tree> ::treesitter_types::FromNode<'tree> for ArgumentsChildren<'tree> {
11124 #[allow(clippy::collapsible_else_if)]
11125 fn from_node(
11126 node: ::tree_sitter::Node<'tree>,
11127 src: &'tree [u8],
11128 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11129 match node.kind() {
11130 "spread_element" => Ok(Self::SpreadElement(::std::boxed::Box::new(
11131 <SpreadElement as ::treesitter_types::FromNode>::from_node(node, src)?,
11132 ))),
11133 _other => {
11134 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
11135 Ok(Self::Expression(::std::boxed::Box::new(v)))
11136 } else {
11137 Err(::treesitter_types::ParseError::unexpected_kind(
11138 _other, node,
11139 ))
11140 }
11141 }
11142 }
11143 }
11144}
11145impl ::treesitter_types::Spanned for ArgumentsChildren<'_> {
11146 fn span(&self) -> ::treesitter_types::Span {
11147 match self {
11148 Self::Expression(inner) => inner.span(),
11149 Self::SpreadElement(inner) => inner.span(),
11150 }
11151 }
11152}
11153#[derive(Debug, Clone, PartialEq, Eq)]
11154pub enum ArrayChildren<'tree> {
11155 Expression(::std::boxed::Box<Expression<'tree>>),
11156 SpreadElement(::std::boxed::Box<SpreadElement<'tree>>),
11157}
11158impl<'tree> ::treesitter_types::FromNode<'tree> for ArrayChildren<'tree> {
11159 #[allow(clippy::collapsible_else_if)]
11160 fn from_node(
11161 node: ::tree_sitter::Node<'tree>,
11162 src: &'tree [u8],
11163 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11164 match node.kind() {
11165 "spread_element" => Ok(Self::SpreadElement(::std::boxed::Box::new(
11166 <SpreadElement as ::treesitter_types::FromNode>::from_node(node, src)?,
11167 ))),
11168 _other => {
11169 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
11170 Ok(Self::Expression(::std::boxed::Box::new(v)))
11171 } else {
11172 Err(::treesitter_types::ParseError::unexpected_kind(
11173 _other, node,
11174 ))
11175 }
11176 }
11177 }
11178 }
11179}
11180impl ::treesitter_types::Spanned for ArrayChildren<'_> {
11181 fn span(&self) -> ::treesitter_types::Span {
11182 match self {
11183 Self::Expression(inner) => inner.span(),
11184 Self::SpreadElement(inner) => inner.span(),
11185 }
11186 }
11187}
11188#[derive(Debug, Clone, PartialEq, Eq)]
11189pub enum ArrayPatternChildren<'tree> {
11190 AssignmentPattern(::std::boxed::Box<AssignmentPattern<'tree>>),
11191 Pattern(::std::boxed::Box<Pattern<'tree>>),
11192}
11193impl<'tree> ::treesitter_types::FromNode<'tree> for ArrayPatternChildren<'tree> {
11194 #[allow(clippy::collapsible_else_if)]
11195 fn from_node(
11196 node: ::tree_sitter::Node<'tree>,
11197 src: &'tree [u8],
11198 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11199 match node.kind() {
11200 "assignment_pattern" => Ok(Self::AssignmentPattern(::std::boxed::Box::new(
11201 <AssignmentPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
11202 ))),
11203 _other => {
11204 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
11205 Ok(Self::Pattern(::std::boxed::Box::new(v)))
11206 } else {
11207 Err(::treesitter_types::ParseError::unexpected_kind(
11208 _other, node,
11209 ))
11210 }
11211 }
11212 }
11213 }
11214}
11215impl ::treesitter_types::Spanned for ArrayPatternChildren<'_> {
11216 fn span(&self) -> ::treesitter_types::Span {
11217 match self {
11218 Self::AssignmentPattern(inner) => inner.span(),
11219 Self::Pattern(inner) => inner.span(),
11220 }
11221 }
11222}
11223#[derive(Debug, Clone, PartialEq, Eq)]
11224pub enum ArrowFunctionBody<'tree> {
11225 Expression(::std::boxed::Box<Expression<'tree>>),
11226 StatementBlock(::std::boxed::Box<StatementBlock<'tree>>),
11227}
11228impl<'tree> ::treesitter_types::FromNode<'tree> for ArrowFunctionBody<'tree> {
11229 #[allow(clippy::collapsible_else_if)]
11230 fn from_node(
11231 node: ::tree_sitter::Node<'tree>,
11232 src: &'tree [u8],
11233 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11234 match node.kind() {
11235 "statement_block" => Ok(Self::StatementBlock(::std::boxed::Box::new(
11236 <StatementBlock as ::treesitter_types::FromNode>::from_node(node, src)?,
11237 ))),
11238 _other => {
11239 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
11240 Ok(Self::Expression(::std::boxed::Box::new(v)))
11241 } else {
11242 Err(::treesitter_types::ParseError::unexpected_kind(
11243 _other, node,
11244 ))
11245 }
11246 }
11247 }
11248 }
11249}
11250impl ::treesitter_types::Spanned for ArrowFunctionBody<'_> {
11251 fn span(&self) -> ::treesitter_types::Span {
11252 match self {
11253 Self::Expression(inner) => inner.span(),
11254 Self::StatementBlock(inner) => inner.span(),
11255 }
11256 }
11257}
11258#[derive(Debug, Clone, PartialEq, Eq)]
11259pub enum ArrowFunctionReturnType<'tree> {
11260 AssertsAnnotation(::std::boxed::Box<AssertsAnnotation<'tree>>),
11261 TypeAnnotation(::std::boxed::Box<TypeAnnotation<'tree>>),
11262 TypePredicateAnnotation(::std::boxed::Box<TypePredicateAnnotation<'tree>>),
11263}
11264impl<'tree> ::treesitter_types::FromNode<'tree> for ArrowFunctionReturnType<'tree> {
11265 #[allow(clippy::collapsible_else_if)]
11266 fn from_node(
11267 node: ::tree_sitter::Node<'tree>,
11268 src: &'tree [u8],
11269 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11270 match node.kind() {
11271 "asserts_annotation" => Ok(Self::AssertsAnnotation(::std::boxed::Box::new(
11272 <AssertsAnnotation as ::treesitter_types::FromNode>::from_node(node, src)?,
11273 ))),
11274 "type_annotation" => Ok(Self::TypeAnnotation(::std::boxed::Box::new(
11275 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)?,
11276 ))),
11277 "type_predicate_annotation" => {
11278 Ok(Self::TypePredicateAnnotation(::std::boxed::Box::new(
11279 <TypePredicateAnnotation as ::treesitter_types::FromNode>::from_node(
11280 node, src,
11281 )?,
11282 )))
11283 }
11284 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11285 }
11286 }
11287}
11288impl ::treesitter_types::Spanned for ArrowFunctionReturnType<'_> {
11289 fn span(&self) -> ::treesitter_types::Span {
11290 match self {
11291 Self::AssertsAnnotation(inner) => inner.span(),
11292 Self::TypeAnnotation(inner) => inner.span(),
11293 Self::TypePredicateAnnotation(inner) => inner.span(),
11294 }
11295 }
11296}
11297#[derive(Debug, Clone, PartialEq, Eq)]
11298pub enum AsExpressionChildren<'tree> {
11299 Expression(::std::boxed::Box<Expression<'tree>>),
11300 Type(::std::boxed::Box<Type<'tree>>),
11301}
11302impl<'tree> ::treesitter_types::FromNode<'tree> for AsExpressionChildren<'tree> {
11303 #[allow(clippy::collapsible_else_if)]
11304 fn from_node(
11305 node: ::tree_sitter::Node<'tree>,
11306 src: &'tree [u8],
11307 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11308 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
11309 Ok(Self::Expression(::std::boxed::Box::new(v)))
11310 } else {
11311 if let Ok(v) = <Type as ::treesitter_types::FromNode>::from_node(node, src) {
11312 Ok(Self::Type(::std::boxed::Box::new(v)))
11313 } else {
11314 Err(::treesitter_types::ParseError::unexpected_kind(
11315 node.kind(),
11316 node,
11317 ))
11318 }
11319 }
11320 }
11321}
11322impl ::treesitter_types::Spanned for AsExpressionChildren<'_> {
11323 fn span(&self) -> ::treesitter_types::Span {
11324 match self {
11325 Self::Expression(inner) => inner.span(),
11326 Self::Type(inner) => inner.span(),
11327 }
11328 }
11329}
11330#[derive(Debug, Clone, PartialEq, Eq)]
11331pub enum AssertsChildren<'tree> {
11332 Identifier(::std::boxed::Box<Identifier<'tree>>),
11333 This(::std::boxed::Box<This<'tree>>),
11334 TypePredicate(::std::boxed::Box<TypePredicate<'tree>>),
11335}
11336impl<'tree> ::treesitter_types::FromNode<'tree> for AssertsChildren<'tree> {
11337 #[allow(clippy::collapsible_else_if)]
11338 fn from_node(
11339 node: ::tree_sitter::Node<'tree>,
11340 src: &'tree [u8],
11341 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11342 match node.kind() {
11343 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
11344 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
11345 ))),
11346 "this" => Ok(Self::This(::std::boxed::Box::new(
11347 <This as ::treesitter_types::FromNode>::from_node(node, src)?,
11348 ))),
11349 "type_predicate" => Ok(Self::TypePredicate(::std::boxed::Box::new(
11350 <TypePredicate as ::treesitter_types::FromNode>::from_node(node, src)?,
11351 ))),
11352 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11353 }
11354 }
11355}
11356impl ::treesitter_types::Spanned for AssertsChildren<'_> {
11357 fn span(&self) -> ::treesitter_types::Span {
11358 match self {
11359 Self::Identifier(inner) => inner.span(),
11360 Self::This(inner) => inner.span(),
11361 Self::TypePredicate(inner) => inner.span(),
11362 }
11363 }
11364}
11365#[derive(Debug, Clone, PartialEq, Eq)]
11366pub enum AssignmentExpressionLeft<'tree> {
11367 ArrayPattern(::std::boxed::Box<ArrayPattern<'tree>>),
11368 Identifier(::std::boxed::Box<Identifier<'tree>>),
11369 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
11370 NonNullExpression(::std::boxed::Box<NonNullExpression<'tree>>),
11371 ObjectPattern(::std::boxed::Box<ObjectPattern<'tree>>),
11372 ParenthesizedExpression(::std::boxed::Box<ParenthesizedExpression<'tree>>),
11373 SubscriptExpression(::std::boxed::Box<SubscriptExpression<'tree>>),
11374 Undefined(::std::boxed::Box<Undefined<'tree>>),
11375}
11376impl<'tree> ::treesitter_types::FromNode<'tree> for AssignmentExpressionLeft<'tree> {
11377 #[allow(clippy::collapsible_else_if)]
11378 fn from_node(
11379 node: ::tree_sitter::Node<'tree>,
11380 src: &'tree [u8],
11381 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11382 match node.kind() {
11383 "array_pattern" => Ok(Self::ArrayPattern(::std::boxed::Box::new(
11384 <ArrayPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
11385 ))),
11386 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
11387 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
11388 ))),
11389 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
11390 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
11391 ))),
11392 "non_null_expression" => Ok(Self::NonNullExpression(::std::boxed::Box::new(
11393 <NonNullExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
11394 ))),
11395 "object_pattern" => Ok(Self::ObjectPattern(::std::boxed::Box::new(
11396 <ObjectPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
11397 ))),
11398 "parenthesized_expression" => {
11399 Ok(Self::ParenthesizedExpression(::std::boxed::Box::new(
11400 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(
11401 node, src,
11402 )?,
11403 )))
11404 }
11405 "subscript_expression" => Ok(Self::SubscriptExpression(::std::boxed::Box::new(
11406 <SubscriptExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
11407 ))),
11408 "undefined" => Ok(Self::Undefined(::std::boxed::Box::new(
11409 <Undefined as ::treesitter_types::FromNode>::from_node(node, src)?,
11410 ))),
11411 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11412 }
11413 }
11414}
11415impl ::treesitter_types::Spanned for AssignmentExpressionLeft<'_> {
11416 fn span(&self) -> ::treesitter_types::Span {
11417 match self {
11418 Self::ArrayPattern(inner) => inner.span(),
11419 Self::Identifier(inner) => inner.span(),
11420 Self::MemberExpression(inner) => inner.span(),
11421 Self::NonNullExpression(inner) => inner.span(),
11422 Self::ObjectPattern(inner) => inner.span(),
11423 Self::ParenthesizedExpression(inner) => inner.span(),
11424 Self::SubscriptExpression(inner) => inner.span(),
11425 Self::Undefined(inner) => inner.span(),
11426 }
11427 }
11428}
11429#[derive(Debug, Clone, PartialEq, Eq)]
11430pub enum AugmentedAssignmentExpressionLeft<'tree> {
11431 Identifier(::std::boxed::Box<Identifier<'tree>>),
11432 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
11433 NonNullExpression(::std::boxed::Box<NonNullExpression<'tree>>),
11434 ParenthesizedExpression(::std::boxed::Box<ParenthesizedExpression<'tree>>),
11435 SubscriptExpression(::std::boxed::Box<SubscriptExpression<'tree>>),
11436}
11437impl<'tree> ::treesitter_types::FromNode<'tree> for AugmentedAssignmentExpressionLeft<'tree> {
11438 #[allow(clippy::collapsible_else_if)]
11439 fn from_node(
11440 node: ::tree_sitter::Node<'tree>,
11441 src: &'tree [u8],
11442 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11443 match node.kind() {
11444 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
11445 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
11446 ))),
11447 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
11448 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
11449 ))),
11450 "non_null_expression" => Ok(Self::NonNullExpression(::std::boxed::Box::new(
11451 <NonNullExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
11452 ))),
11453 "parenthesized_expression" => {
11454 Ok(Self::ParenthesizedExpression(::std::boxed::Box::new(
11455 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(
11456 node, src,
11457 )?,
11458 )))
11459 }
11460 "subscript_expression" => Ok(Self::SubscriptExpression(::std::boxed::Box::new(
11461 <SubscriptExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
11462 ))),
11463 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11464 }
11465 }
11466}
11467impl ::treesitter_types::Spanned for AugmentedAssignmentExpressionLeft<'_> {
11468 fn span(&self) -> ::treesitter_types::Span {
11469 match self {
11470 Self::Identifier(inner) => inner.span(),
11471 Self::MemberExpression(inner) => inner.span(),
11472 Self::NonNullExpression(inner) => inner.span(),
11473 Self::ParenthesizedExpression(inner) => inner.span(),
11474 Self::SubscriptExpression(inner) => inner.span(),
11475 }
11476 }
11477}
11478#[derive(Debug, Clone, PartialEq, Eq)]
11479pub enum AugmentedAssignmentExpressionOperator {
11480 PercentEq(::treesitter_types::Span),
11481 AmpAmpEq(::treesitter_types::Span),
11482 AmpEq(::treesitter_types::Span),
11483 StarStarEq(::treesitter_types::Span),
11484 StarEq(::treesitter_types::Span),
11485 PlusEq(::treesitter_types::Span),
11486 MinusEq(::treesitter_types::Span),
11487 SlashEq(::treesitter_types::Span),
11488 ShlEq(::treesitter_types::Span),
11489 ShrEq(::treesitter_types::Span),
11490 GtGtGtEq(::treesitter_types::Span),
11491 QuestionQuestionEq(::treesitter_types::Span),
11492 CaretEq(::treesitter_types::Span),
11493 PipeEq(::treesitter_types::Span),
11494 PipePipeEq(::treesitter_types::Span),
11495}
11496impl<'tree> ::treesitter_types::FromNode<'tree> for AugmentedAssignmentExpressionOperator {
11497 #[allow(clippy::collapsible_else_if)]
11498 fn from_node(
11499 node: ::tree_sitter::Node<'tree>,
11500 _src: &'tree [u8],
11501 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11502 match node.kind() {
11503 "%=" => Ok(Self::PercentEq(::treesitter_types::Span::from(node))),
11504 "&&=" => Ok(Self::AmpAmpEq(::treesitter_types::Span::from(node))),
11505 "&=" => Ok(Self::AmpEq(::treesitter_types::Span::from(node))),
11506 "**=" => Ok(Self::StarStarEq(::treesitter_types::Span::from(node))),
11507 "*=" => Ok(Self::StarEq(::treesitter_types::Span::from(node))),
11508 "+=" => Ok(Self::PlusEq(::treesitter_types::Span::from(node))),
11509 "-=" => Ok(Self::MinusEq(::treesitter_types::Span::from(node))),
11510 "/=" => Ok(Self::SlashEq(::treesitter_types::Span::from(node))),
11511 "<<=" => Ok(Self::ShlEq(::treesitter_types::Span::from(node))),
11512 ">>=" => Ok(Self::ShrEq(::treesitter_types::Span::from(node))),
11513 ">>>=" => Ok(Self::GtGtGtEq(::treesitter_types::Span::from(node))),
11514 "??=" => Ok(Self::QuestionQuestionEq(::treesitter_types::Span::from(
11515 node,
11516 ))),
11517 "^=" => Ok(Self::CaretEq(::treesitter_types::Span::from(node))),
11518 "|=" => Ok(Self::PipeEq(::treesitter_types::Span::from(node))),
11519 "||=" => Ok(Self::PipePipeEq(::treesitter_types::Span::from(node))),
11520 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11521 }
11522 }
11523}
11524impl ::treesitter_types::Spanned for AugmentedAssignmentExpressionOperator {
11525 fn span(&self) -> ::treesitter_types::Span {
11526 match self {
11527 Self::PercentEq(span) => *span,
11528 Self::AmpAmpEq(span) => *span,
11529 Self::AmpEq(span) => *span,
11530 Self::StarStarEq(span) => *span,
11531 Self::StarEq(span) => *span,
11532 Self::PlusEq(span) => *span,
11533 Self::MinusEq(span) => *span,
11534 Self::SlashEq(span) => *span,
11535 Self::ShlEq(span) => *span,
11536 Self::ShrEq(span) => *span,
11537 Self::GtGtGtEq(span) => *span,
11538 Self::QuestionQuestionEq(span) => *span,
11539 Self::CaretEq(span) => *span,
11540 Self::PipeEq(span) => *span,
11541 Self::PipePipeEq(span) => *span,
11542 }
11543 }
11544}
11545#[derive(Debug, Clone, PartialEq, Eq)]
11546pub enum BinaryExpressionLeft<'tree> {
11547 Expression(::std::boxed::Box<Expression<'tree>>),
11548 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
11549}
11550impl<'tree> ::treesitter_types::FromNode<'tree> for BinaryExpressionLeft<'tree> {
11551 #[allow(clippy::collapsible_else_if)]
11552 fn from_node(
11553 node: ::tree_sitter::Node<'tree>,
11554 src: &'tree [u8],
11555 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11556 match node.kind() {
11557 "private_property_identifier" => {
11558 Ok(Self::PrivatePropertyIdentifier(::std::boxed::Box::new(
11559 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
11560 node, src,
11561 )?,
11562 )))
11563 }
11564 _other => {
11565 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
11566 Ok(Self::Expression(::std::boxed::Box::new(v)))
11567 } else {
11568 Err(::treesitter_types::ParseError::unexpected_kind(
11569 _other, node,
11570 ))
11571 }
11572 }
11573 }
11574 }
11575}
11576impl ::treesitter_types::Spanned for BinaryExpressionLeft<'_> {
11577 fn span(&self) -> ::treesitter_types::Span {
11578 match self {
11579 Self::Expression(inner) => inner.span(),
11580 Self::PrivatePropertyIdentifier(inner) => inner.span(),
11581 }
11582 }
11583}
11584#[derive(Debug, Clone, PartialEq, Eq)]
11585pub enum BinaryExpressionOperator {
11586 NotEq(::treesitter_types::Span),
11587 BangEqEq(::treesitter_types::Span),
11588 Percent(::treesitter_types::Span),
11589 Amp(::treesitter_types::Span),
11590 AmpAmp(::treesitter_types::Span),
11591 Star(::treesitter_types::Span),
11592 StarStar(::treesitter_types::Span),
11593 Plus(::treesitter_types::Span),
11594 Minus(::treesitter_types::Span),
11595 Slash(::treesitter_types::Span),
11596 Lt(::treesitter_types::Span),
11597 Shl(::treesitter_types::Span),
11598 LtEq(::treesitter_types::Span),
11599 EqEq(::treesitter_types::Span),
11600 EqEqEq(::treesitter_types::Span),
11601 Gt(::treesitter_types::Span),
11602 GtEq(::treesitter_types::Span),
11603 Shr(::treesitter_types::Span),
11604 GtGtGt(::treesitter_types::Span),
11605 QuestionQuestion(::treesitter_types::Span),
11606 Caret(::treesitter_types::Span),
11607 In(::treesitter_types::Span),
11608 Instanceof(::treesitter_types::Span),
11609 Pipe(::treesitter_types::Span),
11610 PipePipe(::treesitter_types::Span),
11611}
11612impl<'tree> ::treesitter_types::FromNode<'tree> for BinaryExpressionOperator {
11613 #[allow(clippy::collapsible_else_if)]
11614 fn from_node(
11615 node: ::tree_sitter::Node<'tree>,
11616 _src: &'tree [u8],
11617 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11618 match node.kind() {
11619 "!=" => Ok(Self::NotEq(::treesitter_types::Span::from(node))),
11620 "!==" => Ok(Self::BangEqEq(::treesitter_types::Span::from(node))),
11621 "%" => Ok(Self::Percent(::treesitter_types::Span::from(node))),
11622 "&" => Ok(Self::Amp(::treesitter_types::Span::from(node))),
11623 "&&" => Ok(Self::AmpAmp(::treesitter_types::Span::from(node))),
11624 "*" => Ok(Self::Star(::treesitter_types::Span::from(node))),
11625 "**" => Ok(Self::StarStar(::treesitter_types::Span::from(node))),
11626 "+" => Ok(Self::Plus(::treesitter_types::Span::from(node))),
11627 "-" => Ok(Self::Minus(::treesitter_types::Span::from(node))),
11628 "/" => Ok(Self::Slash(::treesitter_types::Span::from(node))),
11629 "<" => Ok(Self::Lt(::treesitter_types::Span::from(node))),
11630 "<<" => Ok(Self::Shl(::treesitter_types::Span::from(node))),
11631 "<=" => Ok(Self::LtEq(::treesitter_types::Span::from(node))),
11632 "==" => Ok(Self::EqEq(::treesitter_types::Span::from(node))),
11633 "===" => Ok(Self::EqEqEq(::treesitter_types::Span::from(node))),
11634 ">" => Ok(Self::Gt(::treesitter_types::Span::from(node))),
11635 ">=" => Ok(Self::GtEq(::treesitter_types::Span::from(node))),
11636 ">>" => Ok(Self::Shr(::treesitter_types::Span::from(node))),
11637 ">>>" => Ok(Self::GtGtGt(::treesitter_types::Span::from(node))),
11638 "??" => Ok(Self::QuestionQuestion(::treesitter_types::Span::from(node))),
11639 "^" => Ok(Self::Caret(::treesitter_types::Span::from(node))),
11640 "in" => Ok(Self::In(::treesitter_types::Span::from(node))),
11641 "instanceof" => Ok(Self::Instanceof(::treesitter_types::Span::from(node))),
11642 "|" => Ok(Self::Pipe(::treesitter_types::Span::from(node))),
11643 "||" => Ok(Self::PipePipe(::treesitter_types::Span::from(node))),
11644 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11645 }
11646 }
11647}
11648impl ::treesitter_types::Spanned for BinaryExpressionOperator {
11649 fn span(&self) -> ::treesitter_types::Span {
11650 match self {
11651 Self::NotEq(span) => *span,
11652 Self::BangEqEq(span) => *span,
11653 Self::Percent(span) => *span,
11654 Self::Amp(span) => *span,
11655 Self::AmpAmp(span) => *span,
11656 Self::Star(span) => *span,
11657 Self::StarStar(span) => *span,
11658 Self::Plus(span) => *span,
11659 Self::Minus(span) => *span,
11660 Self::Slash(span) => *span,
11661 Self::Lt(span) => *span,
11662 Self::Shl(span) => *span,
11663 Self::LtEq(span) => *span,
11664 Self::EqEq(span) => *span,
11665 Self::EqEqEq(span) => *span,
11666 Self::Gt(span) => *span,
11667 Self::GtEq(span) => *span,
11668 Self::Shr(span) => *span,
11669 Self::GtGtGt(span) => *span,
11670 Self::QuestionQuestion(span) => *span,
11671 Self::Caret(span) => *span,
11672 Self::In(span) => *span,
11673 Self::Instanceof(span) => *span,
11674 Self::Pipe(span) => *span,
11675 Self::PipePipe(span) => *span,
11676 }
11677 }
11678}
11679#[derive(Debug, Clone, PartialEq, Eq)]
11680pub enum CallExpressionArguments<'tree> {
11681 Arguments(::std::boxed::Box<Arguments<'tree>>),
11682 TemplateString(::std::boxed::Box<TemplateString<'tree>>),
11683}
11684impl<'tree> ::treesitter_types::FromNode<'tree> for CallExpressionArguments<'tree> {
11685 #[allow(clippy::collapsible_else_if)]
11686 fn from_node(
11687 node: ::tree_sitter::Node<'tree>,
11688 src: &'tree [u8],
11689 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11690 match node.kind() {
11691 "arguments" => Ok(Self::Arguments(::std::boxed::Box::new(
11692 <Arguments as ::treesitter_types::FromNode>::from_node(node, src)?,
11693 ))),
11694 "template_string" => Ok(Self::TemplateString(::std::boxed::Box::new(
11695 <TemplateString as ::treesitter_types::FromNode>::from_node(node, src)?,
11696 ))),
11697 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11698 }
11699 }
11700}
11701impl ::treesitter_types::Spanned for CallExpressionArguments<'_> {
11702 fn span(&self) -> ::treesitter_types::Span {
11703 match self {
11704 Self::Arguments(inner) => inner.span(),
11705 Self::TemplateString(inner) => inner.span(),
11706 }
11707 }
11708}
11709#[derive(Debug, Clone, PartialEq, Eq)]
11710pub enum CallExpressionFunction<'tree> {
11711 Expression(::std::boxed::Box<Expression<'tree>>),
11712 Import(::std::boxed::Box<Import<'tree>>),
11713}
11714impl<'tree> ::treesitter_types::FromNode<'tree> for CallExpressionFunction<'tree> {
11715 #[allow(clippy::collapsible_else_if)]
11716 fn from_node(
11717 node: ::tree_sitter::Node<'tree>,
11718 src: &'tree [u8],
11719 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11720 match node.kind() {
11721 "import" => Ok(Self::Import(::std::boxed::Box::new(
11722 <Import as ::treesitter_types::FromNode>::from_node(node, src)?,
11723 ))),
11724 _other => {
11725 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
11726 Ok(Self::Expression(::std::boxed::Box::new(v)))
11727 } else {
11728 Err(::treesitter_types::ParseError::unexpected_kind(
11729 _other, node,
11730 ))
11731 }
11732 }
11733 }
11734 }
11735}
11736impl ::treesitter_types::Spanned for CallExpressionFunction<'_> {
11737 fn span(&self) -> ::treesitter_types::Span {
11738 match self {
11739 Self::Expression(inner) => inner.span(),
11740 Self::Import(inner) => inner.span(),
11741 }
11742 }
11743}
11744#[derive(Debug, Clone, PartialEq, Eq)]
11745pub enum CallSignatureReturnType<'tree> {
11746 AssertsAnnotation(::std::boxed::Box<AssertsAnnotation<'tree>>),
11747 TypeAnnotation(::std::boxed::Box<TypeAnnotation<'tree>>),
11748 TypePredicateAnnotation(::std::boxed::Box<TypePredicateAnnotation<'tree>>),
11749}
11750impl<'tree> ::treesitter_types::FromNode<'tree> for CallSignatureReturnType<'tree> {
11751 #[allow(clippy::collapsible_else_if)]
11752 fn from_node(
11753 node: ::tree_sitter::Node<'tree>,
11754 src: &'tree [u8],
11755 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11756 match node.kind() {
11757 "asserts_annotation" => Ok(Self::AssertsAnnotation(::std::boxed::Box::new(
11758 <AssertsAnnotation as ::treesitter_types::FromNode>::from_node(node, src)?,
11759 ))),
11760 "type_annotation" => Ok(Self::TypeAnnotation(::std::boxed::Box::new(
11761 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)?,
11762 ))),
11763 "type_predicate_annotation" => {
11764 Ok(Self::TypePredicateAnnotation(::std::boxed::Box::new(
11765 <TypePredicateAnnotation as ::treesitter_types::FromNode>::from_node(
11766 node, src,
11767 )?,
11768 )))
11769 }
11770 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11771 }
11772 }
11773}
11774impl ::treesitter_types::Spanned for CallSignatureReturnType<'_> {
11775 fn span(&self) -> ::treesitter_types::Span {
11776 match self {
11777 Self::AssertsAnnotation(inner) => inner.span(),
11778 Self::TypeAnnotation(inner) => inner.span(),
11779 Self::TypePredicateAnnotation(inner) => inner.span(),
11780 }
11781 }
11782}
11783#[derive(Debug, Clone, PartialEq, Eq)]
11784pub enum CatchClauseParameter<'tree> {
11785 ArrayPattern(::std::boxed::Box<ArrayPattern<'tree>>),
11786 Identifier(::std::boxed::Box<Identifier<'tree>>),
11787 ObjectPattern(::std::boxed::Box<ObjectPattern<'tree>>),
11788}
11789impl<'tree> ::treesitter_types::FromNode<'tree> for CatchClauseParameter<'tree> {
11790 #[allow(clippy::collapsible_else_if)]
11791 fn from_node(
11792 node: ::tree_sitter::Node<'tree>,
11793 src: &'tree [u8],
11794 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11795 match node.kind() {
11796 "array_pattern" => Ok(Self::ArrayPattern(::std::boxed::Box::new(
11797 <ArrayPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
11798 ))),
11799 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
11800 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
11801 ))),
11802 "object_pattern" => Ok(Self::ObjectPattern(::std::boxed::Box::new(
11803 <ObjectPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
11804 ))),
11805 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11806 }
11807 }
11808}
11809impl ::treesitter_types::Spanned for CatchClauseParameter<'_> {
11810 fn span(&self) -> ::treesitter_types::Span {
11811 match self {
11812 Self::ArrayPattern(inner) => inner.span(),
11813 Self::Identifier(inner) => inner.span(),
11814 Self::ObjectPattern(inner) => inner.span(),
11815 }
11816 }
11817}
11818#[derive(Debug, Clone, PartialEq, Eq)]
11819pub enum ClassBodyChildren<'tree> {
11820 AbstractMethodSignature(::std::boxed::Box<AbstractMethodSignature<'tree>>),
11821 ClassStaticBlock(::std::boxed::Box<ClassStaticBlock<'tree>>),
11822 IndexSignature(::std::boxed::Box<IndexSignature<'tree>>),
11823 MethodDefinition(::std::boxed::Box<MethodDefinition<'tree>>),
11824 MethodSignature(::std::boxed::Box<MethodSignature<'tree>>),
11825 PublicFieldDefinition(::std::boxed::Box<PublicFieldDefinition<'tree>>),
11826}
11827impl<'tree> ::treesitter_types::FromNode<'tree> for ClassBodyChildren<'tree> {
11828 #[allow(clippy::collapsible_else_if)]
11829 fn from_node(
11830 node: ::tree_sitter::Node<'tree>,
11831 src: &'tree [u8],
11832 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11833 match node.kind() {
11834 "abstract_method_signature" => {
11835 Ok(Self::AbstractMethodSignature(::std::boxed::Box::new(
11836 <AbstractMethodSignature as ::treesitter_types::FromNode>::from_node(
11837 node, src,
11838 )?,
11839 )))
11840 }
11841 "class_static_block" => Ok(Self::ClassStaticBlock(::std::boxed::Box::new(
11842 <ClassStaticBlock as ::treesitter_types::FromNode>::from_node(node, src)?,
11843 ))),
11844 "index_signature" => Ok(Self::IndexSignature(::std::boxed::Box::new(
11845 <IndexSignature as ::treesitter_types::FromNode>::from_node(node, src)?,
11846 ))),
11847 "method_definition" => Ok(Self::MethodDefinition(::std::boxed::Box::new(
11848 <MethodDefinition as ::treesitter_types::FromNode>::from_node(node, src)?,
11849 ))),
11850 "method_signature" => Ok(Self::MethodSignature(::std::boxed::Box::new(
11851 <MethodSignature as ::treesitter_types::FromNode>::from_node(node, src)?,
11852 ))),
11853 "public_field_definition" => Ok(Self::PublicFieldDefinition(::std::boxed::Box::new(
11854 <PublicFieldDefinition as ::treesitter_types::FromNode>::from_node(node, src)?,
11855 ))),
11856 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11857 }
11858 }
11859}
11860impl ::treesitter_types::Spanned for ClassBodyChildren<'_> {
11861 fn span(&self) -> ::treesitter_types::Span {
11862 match self {
11863 Self::AbstractMethodSignature(inner) => inner.span(),
11864 Self::ClassStaticBlock(inner) => inner.span(),
11865 Self::IndexSignature(inner) => inner.span(),
11866 Self::MethodDefinition(inner) => inner.span(),
11867 Self::MethodSignature(inner) => inner.span(),
11868 Self::PublicFieldDefinition(inner) => inner.span(),
11869 }
11870 }
11871}
11872#[derive(Debug, Clone, PartialEq, Eq)]
11873pub enum ClassHeritageChildren<'tree> {
11874 ExtendsClause(::std::boxed::Box<ExtendsClause<'tree>>),
11875 ImplementsClause(::std::boxed::Box<ImplementsClause<'tree>>),
11876}
11877impl<'tree> ::treesitter_types::FromNode<'tree> for ClassHeritageChildren<'tree> {
11878 #[allow(clippy::collapsible_else_if)]
11879 fn from_node(
11880 node: ::tree_sitter::Node<'tree>,
11881 src: &'tree [u8],
11882 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11883 match node.kind() {
11884 "extends_clause" => Ok(Self::ExtendsClause(::std::boxed::Box::new(
11885 <ExtendsClause as ::treesitter_types::FromNode>::from_node(node, src)?,
11886 ))),
11887 "implements_clause" => Ok(Self::ImplementsClause(::std::boxed::Box::new(
11888 <ImplementsClause as ::treesitter_types::FromNode>::from_node(node, src)?,
11889 ))),
11890 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11891 }
11892 }
11893}
11894impl ::treesitter_types::Spanned for ClassHeritageChildren<'_> {
11895 fn span(&self) -> ::treesitter_types::Span {
11896 match self {
11897 Self::ExtendsClause(inner) => inner.span(),
11898 Self::ImplementsClause(inner) => inner.span(),
11899 }
11900 }
11901}
11902#[derive(Debug, Clone, PartialEq, Eq)]
11903pub enum DecoratorChildren<'tree> {
11904 CallExpression(::std::boxed::Box<CallExpression<'tree>>),
11905 Identifier(::std::boxed::Box<Identifier<'tree>>),
11906 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
11907 ParenthesizedExpression(::std::boxed::Box<ParenthesizedExpression<'tree>>),
11908}
11909impl<'tree> ::treesitter_types::FromNode<'tree> for DecoratorChildren<'tree> {
11910 #[allow(clippy::collapsible_else_if)]
11911 fn from_node(
11912 node: ::tree_sitter::Node<'tree>,
11913 src: &'tree [u8],
11914 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11915 match node.kind() {
11916 "call_expression" => Ok(Self::CallExpression(::std::boxed::Box::new(
11917 <CallExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
11918 ))),
11919 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
11920 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
11921 ))),
11922 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
11923 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
11924 ))),
11925 "parenthesized_expression" => {
11926 Ok(Self::ParenthesizedExpression(::std::boxed::Box::new(
11927 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(
11928 node, src,
11929 )?,
11930 )))
11931 }
11932 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11933 }
11934 }
11935}
11936impl ::treesitter_types::Spanned for DecoratorChildren<'_> {
11937 fn span(&self) -> ::treesitter_types::Span {
11938 match self {
11939 Self::CallExpression(inner) => inner.span(),
11940 Self::Identifier(inner) => inner.span(),
11941 Self::MemberExpression(inner) => inner.span(),
11942 Self::ParenthesizedExpression(inner) => inner.span(),
11943 }
11944 }
11945}
11946#[derive(Debug, Clone, PartialEq, Eq)]
11947pub enum EnumAssignmentName<'tree> {
11948 ComputedPropertyName(::std::boxed::Box<ComputedPropertyName<'tree>>),
11949 Number(::std::boxed::Box<Number<'tree>>),
11950 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
11951 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
11952 String(::std::boxed::Box<String<'tree>>),
11953}
11954impl<'tree> ::treesitter_types::FromNode<'tree> for EnumAssignmentName<'tree> {
11955 #[allow(clippy::collapsible_else_if)]
11956 fn from_node(
11957 node: ::tree_sitter::Node<'tree>,
11958 src: &'tree [u8],
11959 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11960 match node.kind() {
11961 "computed_property_name" => Ok(Self::ComputedPropertyName(::std::boxed::Box::new(
11962 <ComputedPropertyName as ::treesitter_types::FromNode>::from_node(node, src)?,
11963 ))),
11964 "number" => Ok(Self::Number(::std::boxed::Box::new(
11965 <Number as ::treesitter_types::FromNode>::from_node(node, src)?,
11966 ))),
11967 "private_property_identifier" => {
11968 Ok(Self::PrivatePropertyIdentifier(::std::boxed::Box::new(
11969 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
11970 node, src,
11971 )?,
11972 )))
11973 }
11974 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
11975 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
11976 ))),
11977 "string" => Ok(Self::String(::std::boxed::Box::new(
11978 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
11979 ))),
11980 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11981 }
11982 }
11983}
11984impl ::treesitter_types::Spanned for EnumAssignmentName<'_> {
11985 fn span(&self) -> ::treesitter_types::Span {
11986 match self {
11987 Self::ComputedPropertyName(inner) => inner.span(),
11988 Self::Number(inner) => inner.span(),
11989 Self::PrivatePropertyIdentifier(inner) => inner.span(),
11990 Self::PropertyIdentifier(inner) => inner.span(),
11991 Self::String(inner) => inner.span(),
11992 }
11993 }
11994}
11995#[derive(Debug, Clone, PartialEq, Eq)]
11996pub enum EnumBodyName<'tree> {
11997 ComputedPropertyName(::std::boxed::Box<ComputedPropertyName<'tree>>),
11998 Number(::std::boxed::Box<Number<'tree>>),
11999 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
12000 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
12001 String(::std::boxed::Box<String<'tree>>),
12002}
12003impl<'tree> ::treesitter_types::FromNode<'tree> for EnumBodyName<'tree> {
12004 #[allow(clippy::collapsible_else_if)]
12005 fn from_node(
12006 node: ::tree_sitter::Node<'tree>,
12007 src: &'tree [u8],
12008 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12009 match node.kind() {
12010 "computed_property_name" => Ok(Self::ComputedPropertyName(::std::boxed::Box::new(
12011 <ComputedPropertyName as ::treesitter_types::FromNode>::from_node(node, src)?,
12012 ))),
12013 "number" => Ok(Self::Number(::std::boxed::Box::new(
12014 <Number as ::treesitter_types::FromNode>::from_node(node, src)?,
12015 ))),
12016 "private_property_identifier" => {
12017 Ok(Self::PrivatePropertyIdentifier(::std::boxed::Box::new(
12018 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
12019 node, src,
12020 )?,
12021 )))
12022 }
12023 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
12024 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
12025 ))),
12026 "string" => Ok(Self::String(::std::boxed::Box::new(
12027 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
12028 ))),
12029 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12030 }
12031 }
12032}
12033impl ::treesitter_types::Spanned for EnumBodyName<'_> {
12034 fn span(&self) -> ::treesitter_types::Span {
12035 match self {
12036 Self::ComputedPropertyName(inner) => inner.span(),
12037 Self::Number(inner) => inner.span(),
12038 Self::PrivatePropertyIdentifier(inner) => inner.span(),
12039 Self::PropertyIdentifier(inner) => inner.span(),
12040 Self::String(inner) => inner.span(),
12041 }
12042 }
12043}
12044#[derive(Debug, Clone, PartialEq, Eq)]
12045pub enum ExportSpecifierAlias<'tree> {
12046 Identifier(::std::boxed::Box<Identifier<'tree>>),
12047 String(::std::boxed::Box<String<'tree>>),
12048}
12049impl<'tree> ::treesitter_types::FromNode<'tree> for ExportSpecifierAlias<'tree> {
12050 #[allow(clippy::collapsible_else_if)]
12051 fn from_node(
12052 node: ::tree_sitter::Node<'tree>,
12053 src: &'tree [u8],
12054 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12055 match node.kind() {
12056 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
12057 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
12058 ))),
12059 "string" => Ok(Self::String(::std::boxed::Box::new(
12060 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
12061 ))),
12062 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12063 }
12064 }
12065}
12066impl ::treesitter_types::Spanned for ExportSpecifierAlias<'_> {
12067 fn span(&self) -> ::treesitter_types::Span {
12068 match self {
12069 Self::Identifier(inner) => inner.span(),
12070 Self::String(inner) => inner.span(),
12071 }
12072 }
12073}
12074#[derive(Debug, Clone, PartialEq, Eq)]
12075pub enum ExportSpecifierName<'tree> {
12076 Identifier(::std::boxed::Box<Identifier<'tree>>),
12077 String(::std::boxed::Box<String<'tree>>),
12078}
12079impl<'tree> ::treesitter_types::FromNode<'tree> for ExportSpecifierName<'tree> {
12080 #[allow(clippy::collapsible_else_if)]
12081 fn from_node(
12082 node: ::tree_sitter::Node<'tree>,
12083 src: &'tree [u8],
12084 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12085 match node.kind() {
12086 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
12087 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
12088 ))),
12089 "string" => Ok(Self::String(::std::boxed::Box::new(
12090 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
12091 ))),
12092 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12093 }
12094 }
12095}
12096impl ::treesitter_types::Spanned for ExportSpecifierName<'_> {
12097 fn span(&self) -> ::treesitter_types::Span {
12098 match self {
12099 Self::Identifier(inner) => inner.span(),
12100 Self::String(inner) => inner.span(),
12101 }
12102 }
12103}
12104#[derive(Debug, Clone, PartialEq, Eq)]
12105pub enum ExportStatementChildren<'tree> {
12106 ExportClause(::std::boxed::Box<ExportClause<'tree>>),
12107 Expression(::std::boxed::Box<Expression<'tree>>),
12108 Identifier(::std::boxed::Box<Identifier<'tree>>),
12109 NamespaceExport(::std::boxed::Box<NamespaceExport<'tree>>),
12110}
12111impl<'tree> ::treesitter_types::FromNode<'tree> for ExportStatementChildren<'tree> {
12112 #[allow(clippy::collapsible_else_if)]
12113 fn from_node(
12114 node: ::tree_sitter::Node<'tree>,
12115 src: &'tree [u8],
12116 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12117 match node.kind() {
12118 "export_clause" => Ok(Self::ExportClause(::std::boxed::Box::new(
12119 <ExportClause as ::treesitter_types::FromNode>::from_node(node, src)?,
12120 ))),
12121 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
12122 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
12123 ))),
12124 "namespace_export" => Ok(Self::NamespaceExport(::std::boxed::Box::new(
12125 <NamespaceExport as ::treesitter_types::FromNode>::from_node(node, src)?,
12126 ))),
12127 _other => {
12128 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
12129 Ok(Self::Expression(::std::boxed::Box::new(v)))
12130 } else {
12131 Err(::treesitter_types::ParseError::unexpected_kind(
12132 _other, node,
12133 ))
12134 }
12135 }
12136 }
12137 }
12138}
12139impl ::treesitter_types::Spanned for ExportStatementChildren<'_> {
12140 fn span(&self) -> ::treesitter_types::Span {
12141 match self {
12142 Self::ExportClause(inner) => inner.span(),
12143 Self::Expression(inner) => inner.span(),
12144 Self::Identifier(inner) => inner.span(),
12145 Self::NamespaceExport(inner) => inner.span(),
12146 }
12147 }
12148}
12149#[derive(Debug, Clone, PartialEq, Eq)]
12150pub enum ExpressionStatementChildren<'tree> {
12151 Expression(::std::boxed::Box<Expression<'tree>>),
12152 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
12153}
12154impl<'tree> ::treesitter_types::FromNode<'tree> for ExpressionStatementChildren<'tree> {
12155 #[allow(clippy::collapsible_else_if)]
12156 fn from_node(
12157 node: ::tree_sitter::Node<'tree>,
12158 src: &'tree [u8],
12159 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12160 match node.kind() {
12161 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
12162 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
12163 ))),
12164 _other => {
12165 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
12166 Ok(Self::Expression(::std::boxed::Box::new(v)))
12167 } else {
12168 Err(::treesitter_types::ParseError::unexpected_kind(
12169 _other, node,
12170 ))
12171 }
12172 }
12173 }
12174 }
12175}
12176impl ::treesitter_types::Spanned for ExpressionStatementChildren<'_> {
12177 fn span(&self) -> ::treesitter_types::Span {
12178 match self {
12179 Self::Expression(inner) => inner.span(),
12180 Self::SequenceExpression(inner) => inner.span(),
12181 }
12182 }
12183}
12184#[derive(Debug, Clone, PartialEq, Eq)]
12185pub enum ExtendsTypeClauseType<'tree> {
12186 GenericType(::std::boxed::Box<GenericType<'tree>>),
12187 NestedTypeIdentifier(::std::boxed::Box<NestedTypeIdentifier<'tree>>),
12188 TypeIdentifier(::std::boxed::Box<TypeIdentifier<'tree>>),
12189}
12190impl<'tree> ::treesitter_types::FromNode<'tree> for ExtendsTypeClauseType<'tree> {
12191 #[allow(clippy::collapsible_else_if)]
12192 fn from_node(
12193 node: ::tree_sitter::Node<'tree>,
12194 src: &'tree [u8],
12195 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12196 match node.kind() {
12197 "generic_type" => Ok(Self::GenericType(::std::boxed::Box::new(
12198 <GenericType as ::treesitter_types::FromNode>::from_node(node, src)?,
12199 ))),
12200 "nested_type_identifier" => Ok(Self::NestedTypeIdentifier(::std::boxed::Box::new(
12201 <NestedTypeIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
12202 ))),
12203 "type_identifier" => Ok(Self::TypeIdentifier(::std::boxed::Box::new(
12204 <TypeIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
12205 ))),
12206 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12207 }
12208 }
12209}
12210impl ::treesitter_types::Spanned for ExtendsTypeClauseType<'_> {
12211 fn span(&self) -> ::treesitter_types::Span {
12212 match self {
12213 Self::GenericType(inner) => inner.span(),
12214 Self::NestedTypeIdentifier(inner) => inner.span(),
12215 Self::TypeIdentifier(inner) => inner.span(),
12216 }
12217 }
12218}
12219#[derive(Debug, Clone, PartialEq, Eq)]
12220pub enum ForInStatementKind {
12221 Const(::treesitter_types::Span),
12222 Let(::treesitter_types::Span),
12223 Var(::treesitter_types::Span),
12224}
12225impl<'tree> ::treesitter_types::FromNode<'tree> for ForInStatementKind {
12226 #[allow(clippy::collapsible_else_if)]
12227 fn from_node(
12228 node: ::tree_sitter::Node<'tree>,
12229 _src: &'tree [u8],
12230 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12231 match node.kind() {
12232 "const" => Ok(Self::Const(::treesitter_types::Span::from(node))),
12233 "let" => Ok(Self::Let(::treesitter_types::Span::from(node))),
12234 "var" => Ok(Self::Var(::treesitter_types::Span::from(node))),
12235 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12236 }
12237 }
12238}
12239impl ::treesitter_types::Spanned for ForInStatementKind {
12240 fn span(&self) -> ::treesitter_types::Span {
12241 match self {
12242 Self::Const(span) => *span,
12243 Self::Let(span) => *span,
12244 Self::Var(span) => *span,
12245 }
12246 }
12247}
12248#[derive(Debug, Clone, PartialEq, Eq)]
12249pub enum ForInStatementLeft<'tree> {
12250 ArrayPattern(::std::boxed::Box<ArrayPattern<'tree>>),
12251 Identifier(::std::boxed::Box<Identifier<'tree>>),
12252 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
12253 NonNullExpression(::std::boxed::Box<NonNullExpression<'tree>>),
12254 ObjectPattern(::std::boxed::Box<ObjectPattern<'tree>>),
12255 ParenthesizedExpression(::std::boxed::Box<ParenthesizedExpression<'tree>>),
12256 SubscriptExpression(::std::boxed::Box<SubscriptExpression<'tree>>),
12257 Undefined(::std::boxed::Box<Undefined<'tree>>),
12258}
12259impl<'tree> ::treesitter_types::FromNode<'tree> for ForInStatementLeft<'tree> {
12260 #[allow(clippy::collapsible_else_if)]
12261 fn from_node(
12262 node: ::tree_sitter::Node<'tree>,
12263 src: &'tree [u8],
12264 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12265 match node.kind() {
12266 "array_pattern" => Ok(Self::ArrayPattern(::std::boxed::Box::new(
12267 <ArrayPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
12268 ))),
12269 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
12270 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
12271 ))),
12272 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
12273 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
12274 ))),
12275 "non_null_expression" => Ok(Self::NonNullExpression(::std::boxed::Box::new(
12276 <NonNullExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
12277 ))),
12278 "object_pattern" => Ok(Self::ObjectPattern(::std::boxed::Box::new(
12279 <ObjectPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
12280 ))),
12281 "parenthesized_expression" => {
12282 Ok(Self::ParenthesizedExpression(::std::boxed::Box::new(
12283 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(
12284 node, src,
12285 )?,
12286 )))
12287 }
12288 "subscript_expression" => Ok(Self::SubscriptExpression(::std::boxed::Box::new(
12289 <SubscriptExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
12290 ))),
12291 "undefined" => Ok(Self::Undefined(::std::boxed::Box::new(
12292 <Undefined as ::treesitter_types::FromNode>::from_node(node, src)?,
12293 ))),
12294 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12295 }
12296 }
12297}
12298impl ::treesitter_types::Spanned for ForInStatementLeft<'_> {
12299 fn span(&self) -> ::treesitter_types::Span {
12300 match self {
12301 Self::ArrayPattern(inner) => inner.span(),
12302 Self::Identifier(inner) => inner.span(),
12303 Self::MemberExpression(inner) => inner.span(),
12304 Self::NonNullExpression(inner) => inner.span(),
12305 Self::ObjectPattern(inner) => inner.span(),
12306 Self::ParenthesizedExpression(inner) => inner.span(),
12307 Self::SubscriptExpression(inner) => inner.span(),
12308 Self::Undefined(inner) => inner.span(),
12309 }
12310 }
12311}
12312#[derive(Debug, Clone, PartialEq, Eq)]
12313pub enum ForInStatementOperator {
12314 In(::treesitter_types::Span),
12315 Of(::treesitter_types::Span),
12316}
12317impl<'tree> ::treesitter_types::FromNode<'tree> for ForInStatementOperator {
12318 #[allow(clippy::collapsible_else_if)]
12319 fn from_node(
12320 node: ::tree_sitter::Node<'tree>,
12321 _src: &'tree [u8],
12322 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12323 match node.kind() {
12324 "in" => Ok(Self::In(::treesitter_types::Span::from(node))),
12325 "of" => Ok(Self::Of(::treesitter_types::Span::from(node))),
12326 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12327 }
12328 }
12329}
12330impl ::treesitter_types::Spanned for ForInStatementOperator {
12331 fn span(&self) -> ::treesitter_types::Span {
12332 match self {
12333 Self::In(span) => *span,
12334 Self::Of(span) => *span,
12335 }
12336 }
12337}
12338#[derive(Debug, Clone, PartialEq, Eq)]
12339pub enum ForInStatementRight<'tree> {
12340 Expression(::std::boxed::Box<Expression<'tree>>),
12341 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
12342}
12343impl<'tree> ::treesitter_types::FromNode<'tree> for ForInStatementRight<'tree> {
12344 #[allow(clippy::collapsible_else_if)]
12345 fn from_node(
12346 node: ::tree_sitter::Node<'tree>,
12347 src: &'tree [u8],
12348 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12349 match node.kind() {
12350 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
12351 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
12352 ))),
12353 _other => {
12354 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
12355 Ok(Self::Expression(::std::boxed::Box::new(v)))
12356 } else {
12357 Err(::treesitter_types::ParseError::unexpected_kind(
12358 _other, node,
12359 ))
12360 }
12361 }
12362 }
12363 }
12364}
12365impl ::treesitter_types::Spanned for ForInStatementRight<'_> {
12366 fn span(&self) -> ::treesitter_types::Span {
12367 match self {
12368 Self::Expression(inner) => inner.span(),
12369 Self::SequenceExpression(inner) => inner.span(),
12370 }
12371 }
12372}
12373#[derive(Debug, Clone, PartialEq, Eq)]
12374pub enum ForStatementCondition<'tree> {
12375 Semicolon(::treesitter_types::Span),
12376 EmptyStatement(::std::boxed::Box<EmptyStatement<'tree>>),
12377 Expression(::std::boxed::Box<Expression<'tree>>),
12378 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
12379}
12380impl<'tree> ::treesitter_types::FromNode<'tree> for ForStatementCondition<'tree> {
12381 #[allow(clippy::collapsible_else_if)]
12382 fn from_node(
12383 node: ::tree_sitter::Node<'tree>,
12384 src: &'tree [u8],
12385 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12386 match node.kind() {
12387 ";" => Ok(Self::Semicolon(::treesitter_types::Span::from(node))),
12388 "empty_statement" => Ok(Self::EmptyStatement(::std::boxed::Box::new(
12389 <EmptyStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
12390 ))),
12391 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
12392 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
12393 ))),
12394 _other => {
12395 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
12396 Ok(Self::Expression(::std::boxed::Box::new(v)))
12397 } else {
12398 Err(::treesitter_types::ParseError::unexpected_kind(
12399 _other, node,
12400 ))
12401 }
12402 }
12403 }
12404 }
12405}
12406impl ::treesitter_types::Spanned for ForStatementCondition<'_> {
12407 fn span(&self) -> ::treesitter_types::Span {
12408 match self {
12409 Self::Semicolon(span) => *span,
12410 Self::EmptyStatement(inner) => inner.span(),
12411 Self::Expression(inner) => inner.span(),
12412 Self::SequenceExpression(inner) => inner.span(),
12413 }
12414 }
12415}
12416#[derive(Debug, Clone, PartialEq, Eq)]
12417pub enum ForStatementIncrement<'tree> {
12418 Expression(::std::boxed::Box<Expression<'tree>>),
12419 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
12420}
12421impl<'tree> ::treesitter_types::FromNode<'tree> for ForStatementIncrement<'tree> {
12422 #[allow(clippy::collapsible_else_if)]
12423 fn from_node(
12424 node: ::tree_sitter::Node<'tree>,
12425 src: &'tree [u8],
12426 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12427 match node.kind() {
12428 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
12429 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
12430 ))),
12431 _other => {
12432 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
12433 Ok(Self::Expression(::std::boxed::Box::new(v)))
12434 } else {
12435 Err(::treesitter_types::ParseError::unexpected_kind(
12436 _other, node,
12437 ))
12438 }
12439 }
12440 }
12441 }
12442}
12443impl ::treesitter_types::Spanned for ForStatementIncrement<'_> {
12444 fn span(&self) -> ::treesitter_types::Span {
12445 match self {
12446 Self::Expression(inner) => inner.span(),
12447 Self::SequenceExpression(inner) => inner.span(),
12448 }
12449 }
12450}
12451#[derive(Debug, Clone, PartialEq, Eq)]
12452pub enum ForStatementInitializer<'tree> {
12453 EmptyStatement(::std::boxed::Box<EmptyStatement<'tree>>),
12454 Expression(::std::boxed::Box<Expression<'tree>>),
12455 LexicalDeclaration(::std::boxed::Box<LexicalDeclaration<'tree>>),
12456 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
12457 VariableDeclaration(::std::boxed::Box<VariableDeclaration<'tree>>),
12458}
12459impl<'tree> ::treesitter_types::FromNode<'tree> for ForStatementInitializer<'tree> {
12460 #[allow(clippy::collapsible_else_if)]
12461 fn from_node(
12462 node: ::tree_sitter::Node<'tree>,
12463 src: &'tree [u8],
12464 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12465 match node.kind() {
12466 "empty_statement" => Ok(Self::EmptyStatement(::std::boxed::Box::new(
12467 <EmptyStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
12468 ))),
12469 "lexical_declaration" => Ok(Self::LexicalDeclaration(::std::boxed::Box::new(
12470 <LexicalDeclaration as ::treesitter_types::FromNode>::from_node(node, src)?,
12471 ))),
12472 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
12473 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
12474 ))),
12475 "variable_declaration" => Ok(Self::VariableDeclaration(::std::boxed::Box::new(
12476 <VariableDeclaration as ::treesitter_types::FromNode>::from_node(node, src)?,
12477 ))),
12478 _other => {
12479 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
12480 Ok(Self::Expression(::std::boxed::Box::new(v)))
12481 } else {
12482 Err(::treesitter_types::ParseError::unexpected_kind(
12483 _other, node,
12484 ))
12485 }
12486 }
12487 }
12488 }
12489}
12490impl ::treesitter_types::Spanned for ForStatementInitializer<'_> {
12491 fn span(&self) -> ::treesitter_types::Span {
12492 match self {
12493 Self::EmptyStatement(inner) => inner.span(),
12494 Self::Expression(inner) => inner.span(),
12495 Self::LexicalDeclaration(inner) => inner.span(),
12496 Self::SequenceExpression(inner) => inner.span(),
12497 Self::VariableDeclaration(inner) => inner.span(),
12498 }
12499 }
12500}
12501#[derive(Debug, Clone, PartialEq, Eq)]
12502pub enum FormalParametersChildren<'tree> {
12503 OptionalParameter(::std::boxed::Box<OptionalParameter<'tree>>),
12504 RequiredParameter(::std::boxed::Box<RequiredParameter<'tree>>),
12505}
12506impl<'tree> ::treesitter_types::FromNode<'tree> for FormalParametersChildren<'tree> {
12507 #[allow(clippy::collapsible_else_if)]
12508 fn from_node(
12509 node: ::tree_sitter::Node<'tree>,
12510 src: &'tree [u8],
12511 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12512 match node.kind() {
12513 "optional_parameter" => Ok(Self::OptionalParameter(::std::boxed::Box::new(
12514 <OptionalParameter as ::treesitter_types::FromNode>::from_node(node, src)?,
12515 ))),
12516 "required_parameter" => Ok(Self::RequiredParameter(::std::boxed::Box::new(
12517 <RequiredParameter as ::treesitter_types::FromNode>::from_node(node, src)?,
12518 ))),
12519 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12520 }
12521 }
12522}
12523impl ::treesitter_types::Spanned for FormalParametersChildren<'_> {
12524 fn span(&self) -> ::treesitter_types::Span {
12525 match self {
12526 Self::OptionalParameter(inner) => inner.span(),
12527 Self::RequiredParameter(inner) => inner.span(),
12528 }
12529 }
12530}
12531#[derive(Debug, Clone, PartialEq, Eq)]
12532pub enum FunctionDeclarationReturnType<'tree> {
12533 AssertsAnnotation(::std::boxed::Box<AssertsAnnotation<'tree>>),
12534 TypeAnnotation(::std::boxed::Box<TypeAnnotation<'tree>>),
12535 TypePredicateAnnotation(::std::boxed::Box<TypePredicateAnnotation<'tree>>),
12536}
12537impl<'tree> ::treesitter_types::FromNode<'tree> for FunctionDeclarationReturnType<'tree> {
12538 #[allow(clippy::collapsible_else_if)]
12539 fn from_node(
12540 node: ::tree_sitter::Node<'tree>,
12541 src: &'tree [u8],
12542 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12543 match node.kind() {
12544 "asserts_annotation" => Ok(Self::AssertsAnnotation(::std::boxed::Box::new(
12545 <AssertsAnnotation as ::treesitter_types::FromNode>::from_node(node, src)?,
12546 ))),
12547 "type_annotation" => Ok(Self::TypeAnnotation(::std::boxed::Box::new(
12548 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)?,
12549 ))),
12550 "type_predicate_annotation" => {
12551 Ok(Self::TypePredicateAnnotation(::std::boxed::Box::new(
12552 <TypePredicateAnnotation as ::treesitter_types::FromNode>::from_node(
12553 node, src,
12554 )?,
12555 )))
12556 }
12557 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12558 }
12559 }
12560}
12561impl ::treesitter_types::Spanned for FunctionDeclarationReturnType<'_> {
12562 fn span(&self) -> ::treesitter_types::Span {
12563 match self {
12564 Self::AssertsAnnotation(inner) => inner.span(),
12565 Self::TypeAnnotation(inner) => inner.span(),
12566 Self::TypePredicateAnnotation(inner) => inner.span(),
12567 }
12568 }
12569}
12570#[derive(Debug, Clone, PartialEq, Eq)]
12571pub enum FunctionExpressionReturnType<'tree> {
12572 AssertsAnnotation(::std::boxed::Box<AssertsAnnotation<'tree>>),
12573 TypeAnnotation(::std::boxed::Box<TypeAnnotation<'tree>>),
12574 TypePredicateAnnotation(::std::boxed::Box<TypePredicateAnnotation<'tree>>),
12575}
12576impl<'tree> ::treesitter_types::FromNode<'tree> for FunctionExpressionReturnType<'tree> {
12577 #[allow(clippy::collapsible_else_if)]
12578 fn from_node(
12579 node: ::tree_sitter::Node<'tree>,
12580 src: &'tree [u8],
12581 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12582 match node.kind() {
12583 "asserts_annotation" => Ok(Self::AssertsAnnotation(::std::boxed::Box::new(
12584 <AssertsAnnotation as ::treesitter_types::FromNode>::from_node(node, src)?,
12585 ))),
12586 "type_annotation" => Ok(Self::TypeAnnotation(::std::boxed::Box::new(
12587 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)?,
12588 ))),
12589 "type_predicate_annotation" => {
12590 Ok(Self::TypePredicateAnnotation(::std::boxed::Box::new(
12591 <TypePredicateAnnotation as ::treesitter_types::FromNode>::from_node(
12592 node, src,
12593 )?,
12594 )))
12595 }
12596 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12597 }
12598 }
12599}
12600impl ::treesitter_types::Spanned for FunctionExpressionReturnType<'_> {
12601 fn span(&self) -> ::treesitter_types::Span {
12602 match self {
12603 Self::AssertsAnnotation(inner) => inner.span(),
12604 Self::TypeAnnotation(inner) => inner.span(),
12605 Self::TypePredicateAnnotation(inner) => inner.span(),
12606 }
12607 }
12608}
12609#[derive(Debug, Clone, PartialEq, Eq)]
12610pub enum FunctionSignatureReturnType<'tree> {
12611 AssertsAnnotation(::std::boxed::Box<AssertsAnnotation<'tree>>),
12612 TypeAnnotation(::std::boxed::Box<TypeAnnotation<'tree>>),
12613 TypePredicateAnnotation(::std::boxed::Box<TypePredicateAnnotation<'tree>>),
12614}
12615impl<'tree> ::treesitter_types::FromNode<'tree> for FunctionSignatureReturnType<'tree> {
12616 #[allow(clippy::collapsible_else_if)]
12617 fn from_node(
12618 node: ::tree_sitter::Node<'tree>,
12619 src: &'tree [u8],
12620 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12621 match node.kind() {
12622 "asserts_annotation" => Ok(Self::AssertsAnnotation(::std::boxed::Box::new(
12623 <AssertsAnnotation as ::treesitter_types::FromNode>::from_node(node, src)?,
12624 ))),
12625 "type_annotation" => Ok(Self::TypeAnnotation(::std::boxed::Box::new(
12626 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)?,
12627 ))),
12628 "type_predicate_annotation" => {
12629 Ok(Self::TypePredicateAnnotation(::std::boxed::Box::new(
12630 <TypePredicateAnnotation as ::treesitter_types::FromNode>::from_node(
12631 node, src,
12632 )?,
12633 )))
12634 }
12635 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12636 }
12637 }
12638}
12639impl ::treesitter_types::Spanned for FunctionSignatureReturnType<'_> {
12640 fn span(&self) -> ::treesitter_types::Span {
12641 match self {
12642 Self::AssertsAnnotation(inner) => inner.span(),
12643 Self::TypeAnnotation(inner) => inner.span(),
12644 Self::TypePredicateAnnotation(inner) => inner.span(),
12645 }
12646 }
12647}
12648#[derive(Debug, Clone, PartialEq, Eq)]
12649pub enum FunctionTypeReturnType<'tree> {
12650 Asserts(::std::boxed::Box<Asserts<'tree>>),
12651 Type(::std::boxed::Box<Type<'tree>>),
12652 TypePredicate(::std::boxed::Box<TypePredicate<'tree>>),
12653}
12654impl<'tree> ::treesitter_types::FromNode<'tree> for FunctionTypeReturnType<'tree> {
12655 #[allow(clippy::collapsible_else_if)]
12656 fn from_node(
12657 node: ::tree_sitter::Node<'tree>,
12658 src: &'tree [u8],
12659 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12660 match node.kind() {
12661 "asserts" => Ok(Self::Asserts(::std::boxed::Box::new(
12662 <Asserts as ::treesitter_types::FromNode>::from_node(node, src)?,
12663 ))),
12664 "type_predicate" => Ok(Self::TypePredicate(::std::boxed::Box::new(
12665 <TypePredicate as ::treesitter_types::FromNode>::from_node(node, src)?,
12666 ))),
12667 _other => {
12668 if let Ok(v) = <Type as ::treesitter_types::FromNode>::from_node(node, src) {
12669 Ok(Self::Type(::std::boxed::Box::new(v)))
12670 } else {
12671 Err(::treesitter_types::ParseError::unexpected_kind(
12672 _other, node,
12673 ))
12674 }
12675 }
12676 }
12677 }
12678}
12679impl ::treesitter_types::Spanned for FunctionTypeReturnType<'_> {
12680 fn span(&self) -> ::treesitter_types::Span {
12681 match self {
12682 Self::Asserts(inner) => inner.span(),
12683 Self::Type(inner) => inner.span(),
12684 Self::TypePredicate(inner) => inner.span(),
12685 }
12686 }
12687}
12688#[derive(Debug, Clone, PartialEq, Eq)]
12689pub enum GeneratorFunctionReturnType<'tree> {
12690 AssertsAnnotation(::std::boxed::Box<AssertsAnnotation<'tree>>),
12691 TypeAnnotation(::std::boxed::Box<TypeAnnotation<'tree>>),
12692 TypePredicateAnnotation(::std::boxed::Box<TypePredicateAnnotation<'tree>>),
12693}
12694impl<'tree> ::treesitter_types::FromNode<'tree> for GeneratorFunctionReturnType<'tree> {
12695 #[allow(clippy::collapsible_else_if)]
12696 fn from_node(
12697 node: ::tree_sitter::Node<'tree>,
12698 src: &'tree [u8],
12699 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12700 match node.kind() {
12701 "asserts_annotation" => Ok(Self::AssertsAnnotation(::std::boxed::Box::new(
12702 <AssertsAnnotation as ::treesitter_types::FromNode>::from_node(node, src)?,
12703 ))),
12704 "type_annotation" => Ok(Self::TypeAnnotation(::std::boxed::Box::new(
12705 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)?,
12706 ))),
12707 "type_predicate_annotation" => {
12708 Ok(Self::TypePredicateAnnotation(::std::boxed::Box::new(
12709 <TypePredicateAnnotation as ::treesitter_types::FromNode>::from_node(
12710 node, src,
12711 )?,
12712 )))
12713 }
12714 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12715 }
12716 }
12717}
12718impl ::treesitter_types::Spanned for GeneratorFunctionReturnType<'_> {
12719 fn span(&self) -> ::treesitter_types::Span {
12720 match self {
12721 Self::AssertsAnnotation(inner) => inner.span(),
12722 Self::TypeAnnotation(inner) => inner.span(),
12723 Self::TypePredicateAnnotation(inner) => inner.span(),
12724 }
12725 }
12726}
12727#[derive(Debug, Clone, PartialEq, Eq)]
12728pub enum GeneratorFunctionDeclarationReturnType<'tree> {
12729 AssertsAnnotation(::std::boxed::Box<AssertsAnnotation<'tree>>),
12730 TypeAnnotation(::std::boxed::Box<TypeAnnotation<'tree>>),
12731 TypePredicateAnnotation(::std::boxed::Box<TypePredicateAnnotation<'tree>>),
12732}
12733impl<'tree> ::treesitter_types::FromNode<'tree> for GeneratorFunctionDeclarationReturnType<'tree> {
12734 #[allow(clippy::collapsible_else_if)]
12735 fn from_node(
12736 node: ::tree_sitter::Node<'tree>,
12737 src: &'tree [u8],
12738 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12739 match node.kind() {
12740 "asserts_annotation" => Ok(Self::AssertsAnnotation(::std::boxed::Box::new(
12741 <AssertsAnnotation as ::treesitter_types::FromNode>::from_node(node, src)?,
12742 ))),
12743 "type_annotation" => Ok(Self::TypeAnnotation(::std::boxed::Box::new(
12744 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)?,
12745 ))),
12746 "type_predicate_annotation" => {
12747 Ok(Self::TypePredicateAnnotation(::std::boxed::Box::new(
12748 <TypePredicateAnnotation as ::treesitter_types::FromNode>::from_node(
12749 node, src,
12750 )?,
12751 )))
12752 }
12753 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12754 }
12755 }
12756}
12757impl ::treesitter_types::Spanned for GeneratorFunctionDeclarationReturnType<'_> {
12758 fn span(&self) -> ::treesitter_types::Span {
12759 match self {
12760 Self::AssertsAnnotation(inner) => inner.span(),
12761 Self::TypeAnnotation(inner) => inner.span(),
12762 Self::TypePredicateAnnotation(inner) => inner.span(),
12763 }
12764 }
12765}
12766#[derive(Debug, Clone, PartialEq, Eq)]
12767pub enum GenericTypeName<'tree> {
12768 NestedTypeIdentifier(::std::boxed::Box<NestedTypeIdentifier<'tree>>),
12769 TypeIdentifier(::std::boxed::Box<TypeIdentifier<'tree>>),
12770}
12771impl<'tree> ::treesitter_types::FromNode<'tree> for GenericTypeName<'tree> {
12772 #[allow(clippy::collapsible_else_if)]
12773 fn from_node(
12774 node: ::tree_sitter::Node<'tree>,
12775 src: &'tree [u8],
12776 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12777 match node.kind() {
12778 "nested_type_identifier" => Ok(Self::NestedTypeIdentifier(::std::boxed::Box::new(
12779 <NestedTypeIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
12780 ))),
12781 "type_identifier" => Ok(Self::TypeIdentifier(::std::boxed::Box::new(
12782 <TypeIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
12783 ))),
12784 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12785 }
12786 }
12787}
12788impl ::treesitter_types::Spanned for GenericTypeName<'_> {
12789 fn span(&self) -> ::treesitter_types::Span {
12790 match self {
12791 Self::NestedTypeIdentifier(inner) => inner.span(),
12792 Self::TypeIdentifier(inner) => inner.span(),
12793 }
12794 }
12795}
12796#[derive(Debug, Clone, PartialEq, Eq)]
12797pub enum ImportAliasChildren<'tree> {
12798 Identifier(::std::boxed::Box<Identifier<'tree>>),
12799 NestedIdentifier(::std::boxed::Box<NestedIdentifier<'tree>>),
12800}
12801impl<'tree> ::treesitter_types::FromNode<'tree> for ImportAliasChildren<'tree> {
12802 #[allow(clippy::collapsible_else_if)]
12803 fn from_node(
12804 node: ::tree_sitter::Node<'tree>,
12805 src: &'tree [u8],
12806 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12807 match node.kind() {
12808 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
12809 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
12810 ))),
12811 "nested_identifier" => Ok(Self::NestedIdentifier(::std::boxed::Box::new(
12812 <NestedIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
12813 ))),
12814 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12815 }
12816 }
12817}
12818impl ::treesitter_types::Spanned for ImportAliasChildren<'_> {
12819 fn span(&self) -> ::treesitter_types::Span {
12820 match self {
12821 Self::Identifier(inner) => inner.span(),
12822 Self::NestedIdentifier(inner) => inner.span(),
12823 }
12824 }
12825}
12826#[derive(Debug, Clone, PartialEq, Eq)]
12827pub enum ImportClauseChildren<'tree> {
12828 Identifier(::std::boxed::Box<Identifier<'tree>>),
12829 NamedImports(::std::boxed::Box<NamedImports<'tree>>),
12830 NamespaceImport(::std::boxed::Box<NamespaceImport<'tree>>),
12831}
12832impl<'tree> ::treesitter_types::FromNode<'tree> for ImportClauseChildren<'tree> {
12833 #[allow(clippy::collapsible_else_if)]
12834 fn from_node(
12835 node: ::tree_sitter::Node<'tree>,
12836 src: &'tree [u8],
12837 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12838 match node.kind() {
12839 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
12840 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
12841 ))),
12842 "named_imports" => Ok(Self::NamedImports(::std::boxed::Box::new(
12843 <NamedImports as ::treesitter_types::FromNode>::from_node(node, src)?,
12844 ))),
12845 "namespace_import" => Ok(Self::NamespaceImport(::std::boxed::Box::new(
12846 <NamespaceImport as ::treesitter_types::FromNode>::from_node(node, src)?,
12847 ))),
12848 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12849 }
12850 }
12851}
12852impl ::treesitter_types::Spanned for ImportClauseChildren<'_> {
12853 fn span(&self) -> ::treesitter_types::Span {
12854 match self {
12855 Self::Identifier(inner) => inner.span(),
12856 Self::NamedImports(inner) => inner.span(),
12857 Self::NamespaceImport(inner) => inner.span(),
12858 }
12859 }
12860}
12861#[derive(Debug, Clone, PartialEq, Eq)]
12862pub enum ImportSpecifierName<'tree> {
12863 Identifier(::std::boxed::Box<Identifier<'tree>>),
12864 String(::std::boxed::Box<String<'tree>>),
12865}
12866impl<'tree> ::treesitter_types::FromNode<'tree> for ImportSpecifierName<'tree> {
12867 #[allow(clippy::collapsible_else_if)]
12868 fn from_node(
12869 node: ::tree_sitter::Node<'tree>,
12870 src: &'tree [u8],
12871 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12872 match node.kind() {
12873 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
12874 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
12875 ))),
12876 "string" => Ok(Self::String(::std::boxed::Box::new(
12877 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
12878 ))),
12879 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12880 }
12881 }
12882}
12883impl ::treesitter_types::Spanned for ImportSpecifierName<'_> {
12884 fn span(&self) -> ::treesitter_types::Span {
12885 match self {
12886 Self::Identifier(inner) => inner.span(),
12887 Self::String(inner) => inner.span(),
12888 }
12889 }
12890}
12891#[derive(Debug, Clone, PartialEq, Eq)]
12892pub enum ImportStatementChildren<'tree> {
12893 ImportAttribute(::std::boxed::Box<ImportAttribute<'tree>>),
12894 ImportClause(::std::boxed::Box<ImportClause<'tree>>),
12895 ImportRequireClause(::std::boxed::Box<ImportRequireClause<'tree>>),
12896}
12897impl<'tree> ::treesitter_types::FromNode<'tree> for ImportStatementChildren<'tree> {
12898 #[allow(clippy::collapsible_else_if)]
12899 fn from_node(
12900 node: ::tree_sitter::Node<'tree>,
12901 src: &'tree [u8],
12902 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12903 match node.kind() {
12904 "import_attribute" => Ok(Self::ImportAttribute(::std::boxed::Box::new(
12905 <ImportAttribute as ::treesitter_types::FromNode>::from_node(node, src)?,
12906 ))),
12907 "import_clause" => Ok(Self::ImportClause(::std::boxed::Box::new(
12908 <ImportClause as ::treesitter_types::FromNode>::from_node(node, src)?,
12909 ))),
12910 "import_require_clause" => Ok(Self::ImportRequireClause(::std::boxed::Box::new(
12911 <ImportRequireClause as ::treesitter_types::FromNode>::from_node(node, src)?,
12912 ))),
12913 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12914 }
12915 }
12916}
12917impl ::treesitter_types::Spanned for ImportStatementChildren<'_> {
12918 fn span(&self) -> ::treesitter_types::Span {
12919 match self {
12920 Self::ImportAttribute(inner) => inner.span(),
12921 Self::ImportClause(inner) => inner.span(),
12922 Self::ImportRequireClause(inner) => inner.span(),
12923 }
12924 }
12925}
12926#[derive(Debug, Clone, PartialEq, Eq)]
12927pub enum IndexSignatureSign {
12928 Plus(::treesitter_types::Span),
12929 Minus(::treesitter_types::Span),
12930}
12931impl<'tree> ::treesitter_types::FromNode<'tree> for IndexSignatureSign {
12932 #[allow(clippy::collapsible_else_if)]
12933 fn from_node(
12934 node: ::tree_sitter::Node<'tree>,
12935 _src: &'tree [u8],
12936 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12937 match node.kind() {
12938 "+" => Ok(Self::Plus(::treesitter_types::Span::from(node))),
12939 "-" => Ok(Self::Minus(::treesitter_types::Span::from(node))),
12940 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12941 }
12942 }
12943}
12944impl ::treesitter_types::Spanned for IndexSignatureSign {
12945 fn span(&self) -> ::treesitter_types::Span {
12946 match self {
12947 Self::Plus(span) => *span,
12948 Self::Minus(span) => *span,
12949 }
12950 }
12951}
12952#[derive(Debug, Clone, PartialEq, Eq)]
12953pub enum IndexSignatureType<'tree> {
12954 AddingTypeAnnotation(::std::boxed::Box<AddingTypeAnnotation<'tree>>),
12955 OmittingTypeAnnotation(::std::boxed::Box<OmittingTypeAnnotation<'tree>>),
12956 OptingTypeAnnotation(::std::boxed::Box<OptingTypeAnnotation<'tree>>),
12957 TypeAnnotation(::std::boxed::Box<TypeAnnotation<'tree>>),
12958}
12959impl<'tree> ::treesitter_types::FromNode<'tree> for IndexSignatureType<'tree> {
12960 #[allow(clippy::collapsible_else_if)]
12961 fn from_node(
12962 node: ::tree_sitter::Node<'tree>,
12963 src: &'tree [u8],
12964 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12965 match node.kind() {
12966 "adding_type_annotation" => Ok(Self::AddingTypeAnnotation(::std::boxed::Box::new(
12967 <AddingTypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)?,
12968 ))),
12969 "omitting_type_annotation" => Ok(Self::OmittingTypeAnnotation(::std::boxed::Box::new(
12970 <OmittingTypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)?,
12971 ))),
12972 "opting_type_annotation" => Ok(Self::OptingTypeAnnotation(::std::boxed::Box::new(
12973 <OptingTypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)?,
12974 ))),
12975 "type_annotation" => Ok(Self::TypeAnnotation(::std::boxed::Box::new(
12976 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)?,
12977 ))),
12978 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12979 }
12980 }
12981}
12982impl ::treesitter_types::Spanned for IndexSignatureType<'_> {
12983 fn span(&self) -> ::treesitter_types::Span {
12984 match self {
12985 Self::AddingTypeAnnotation(inner) => inner.span(),
12986 Self::OmittingTypeAnnotation(inner) => inner.span(),
12987 Self::OptingTypeAnnotation(inner) => inner.span(),
12988 Self::TypeAnnotation(inner) => inner.span(),
12989 }
12990 }
12991}
12992#[derive(Debug, Clone, PartialEq, Eq)]
12993pub enum InferTypeChildren<'tree> {
12994 Type(::std::boxed::Box<Type<'tree>>),
12995 TypeIdentifier(::std::boxed::Box<TypeIdentifier<'tree>>),
12996}
12997impl<'tree> ::treesitter_types::FromNode<'tree> for InferTypeChildren<'tree> {
12998 #[allow(clippy::collapsible_else_if)]
12999 fn from_node(
13000 node: ::tree_sitter::Node<'tree>,
13001 src: &'tree [u8],
13002 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13003 match node.kind() {
13004 "type_identifier" => Ok(Self::TypeIdentifier(::std::boxed::Box::new(
13005 <TypeIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
13006 ))),
13007 _other => {
13008 if let Ok(v) = <Type as ::treesitter_types::FromNode>::from_node(node, src) {
13009 Ok(Self::Type(::std::boxed::Box::new(v)))
13010 } else {
13011 Err(::treesitter_types::ParseError::unexpected_kind(
13012 _other, node,
13013 ))
13014 }
13015 }
13016 }
13017 }
13018}
13019impl ::treesitter_types::Spanned for InferTypeChildren<'_> {
13020 fn span(&self) -> ::treesitter_types::Span {
13021 match self {
13022 Self::Type(inner) => inner.span(),
13023 Self::TypeIdentifier(inner) => inner.span(),
13024 }
13025 }
13026}
13027#[derive(Debug, Clone, PartialEq, Eq)]
13028pub enum InstantiationExpressionFunction<'tree> {
13029 Identifier(::std::boxed::Box<Identifier<'tree>>),
13030 Import(::std::boxed::Box<Import<'tree>>),
13031 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
13032 SubscriptExpression(::std::boxed::Box<SubscriptExpression<'tree>>),
13033}
13034impl<'tree> ::treesitter_types::FromNode<'tree> for InstantiationExpressionFunction<'tree> {
13035 #[allow(clippy::collapsible_else_if)]
13036 fn from_node(
13037 node: ::tree_sitter::Node<'tree>,
13038 src: &'tree [u8],
13039 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13040 match node.kind() {
13041 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
13042 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
13043 ))),
13044 "import" => Ok(Self::Import(::std::boxed::Box::new(
13045 <Import as ::treesitter_types::FromNode>::from_node(node, src)?,
13046 ))),
13047 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
13048 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
13049 ))),
13050 "subscript_expression" => Ok(Self::SubscriptExpression(::std::boxed::Box::new(
13051 <SubscriptExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
13052 ))),
13053 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13054 }
13055 }
13056}
13057impl ::treesitter_types::Spanned for InstantiationExpressionFunction<'_> {
13058 fn span(&self) -> ::treesitter_types::Span {
13059 match self {
13060 Self::Identifier(inner) => inner.span(),
13061 Self::Import(inner) => inner.span(),
13062 Self::MemberExpression(inner) => inner.span(),
13063 Self::SubscriptExpression(inner) => inner.span(),
13064 }
13065 }
13066}
13067#[derive(Debug, Clone, PartialEq, Eq)]
13068pub enum InterfaceBodyChildren<'tree> {
13069 CallSignature(::std::boxed::Box<CallSignature<'tree>>),
13070 ConstructSignature(::std::boxed::Box<ConstructSignature<'tree>>),
13071 ExportStatement(::std::boxed::Box<ExportStatement<'tree>>),
13072 IndexSignature(::std::boxed::Box<IndexSignature<'tree>>),
13073 MethodSignature(::std::boxed::Box<MethodSignature<'tree>>),
13074 PropertySignature(::std::boxed::Box<PropertySignature<'tree>>),
13075}
13076impl<'tree> ::treesitter_types::FromNode<'tree> for InterfaceBodyChildren<'tree> {
13077 #[allow(clippy::collapsible_else_if)]
13078 fn from_node(
13079 node: ::tree_sitter::Node<'tree>,
13080 src: &'tree [u8],
13081 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13082 match node.kind() {
13083 "call_signature" => Ok(Self::CallSignature(::std::boxed::Box::new(
13084 <CallSignature as ::treesitter_types::FromNode>::from_node(node, src)?,
13085 ))),
13086 "construct_signature" => Ok(Self::ConstructSignature(::std::boxed::Box::new(
13087 <ConstructSignature as ::treesitter_types::FromNode>::from_node(node, src)?,
13088 ))),
13089 "export_statement" => Ok(Self::ExportStatement(::std::boxed::Box::new(
13090 <ExportStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
13091 ))),
13092 "index_signature" => Ok(Self::IndexSignature(::std::boxed::Box::new(
13093 <IndexSignature as ::treesitter_types::FromNode>::from_node(node, src)?,
13094 ))),
13095 "method_signature" => Ok(Self::MethodSignature(::std::boxed::Box::new(
13096 <MethodSignature as ::treesitter_types::FromNode>::from_node(node, src)?,
13097 ))),
13098 "property_signature" => Ok(Self::PropertySignature(::std::boxed::Box::new(
13099 <PropertySignature as ::treesitter_types::FromNode>::from_node(node, src)?,
13100 ))),
13101 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13102 }
13103 }
13104}
13105impl ::treesitter_types::Spanned for InterfaceBodyChildren<'_> {
13106 fn span(&self) -> ::treesitter_types::Span {
13107 match self {
13108 Self::CallSignature(inner) => inner.span(),
13109 Self::ConstructSignature(inner) => inner.span(),
13110 Self::ExportStatement(inner) => inner.span(),
13111 Self::IndexSignature(inner) => inner.span(),
13112 Self::MethodSignature(inner) => inner.span(),
13113 Self::PropertySignature(inner) => inner.span(),
13114 }
13115 }
13116}
13117#[derive(Debug, Clone, PartialEq, Eq)]
13118pub enum InternalModuleName<'tree> {
13119 Identifier(::std::boxed::Box<Identifier<'tree>>),
13120 NestedIdentifier(::std::boxed::Box<NestedIdentifier<'tree>>),
13121 String(::std::boxed::Box<String<'tree>>),
13122}
13123impl<'tree> ::treesitter_types::FromNode<'tree> for InternalModuleName<'tree> {
13124 #[allow(clippy::collapsible_else_if)]
13125 fn from_node(
13126 node: ::tree_sitter::Node<'tree>,
13127 src: &'tree [u8],
13128 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13129 match node.kind() {
13130 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
13131 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
13132 ))),
13133 "nested_identifier" => Ok(Self::NestedIdentifier(::std::boxed::Box::new(
13134 <NestedIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
13135 ))),
13136 "string" => Ok(Self::String(::std::boxed::Box::new(
13137 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
13138 ))),
13139 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13140 }
13141 }
13142}
13143impl ::treesitter_types::Spanned for InternalModuleName<'_> {
13144 fn span(&self) -> ::treesitter_types::Span {
13145 match self {
13146 Self::Identifier(inner) => inner.span(),
13147 Self::NestedIdentifier(inner) => inner.span(),
13148 Self::String(inner) => inner.span(),
13149 }
13150 }
13151}
13152#[derive(Debug, Clone, PartialEq, Eq)]
13153pub enum LexicalDeclarationKind {
13154 Const(::treesitter_types::Span),
13155 Let(::treesitter_types::Span),
13156}
13157impl<'tree> ::treesitter_types::FromNode<'tree> for LexicalDeclarationKind {
13158 #[allow(clippy::collapsible_else_if)]
13159 fn from_node(
13160 node: ::tree_sitter::Node<'tree>,
13161 _src: &'tree [u8],
13162 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13163 match node.kind() {
13164 "const" => Ok(Self::Const(::treesitter_types::Span::from(node))),
13165 "let" => Ok(Self::Let(::treesitter_types::Span::from(node))),
13166 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13167 }
13168 }
13169}
13170impl ::treesitter_types::Spanned for LexicalDeclarationKind {
13171 fn span(&self) -> ::treesitter_types::Span {
13172 match self {
13173 Self::Const(span) => *span,
13174 Self::Let(span) => *span,
13175 }
13176 }
13177}
13178#[derive(Debug, Clone, PartialEq, Eq)]
13179pub enum LiteralTypeChildren<'tree> {
13180 False(::std::boxed::Box<False<'tree>>),
13181 Null(::std::boxed::Box<Null<'tree>>),
13182 Number(::std::boxed::Box<Number<'tree>>),
13183 String(::std::boxed::Box<String<'tree>>),
13184 True(::std::boxed::Box<True<'tree>>),
13185 UnaryExpression(::std::boxed::Box<UnaryExpression<'tree>>),
13186 Undefined(::std::boxed::Box<Undefined<'tree>>),
13187}
13188impl<'tree> ::treesitter_types::FromNode<'tree> for LiteralTypeChildren<'tree> {
13189 #[allow(clippy::collapsible_else_if)]
13190 fn from_node(
13191 node: ::tree_sitter::Node<'tree>,
13192 src: &'tree [u8],
13193 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13194 match node.kind() {
13195 "false" => Ok(Self::False(::std::boxed::Box::new(
13196 <False as ::treesitter_types::FromNode>::from_node(node, src)?,
13197 ))),
13198 "null" => Ok(Self::Null(::std::boxed::Box::new(
13199 <Null as ::treesitter_types::FromNode>::from_node(node, src)?,
13200 ))),
13201 "number" => Ok(Self::Number(::std::boxed::Box::new(
13202 <Number as ::treesitter_types::FromNode>::from_node(node, src)?,
13203 ))),
13204 "string" => Ok(Self::String(::std::boxed::Box::new(
13205 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
13206 ))),
13207 "true" => Ok(Self::True(::std::boxed::Box::new(
13208 <True as ::treesitter_types::FromNode>::from_node(node, src)?,
13209 ))),
13210 "unary_expression" => Ok(Self::UnaryExpression(::std::boxed::Box::new(
13211 <UnaryExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
13212 ))),
13213 "undefined" => Ok(Self::Undefined(::std::boxed::Box::new(
13214 <Undefined as ::treesitter_types::FromNode>::from_node(node, src)?,
13215 ))),
13216 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13217 }
13218 }
13219}
13220impl ::treesitter_types::Spanned for LiteralTypeChildren<'_> {
13221 fn span(&self) -> ::treesitter_types::Span {
13222 match self {
13223 Self::False(inner) => inner.span(),
13224 Self::Null(inner) => inner.span(),
13225 Self::Number(inner) => inner.span(),
13226 Self::String(inner) => inner.span(),
13227 Self::True(inner) => inner.span(),
13228 Self::UnaryExpression(inner) => inner.span(),
13229 Self::Undefined(inner) => inner.span(),
13230 }
13231 }
13232}
13233#[derive(Debug, Clone, PartialEq, Eq)]
13234pub enum MemberExpressionObject<'tree> {
13235 Expression(::std::boxed::Box<Expression<'tree>>),
13236 Import(::std::boxed::Box<Import<'tree>>),
13237}
13238impl<'tree> ::treesitter_types::FromNode<'tree> for MemberExpressionObject<'tree> {
13239 #[allow(clippy::collapsible_else_if)]
13240 fn from_node(
13241 node: ::tree_sitter::Node<'tree>,
13242 src: &'tree [u8],
13243 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13244 match node.kind() {
13245 "import" => Ok(Self::Import(::std::boxed::Box::new(
13246 <Import as ::treesitter_types::FromNode>::from_node(node, src)?,
13247 ))),
13248 _other => {
13249 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
13250 Ok(Self::Expression(::std::boxed::Box::new(v)))
13251 } else {
13252 Err(::treesitter_types::ParseError::unexpected_kind(
13253 _other, node,
13254 ))
13255 }
13256 }
13257 }
13258 }
13259}
13260impl ::treesitter_types::Spanned for MemberExpressionObject<'_> {
13261 fn span(&self) -> ::treesitter_types::Span {
13262 match self {
13263 Self::Expression(inner) => inner.span(),
13264 Self::Import(inner) => inner.span(),
13265 }
13266 }
13267}
13268#[derive(Debug, Clone, PartialEq, Eq)]
13269pub enum MemberExpressionProperty<'tree> {
13270 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
13271 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
13272}
13273impl<'tree> ::treesitter_types::FromNode<'tree> for MemberExpressionProperty<'tree> {
13274 #[allow(clippy::collapsible_else_if)]
13275 fn from_node(
13276 node: ::tree_sitter::Node<'tree>,
13277 src: &'tree [u8],
13278 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13279 match node.kind() {
13280 "private_property_identifier" => {
13281 Ok(Self::PrivatePropertyIdentifier(::std::boxed::Box::new(
13282 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
13283 node, src,
13284 )?,
13285 )))
13286 }
13287 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
13288 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
13289 ))),
13290 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13291 }
13292 }
13293}
13294impl ::treesitter_types::Spanned for MemberExpressionProperty<'_> {
13295 fn span(&self) -> ::treesitter_types::Span {
13296 match self {
13297 Self::PrivatePropertyIdentifier(inner) => inner.span(),
13298 Self::PropertyIdentifier(inner) => inner.span(),
13299 }
13300 }
13301}
13302#[derive(Debug, Clone, PartialEq, Eq)]
13303pub enum MethodDefinitionName<'tree> {
13304 ComputedPropertyName(::std::boxed::Box<ComputedPropertyName<'tree>>),
13305 Number(::std::boxed::Box<Number<'tree>>),
13306 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
13307 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
13308 String(::std::boxed::Box<String<'tree>>),
13309}
13310impl<'tree> ::treesitter_types::FromNode<'tree> for MethodDefinitionName<'tree> {
13311 #[allow(clippy::collapsible_else_if)]
13312 fn from_node(
13313 node: ::tree_sitter::Node<'tree>,
13314 src: &'tree [u8],
13315 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13316 match node.kind() {
13317 "computed_property_name" => Ok(Self::ComputedPropertyName(::std::boxed::Box::new(
13318 <ComputedPropertyName as ::treesitter_types::FromNode>::from_node(node, src)?,
13319 ))),
13320 "number" => Ok(Self::Number(::std::boxed::Box::new(
13321 <Number as ::treesitter_types::FromNode>::from_node(node, src)?,
13322 ))),
13323 "private_property_identifier" => {
13324 Ok(Self::PrivatePropertyIdentifier(::std::boxed::Box::new(
13325 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
13326 node, src,
13327 )?,
13328 )))
13329 }
13330 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
13331 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
13332 ))),
13333 "string" => Ok(Self::String(::std::boxed::Box::new(
13334 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
13335 ))),
13336 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13337 }
13338 }
13339}
13340impl ::treesitter_types::Spanned for MethodDefinitionName<'_> {
13341 fn span(&self) -> ::treesitter_types::Span {
13342 match self {
13343 Self::ComputedPropertyName(inner) => inner.span(),
13344 Self::Number(inner) => inner.span(),
13345 Self::PrivatePropertyIdentifier(inner) => inner.span(),
13346 Self::PropertyIdentifier(inner) => inner.span(),
13347 Self::String(inner) => inner.span(),
13348 }
13349 }
13350}
13351#[derive(Debug, Clone, PartialEq, Eq)]
13352pub enum MethodDefinitionReturnType<'tree> {
13353 AssertsAnnotation(::std::boxed::Box<AssertsAnnotation<'tree>>),
13354 TypeAnnotation(::std::boxed::Box<TypeAnnotation<'tree>>),
13355 TypePredicateAnnotation(::std::boxed::Box<TypePredicateAnnotation<'tree>>),
13356}
13357impl<'tree> ::treesitter_types::FromNode<'tree> for MethodDefinitionReturnType<'tree> {
13358 #[allow(clippy::collapsible_else_if)]
13359 fn from_node(
13360 node: ::tree_sitter::Node<'tree>,
13361 src: &'tree [u8],
13362 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13363 match node.kind() {
13364 "asserts_annotation" => Ok(Self::AssertsAnnotation(::std::boxed::Box::new(
13365 <AssertsAnnotation as ::treesitter_types::FromNode>::from_node(node, src)?,
13366 ))),
13367 "type_annotation" => Ok(Self::TypeAnnotation(::std::boxed::Box::new(
13368 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)?,
13369 ))),
13370 "type_predicate_annotation" => {
13371 Ok(Self::TypePredicateAnnotation(::std::boxed::Box::new(
13372 <TypePredicateAnnotation as ::treesitter_types::FromNode>::from_node(
13373 node, src,
13374 )?,
13375 )))
13376 }
13377 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13378 }
13379 }
13380}
13381impl ::treesitter_types::Spanned for MethodDefinitionReturnType<'_> {
13382 fn span(&self) -> ::treesitter_types::Span {
13383 match self {
13384 Self::AssertsAnnotation(inner) => inner.span(),
13385 Self::TypeAnnotation(inner) => inner.span(),
13386 Self::TypePredicateAnnotation(inner) => inner.span(),
13387 }
13388 }
13389}
13390#[derive(Debug, Clone, PartialEq, Eq)]
13391pub enum MethodDefinitionChildren<'tree> {
13392 AccessibilityModifier(::std::boxed::Box<AccessibilityModifier<'tree>>),
13393 OverrideModifier(::std::boxed::Box<OverrideModifier<'tree>>),
13394}
13395impl<'tree> ::treesitter_types::FromNode<'tree> for MethodDefinitionChildren<'tree> {
13396 #[allow(clippy::collapsible_else_if)]
13397 fn from_node(
13398 node: ::tree_sitter::Node<'tree>,
13399 src: &'tree [u8],
13400 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13401 match node.kind() {
13402 "accessibility_modifier" => Ok(Self::AccessibilityModifier(::std::boxed::Box::new(
13403 <AccessibilityModifier as ::treesitter_types::FromNode>::from_node(node, src)?,
13404 ))),
13405 "override_modifier" => Ok(Self::OverrideModifier(::std::boxed::Box::new(
13406 <OverrideModifier as ::treesitter_types::FromNode>::from_node(node, src)?,
13407 ))),
13408 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13409 }
13410 }
13411}
13412impl ::treesitter_types::Spanned for MethodDefinitionChildren<'_> {
13413 fn span(&self) -> ::treesitter_types::Span {
13414 match self {
13415 Self::AccessibilityModifier(inner) => inner.span(),
13416 Self::OverrideModifier(inner) => inner.span(),
13417 }
13418 }
13419}
13420#[derive(Debug, Clone, PartialEq, Eq)]
13421pub enum MethodSignatureName<'tree> {
13422 ComputedPropertyName(::std::boxed::Box<ComputedPropertyName<'tree>>),
13423 Number(::std::boxed::Box<Number<'tree>>),
13424 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
13425 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
13426 String(::std::boxed::Box<String<'tree>>),
13427}
13428impl<'tree> ::treesitter_types::FromNode<'tree> for MethodSignatureName<'tree> {
13429 #[allow(clippy::collapsible_else_if)]
13430 fn from_node(
13431 node: ::tree_sitter::Node<'tree>,
13432 src: &'tree [u8],
13433 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13434 match node.kind() {
13435 "computed_property_name" => Ok(Self::ComputedPropertyName(::std::boxed::Box::new(
13436 <ComputedPropertyName as ::treesitter_types::FromNode>::from_node(node, src)?,
13437 ))),
13438 "number" => Ok(Self::Number(::std::boxed::Box::new(
13439 <Number as ::treesitter_types::FromNode>::from_node(node, src)?,
13440 ))),
13441 "private_property_identifier" => {
13442 Ok(Self::PrivatePropertyIdentifier(::std::boxed::Box::new(
13443 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
13444 node, src,
13445 )?,
13446 )))
13447 }
13448 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
13449 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
13450 ))),
13451 "string" => Ok(Self::String(::std::boxed::Box::new(
13452 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
13453 ))),
13454 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13455 }
13456 }
13457}
13458impl ::treesitter_types::Spanned for MethodSignatureName<'_> {
13459 fn span(&self) -> ::treesitter_types::Span {
13460 match self {
13461 Self::ComputedPropertyName(inner) => inner.span(),
13462 Self::Number(inner) => inner.span(),
13463 Self::PrivatePropertyIdentifier(inner) => inner.span(),
13464 Self::PropertyIdentifier(inner) => inner.span(),
13465 Self::String(inner) => inner.span(),
13466 }
13467 }
13468}
13469#[derive(Debug, Clone, PartialEq, Eq)]
13470pub enum MethodSignatureReturnType<'tree> {
13471 AssertsAnnotation(::std::boxed::Box<AssertsAnnotation<'tree>>),
13472 TypeAnnotation(::std::boxed::Box<TypeAnnotation<'tree>>),
13473 TypePredicateAnnotation(::std::boxed::Box<TypePredicateAnnotation<'tree>>),
13474}
13475impl<'tree> ::treesitter_types::FromNode<'tree> for MethodSignatureReturnType<'tree> {
13476 #[allow(clippy::collapsible_else_if)]
13477 fn from_node(
13478 node: ::tree_sitter::Node<'tree>,
13479 src: &'tree [u8],
13480 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13481 match node.kind() {
13482 "asserts_annotation" => Ok(Self::AssertsAnnotation(::std::boxed::Box::new(
13483 <AssertsAnnotation as ::treesitter_types::FromNode>::from_node(node, src)?,
13484 ))),
13485 "type_annotation" => Ok(Self::TypeAnnotation(::std::boxed::Box::new(
13486 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)?,
13487 ))),
13488 "type_predicate_annotation" => {
13489 Ok(Self::TypePredicateAnnotation(::std::boxed::Box::new(
13490 <TypePredicateAnnotation as ::treesitter_types::FromNode>::from_node(
13491 node, src,
13492 )?,
13493 )))
13494 }
13495 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13496 }
13497 }
13498}
13499impl ::treesitter_types::Spanned for MethodSignatureReturnType<'_> {
13500 fn span(&self) -> ::treesitter_types::Span {
13501 match self {
13502 Self::AssertsAnnotation(inner) => inner.span(),
13503 Self::TypeAnnotation(inner) => inner.span(),
13504 Self::TypePredicateAnnotation(inner) => inner.span(),
13505 }
13506 }
13507}
13508#[derive(Debug, Clone, PartialEq, Eq)]
13509pub enum MethodSignatureChildren<'tree> {
13510 AccessibilityModifier(::std::boxed::Box<AccessibilityModifier<'tree>>),
13511 OverrideModifier(::std::boxed::Box<OverrideModifier<'tree>>),
13512}
13513impl<'tree> ::treesitter_types::FromNode<'tree> for MethodSignatureChildren<'tree> {
13514 #[allow(clippy::collapsible_else_if)]
13515 fn from_node(
13516 node: ::tree_sitter::Node<'tree>,
13517 src: &'tree [u8],
13518 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13519 match node.kind() {
13520 "accessibility_modifier" => Ok(Self::AccessibilityModifier(::std::boxed::Box::new(
13521 <AccessibilityModifier as ::treesitter_types::FromNode>::from_node(node, src)?,
13522 ))),
13523 "override_modifier" => Ok(Self::OverrideModifier(::std::boxed::Box::new(
13524 <OverrideModifier as ::treesitter_types::FromNode>::from_node(node, src)?,
13525 ))),
13526 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13527 }
13528 }
13529}
13530impl ::treesitter_types::Spanned for MethodSignatureChildren<'_> {
13531 fn span(&self) -> ::treesitter_types::Span {
13532 match self {
13533 Self::AccessibilityModifier(inner) => inner.span(),
13534 Self::OverrideModifier(inner) => inner.span(),
13535 }
13536 }
13537}
13538#[derive(Debug, Clone, PartialEq, Eq)]
13539pub enum ModuleName<'tree> {
13540 Identifier(::std::boxed::Box<Identifier<'tree>>),
13541 NestedIdentifier(::std::boxed::Box<NestedIdentifier<'tree>>),
13542 String(::std::boxed::Box<String<'tree>>),
13543}
13544impl<'tree> ::treesitter_types::FromNode<'tree> for ModuleName<'tree> {
13545 #[allow(clippy::collapsible_else_if)]
13546 fn from_node(
13547 node: ::tree_sitter::Node<'tree>,
13548 src: &'tree [u8],
13549 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13550 match node.kind() {
13551 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
13552 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
13553 ))),
13554 "nested_identifier" => Ok(Self::NestedIdentifier(::std::boxed::Box::new(
13555 <NestedIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
13556 ))),
13557 "string" => Ok(Self::String(::std::boxed::Box::new(
13558 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
13559 ))),
13560 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13561 }
13562 }
13563}
13564impl ::treesitter_types::Spanned for ModuleName<'_> {
13565 fn span(&self) -> ::treesitter_types::Span {
13566 match self {
13567 Self::Identifier(inner) => inner.span(),
13568 Self::NestedIdentifier(inner) => inner.span(),
13569 Self::String(inner) => inner.span(),
13570 }
13571 }
13572}
13573#[derive(Debug, Clone, PartialEq, Eq)]
13574pub enum NamespaceExportChildren<'tree> {
13575 Identifier(::std::boxed::Box<Identifier<'tree>>),
13576 String(::std::boxed::Box<String<'tree>>),
13577}
13578impl<'tree> ::treesitter_types::FromNode<'tree> for NamespaceExportChildren<'tree> {
13579 #[allow(clippy::collapsible_else_if)]
13580 fn from_node(
13581 node: ::tree_sitter::Node<'tree>,
13582 src: &'tree [u8],
13583 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13584 match node.kind() {
13585 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
13586 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
13587 ))),
13588 "string" => Ok(Self::String(::std::boxed::Box::new(
13589 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
13590 ))),
13591 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13592 }
13593 }
13594}
13595impl ::treesitter_types::Spanned for NamespaceExportChildren<'_> {
13596 fn span(&self) -> ::treesitter_types::Span {
13597 match self {
13598 Self::Identifier(inner) => inner.span(),
13599 Self::String(inner) => inner.span(),
13600 }
13601 }
13602}
13603#[derive(Debug, Clone, PartialEq, Eq)]
13604pub enum NestedIdentifierObject<'tree> {
13605 Identifier(::std::boxed::Box<Identifier<'tree>>),
13606 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
13607}
13608impl<'tree> ::treesitter_types::FromNode<'tree> for NestedIdentifierObject<'tree> {
13609 #[allow(clippy::collapsible_else_if)]
13610 fn from_node(
13611 node: ::tree_sitter::Node<'tree>,
13612 src: &'tree [u8],
13613 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13614 match node.kind() {
13615 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
13616 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
13617 ))),
13618 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
13619 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
13620 ))),
13621 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13622 }
13623 }
13624}
13625impl ::treesitter_types::Spanned for NestedIdentifierObject<'_> {
13626 fn span(&self) -> ::treesitter_types::Span {
13627 match self {
13628 Self::Identifier(inner) => inner.span(),
13629 Self::MemberExpression(inner) => inner.span(),
13630 }
13631 }
13632}
13633#[derive(Debug, Clone, PartialEq, Eq)]
13634pub enum NestedTypeIdentifierModule<'tree> {
13635 Identifier(::std::boxed::Box<Identifier<'tree>>),
13636 NestedIdentifier(::std::boxed::Box<NestedIdentifier<'tree>>),
13637}
13638impl<'tree> ::treesitter_types::FromNode<'tree> for NestedTypeIdentifierModule<'tree> {
13639 #[allow(clippy::collapsible_else_if)]
13640 fn from_node(
13641 node: ::tree_sitter::Node<'tree>,
13642 src: &'tree [u8],
13643 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13644 match node.kind() {
13645 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
13646 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
13647 ))),
13648 "nested_identifier" => Ok(Self::NestedIdentifier(::std::boxed::Box::new(
13649 <NestedIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
13650 ))),
13651 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13652 }
13653 }
13654}
13655impl ::treesitter_types::Spanned for NestedTypeIdentifierModule<'_> {
13656 fn span(&self) -> ::treesitter_types::Span {
13657 match self {
13658 Self::Identifier(inner) => inner.span(),
13659 Self::NestedIdentifier(inner) => inner.span(),
13660 }
13661 }
13662}
13663#[derive(Debug, Clone, PartialEq, Eq)]
13664pub enum ObjectChildren<'tree> {
13665 MethodDefinition(::std::boxed::Box<MethodDefinition<'tree>>),
13666 Pair(::std::boxed::Box<Pair<'tree>>),
13667 ShorthandPropertyIdentifier(::std::boxed::Box<ShorthandPropertyIdentifier<'tree>>),
13668 SpreadElement(::std::boxed::Box<SpreadElement<'tree>>),
13669}
13670impl<'tree> ::treesitter_types::FromNode<'tree> for ObjectChildren<'tree> {
13671 #[allow(clippy::collapsible_else_if)]
13672 fn from_node(
13673 node: ::tree_sitter::Node<'tree>,
13674 src: &'tree [u8],
13675 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13676 match node.kind() {
13677 "method_definition" => Ok(Self::MethodDefinition(::std::boxed::Box::new(
13678 <MethodDefinition as ::treesitter_types::FromNode>::from_node(node, src)?,
13679 ))),
13680 "pair" => Ok(Self::Pair(::std::boxed::Box::new(
13681 <Pair as ::treesitter_types::FromNode>::from_node(node, src)?,
13682 ))),
13683 "shorthand_property_identifier" => {
13684 Ok(Self::ShorthandPropertyIdentifier(::std::boxed::Box::new(
13685 <ShorthandPropertyIdentifier as ::treesitter_types::FromNode>::from_node(
13686 node, src,
13687 )?,
13688 )))
13689 }
13690 "spread_element" => Ok(Self::SpreadElement(::std::boxed::Box::new(
13691 <SpreadElement as ::treesitter_types::FromNode>::from_node(node, src)?,
13692 ))),
13693 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13694 }
13695 }
13696}
13697impl ::treesitter_types::Spanned for ObjectChildren<'_> {
13698 fn span(&self) -> ::treesitter_types::Span {
13699 match self {
13700 Self::MethodDefinition(inner) => inner.span(),
13701 Self::Pair(inner) => inner.span(),
13702 Self::ShorthandPropertyIdentifier(inner) => inner.span(),
13703 Self::SpreadElement(inner) => inner.span(),
13704 }
13705 }
13706}
13707#[derive(Debug, Clone, PartialEq, Eq)]
13708pub enum ObjectAssignmentPatternLeft<'tree> {
13709 ArrayPattern(::std::boxed::Box<ArrayPattern<'tree>>),
13710 ObjectPattern(::std::boxed::Box<ObjectPattern<'tree>>),
13711 ShorthandPropertyIdentifierPattern(
13712 ::std::boxed::Box<ShorthandPropertyIdentifierPattern<'tree>>,
13713 ),
13714}
13715impl<'tree> ::treesitter_types::FromNode<'tree> for ObjectAssignmentPatternLeft<'tree> {
13716 #[allow(clippy::collapsible_else_if)]
13717 fn from_node(
13718 node: ::tree_sitter::Node<'tree>,
13719 src: &'tree [u8],
13720 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13721 match node.kind() {
13722 "array_pattern" => {
13723 Ok(
13724 Self::ArrayPattern(
13725 ::std::boxed::Box::new(
13726 <ArrayPattern as ::treesitter_types::FromNode>::from_node(
13727 node,
13728 src,
13729 )?,
13730 ),
13731 ),
13732 )
13733 }
13734 "object_pattern" => {
13735 Ok(
13736 Self::ObjectPattern(
13737 ::std::boxed::Box::new(
13738 <ObjectPattern as ::treesitter_types::FromNode>::from_node(
13739 node,
13740 src,
13741 )?,
13742 ),
13743 ),
13744 )
13745 }
13746 "shorthand_property_identifier_pattern" => {
13747 Ok(
13748 Self::ShorthandPropertyIdentifierPattern(
13749 ::std::boxed::Box::new(
13750 <ShorthandPropertyIdentifierPattern as ::treesitter_types::FromNode>::from_node(
13751 node,
13752 src,
13753 )?,
13754 ),
13755 ),
13756 )
13757 }
13758 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13759 }
13760 }
13761}
13762impl ::treesitter_types::Spanned for ObjectAssignmentPatternLeft<'_> {
13763 fn span(&self) -> ::treesitter_types::Span {
13764 match self {
13765 Self::ArrayPattern(inner) => inner.span(),
13766 Self::ObjectPattern(inner) => inner.span(),
13767 Self::ShorthandPropertyIdentifierPattern(inner) => inner.span(),
13768 }
13769 }
13770}
13771#[derive(Debug, Clone, PartialEq, Eq)]
13772pub enum ObjectPatternChildren<'tree> {
13773 ObjectAssignmentPattern(::std::boxed::Box<ObjectAssignmentPattern<'tree>>),
13774 PairPattern(::std::boxed::Box<PairPattern<'tree>>),
13775 RestPattern(::std::boxed::Box<RestPattern<'tree>>),
13776 ShorthandPropertyIdentifierPattern(
13777 ::std::boxed::Box<ShorthandPropertyIdentifierPattern<'tree>>,
13778 ),
13779}
13780impl<'tree> ::treesitter_types::FromNode<'tree> for ObjectPatternChildren<'tree> {
13781 #[allow(clippy::collapsible_else_if)]
13782 fn from_node(
13783 node: ::tree_sitter::Node<'tree>,
13784 src: &'tree [u8],
13785 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13786 match node.kind() {
13787 "object_assignment_pattern" => {
13788 Ok(
13789 Self::ObjectAssignmentPattern(
13790 ::std::boxed::Box::new(
13791 <ObjectAssignmentPattern as ::treesitter_types::FromNode>::from_node(
13792 node,
13793 src,
13794 )?,
13795 ),
13796 ),
13797 )
13798 }
13799 "pair_pattern" => {
13800 Ok(
13801 Self::PairPattern(
13802 ::std::boxed::Box::new(
13803 <PairPattern as ::treesitter_types::FromNode>::from_node(
13804 node,
13805 src,
13806 )?,
13807 ),
13808 ),
13809 )
13810 }
13811 "rest_pattern" => {
13812 Ok(
13813 Self::RestPattern(
13814 ::std::boxed::Box::new(
13815 <RestPattern as ::treesitter_types::FromNode>::from_node(
13816 node,
13817 src,
13818 )?,
13819 ),
13820 ),
13821 )
13822 }
13823 "shorthand_property_identifier_pattern" => {
13824 Ok(
13825 Self::ShorthandPropertyIdentifierPattern(
13826 ::std::boxed::Box::new(
13827 <ShorthandPropertyIdentifierPattern as ::treesitter_types::FromNode>::from_node(
13828 node,
13829 src,
13830 )?,
13831 ),
13832 ),
13833 )
13834 }
13835 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13836 }
13837 }
13838}
13839impl ::treesitter_types::Spanned for ObjectPatternChildren<'_> {
13840 fn span(&self) -> ::treesitter_types::Span {
13841 match self {
13842 Self::ObjectAssignmentPattern(inner) => inner.span(),
13843 Self::PairPattern(inner) => inner.span(),
13844 Self::RestPattern(inner) => inner.span(),
13845 Self::ShorthandPropertyIdentifierPattern(inner) => inner.span(),
13846 }
13847 }
13848}
13849#[derive(Debug, Clone, PartialEq, Eq)]
13850pub enum ObjectTypeChildren<'tree> {
13851 CallSignature(::std::boxed::Box<CallSignature<'tree>>),
13852 ConstructSignature(::std::boxed::Box<ConstructSignature<'tree>>),
13853 ExportStatement(::std::boxed::Box<ExportStatement<'tree>>),
13854 IndexSignature(::std::boxed::Box<IndexSignature<'tree>>),
13855 MethodSignature(::std::boxed::Box<MethodSignature<'tree>>),
13856 PropertySignature(::std::boxed::Box<PropertySignature<'tree>>),
13857}
13858impl<'tree> ::treesitter_types::FromNode<'tree> for ObjectTypeChildren<'tree> {
13859 #[allow(clippy::collapsible_else_if)]
13860 fn from_node(
13861 node: ::tree_sitter::Node<'tree>,
13862 src: &'tree [u8],
13863 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13864 match node.kind() {
13865 "call_signature" => Ok(Self::CallSignature(::std::boxed::Box::new(
13866 <CallSignature as ::treesitter_types::FromNode>::from_node(node, src)?,
13867 ))),
13868 "construct_signature" => Ok(Self::ConstructSignature(::std::boxed::Box::new(
13869 <ConstructSignature as ::treesitter_types::FromNode>::from_node(node, src)?,
13870 ))),
13871 "export_statement" => Ok(Self::ExportStatement(::std::boxed::Box::new(
13872 <ExportStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
13873 ))),
13874 "index_signature" => Ok(Self::IndexSignature(::std::boxed::Box::new(
13875 <IndexSignature as ::treesitter_types::FromNode>::from_node(node, src)?,
13876 ))),
13877 "method_signature" => Ok(Self::MethodSignature(::std::boxed::Box::new(
13878 <MethodSignature as ::treesitter_types::FromNode>::from_node(node, src)?,
13879 ))),
13880 "property_signature" => Ok(Self::PropertySignature(::std::boxed::Box::new(
13881 <PropertySignature as ::treesitter_types::FromNode>::from_node(node, src)?,
13882 ))),
13883 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13884 }
13885 }
13886}
13887impl ::treesitter_types::Spanned for ObjectTypeChildren<'_> {
13888 fn span(&self) -> ::treesitter_types::Span {
13889 match self {
13890 Self::CallSignature(inner) => inner.span(),
13891 Self::ConstructSignature(inner) => inner.span(),
13892 Self::ExportStatement(inner) => inner.span(),
13893 Self::IndexSignature(inner) => inner.span(),
13894 Self::MethodSignature(inner) => inner.span(),
13895 Self::PropertySignature(inner) => inner.span(),
13896 }
13897 }
13898}
13899#[derive(Debug, Clone, PartialEq, Eq)]
13900pub enum OptionalParameterPattern<'tree> {
13901 Pattern(::std::boxed::Box<Pattern<'tree>>),
13902 This(::std::boxed::Box<This<'tree>>),
13903}
13904impl<'tree> ::treesitter_types::FromNode<'tree> for OptionalParameterPattern<'tree> {
13905 #[allow(clippy::collapsible_else_if)]
13906 fn from_node(
13907 node: ::tree_sitter::Node<'tree>,
13908 src: &'tree [u8],
13909 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13910 match node.kind() {
13911 "this" => Ok(Self::This(::std::boxed::Box::new(
13912 <This as ::treesitter_types::FromNode>::from_node(node, src)?,
13913 ))),
13914 _other => {
13915 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
13916 Ok(Self::Pattern(::std::boxed::Box::new(v)))
13917 } else {
13918 Err(::treesitter_types::ParseError::unexpected_kind(
13919 _other, node,
13920 ))
13921 }
13922 }
13923 }
13924 }
13925}
13926impl ::treesitter_types::Spanned for OptionalParameterPattern<'_> {
13927 fn span(&self) -> ::treesitter_types::Span {
13928 match self {
13929 Self::Pattern(inner) => inner.span(),
13930 Self::This(inner) => inner.span(),
13931 }
13932 }
13933}
13934#[derive(Debug, Clone, PartialEq, Eq)]
13935pub enum OptionalParameterChildren<'tree> {
13936 AccessibilityModifier(::std::boxed::Box<AccessibilityModifier<'tree>>),
13937 OverrideModifier(::std::boxed::Box<OverrideModifier<'tree>>),
13938}
13939impl<'tree> ::treesitter_types::FromNode<'tree> for OptionalParameterChildren<'tree> {
13940 #[allow(clippy::collapsible_else_if)]
13941 fn from_node(
13942 node: ::tree_sitter::Node<'tree>,
13943 src: &'tree [u8],
13944 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13945 match node.kind() {
13946 "accessibility_modifier" => Ok(Self::AccessibilityModifier(::std::boxed::Box::new(
13947 <AccessibilityModifier as ::treesitter_types::FromNode>::from_node(node, src)?,
13948 ))),
13949 "override_modifier" => Ok(Self::OverrideModifier(::std::boxed::Box::new(
13950 <OverrideModifier as ::treesitter_types::FromNode>::from_node(node, src)?,
13951 ))),
13952 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13953 }
13954 }
13955}
13956impl ::treesitter_types::Spanned for OptionalParameterChildren<'_> {
13957 fn span(&self) -> ::treesitter_types::Span {
13958 match self {
13959 Self::AccessibilityModifier(inner) => inner.span(),
13960 Self::OverrideModifier(inner) => inner.span(),
13961 }
13962 }
13963}
13964#[derive(Debug, Clone, PartialEq, Eq)]
13965pub enum PairKey<'tree> {
13966 ComputedPropertyName(::std::boxed::Box<ComputedPropertyName<'tree>>),
13967 Number(::std::boxed::Box<Number<'tree>>),
13968 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
13969 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
13970 String(::std::boxed::Box<String<'tree>>),
13971}
13972impl<'tree> ::treesitter_types::FromNode<'tree> for PairKey<'tree> {
13973 #[allow(clippy::collapsible_else_if)]
13974 fn from_node(
13975 node: ::tree_sitter::Node<'tree>,
13976 src: &'tree [u8],
13977 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13978 match node.kind() {
13979 "computed_property_name" => Ok(Self::ComputedPropertyName(::std::boxed::Box::new(
13980 <ComputedPropertyName as ::treesitter_types::FromNode>::from_node(node, src)?,
13981 ))),
13982 "number" => Ok(Self::Number(::std::boxed::Box::new(
13983 <Number as ::treesitter_types::FromNode>::from_node(node, src)?,
13984 ))),
13985 "private_property_identifier" => {
13986 Ok(Self::PrivatePropertyIdentifier(::std::boxed::Box::new(
13987 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
13988 node, src,
13989 )?,
13990 )))
13991 }
13992 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
13993 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
13994 ))),
13995 "string" => Ok(Self::String(::std::boxed::Box::new(
13996 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
13997 ))),
13998 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13999 }
14000 }
14001}
14002impl ::treesitter_types::Spanned for PairKey<'_> {
14003 fn span(&self) -> ::treesitter_types::Span {
14004 match self {
14005 Self::ComputedPropertyName(inner) => inner.span(),
14006 Self::Number(inner) => inner.span(),
14007 Self::PrivatePropertyIdentifier(inner) => inner.span(),
14008 Self::PropertyIdentifier(inner) => inner.span(),
14009 Self::String(inner) => inner.span(),
14010 }
14011 }
14012}
14013#[derive(Debug, Clone, PartialEq, Eq)]
14014pub enum PairPatternKey<'tree> {
14015 ComputedPropertyName(::std::boxed::Box<ComputedPropertyName<'tree>>),
14016 Number(::std::boxed::Box<Number<'tree>>),
14017 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
14018 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
14019 String(::std::boxed::Box<String<'tree>>),
14020}
14021impl<'tree> ::treesitter_types::FromNode<'tree> for PairPatternKey<'tree> {
14022 #[allow(clippy::collapsible_else_if)]
14023 fn from_node(
14024 node: ::tree_sitter::Node<'tree>,
14025 src: &'tree [u8],
14026 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14027 match node.kind() {
14028 "computed_property_name" => Ok(Self::ComputedPropertyName(::std::boxed::Box::new(
14029 <ComputedPropertyName as ::treesitter_types::FromNode>::from_node(node, src)?,
14030 ))),
14031 "number" => Ok(Self::Number(::std::boxed::Box::new(
14032 <Number as ::treesitter_types::FromNode>::from_node(node, src)?,
14033 ))),
14034 "private_property_identifier" => {
14035 Ok(Self::PrivatePropertyIdentifier(::std::boxed::Box::new(
14036 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
14037 node, src,
14038 )?,
14039 )))
14040 }
14041 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
14042 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
14043 ))),
14044 "string" => Ok(Self::String(::std::boxed::Box::new(
14045 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
14046 ))),
14047 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14048 }
14049 }
14050}
14051impl ::treesitter_types::Spanned for PairPatternKey<'_> {
14052 fn span(&self) -> ::treesitter_types::Span {
14053 match self {
14054 Self::ComputedPropertyName(inner) => inner.span(),
14055 Self::Number(inner) => inner.span(),
14056 Self::PrivatePropertyIdentifier(inner) => inner.span(),
14057 Self::PropertyIdentifier(inner) => inner.span(),
14058 Self::String(inner) => inner.span(),
14059 }
14060 }
14061}
14062#[derive(Debug, Clone, PartialEq, Eq)]
14063pub enum PairPatternValue<'tree> {
14064 AssignmentPattern(::std::boxed::Box<AssignmentPattern<'tree>>),
14065 Pattern(::std::boxed::Box<Pattern<'tree>>),
14066}
14067impl<'tree> ::treesitter_types::FromNode<'tree> for PairPatternValue<'tree> {
14068 #[allow(clippy::collapsible_else_if)]
14069 fn from_node(
14070 node: ::tree_sitter::Node<'tree>,
14071 src: &'tree [u8],
14072 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14073 match node.kind() {
14074 "assignment_pattern" => Ok(Self::AssignmentPattern(::std::boxed::Box::new(
14075 <AssignmentPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
14076 ))),
14077 _other => {
14078 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
14079 Ok(Self::Pattern(::std::boxed::Box::new(v)))
14080 } else {
14081 Err(::treesitter_types::ParseError::unexpected_kind(
14082 _other, node,
14083 ))
14084 }
14085 }
14086 }
14087 }
14088}
14089impl ::treesitter_types::Spanned for PairPatternValue<'_> {
14090 fn span(&self) -> ::treesitter_types::Span {
14091 match self {
14092 Self::AssignmentPattern(inner) => inner.span(),
14093 Self::Pattern(inner) => inner.span(),
14094 }
14095 }
14096}
14097#[derive(Debug, Clone, PartialEq, Eq)]
14098pub enum ParenthesizedExpressionChildren<'tree> {
14099 CallExpression(::std::boxed::Box<CallExpression<'tree>>),
14100 Expression(::std::boxed::Box<Expression<'tree>>),
14101 Identifier(::std::boxed::Box<Identifier<'tree>>),
14102 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
14103 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
14104}
14105impl<'tree> ::treesitter_types::FromNode<'tree> for ParenthesizedExpressionChildren<'tree> {
14106 #[allow(clippy::collapsible_else_if)]
14107 fn from_node(
14108 node: ::tree_sitter::Node<'tree>,
14109 src: &'tree [u8],
14110 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14111 match node.kind() {
14112 "call_expression" => Ok(Self::CallExpression(::std::boxed::Box::new(
14113 <CallExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
14114 ))),
14115 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
14116 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
14117 ))),
14118 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
14119 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
14120 ))),
14121 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
14122 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
14123 ))),
14124 _other => {
14125 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
14126 Ok(Self::Expression(::std::boxed::Box::new(v)))
14127 } else {
14128 Err(::treesitter_types::ParseError::unexpected_kind(
14129 _other, node,
14130 ))
14131 }
14132 }
14133 }
14134 }
14135}
14136impl ::treesitter_types::Spanned for ParenthesizedExpressionChildren<'_> {
14137 fn span(&self) -> ::treesitter_types::Span {
14138 match self {
14139 Self::CallExpression(inner) => inner.span(),
14140 Self::Expression(inner) => inner.span(),
14141 Self::Identifier(inner) => inner.span(),
14142 Self::MemberExpression(inner) => inner.span(),
14143 Self::SequenceExpression(inner) => inner.span(),
14144 }
14145 }
14146}
14147#[derive(Debug, Clone, PartialEq, Eq)]
14148pub enum ProgramChildren<'tree> {
14149 HashBangLine(::std::boxed::Box<HashBangLine<'tree>>),
14150 Statement(::std::boxed::Box<Statement<'tree>>),
14151}
14152impl<'tree> ::treesitter_types::FromNode<'tree> for ProgramChildren<'tree> {
14153 #[allow(clippy::collapsible_else_if)]
14154 fn from_node(
14155 node: ::tree_sitter::Node<'tree>,
14156 src: &'tree [u8],
14157 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14158 match node.kind() {
14159 "hash_bang_line" => Ok(Self::HashBangLine(::std::boxed::Box::new(
14160 <HashBangLine as ::treesitter_types::FromNode>::from_node(node, src)?,
14161 ))),
14162 _other => {
14163 if let Ok(v) = <Statement as ::treesitter_types::FromNode>::from_node(node, src) {
14164 Ok(Self::Statement(::std::boxed::Box::new(v)))
14165 } else {
14166 Err(::treesitter_types::ParseError::unexpected_kind(
14167 _other, node,
14168 ))
14169 }
14170 }
14171 }
14172 }
14173}
14174impl ::treesitter_types::Spanned for ProgramChildren<'_> {
14175 fn span(&self) -> ::treesitter_types::Span {
14176 match self {
14177 Self::HashBangLine(inner) => inner.span(),
14178 Self::Statement(inner) => inner.span(),
14179 }
14180 }
14181}
14182#[derive(Debug, Clone, PartialEq, Eq)]
14183pub enum PropertySignatureName<'tree> {
14184 ComputedPropertyName(::std::boxed::Box<ComputedPropertyName<'tree>>),
14185 Number(::std::boxed::Box<Number<'tree>>),
14186 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
14187 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
14188 String(::std::boxed::Box<String<'tree>>),
14189}
14190impl<'tree> ::treesitter_types::FromNode<'tree> for PropertySignatureName<'tree> {
14191 #[allow(clippy::collapsible_else_if)]
14192 fn from_node(
14193 node: ::tree_sitter::Node<'tree>,
14194 src: &'tree [u8],
14195 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14196 match node.kind() {
14197 "computed_property_name" => Ok(Self::ComputedPropertyName(::std::boxed::Box::new(
14198 <ComputedPropertyName as ::treesitter_types::FromNode>::from_node(node, src)?,
14199 ))),
14200 "number" => Ok(Self::Number(::std::boxed::Box::new(
14201 <Number as ::treesitter_types::FromNode>::from_node(node, src)?,
14202 ))),
14203 "private_property_identifier" => {
14204 Ok(Self::PrivatePropertyIdentifier(::std::boxed::Box::new(
14205 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
14206 node, src,
14207 )?,
14208 )))
14209 }
14210 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
14211 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
14212 ))),
14213 "string" => Ok(Self::String(::std::boxed::Box::new(
14214 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
14215 ))),
14216 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14217 }
14218 }
14219}
14220impl ::treesitter_types::Spanned for PropertySignatureName<'_> {
14221 fn span(&self) -> ::treesitter_types::Span {
14222 match self {
14223 Self::ComputedPropertyName(inner) => inner.span(),
14224 Self::Number(inner) => inner.span(),
14225 Self::PrivatePropertyIdentifier(inner) => inner.span(),
14226 Self::PropertyIdentifier(inner) => inner.span(),
14227 Self::String(inner) => inner.span(),
14228 }
14229 }
14230}
14231#[derive(Debug, Clone, PartialEq, Eq)]
14232pub enum PropertySignatureChildren<'tree> {
14233 AccessibilityModifier(::std::boxed::Box<AccessibilityModifier<'tree>>),
14234 OverrideModifier(::std::boxed::Box<OverrideModifier<'tree>>),
14235}
14236impl<'tree> ::treesitter_types::FromNode<'tree> for PropertySignatureChildren<'tree> {
14237 #[allow(clippy::collapsible_else_if)]
14238 fn from_node(
14239 node: ::tree_sitter::Node<'tree>,
14240 src: &'tree [u8],
14241 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14242 match node.kind() {
14243 "accessibility_modifier" => Ok(Self::AccessibilityModifier(::std::boxed::Box::new(
14244 <AccessibilityModifier as ::treesitter_types::FromNode>::from_node(node, src)?,
14245 ))),
14246 "override_modifier" => Ok(Self::OverrideModifier(::std::boxed::Box::new(
14247 <OverrideModifier as ::treesitter_types::FromNode>::from_node(node, src)?,
14248 ))),
14249 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14250 }
14251 }
14252}
14253impl ::treesitter_types::Spanned for PropertySignatureChildren<'_> {
14254 fn span(&self) -> ::treesitter_types::Span {
14255 match self {
14256 Self::AccessibilityModifier(inner) => inner.span(),
14257 Self::OverrideModifier(inner) => inner.span(),
14258 }
14259 }
14260}
14261#[derive(Debug, Clone, PartialEq, Eq)]
14262pub enum PublicFieldDefinitionName<'tree> {
14263 ComputedPropertyName(::std::boxed::Box<ComputedPropertyName<'tree>>),
14264 Number(::std::boxed::Box<Number<'tree>>),
14265 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
14266 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
14267 String(::std::boxed::Box<String<'tree>>),
14268}
14269impl<'tree> ::treesitter_types::FromNode<'tree> for PublicFieldDefinitionName<'tree> {
14270 #[allow(clippy::collapsible_else_if)]
14271 fn from_node(
14272 node: ::tree_sitter::Node<'tree>,
14273 src: &'tree [u8],
14274 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14275 match node.kind() {
14276 "computed_property_name" => Ok(Self::ComputedPropertyName(::std::boxed::Box::new(
14277 <ComputedPropertyName as ::treesitter_types::FromNode>::from_node(node, src)?,
14278 ))),
14279 "number" => Ok(Self::Number(::std::boxed::Box::new(
14280 <Number as ::treesitter_types::FromNode>::from_node(node, src)?,
14281 ))),
14282 "private_property_identifier" => {
14283 Ok(Self::PrivatePropertyIdentifier(::std::boxed::Box::new(
14284 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
14285 node, src,
14286 )?,
14287 )))
14288 }
14289 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
14290 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
14291 ))),
14292 "string" => Ok(Self::String(::std::boxed::Box::new(
14293 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
14294 ))),
14295 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14296 }
14297 }
14298}
14299impl ::treesitter_types::Spanned for PublicFieldDefinitionName<'_> {
14300 fn span(&self) -> ::treesitter_types::Span {
14301 match self {
14302 Self::ComputedPropertyName(inner) => inner.span(),
14303 Self::Number(inner) => inner.span(),
14304 Self::PrivatePropertyIdentifier(inner) => inner.span(),
14305 Self::PropertyIdentifier(inner) => inner.span(),
14306 Self::String(inner) => inner.span(),
14307 }
14308 }
14309}
14310#[derive(Debug, Clone, PartialEq, Eq)]
14311pub enum PublicFieldDefinitionChildren<'tree> {
14312 AccessibilityModifier(::std::boxed::Box<AccessibilityModifier<'tree>>),
14313 OverrideModifier(::std::boxed::Box<OverrideModifier<'tree>>),
14314}
14315impl<'tree> ::treesitter_types::FromNode<'tree> for PublicFieldDefinitionChildren<'tree> {
14316 #[allow(clippy::collapsible_else_if)]
14317 fn from_node(
14318 node: ::tree_sitter::Node<'tree>,
14319 src: &'tree [u8],
14320 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14321 match node.kind() {
14322 "accessibility_modifier" => Ok(Self::AccessibilityModifier(::std::boxed::Box::new(
14323 <AccessibilityModifier as ::treesitter_types::FromNode>::from_node(node, src)?,
14324 ))),
14325 "override_modifier" => Ok(Self::OverrideModifier(::std::boxed::Box::new(
14326 <OverrideModifier as ::treesitter_types::FromNode>::from_node(node, src)?,
14327 ))),
14328 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14329 }
14330 }
14331}
14332impl ::treesitter_types::Spanned for PublicFieldDefinitionChildren<'_> {
14333 fn span(&self) -> ::treesitter_types::Span {
14334 match self {
14335 Self::AccessibilityModifier(inner) => inner.span(),
14336 Self::OverrideModifier(inner) => inner.span(),
14337 }
14338 }
14339}
14340#[derive(Debug, Clone, PartialEq, Eq)]
14341pub enum RequiredParameterName<'tree> {
14342 Identifier(::std::boxed::Box<Identifier<'tree>>),
14343 RestPattern(::std::boxed::Box<RestPattern<'tree>>),
14344}
14345impl<'tree> ::treesitter_types::FromNode<'tree> for RequiredParameterName<'tree> {
14346 #[allow(clippy::collapsible_else_if)]
14347 fn from_node(
14348 node: ::tree_sitter::Node<'tree>,
14349 src: &'tree [u8],
14350 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14351 match node.kind() {
14352 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
14353 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
14354 ))),
14355 "rest_pattern" => Ok(Self::RestPattern(::std::boxed::Box::new(
14356 <RestPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
14357 ))),
14358 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14359 }
14360 }
14361}
14362impl ::treesitter_types::Spanned for RequiredParameterName<'_> {
14363 fn span(&self) -> ::treesitter_types::Span {
14364 match self {
14365 Self::Identifier(inner) => inner.span(),
14366 Self::RestPattern(inner) => inner.span(),
14367 }
14368 }
14369}
14370#[derive(Debug, Clone, PartialEq, Eq)]
14371pub enum RequiredParameterPattern<'tree> {
14372 Pattern(::std::boxed::Box<Pattern<'tree>>),
14373 This(::std::boxed::Box<This<'tree>>),
14374}
14375impl<'tree> ::treesitter_types::FromNode<'tree> for RequiredParameterPattern<'tree> {
14376 #[allow(clippy::collapsible_else_if)]
14377 fn from_node(
14378 node: ::tree_sitter::Node<'tree>,
14379 src: &'tree [u8],
14380 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14381 match node.kind() {
14382 "this" => Ok(Self::This(::std::boxed::Box::new(
14383 <This as ::treesitter_types::FromNode>::from_node(node, src)?,
14384 ))),
14385 _other => {
14386 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
14387 Ok(Self::Pattern(::std::boxed::Box::new(v)))
14388 } else {
14389 Err(::treesitter_types::ParseError::unexpected_kind(
14390 _other, node,
14391 ))
14392 }
14393 }
14394 }
14395 }
14396}
14397impl ::treesitter_types::Spanned for RequiredParameterPattern<'_> {
14398 fn span(&self) -> ::treesitter_types::Span {
14399 match self {
14400 Self::Pattern(inner) => inner.span(),
14401 Self::This(inner) => inner.span(),
14402 }
14403 }
14404}
14405#[derive(Debug, Clone, PartialEq, Eq)]
14406pub enum RequiredParameterChildren<'tree> {
14407 AccessibilityModifier(::std::boxed::Box<AccessibilityModifier<'tree>>),
14408 OverrideModifier(::std::boxed::Box<OverrideModifier<'tree>>),
14409}
14410impl<'tree> ::treesitter_types::FromNode<'tree> for RequiredParameterChildren<'tree> {
14411 #[allow(clippy::collapsible_else_if)]
14412 fn from_node(
14413 node: ::tree_sitter::Node<'tree>,
14414 src: &'tree [u8],
14415 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14416 match node.kind() {
14417 "accessibility_modifier" => Ok(Self::AccessibilityModifier(::std::boxed::Box::new(
14418 <AccessibilityModifier as ::treesitter_types::FromNode>::from_node(node, src)?,
14419 ))),
14420 "override_modifier" => Ok(Self::OverrideModifier(::std::boxed::Box::new(
14421 <OverrideModifier as ::treesitter_types::FromNode>::from_node(node, src)?,
14422 ))),
14423 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14424 }
14425 }
14426}
14427impl ::treesitter_types::Spanned for RequiredParameterChildren<'_> {
14428 fn span(&self) -> ::treesitter_types::Span {
14429 match self {
14430 Self::AccessibilityModifier(inner) => inner.span(),
14431 Self::OverrideModifier(inner) => inner.span(),
14432 }
14433 }
14434}
14435#[derive(Debug, Clone, PartialEq, Eq)]
14436pub enum RestPatternChildren<'tree> {
14437 ArrayPattern(::std::boxed::Box<ArrayPattern<'tree>>),
14438 Identifier(::std::boxed::Box<Identifier<'tree>>),
14439 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
14440 NonNullExpression(::std::boxed::Box<NonNullExpression<'tree>>),
14441 ObjectPattern(::std::boxed::Box<ObjectPattern<'tree>>),
14442 SubscriptExpression(::std::boxed::Box<SubscriptExpression<'tree>>),
14443 Undefined(::std::boxed::Box<Undefined<'tree>>),
14444}
14445impl<'tree> ::treesitter_types::FromNode<'tree> for RestPatternChildren<'tree> {
14446 #[allow(clippy::collapsible_else_if)]
14447 fn from_node(
14448 node: ::tree_sitter::Node<'tree>,
14449 src: &'tree [u8],
14450 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14451 match node.kind() {
14452 "array_pattern" => Ok(Self::ArrayPattern(::std::boxed::Box::new(
14453 <ArrayPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
14454 ))),
14455 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
14456 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
14457 ))),
14458 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
14459 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
14460 ))),
14461 "non_null_expression" => Ok(Self::NonNullExpression(::std::boxed::Box::new(
14462 <NonNullExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
14463 ))),
14464 "object_pattern" => Ok(Self::ObjectPattern(::std::boxed::Box::new(
14465 <ObjectPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
14466 ))),
14467 "subscript_expression" => Ok(Self::SubscriptExpression(::std::boxed::Box::new(
14468 <SubscriptExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
14469 ))),
14470 "undefined" => Ok(Self::Undefined(::std::boxed::Box::new(
14471 <Undefined as ::treesitter_types::FromNode>::from_node(node, src)?,
14472 ))),
14473 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14474 }
14475 }
14476}
14477impl ::treesitter_types::Spanned for RestPatternChildren<'_> {
14478 fn span(&self) -> ::treesitter_types::Span {
14479 match self {
14480 Self::ArrayPattern(inner) => inner.span(),
14481 Self::Identifier(inner) => inner.span(),
14482 Self::MemberExpression(inner) => inner.span(),
14483 Self::NonNullExpression(inner) => inner.span(),
14484 Self::ObjectPattern(inner) => inner.span(),
14485 Self::SubscriptExpression(inner) => inner.span(),
14486 Self::Undefined(inner) => inner.span(),
14487 }
14488 }
14489}
14490#[derive(Debug, Clone, PartialEq, Eq)]
14491pub enum ReturnStatementChildren<'tree> {
14492 Expression(::std::boxed::Box<Expression<'tree>>),
14493 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
14494}
14495impl<'tree> ::treesitter_types::FromNode<'tree> for ReturnStatementChildren<'tree> {
14496 #[allow(clippy::collapsible_else_if)]
14497 fn from_node(
14498 node: ::tree_sitter::Node<'tree>,
14499 src: &'tree [u8],
14500 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14501 match node.kind() {
14502 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
14503 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
14504 ))),
14505 _other => {
14506 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
14507 Ok(Self::Expression(::std::boxed::Box::new(v)))
14508 } else {
14509 Err(::treesitter_types::ParseError::unexpected_kind(
14510 _other, node,
14511 ))
14512 }
14513 }
14514 }
14515 }
14516}
14517impl ::treesitter_types::Spanned for ReturnStatementChildren<'_> {
14518 fn span(&self) -> ::treesitter_types::Span {
14519 match self {
14520 Self::Expression(inner) => inner.span(),
14521 Self::SequenceExpression(inner) => inner.span(),
14522 }
14523 }
14524}
14525#[derive(Debug, Clone, PartialEq, Eq)]
14526pub enum SatisfiesExpressionChildren<'tree> {
14527 Expression(::std::boxed::Box<Expression<'tree>>),
14528 Type(::std::boxed::Box<Type<'tree>>),
14529}
14530impl<'tree> ::treesitter_types::FromNode<'tree> for SatisfiesExpressionChildren<'tree> {
14531 #[allow(clippy::collapsible_else_if)]
14532 fn from_node(
14533 node: ::tree_sitter::Node<'tree>,
14534 src: &'tree [u8],
14535 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14536 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
14537 Ok(Self::Expression(::std::boxed::Box::new(v)))
14538 } else {
14539 if let Ok(v) = <Type as ::treesitter_types::FromNode>::from_node(node, src) {
14540 Ok(Self::Type(::std::boxed::Box::new(v)))
14541 } else {
14542 Err(::treesitter_types::ParseError::unexpected_kind(
14543 node.kind(),
14544 node,
14545 ))
14546 }
14547 }
14548 }
14549}
14550impl ::treesitter_types::Spanned for SatisfiesExpressionChildren<'_> {
14551 fn span(&self) -> ::treesitter_types::Span {
14552 match self {
14553 Self::Expression(inner) => inner.span(),
14554 Self::Type(inner) => inner.span(),
14555 }
14556 }
14557}
14558#[derive(Debug, Clone, PartialEq, Eq)]
14559pub enum StringChildren<'tree> {
14560 EscapeSequence(::std::boxed::Box<EscapeSequence<'tree>>),
14561 StringFragment(::std::boxed::Box<StringFragment<'tree>>),
14562}
14563impl<'tree> ::treesitter_types::FromNode<'tree> for StringChildren<'tree> {
14564 #[allow(clippy::collapsible_else_if)]
14565 fn from_node(
14566 node: ::tree_sitter::Node<'tree>,
14567 src: &'tree [u8],
14568 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14569 match node.kind() {
14570 "escape_sequence" => Ok(Self::EscapeSequence(::std::boxed::Box::new(
14571 <EscapeSequence as ::treesitter_types::FromNode>::from_node(node, src)?,
14572 ))),
14573 "string_fragment" => Ok(Self::StringFragment(::std::boxed::Box::new(
14574 <StringFragment as ::treesitter_types::FromNode>::from_node(node, src)?,
14575 ))),
14576 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14577 }
14578 }
14579}
14580impl ::treesitter_types::Spanned for StringChildren<'_> {
14581 fn span(&self) -> ::treesitter_types::Span {
14582 match self {
14583 Self::EscapeSequence(inner) => inner.span(),
14584 Self::StringFragment(inner) => inner.span(),
14585 }
14586 }
14587}
14588#[derive(Debug, Clone, PartialEq, Eq)]
14589pub enum SubscriptExpressionIndex<'tree> {
14590 Expression(::std::boxed::Box<Expression<'tree>>),
14591 Number(::std::boxed::Box<Number<'tree>>),
14592 PredefinedType(::std::boxed::Box<PredefinedType<'tree>>),
14593 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
14594 String(::std::boxed::Box<String<'tree>>),
14595}
14596impl<'tree> ::treesitter_types::FromNode<'tree> for SubscriptExpressionIndex<'tree> {
14597 #[allow(clippy::collapsible_else_if)]
14598 fn from_node(
14599 node: ::tree_sitter::Node<'tree>,
14600 src: &'tree [u8],
14601 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14602 match node.kind() {
14603 "number" => Ok(Self::Number(::std::boxed::Box::new(
14604 <Number as ::treesitter_types::FromNode>::from_node(node, src)?,
14605 ))),
14606 "predefined_type" => Ok(Self::PredefinedType(::std::boxed::Box::new(
14607 <PredefinedType as ::treesitter_types::FromNode>::from_node(node, src)?,
14608 ))),
14609 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
14610 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
14611 ))),
14612 "string" => Ok(Self::String(::std::boxed::Box::new(
14613 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
14614 ))),
14615 _other => {
14616 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
14617 Ok(Self::Expression(::std::boxed::Box::new(v)))
14618 } else {
14619 Err(::treesitter_types::ParseError::unexpected_kind(
14620 _other, node,
14621 ))
14622 }
14623 }
14624 }
14625 }
14626}
14627impl ::treesitter_types::Spanned for SubscriptExpressionIndex<'_> {
14628 fn span(&self) -> ::treesitter_types::Span {
14629 match self {
14630 Self::Expression(inner) => inner.span(),
14631 Self::Number(inner) => inner.span(),
14632 Self::PredefinedType(inner) => inner.span(),
14633 Self::SequenceExpression(inner) => inner.span(),
14634 Self::String(inner) => inner.span(),
14635 }
14636 }
14637}
14638#[derive(Debug, Clone, PartialEq, Eq)]
14639pub enum SwitchBodyChildren<'tree> {
14640 SwitchCase(::std::boxed::Box<SwitchCase<'tree>>),
14641 SwitchDefault(::std::boxed::Box<SwitchDefault<'tree>>),
14642}
14643impl<'tree> ::treesitter_types::FromNode<'tree> for SwitchBodyChildren<'tree> {
14644 #[allow(clippy::collapsible_else_if)]
14645 fn from_node(
14646 node: ::tree_sitter::Node<'tree>,
14647 src: &'tree [u8],
14648 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14649 match node.kind() {
14650 "switch_case" => Ok(Self::SwitchCase(::std::boxed::Box::new(
14651 <SwitchCase as ::treesitter_types::FromNode>::from_node(node, src)?,
14652 ))),
14653 "switch_default" => Ok(Self::SwitchDefault(::std::boxed::Box::new(
14654 <SwitchDefault as ::treesitter_types::FromNode>::from_node(node, src)?,
14655 ))),
14656 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14657 }
14658 }
14659}
14660impl ::treesitter_types::Spanned for SwitchBodyChildren<'_> {
14661 fn span(&self) -> ::treesitter_types::Span {
14662 match self {
14663 Self::SwitchCase(inner) => inner.span(),
14664 Self::SwitchDefault(inner) => inner.span(),
14665 }
14666 }
14667}
14668#[derive(Debug, Clone, PartialEq, Eq)]
14669pub enum SwitchCaseValue<'tree> {
14670 Expression(::std::boxed::Box<Expression<'tree>>),
14671 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
14672}
14673impl<'tree> ::treesitter_types::FromNode<'tree> for SwitchCaseValue<'tree> {
14674 #[allow(clippy::collapsible_else_if)]
14675 fn from_node(
14676 node: ::tree_sitter::Node<'tree>,
14677 src: &'tree [u8],
14678 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14679 match node.kind() {
14680 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
14681 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
14682 ))),
14683 _other => {
14684 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
14685 Ok(Self::Expression(::std::boxed::Box::new(v)))
14686 } else {
14687 Err(::treesitter_types::ParseError::unexpected_kind(
14688 _other, node,
14689 ))
14690 }
14691 }
14692 }
14693 }
14694}
14695impl ::treesitter_types::Spanned for SwitchCaseValue<'_> {
14696 fn span(&self) -> ::treesitter_types::Span {
14697 match self {
14698 Self::Expression(inner) => inner.span(),
14699 Self::SequenceExpression(inner) => inner.span(),
14700 }
14701 }
14702}
14703#[derive(Debug, Clone, PartialEq, Eq)]
14704pub enum TemplateLiteralTypeChildren<'tree> {
14705 StringFragment(::std::boxed::Box<StringFragment<'tree>>),
14706 TemplateType(::std::boxed::Box<TemplateType<'tree>>),
14707}
14708impl<'tree> ::treesitter_types::FromNode<'tree> for TemplateLiteralTypeChildren<'tree> {
14709 #[allow(clippy::collapsible_else_if)]
14710 fn from_node(
14711 node: ::tree_sitter::Node<'tree>,
14712 src: &'tree [u8],
14713 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14714 match node.kind() {
14715 "string_fragment" => Ok(Self::StringFragment(::std::boxed::Box::new(
14716 <StringFragment as ::treesitter_types::FromNode>::from_node(node, src)?,
14717 ))),
14718 "template_type" => Ok(Self::TemplateType(::std::boxed::Box::new(
14719 <TemplateType as ::treesitter_types::FromNode>::from_node(node, src)?,
14720 ))),
14721 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14722 }
14723 }
14724}
14725impl ::treesitter_types::Spanned for TemplateLiteralTypeChildren<'_> {
14726 fn span(&self) -> ::treesitter_types::Span {
14727 match self {
14728 Self::StringFragment(inner) => inner.span(),
14729 Self::TemplateType(inner) => inner.span(),
14730 }
14731 }
14732}
14733#[derive(Debug, Clone, PartialEq, Eq)]
14734pub enum TemplateStringChildren<'tree> {
14735 EscapeSequence(::std::boxed::Box<EscapeSequence<'tree>>),
14736 StringFragment(::std::boxed::Box<StringFragment<'tree>>),
14737 TemplateSubstitution(::std::boxed::Box<TemplateSubstitution<'tree>>),
14738}
14739impl<'tree> ::treesitter_types::FromNode<'tree> for TemplateStringChildren<'tree> {
14740 #[allow(clippy::collapsible_else_if)]
14741 fn from_node(
14742 node: ::tree_sitter::Node<'tree>,
14743 src: &'tree [u8],
14744 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14745 match node.kind() {
14746 "escape_sequence" => Ok(Self::EscapeSequence(::std::boxed::Box::new(
14747 <EscapeSequence as ::treesitter_types::FromNode>::from_node(node, src)?,
14748 ))),
14749 "string_fragment" => Ok(Self::StringFragment(::std::boxed::Box::new(
14750 <StringFragment as ::treesitter_types::FromNode>::from_node(node, src)?,
14751 ))),
14752 "template_substitution" => Ok(Self::TemplateSubstitution(::std::boxed::Box::new(
14753 <TemplateSubstitution as ::treesitter_types::FromNode>::from_node(node, src)?,
14754 ))),
14755 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14756 }
14757 }
14758}
14759impl ::treesitter_types::Spanned for TemplateStringChildren<'_> {
14760 fn span(&self) -> ::treesitter_types::Span {
14761 match self {
14762 Self::EscapeSequence(inner) => inner.span(),
14763 Self::StringFragment(inner) => inner.span(),
14764 Self::TemplateSubstitution(inner) => inner.span(),
14765 }
14766 }
14767}
14768#[derive(Debug, Clone, PartialEq, Eq)]
14769pub enum TemplateSubstitutionChildren<'tree> {
14770 Expression(::std::boxed::Box<Expression<'tree>>),
14771 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
14772}
14773impl<'tree> ::treesitter_types::FromNode<'tree> for TemplateSubstitutionChildren<'tree> {
14774 #[allow(clippy::collapsible_else_if)]
14775 fn from_node(
14776 node: ::tree_sitter::Node<'tree>,
14777 src: &'tree [u8],
14778 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14779 match node.kind() {
14780 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
14781 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
14782 ))),
14783 _other => {
14784 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
14785 Ok(Self::Expression(::std::boxed::Box::new(v)))
14786 } else {
14787 Err(::treesitter_types::ParseError::unexpected_kind(
14788 _other, node,
14789 ))
14790 }
14791 }
14792 }
14793 }
14794}
14795impl ::treesitter_types::Spanned for TemplateSubstitutionChildren<'_> {
14796 fn span(&self) -> ::treesitter_types::Span {
14797 match self {
14798 Self::Expression(inner) => inner.span(),
14799 Self::SequenceExpression(inner) => inner.span(),
14800 }
14801 }
14802}
14803#[derive(Debug, Clone, PartialEq, Eq)]
14804pub enum TemplateTypeChildren<'tree> {
14805 InferType(::std::boxed::Box<InferType<'tree>>),
14806 PrimaryType(::std::boxed::Box<PrimaryType<'tree>>),
14807}
14808impl<'tree> ::treesitter_types::FromNode<'tree> for TemplateTypeChildren<'tree> {
14809 #[allow(clippy::collapsible_else_if)]
14810 fn from_node(
14811 node: ::tree_sitter::Node<'tree>,
14812 src: &'tree [u8],
14813 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14814 match node.kind() {
14815 "infer_type" => Ok(Self::InferType(::std::boxed::Box::new(
14816 <InferType as ::treesitter_types::FromNode>::from_node(node, src)?,
14817 ))),
14818 _other => {
14819 if let Ok(v) = <PrimaryType as ::treesitter_types::FromNode>::from_node(node, src) {
14820 Ok(Self::PrimaryType(::std::boxed::Box::new(v)))
14821 } else {
14822 Err(::treesitter_types::ParseError::unexpected_kind(
14823 _other, node,
14824 ))
14825 }
14826 }
14827 }
14828 }
14829}
14830impl ::treesitter_types::Spanned for TemplateTypeChildren<'_> {
14831 fn span(&self) -> ::treesitter_types::Span {
14832 match self {
14833 Self::InferType(inner) => inner.span(),
14834 Self::PrimaryType(inner) => inner.span(),
14835 }
14836 }
14837}
14838#[derive(Debug, Clone, PartialEq, Eq)]
14839pub enum ThrowStatementChildren<'tree> {
14840 Expression(::std::boxed::Box<Expression<'tree>>),
14841 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
14842}
14843impl<'tree> ::treesitter_types::FromNode<'tree> for ThrowStatementChildren<'tree> {
14844 #[allow(clippy::collapsible_else_if)]
14845 fn from_node(
14846 node: ::tree_sitter::Node<'tree>,
14847 src: &'tree [u8],
14848 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14849 match node.kind() {
14850 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
14851 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
14852 ))),
14853 _other => {
14854 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
14855 Ok(Self::Expression(::std::boxed::Box::new(v)))
14856 } else {
14857 Err(::treesitter_types::ParseError::unexpected_kind(
14858 _other, node,
14859 ))
14860 }
14861 }
14862 }
14863 }
14864}
14865impl ::treesitter_types::Spanned for ThrowStatementChildren<'_> {
14866 fn span(&self) -> ::treesitter_types::Span {
14867 match self {
14868 Self::Expression(inner) => inner.span(),
14869 Self::SequenceExpression(inner) => inner.span(),
14870 }
14871 }
14872}
14873#[derive(Debug, Clone, PartialEq, Eq)]
14874pub enum TupleTypeChildren<'tree> {
14875 OptionalParameter(::std::boxed::Box<OptionalParameter<'tree>>),
14876 OptionalType(::std::boxed::Box<OptionalType<'tree>>),
14877 RequiredParameter(::std::boxed::Box<RequiredParameter<'tree>>),
14878 RestType(::std::boxed::Box<RestType<'tree>>),
14879 Type(::std::boxed::Box<Type<'tree>>),
14880}
14881impl<'tree> ::treesitter_types::FromNode<'tree> for TupleTypeChildren<'tree> {
14882 #[allow(clippy::collapsible_else_if)]
14883 fn from_node(
14884 node: ::tree_sitter::Node<'tree>,
14885 src: &'tree [u8],
14886 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14887 match node.kind() {
14888 "optional_parameter" => Ok(Self::OptionalParameter(::std::boxed::Box::new(
14889 <OptionalParameter as ::treesitter_types::FromNode>::from_node(node, src)?,
14890 ))),
14891 "optional_type" => Ok(Self::OptionalType(::std::boxed::Box::new(
14892 <OptionalType as ::treesitter_types::FromNode>::from_node(node, src)?,
14893 ))),
14894 "required_parameter" => Ok(Self::RequiredParameter(::std::boxed::Box::new(
14895 <RequiredParameter as ::treesitter_types::FromNode>::from_node(node, src)?,
14896 ))),
14897 "rest_type" => Ok(Self::RestType(::std::boxed::Box::new(
14898 <RestType as ::treesitter_types::FromNode>::from_node(node, src)?,
14899 ))),
14900 _other => {
14901 if let Ok(v) = <Type as ::treesitter_types::FromNode>::from_node(node, src) {
14902 Ok(Self::Type(::std::boxed::Box::new(v)))
14903 } else {
14904 Err(::treesitter_types::ParseError::unexpected_kind(
14905 _other, node,
14906 ))
14907 }
14908 }
14909 }
14910 }
14911}
14912impl ::treesitter_types::Spanned for TupleTypeChildren<'_> {
14913 fn span(&self) -> ::treesitter_types::Span {
14914 match self {
14915 Self::OptionalParameter(inner) => inner.span(),
14916 Self::OptionalType(inner) => inner.span(),
14917 Self::RequiredParameter(inner) => inner.span(),
14918 Self::RestType(inner) => inner.span(),
14919 Self::Type(inner) => inner.span(),
14920 }
14921 }
14922}
14923#[derive(Debug, Clone, PartialEq, Eq)]
14924pub enum TypeAssertionChildren<'tree> {
14925 Expression(::std::boxed::Box<Expression<'tree>>),
14926 TypeArguments(::std::boxed::Box<TypeArguments<'tree>>),
14927}
14928impl<'tree> ::treesitter_types::FromNode<'tree> for TypeAssertionChildren<'tree> {
14929 #[allow(clippy::collapsible_else_if)]
14930 fn from_node(
14931 node: ::tree_sitter::Node<'tree>,
14932 src: &'tree [u8],
14933 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14934 match node.kind() {
14935 "type_arguments" => Ok(Self::TypeArguments(::std::boxed::Box::new(
14936 <TypeArguments as ::treesitter_types::FromNode>::from_node(node, src)?,
14937 ))),
14938 _other => {
14939 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
14940 Ok(Self::Expression(::std::boxed::Box::new(v)))
14941 } else {
14942 Err(::treesitter_types::ParseError::unexpected_kind(
14943 _other, node,
14944 ))
14945 }
14946 }
14947 }
14948 }
14949}
14950impl ::treesitter_types::Spanned for TypeAssertionChildren<'_> {
14951 fn span(&self) -> ::treesitter_types::Span {
14952 match self {
14953 Self::Expression(inner) => inner.span(),
14954 Self::TypeArguments(inner) => inner.span(),
14955 }
14956 }
14957}
14958#[derive(Debug, Clone, PartialEq, Eq)]
14959pub enum TypePredicateName<'tree> {
14960 Identifier(::std::boxed::Box<Identifier<'tree>>),
14961 This(::std::boxed::Box<This<'tree>>),
14962}
14963impl<'tree> ::treesitter_types::FromNode<'tree> for TypePredicateName<'tree> {
14964 #[allow(clippy::collapsible_else_if)]
14965 fn from_node(
14966 node: ::tree_sitter::Node<'tree>,
14967 src: &'tree [u8],
14968 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14969 match node.kind() {
14970 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
14971 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
14972 ))),
14973 "this" => Ok(Self::This(::std::boxed::Box::new(
14974 <This as ::treesitter_types::FromNode>::from_node(node, src)?,
14975 ))),
14976 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14977 }
14978 }
14979}
14980impl ::treesitter_types::Spanned for TypePredicateName<'_> {
14981 fn span(&self) -> ::treesitter_types::Span {
14982 match self {
14983 Self::Identifier(inner) => inner.span(),
14984 Self::This(inner) => inner.span(),
14985 }
14986 }
14987}
14988#[derive(Debug, Clone, PartialEq, Eq)]
14989pub enum TypeQueryChildren<'tree> {
14990 CallExpression(::std::boxed::Box<CallExpression<'tree>>),
14991 Identifier(::std::boxed::Box<Identifier<'tree>>),
14992 InstantiationExpression(::std::boxed::Box<InstantiationExpression<'tree>>),
14993 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
14994 SubscriptExpression(::std::boxed::Box<SubscriptExpression<'tree>>),
14995 This(::std::boxed::Box<This<'tree>>),
14996}
14997impl<'tree> ::treesitter_types::FromNode<'tree> for TypeQueryChildren<'tree> {
14998 #[allow(clippy::collapsible_else_if)]
14999 fn from_node(
15000 node: ::tree_sitter::Node<'tree>,
15001 src: &'tree [u8],
15002 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15003 match node.kind() {
15004 "call_expression" => Ok(Self::CallExpression(::std::boxed::Box::new(
15005 <CallExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
15006 ))),
15007 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
15008 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
15009 ))),
15010 "instantiation_expression" => {
15011 Ok(Self::InstantiationExpression(::std::boxed::Box::new(
15012 <InstantiationExpression as ::treesitter_types::FromNode>::from_node(
15013 node, src,
15014 )?,
15015 )))
15016 }
15017 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
15018 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
15019 ))),
15020 "subscript_expression" => Ok(Self::SubscriptExpression(::std::boxed::Box::new(
15021 <SubscriptExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
15022 ))),
15023 "this" => Ok(Self::This(::std::boxed::Box::new(
15024 <This as ::treesitter_types::FromNode>::from_node(node, src)?,
15025 ))),
15026 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
15027 }
15028 }
15029}
15030impl ::treesitter_types::Spanned for TypeQueryChildren<'_> {
15031 fn span(&self) -> ::treesitter_types::Span {
15032 match self {
15033 Self::CallExpression(inner) => inner.span(),
15034 Self::Identifier(inner) => inner.span(),
15035 Self::InstantiationExpression(inner) => inner.span(),
15036 Self::MemberExpression(inner) => inner.span(),
15037 Self::SubscriptExpression(inner) => inner.span(),
15038 Self::This(inner) => inner.span(),
15039 }
15040 }
15041}
15042#[derive(Debug, Clone, PartialEq, Eq)]
15043pub enum UnaryExpressionArgument<'tree> {
15044 Expression(::std::boxed::Box<Expression<'tree>>),
15045 Number(::std::boxed::Box<Number<'tree>>),
15046}
15047impl<'tree> ::treesitter_types::FromNode<'tree> for UnaryExpressionArgument<'tree> {
15048 #[allow(clippy::collapsible_else_if)]
15049 fn from_node(
15050 node: ::tree_sitter::Node<'tree>,
15051 src: &'tree [u8],
15052 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15053 match node.kind() {
15054 "number" => Ok(Self::Number(::std::boxed::Box::new(
15055 <Number as ::treesitter_types::FromNode>::from_node(node, src)?,
15056 ))),
15057 _other => {
15058 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
15059 Ok(Self::Expression(::std::boxed::Box::new(v)))
15060 } else {
15061 Err(::treesitter_types::ParseError::unexpected_kind(
15062 _other, node,
15063 ))
15064 }
15065 }
15066 }
15067 }
15068}
15069impl ::treesitter_types::Spanned for UnaryExpressionArgument<'_> {
15070 fn span(&self) -> ::treesitter_types::Span {
15071 match self {
15072 Self::Expression(inner) => inner.span(),
15073 Self::Number(inner) => inner.span(),
15074 }
15075 }
15076}
15077#[derive(Debug, Clone, PartialEq, Eq)]
15078pub enum UnaryExpressionOperator {
15079 Bang(::treesitter_types::Span),
15080 Plus(::treesitter_types::Span),
15081 Minus(::treesitter_types::Span),
15082 Delete(::treesitter_types::Span),
15083 Typeof(::treesitter_types::Span),
15084 Void(::treesitter_types::Span),
15085 Tilde(::treesitter_types::Span),
15086}
15087impl<'tree> ::treesitter_types::FromNode<'tree> for UnaryExpressionOperator {
15088 #[allow(clippy::collapsible_else_if)]
15089 fn from_node(
15090 node: ::tree_sitter::Node<'tree>,
15091 _src: &'tree [u8],
15092 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15093 match node.kind() {
15094 "!" => Ok(Self::Bang(::treesitter_types::Span::from(node))),
15095 "+" => Ok(Self::Plus(::treesitter_types::Span::from(node))),
15096 "-" => Ok(Self::Minus(::treesitter_types::Span::from(node))),
15097 "delete" => Ok(Self::Delete(::treesitter_types::Span::from(node))),
15098 "typeof" => Ok(Self::Typeof(::treesitter_types::Span::from(node))),
15099 "void" => Ok(Self::Void(::treesitter_types::Span::from(node))),
15100 "~" => Ok(Self::Tilde(::treesitter_types::Span::from(node))),
15101 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
15102 }
15103 }
15104}
15105impl ::treesitter_types::Spanned for UnaryExpressionOperator {
15106 fn span(&self) -> ::treesitter_types::Span {
15107 match self {
15108 Self::Bang(span) => *span,
15109 Self::Plus(span) => *span,
15110 Self::Minus(span) => *span,
15111 Self::Delete(span) => *span,
15112 Self::Typeof(span) => *span,
15113 Self::Void(span) => *span,
15114 Self::Tilde(span) => *span,
15115 }
15116 }
15117}
15118#[derive(Debug, Clone, PartialEq, Eq)]
15119pub enum UpdateExpressionOperator {
15120 PlusPlus(::treesitter_types::Span),
15121 MinusMinus(::treesitter_types::Span),
15122}
15123impl<'tree> ::treesitter_types::FromNode<'tree> for UpdateExpressionOperator {
15124 #[allow(clippy::collapsible_else_if)]
15125 fn from_node(
15126 node: ::tree_sitter::Node<'tree>,
15127 _src: &'tree [u8],
15128 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15129 match node.kind() {
15130 "++" => Ok(Self::PlusPlus(::treesitter_types::Span::from(node))),
15131 "--" => Ok(Self::MinusMinus(::treesitter_types::Span::from(node))),
15132 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
15133 }
15134 }
15135}
15136impl ::treesitter_types::Spanned for UpdateExpressionOperator {
15137 fn span(&self) -> ::treesitter_types::Span {
15138 match self {
15139 Self::PlusPlus(span) => *span,
15140 Self::MinusMinus(span) => *span,
15141 }
15142 }
15143}
15144#[derive(Debug, Clone, PartialEq, Eq)]
15145pub enum VariableDeclaratorName<'tree> {
15146 ArrayPattern(::std::boxed::Box<ArrayPattern<'tree>>),
15147 Identifier(::std::boxed::Box<Identifier<'tree>>),
15148 ObjectPattern(::std::boxed::Box<ObjectPattern<'tree>>),
15149}
15150impl<'tree> ::treesitter_types::FromNode<'tree> for VariableDeclaratorName<'tree> {
15151 #[allow(clippy::collapsible_else_if)]
15152 fn from_node(
15153 node: ::tree_sitter::Node<'tree>,
15154 src: &'tree [u8],
15155 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15156 match node.kind() {
15157 "array_pattern" => Ok(Self::ArrayPattern(::std::boxed::Box::new(
15158 <ArrayPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
15159 ))),
15160 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
15161 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
15162 ))),
15163 "object_pattern" => Ok(Self::ObjectPattern(::std::boxed::Box::new(
15164 <ObjectPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
15165 ))),
15166 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
15167 }
15168 }
15169}
15170impl ::treesitter_types::Spanned for VariableDeclaratorName<'_> {
15171 fn span(&self) -> ::treesitter_types::Span {
15172 match self {
15173 Self::ArrayPattern(inner) => inner.span(),
15174 Self::Identifier(inner) => inner.span(),
15175 Self::ObjectPattern(inner) => inner.span(),
15176 }
15177 }
15178}
15179#[derive(Debug, Clone, PartialEq, Eq)]
15180pub enum AnyNode<'tree> {
15181 Declaration(Declaration<'tree>),
15182 Expression(Expression<'tree>),
15183 Pattern(Pattern<'tree>),
15184 PrimaryExpression(PrimaryExpression<'tree>),
15185 PrimaryType(PrimaryType<'tree>),
15186 Statement(Statement<'tree>),
15187 Type(Type<'tree>),
15188 AbstractClassDeclaration(AbstractClassDeclaration<'tree>),
15189 AbstractMethodSignature(AbstractMethodSignature<'tree>),
15190 AccessibilityModifier(AccessibilityModifier<'tree>),
15191 AddingTypeAnnotation(AddingTypeAnnotation<'tree>),
15192 AmbientDeclaration(AmbientDeclaration<'tree>),
15193 Arguments(Arguments<'tree>),
15194 Array(Array<'tree>),
15195 ArrayPattern(ArrayPattern<'tree>),
15196 ArrayType(ArrayType<'tree>),
15197 ArrowFunction(ArrowFunction<'tree>),
15198 AsExpression(AsExpression<'tree>),
15199 Asserts(Asserts<'tree>),
15200 AssertsAnnotation(AssertsAnnotation<'tree>),
15201 AssignmentExpression(AssignmentExpression<'tree>),
15202 AssignmentPattern(AssignmentPattern<'tree>),
15203 AugmentedAssignmentExpression(AugmentedAssignmentExpression<'tree>),
15204 AwaitExpression(AwaitExpression<'tree>),
15205 BinaryExpression(BinaryExpression<'tree>),
15206 BreakStatement(BreakStatement<'tree>),
15207 CallExpression(CallExpression<'tree>),
15208 CallSignature(CallSignature<'tree>),
15209 CatchClause(CatchClause<'tree>),
15210 Class(Class<'tree>),
15211 ClassBody(ClassBody<'tree>),
15212 ClassDeclaration(ClassDeclaration<'tree>),
15213 ClassHeritage(ClassHeritage<'tree>),
15214 ClassStaticBlock(ClassStaticBlock<'tree>),
15215 ComputedPropertyName(ComputedPropertyName<'tree>),
15216 ConditionalType(ConditionalType<'tree>),
15217 Constraint(Constraint<'tree>),
15218 ConstructSignature(ConstructSignature<'tree>),
15219 ConstructorType(ConstructorType<'tree>),
15220 ContinueStatement(ContinueStatement<'tree>),
15221 DebuggerStatement(DebuggerStatement<'tree>),
15222 Decorator(Decorator<'tree>),
15223 DefaultType(DefaultType<'tree>),
15224 DoStatement(DoStatement<'tree>),
15225 ElseClause(ElseClause<'tree>),
15226 EmptyStatement(EmptyStatement<'tree>),
15227 EnumAssignment(EnumAssignment<'tree>),
15228 EnumBody(EnumBody<'tree>),
15229 EnumDeclaration(EnumDeclaration<'tree>),
15230 ExistentialType(ExistentialType<'tree>),
15231 ExportClause(ExportClause<'tree>),
15232 ExportSpecifier(ExportSpecifier<'tree>),
15233 ExportStatement(ExportStatement<'tree>),
15234 ExpressionStatement(ExpressionStatement<'tree>),
15235 ExtendsClause(ExtendsClause<'tree>),
15236 ExtendsTypeClause(ExtendsTypeClause<'tree>),
15237 FinallyClause(FinallyClause<'tree>),
15238 FlowMaybeType(FlowMaybeType<'tree>),
15239 ForInStatement(ForInStatement<'tree>),
15240 ForStatement(ForStatement<'tree>),
15241 FormalParameters(FormalParameters<'tree>),
15242 FunctionDeclaration(FunctionDeclaration<'tree>),
15243 FunctionExpression(FunctionExpression<'tree>),
15244 FunctionSignature(FunctionSignature<'tree>),
15245 FunctionType(FunctionType<'tree>),
15246 GeneratorFunction(GeneratorFunction<'tree>),
15247 GeneratorFunctionDeclaration(GeneratorFunctionDeclaration<'tree>),
15248 GenericType(GenericType<'tree>),
15249 Identifier(Identifier<'tree>),
15250 IfStatement(IfStatement<'tree>),
15251 ImplementsClause(ImplementsClause<'tree>),
15252 Import(Import<'tree>),
15253 ImportAlias(ImportAlias<'tree>),
15254 ImportAttribute(ImportAttribute<'tree>),
15255 ImportClause(ImportClause<'tree>),
15256 ImportRequireClause(ImportRequireClause<'tree>),
15257 ImportSpecifier(ImportSpecifier<'tree>),
15258 ImportStatement(ImportStatement<'tree>),
15259 IndexSignature(IndexSignature<'tree>),
15260 IndexTypeQuery(IndexTypeQuery<'tree>),
15261 InferType(InferType<'tree>),
15262 InstantiationExpression(InstantiationExpression<'tree>),
15263 InterfaceBody(InterfaceBody<'tree>),
15264 InterfaceDeclaration(InterfaceDeclaration<'tree>),
15265 InternalModule(InternalModule<'tree>),
15266 IntersectionType(IntersectionType<'tree>),
15267 LabeledStatement(LabeledStatement<'tree>),
15268 LexicalDeclaration(LexicalDeclaration<'tree>),
15269 LiteralType(LiteralType<'tree>),
15270 LookupType(LookupType<'tree>),
15271 MappedTypeClause(MappedTypeClause<'tree>),
15272 MemberExpression(MemberExpression<'tree>),
15273 MetaProperty(MetaProperty<'tree>),
15274 MethodDefinition(MethodDefinition<'tree>),
15275 MethodSignature(MethodSignature<'tree>),
15276 Module(Module<'tree>),
15277 NamedImports(NamedImports<'tree>),
15278 NamespaceExport(NamespaceExport<'tree>),
15279 NamespaceImport(NamespaceImport<'tree>),
15280 NestedIdentifier(NestedIdentifier<'tree>),
15281 NestedTypeIdentifier(NestedTypeIdentifier<'tree>),
15282 NewExpression(NewExpression<'tree>),
15283 NonNullExpression(NonNullExpression<'tree>),
15284 Object(Object<'tree>),
15285 ObjectAssignmentPattern(ObjectAssignmentPattern<'tree>),
15286 ObjectPattern(ObjectPattern<'tree>),
15287 ObjectType(ObjectType<'tree>),
15288 OmittingTypeAnnotation(OmittingTypeAnnotation<'tree>),
15289 OptingTypeAnnotation(OptingTypeAnnotation<'tree>),
15290 OptionalChain(OptionalChain<'tree>),
15291 OptionalParameter(OptionalParameter<'tree>),
15292 OptionalType(OptionalType<'tree>),
15293 OverrideModifier(OverrideModifier<'tree>),
15294 Pair(Pair<'tree>),
15295 PairPattern(PairPattern<'tree>),
15296 ParenthesizedExpression(ParenthesizedExpression<'tree>),
15297 ParenthesizedType(ParenthesizedType<'tree>),
15298 PredefinedType(PredefinedType<'tree>),
15299 Program(Program<'tree>),
15300 PropertySignature(PropertySignature<'tree>),
15301 PublicFieldDefinition(PublicFieldDefinition<'tree>),
15302 ReadonlyType(ReadonlyType<'tree>),
15303 Regex(Regex<'tree>),
15304 RequiredParameter(RequiredParameter<'tree>),
15305 RestPattern(RestPattern<'tree>),
15306 RestType(RestType<'tree>),
15307 ReturnStatement(ReturnStatement<'tree>),
15308 SatisfiesExpression(SatisfiesExpression<'tree>),
15309 SequenceExpression(SequenceExpression<'tree>),
15310 SpreadElement(SpreadElement<'tree>),
15311 StatementBlock(StatementBlock<'tree>),
15312 String(String<'tree>),
15313 SubscriptExpression(SubscriptExpression<'tree>),
15314 SwitchBody(SwitchBody<'tree>),
15315 SwitchCase(SwitchCase<'tree>),
15316 SwitchDefault(SwitchDefault<'tree>),
15317 SwitchStatement(SwitchStatement<'tree>),
15318 TemplateLiteralType(TemplateLiteralType<'tree>),
15319 TemplateString(TemplateString<'tree>),
15320 TemplateSubstitution(TemplateSubstitution<'tree>),
15321 TemplateType(TemplateType<'tree>),
15322 TernaryExpression(TernaryExpression<'tree>),
15323 ThrowStatement(ThrowStatement<'tree>),
15324 TryStatement(TryStatement<'tree>),
15325 TupleType(TupleType<'tree>),
15326 TypeAliasDeclaration(TypeAliasDeclaration<'tree>),
15327 TypeAnnotation(TypeAnnotation<'tree>),
15328 TypeArguments(TypeArguments<'tree>),
15329 TypeAssertion(TypeAssertion<'tree>),
15330 TypeParameter(TypeParameter<'tree>),
15331 TypeParameters(TypeParameters<'tree>),
15332 TypePredicate(TypePredicate<'tree>),
15333 TypePredicateAnnotation(TypePredicateAnnotation<'tree>),
15334 TypeQuery(TypeQuery<'tree>),
15335 UnaryExpression(UnaryExpression<'tree>),
15336 UnionType(UnionType<'tree>),
15337 UpdateExpression(UpdateExpression<'tree>),
15338 VariableDeclaration(VariableDeclaration<'tree>),
15339 VariableDeclarator(VariableDeclarator<'tree>),
15340 WhileStatement(WhileStatement<'tree>),
15341 WithStatement(WithStatement<'tree>),
15342 YieldExpression(YieldExpression<'tree>),
15343 Comment(Comment<'tree>),
15344 EscapeSequence(EscapeSequence<'tree>),
15345 False(False<'tree>),
15346 HashBangLine(HashBangLine<'tree>),
15347 HtmlComment(HtmlComment<'tree>),
15348 Null(Null<'tree>),
15349 Number(Number<'tree>),
15350 PrivatePropertyIdentifier(PrivatePropertyIdentifier<'tree>),
15351 PropertyIdentifier(PropertyIdentifier<'tree>),
15352 RegexFlags(RegexFlags<'tree>),
15353 RegexPattern(RegexPattern<'tree>),
15354 ShorthandPropertyIdentifier(ShorthandPropertyIdentifier<'tree>),
15355 ShorthandPropertyIdentifierPattern(ShorthandPropertyIdentifierPattern<'tree>),
15356 StatementIdentifier(StatementIdentifier<'tree>),
15357 StringFragment(StringFragment<'tree>),
15358 Super(Super<'tree>),
15359 This(This<'tree>),
15360 ThisType(ThisType<'tree>),
15361 True(True<'tree>),
15362 TypeIdentifier(TypeIdentifier<'tree>),
15363 Undefined(Undefined<'tree>),
15364 Unknown(::tree_sitter::Node<'tree>),
15365}
15366impl<'tree> AnyNode<'tree> {
15367 pub fn from_node(node: ::tree_sitter::Node<'tree>, src: &'tree [u8]) -> Self {
15368 match node.kind() {
15369 "declaration" => <Declaration as ::treesitter_types::FromNode>::from_node(node, src)
15370 .map(Self::Declaration)
15371 .unwrap_or(Self::Unknown(node)),
15372 "expression" => <Expression as ::treesitter_types::FromNode>::from_node(node, src)
15373 .map(Self::Expression)
15374 .unwrap_or(Self::Unknown(node)),
15375 "pattern" => <Pattern as ::treesitter_types::FromNode>::from_node(node, src)
15376 .map(Self::Pattern)
15377 .unwrap_or(Self::Unknown(node)),
15378 "primary_expression" => {
15379 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(node, src)
15380 .map(Self::PrimaryExpression)
15381 .unwrap_or(Self::Unknown(node))
15382 }
15383 "primary_type" => <PrimaryType as ::treesitter_types::FromNode>::from_node(node, src)
15384 .map(Self::PrimaryType)
15385 .unwrap_or(Self::Unknown(node)),
15386 "statement" => <Statement as ::treesitter_types::FromNode>::from_node(node, src)
15387 .map(Self::Statement)
15388 .unwrap_or(Self::Unknown(node)),
15389 "type" => <Type as ::treesitter_types::FromNode>::from_node(node, src)
15390 .map(Self::Type)
15391 .unwrap_or(Self::Unknown(node)),
15392 "abstract_class_declaration" => {
15393 <AbstractClassDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
15394 .map(Self::AbstractClassDeclaration)
15395 .unwrap_or(Self::Unknown(node))
15396 }
15397 "abstract_method_signature" => {
15398 <AbstractMethodSignature as ::treesitter_types::FromNode>::from_node(node, src)
15399 .map(Self::AbstractMethodSignature)
15400 .unwrap_or(Self::Unknown(node))
15401 }
15402 "accessibility_modifier" => {
15403 <AccessibilityModifier as ::treesitter_types::FromNode>::from_node(node, src)
15404 .map(Self::AccessibilityModifier)
15405 .unwrap_or(Self::Unknown(node))
15406 }
15407 "adding_type_annotation" => {
15408 <AddingTypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
15409 .map(Self::AddingTypeAnnotation)
15410 .unwrap_or(Self::Unknown(node))
15411 }
15412 "ambient_declaration" => {
15413 <AmbientDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
15414 .map(Self::AmbientDeclaration)
15415 .unwrap_or(Self::Unknown(node))
15416 }
15417 "arguments" => <Arguments as ::treesitter_types::FromNode>::from_node(node, src)
15418 .map(Self::Arguments)
15419 .unwrap_or(Self::Unknown(node)),
15420 "array" => <Array as ::treesitter_types::FromNode>::from_node(node, src)
15421 .map(Self::Array)
15422 .unwrap_or(Self::Unknown(node)),
15423 "array_pattern" => <ArrayPattern as ::treesitter_types::FromNode>::from_node(node, src)
15424 .map(Self::ArrayPattern)
15425 .unwrap_or(Self::Unknown(node)),
15426 "array_type" => <ArrayType as ::treesitter_types::FromNode>::from_node(node, src)
15427 .map(Self::ArrayType)
15428 .unwrap_or(Self::Unknown(node)),
15429 "arrow_function" => {
15430 <ArrowFunction as ::treesitter_types::FromNode>::from_node(node, src)
15431 .map(Self::ArrowFunction)
15432 .unwrap_or(Self::Unknown(node))
15433 }
15434 "as_expression" => <AsExpression as ::treesitter_types::FromNode>::from_node(node, src)
15435 .map(Self::AsExpression)
15436 .unwrap_or(Self::Unknown(node)),
15437 "asserts" => <Asserts as ::treesitter_types::FromNode>::from_node(node, src)
15438 .map(Self::Asserts)
15439 .unwrap_or(Self::Unknown(node)),
15440 "asserts_annotation" => {
15441 <AssertsAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
15442 .map(Self::AssertsAnnotation)
15443 .unwrap_or(Self::Unknown(node))
15444 }
15445 "assignment_expression" => {
15446 <AssignmentExpression as ::treesitter_types::FromNode>::from_node(node, src)
15447 .map(Self::AssignmentExpression)
15448 .unwrap_or(Self::Unknown(node))
15449 }
15450 "assignment_pattern" => {
15451 <AssignmentPattern as ::treesitter_types::FromNode>::from_node(node, src)
15452 .map(Self::AssignmentPattern)
15453 .unwrap_or(Self::Unknown(node))
15454 }
15455 "augmented_assignment_expression" => {
15456 <AugmentedAssignmentExpression as ::treesitter_types::FromNode>::from_node(
15457 node, src,
15458 )
15459 .map(Self::AugmentedAssignmentExpression)
15460 .unwrap_or(Self::Unknown(node))
15461 }
15462 "await_expression" => {
15463 <AwaitExpression as ::treesitter_types::FromNode>::from_node(node, src)
15464 .map(Self::AwaitExpression)
15465 .unwrap_or(Self::Unknown(node))
15466 }
15467 "binary_expression" => {
15468 <BinaryExpression as ::treesitter_types::FromNode>::from_node(node, src)
15469 .map(Self::BinaryExpression)
15470 .unwrap_or(Self::Unknown(node))
15471 }
15472 "break_statement" => {
15473 <BreakStatement as ::treesitter_types::FromNode>::from_node(node, src)
15474 .map(Self::BreakStatement)
15475 .unwrap_or(Self::Unknown(node))
15476 }
15477 "call_expression" => {
15478 <CallExpression as ::treesitter_types::FromNode>::from_node(node, src)
15479 .map(Self::CallExpression)
15480 .unwrap_or(Self::Unknown(node))
15481 }
15482 "call_signature" => {
15483 <CallSignature as ::treesitter_types::FromNode>::from_node(node, src)
15484 .map(Self::CallSignature)
15485 .unwrap_or(Self::Unknown(node))
15486 }
15487 "catch_clause" => <CatchClause as ::treesitter_types::FromNode>::from_node(node, src)
15488 .map(Self::CatchClause)
15489 .unwrap_or(Self::Unknown(node)),
15490 "class" => <Class as ::treesitter_types::FromNode>::from_node(node, src)
15491 .map(Self::Class)
15492 .unwrap_or(Self::Unknown(node)),
15493 "class_body" => <ClassBody as ::treesitter_types::FromNode>::from_node(node, src)
15494 .map(Self::ClassBody)
15495 .unwrap_or(Self::Unknown(node)),
15496 "class_declaration" => {
15497 <ClassDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
15498 .map(Self::ClassDeclaration)
15499 .unwrap_or(Self::Unknown(node))
15500 }
15501 "class_heritage" => {
15502 <ClassHeritage as ::treesitter_types::FromNode>::from_node(node, src)
15503 .map(Self::ClassHeritage)
15504 .unwrap_or(Self::Unknown(node))
15505 }
15506 "class_static_block" => {
15507 <ClassStaticBlock as ::treesitter_types::FromNode>::from_node(node, src)
15508 .map(Self::ClassStaticBlock)
15509 .unwrap_or(Self::Unknown(node))
15510 }
15511 "computed_property_name" => {
15512 <ComputedPropertyName as ::treesitter_types::FromNode>::from_node(node, src)
15513 .map(Self::ComputedPropertyName)
15514 .unwrap_or(Self::Unknown(node))
15515 }
15516 "conditional_type" => {
15517 <ConditionalType as ::treesitter_types::FromNode>::from_node(node, src)
15518 .map(Self::ConditionalType)
15519 .unwrap_or(Self::Unknown(node))
15520 }
15521 "constraint" => <Constraint as ::treesitter_types::FromNode>::from_node(node, src)
15522 .map(Self::Constraint)
15523 .unwrap_or(Self::Unknown(node)),
15524 "construct_signature" => {
15525 <ConstructSignature as ::treesitter_types::FromNode>::from_node(node, src)
15526 .map(Self::ConstructSignature)
15527 .unwrap_or(Self::Unknown(node))
15528 }
15529 "constructor_type" => {
15530 <ConstructorType as ::treesitter_types::FromNode>::from_node(node, src)
15531 .map(Self::ConstructorType)
15532 .unwrap_or(Self::Unknown(node))
15533 }
15534 "continue_statement" => {
15535 <ContinueStatement as ::treesitter_types::FromNode>::from_node(node, src)
15536 .map(Self::ContinueStatement)
15537 .unwrap_or(Self::Unknown(node))
15538 }
15539 "debugger_statement" => {
15540 <DebuggerStatement as ::treesitter_types::FromNode>::from_node(node, src)
15541 .map(Self::DebuggerStatement)
15542 .unwrap_or(Self::Unknown(node))
15543 }
15544 "decorator" => <Decorator as ::treesitter_types::FromNode>::from_node(node, src)
15545 .map(Self::Decorator)
15546 .unwrap_or(Self::Unknown(node)),
15547 "default_type" => <DefaultType as ::treesitter_types::FromNode>::from_node(node, src)
15548 .map(Self::DefaultType)
15549 .unwrap_or(Self::Unknown(node)),
15550 "do_statement" => <DoStatement as ::treesitter_types::FromNode>::from_node(node, src)
15551 .map(Self::DoStatement)
15552 .unwrap_or(Self::Unknown(node)),
15553 "else_clause" => <ElseClause as ::treesitter_types::FromNode>::from_node(node, src)
15554 .map(Self::ElseClause)
15555 .unwrap_or(Self::Unknown(node)),
15556 "empty_statement" => {
15557 <EmptyStatement as ::treesitter_types::FromNode>::from_node(node, src)
15558 .map(Self::EmptyStatement)
15559 .unwrap_or(Self::Unknown(node))
15560 }
15561 "enum_assignment" => {
15562 <EnumAssignment as ::treesitter_types::FromNode>::from_node(node, src)
15563 .map(Self::EnumAssignment)
15564 .unwrap_or(Self::Unknown(node))
15565 }
15566 "enum_body" => <EnumBody as ::treesitter_types::FromNode>::from_node(node, src)
15567 .map(Self::EnumBody)
15568 .unwrap_or(Self::Unknown(node)),
15569 "enum_declaration" => {
15570 <EnumDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
15571 .map(Self::EnumDeclaration)
15572 .unwrap_or(Self::Unknown(node))
15573 }
15574 "existential_type" => {
15575 <ExistentialType as ::treesitter_types::FromNode>::from_node(node, src)
15576 .map(Self::ExistentialType)
15577 .unwrap_or(Self::Unknown(node))
15578 }
15579 "export_clause" => <ExportClause as ::treesitter_types::FromNode>::from_node(node, src)
15580 .map(Self::ExportClause)
15581 .unwrap_or(Self::Unknown(node)),
15582 "export_specifier" => {
15583 <ExportSpecifier as ::treesitter_types::FromNode>::from_node(node, src)
15584 .map(Self::ExportSpecifier)
15585 .unwrap_or(Self::Unknown(node))
15586 }
15587 "export_statement" => {
15588 <ExportStatement as ::treesitter_types::FromNode>::from_node(node, src)
15589 .map(Self::ExportStatement)
15590 .unwrap_or(Self::Unknown(node))
15591 }
15592 "expression_statement" => {
15593 <ExpressionStatement as ::treesitter_types::FromNode>::from_node(node, src)
15594 .map(Self::ExpressionStatement)
15595 .unwrap_or(Self::Unknown(node))
15596 }
15597 "extends_clause" => {
15598 <ExtendsClause as ::treesitter_types::FromNode>::from_node(node, src)
15599 .map(Self::ExtendsClause)
15600 .unwrap_or(Self::Unknown(node))
15601 }
15602 "extends_type_clause" => {
15603 <ExtendsTypeClause as ::treesitter_types::FromNode>::from_node(node, src)
15604 .map(Self::ExtendsTypeClause)
15605 .unwrap_or(Self::Unknown(node))
15606 }
15607 "finally_clause" => {
15608 <FinallyClause as ::treesitter_types::FromNode>::from_node(node, src)
15609 .map(Self::FinallyClause)
15610 .unwrap_or(Self::Unknown(node))
15611 }
15612 "flow_maybe_type" => {
15613 <FlowMaybeType as ::treesitter_types::FromNode>::from_node(node, src)
15614 .map(Self::FlowMaybeType)
15615 .unwrap_or(Self::Unknown(node))
15616 }
15617 "for_in_statement" => {
15618 <ForInStatement as ::treesitter_types::FromNode>::from_node(node, src)
15619 .map(Self::ForInStatement)
15620 .unwrap_or(Self::Unknown(node))
15621 }
15622 "for_statement" => <ForStatement as ::treesitter_types::FromNode>::from_node(node, src)
15623 .map(Self::ForStatement)
15624 .unwrap_or(Self::Unknown(node)),
15625 "formal_parameters" => {
15626 <FormalParameters as ::treesitter_types::FromNode>::from_node(node, src)
15627 .map(Self::FormalParameters)
15628 .unwrap_or(Self::Unknown(node))
15629 }
15630 "function_declaration" => {
15631 <FunctionDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
15632 .map(Self::FunctionDeclaration)
15633 .unwrap_or(Self::Unknown(node))
15634 }
15635 "function_expression" => {
15636 <FunctionExpression as ::treesitter_types::FromNode>::from_node(node, src)
15637 .map(Self::FunctionExpression)
15638 .unwrap_or(Self::Unknown(node))
15639 }
15640 "function_signature" => {
15641 <FunctionSignature as ::treesitter_types::FromNode>::from_node(node, src)
15642 .map(Self::FunctionSignature)
15643 .unwrap_or(Self::Unknown(node))
15644 }
15645 "function_type" => <FunctionType as ::treesitter_types::FromNode>::from_node(node, src)
15646 .map(Self::FunctionType)
15647 .unwrap_or(Self::Unknown(node)),
15648 "generator_function" => {
15649 <GeneratorFunction as ::treesitter_types::FromNode>::from_node(node, src)
15650 .map(Self::GeneratorFunction)
15651 .unwrap_or(Self::Unknown(node))
15652 }
15653 "generator_function_declaration" => {
15654 <GeneratorFunctionDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
15655 .map(Self::GeneratorFunctionDeclaration)
15656 .unwrap_or(Self::Unknown(node))
15657 }
15658 "generic_type" => <GenericType as ::treesitter_types::FromNode>::from_node(node, src)
15659 .map(Self::GenericType)
15660 .unwrap_or(Self::Unknown(node)),
15661 "identifier" => <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
15662 .map(Self::Identifier)
15663 .unwrap_or(Self::Unknown(node)),
15664 "if_statement" => <IfStatement as ::treesitter_types::FromNode>::from_node(node, src)
15665 .map(Self::IfStatement)
15666 .unwrap_or(Self::Unknown(node)),
15667 "implements_clause" => {
15668 <ImplementsClause as ::treesitter_types::FromNode>::from_node(node, src)
15669 .map(Self::ImplementsClause)
15670 .unwrap_or(Self::Unknown(node))
15671 }
15672 "import" => <Import as ::treesitter_types::FromNode>::from_node(node, src)
15673 .map(Self::Import)
15674 .unwrap_or(Self::Unknown(node)),
15675 "import_alias" => <ImportAlias as ::treesitter_types::FromNode>::from_node(node, src)
15676 .map(Self::ImportAlias)
15677 .unwrap_or(Self::Unknown(node)),
15678 "import_attribute" => {
15679 <ImportAttribute as ::treesitter_types::FromNode>::from_node(node, src)
15680 .map(Self::ImportAttribute)
15681 .unwrap_or(Self::Unknown(node))
15682 }
15683 "import_clause" => <ImportClause as ::treesitter_types::FromNode>::from_node(node, src)
15684 .map(Self::ImportClause)
15685 .unwrap_or(Self::Unknown(node)),
15686 "import_require_clause" => {
15687 <ImportRequireClause as ::treesitter_types::FromNode>::from_node(node, src)
15688 .map(Self::ImportRequireClause)
15689 .unwrap_or(Self::Unknown(node))
15690 }
15691 "import_specifier" => {
15692 <ImportSpecifier as ::treesitter_types::FromNode>::from_node(node, src)
15693 .map(Self::ImportSpecifier)
15694 .unwrap_or(Self::Unknown(node))
15695 }
15696 "import_statement" => {
15697 <ImportStatement as ::treesitter_types::FromNode>::from_node(node, src)
15698 .map(Self::ImportStatement)
15699 .unwrap_or(Self::Unknown(node))
15700 }
15701 "index_signature" => {
15702 <IndexSignature as ::treesitter_types::FromNode>::from_node(node, src)
15703 .map(Self::IndexSignature)
15704 .unwrap_or(Self::Unknown(node))
15705 }
15706 "index_type_query" => {
15707 <IndexTypeQuery as ::treesitter_types::FromNode>::from_node(node, src)
15708 .map(Self::IndexTypeQuery)
15709 .unwrap_or(Self::Unknown(node))
15710 }
15711 "infer_type" => <InferType as ::treesitter_types::FromNode>::from_node(node, src)
15712 .map(Self::InferType)
15713 .unwrap_or(Self::Unknown(node)),
15714 "instantiation_expression" => {
15715 <InstantiationExpression as ::treesitter_types::FromNode>::from_node(node, src)
15716 .map(Self::InstantiationExpression)
15717 .unwrap_or(Self::Unknown(node))
15718 }
15719 "interface_body" => {
15720 <InterfaceBody as ::treesitter_types::FromNode>::from_node(node, src)
15721 .map(Self::InterfaceBody)
15722 .unwrap_or(Self::Unknown(node))
15723 }
15724 "interface_declaration" => {
15725 <InterfaceDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
15726 .map(Self::InterfaceDeclaration)
15727 .unwrap_or(Self::Unknown(node))
15728 }
15729 "internal_module" => {
15730 <InternalModule as ::treesitter_types::FromNode>::from_node(node, src)
15731 .map(Self::InternalModule)
15732 .unwrap_or(Self::Unknown(node))
15733 }
15734 "intersection_type" => {
15735 <IntersectionType as ::treesitter_types::FromNode>::from_node(node, src)
15736 .map(Self::IntersectionType)
15737 .unwrap_or(Self::Unknown(node))
15738 }
15739 "labeled_statement" => {
15740 <LabeledStatement as ::treesitter_types::FromNode>::from_node(node, src)
15741 .map(Self::LabeledStatement)
15742 .unwrap_or(Self::Unknown(node))
15743 }
15744 "lexical_declaration" => {
15745 <LexicalDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
15746 .map(Self::LexicalDeclaration)
15747 .unwrap_or(Self::Unknown(node))
15748 }
15749 "literal_type" => <LiteralType as ::treesitter_types::FromNode>::from_node(node, src)
15750 .map(Self::LiteralType)
15751 .unwrap_or(Self::Unknown(node)),
15752 "lookup_type" => <LookupType as ::treesitter_types::FromNode>::from_node(node, src)
15753 .map(Self::LookupType)
15754 .unwrap_or(Self::Unknown(node)),
15755 "mapped_type_clause" => {
15756 <MappedTypeClause as ::treesitter_types::FromNode>::from_node(node, src)
15757 .map(Self::MappedTypeClause)
15758 .unwrap_or(Self::Unknown(node))
15759 }
15760 "member_expression" => {
15761 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)
15762 .map(Self::MemberExpression)
15763 .unwrap_or(Self::Unknown(node))
15764 }
15765 "meta_property" => <MetaProperty as ::treesitter_types::FromNode>::from_node(node, src)
15766 .map(Self::MetaProperty)
15767 .unwrap_or(Self::Unknown(node)),
15768 "method_definition" => {
15769 <MethodDefinition as ::treesitter_types::FromNode>::from_node(node, src)
15770 .map(Self::MethodDefinition)
15771 .unwrap_or(Self::Unknown(node))
15772 }
15773 "method_signature" => {
15774 <MethodSignature as ::treesitter_types::FromNode>::from_node(node, src)
15775 .map(Self::MethodSignature)
15776 .unwrap_or(Self::Unknown(node))
15777 }
15778 "module" => <Module as ::treesitter_types::FromNode>::from_node(node, src)
15779 .map(Self::Module)
15780 .unwrap_or(Self::Unknown(node)),
15781 "named_imports" => <NamedImports as ::treesitter_types::FromNode>::from_node(node, src)
15782 .map(Self::NamedImports)
15783 .unwrap_or(Self::Unknown(node)),
15784 "namespace_export" => {
15785 <NamespaceExport as ::treesitter_types::FromNode>::from_node(node, src)
15786 .map(Self::NamespaceExport)
15787 .unwrap_or(Self::Unknown(node))
15788 }
15789 "namespace_import" => {
15790 <NamespaceImport as ::treesitter_types::FromNode>::from_node(node, src)
15791 .map(Self::NamespaceImport)
15792 .unwrap_or(Self::Unknown(node))
15793 }
15794 "nested_identifier" => {
15795 <NestedIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
15796 .map(Self::NestedIdentifier)
15797 .unwrap_or(Self::Unknown(node))
15798 }
15799 "nested_type_identifier" => {
15800 <NestedTypeIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
15801 .map(Self::NestedTypeIdentifier)
15802 .unwrap_or(Self::Unknown(node))
15803 }
15804 "new_expression" => {
15805 <NewExpression as ::treesitter_types::FromNode>::from_node(node, src)
15806 .map(Self::NewExpression)
15807 .unwrap_or(Self::Unknown(node))
15808 }
15809 "non_null_expression" => {
15810 <NonNullExpression as ::treesitter_types::FromNode>::from_node(node, src)
15811 .map(Self::NonNullExpression)
15812 .unwrap_or(Self::Unknown(node))
15813 }
15814 "object" => <Object as ::treesitter_types::FromNode>::from_node(node, src)
15815 .map(Self::Object)
15816 .unwrap_or(Self::Unknown(node)),
15817 "object_assignment_pattern" => {
15818 <ObjectAssignmentPattern as ::treesitter_types::FromNode>::from_node(node, src)
15819 .map(Self::ObjectAssignmentPattern)
15820 .unwrap_or(Self::Unknown(node))
15821 }
15822 "object_pattern" => {
15823 <ObjectPattern as ::treesitter_types::FromNode>::from_node(node, src)
15824 .map(Self::ObjectPattern)
15825 .unwrap_or(Self::Unknown(node))
15826 }
15827 "object_type" => <ObjectType as ::treesitter_types::FromNode>::from_node(node, src)
15828 .map(Self::ObjectType)
15829 .unwrap_or(Self::Unknown(node)),
15830 "omitting_type_annotation" => {
15831 <OmittingTypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
15832 .map(Self::OmittingTypeAnnotation)
15833 .unwrap_or(Self::Unknown(node))
15834 }
15835 "opting_type_annotation" => {
15836 <OptingTypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
15837 .map(Self::OptingTypeAnnotation)
15838 .unwrap_or(Self::Unknown(node))
15839 }
15840 "optional_chain" => {
15841 <OptionalChain as ::treesitter_types::FromNode>::from_node(node, src)
15842 .map(Self::OptionalChain)
15843 .unwrap_or(Self::Unknown(node))
15844 }
15845 "optional_parameter" => {
15846 <OptionalParameter as ::treesitter_types::FromNode>::from_node(node, src)
15847 .map(Self::OptionalParameter)
15848 .unwrap_or(Self::Unknown(node))
15849 }
15850 "optional_type" => <OptionalType as ::treesitter_types::FromNode>::from_node(node, src)
15851 .map(Self::OptionalType)
15852 .unwrap_or(Self::Unknown(node)),
15853 "override_modifier" => {
15854 <OverrideModifier as ::treesitter_types::FromNode>::from_node(node, src)
15855 .map(Self::OverrideModifier)
15856 .unwrap_or(Self::Unknown(node))
15857 }
15858 "pair" => <Pair as ::treesitter_types::FromNode>::from_node(node, src)
15859 .map(Self::Pair)
15860 .unwrap_or(Self::Unknown(node)),
15861 "pair_pattern" => <PairPattern as ::treesitter_types::FromNode>::from_node(node, src)
15862 .map(Self::PairPattern)
15863 .unwrap_or(Self::Unknown(node)),
15864 "parenthesized_expression" => {
15865 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(node, src)
15866 .map(Self::ParenthesizedExpression)
15867 .unwrap_or(Self::Unknown(node))
15868 }
15869 "parenthesized_type" => {
15870 <ParenthesizedType as ::treesitter_types::FromNode>::from_node(node, src)
15871 .map(Self::ParenthesizedType)
15872 .unwrap_or(Self::Unknown(node))
15873 }
15874 "predefined_type" => {
15875 <PredefinedType as ::treesitter_types::FromNode>::from_node(node, src)
15876 .map(Self::PredefinedType)
15877 .unwrap_or(Self::Unknown(node))
15878 }
15879 "program" => <Program as ::treesitter_types::FromNode>::from_node(node, src)
15880 .map(Self::Program)
15881 .unwrap_or(Self::Unknown(node)),
15882 "property_signature" => {
15883 <PropertySignature as ::treesitter_types::FromNode>::from_node(node, src)
15884 .map(Self::PropertySignature)
15885 .unwrap_or(Self::Unknown(node))
15886 }
15887 "public_field_definition" => {
15888 <PublicFieldDefinition as ::treesitter_types::FromNode>::from_node(node, src)
15889 .map(Self::PublicFieldDefinition)
15890 .unwrap_or(Self::Unknown(node))
15891 }
15892 "readonly_type" => <ReadonlyType as ::treesitter_types::FromNode>::from_node(node, src)
15893 .map(Self::ReadonlyType)
15894 .unwrap_or(Self::Unknown(node)),
15895 "regex" => <Regex as ::treesitter_types::FromNode>::from_node(node, src)
15896 .map(Self::Regex)
15897 .unwrap_or(Self::Unknown(node)),
15898 "required_parameter" => {
15899 <RequiredParameter as ::treesitter_types::FromNode>::from_node(node, src)
15900 .map(Self::RequiredParameter)
15901 .unwrap_or(Self::Unknown(node))
15902 }
15903 "rest_pattern" => <RestPattern as ::treesitter_types::FromNode>::from_node(node, src)
15904 .map(Self::RestPattern)
15905 .unwrap_or(Self::Unknown(node)),
15906 "rest_type" => <RestType as ::treesitter_types::FromNode>::from_node(node, src)
15907 .map(Self::RestType)
15908 .unwrap_or(Self::Unknown(node)),
15909 "return_statement" => {
15910 <ReturnStatement as ::treesitter_types::FromNode>::from_node(node, src)
15911 .map(Self::ReturnStatement)
15912 .unwrap_or(Self::Unknown(node))
15913 }
15914 "satisfies_expression" => {
15915 <SatisfiesExpression as ::treesitter_types::FromNode>::from_node(node, src)
15916 .map(Self::SatisfiesExpression)
15917 .unwrap_or(Self::Unknown(node))
15918 }
15919 "sequence_expression" => {
15920 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)
15921 .map(Self::SequenceExpression)
15922 .unwrap_or(Self::Unknown(node))
15923 }
15924 "spread_element" => {
15925 <SpreadElement as ::treesitter_types::FromNode>::from_node(node, src)
15926 .map(Self::SpreadElement)
15927 .unwrap_or(Self::Unknown(node))
15928 }
15929 "statement_block" => {
15930 <StatementBlock as ::treesitter_types::FromNode>::from_node(node, src)
15931 .map(Self::StatementBlock)
15932 .unwrap_or(Self::Unknown(node))
15933 }
15934 "string" => <String as ::treesitter_types::FromNode>::from_node(node, src)
15935 .map(Self::String)
15936 .unwrap_or(Self::Unknown(node)),
15937 "subscript_expression" => {
15938 <SubscriptExpression as ::treesitter_types::FromNode>::from_node(node, src)
15939 .map(Self::SubscriptExpression)
15940 .unwrap_or(Self::Unknown(node))
15941 }
15942 "switch_body" => <SwitchBody as ::treesitter_types::FromNode>::from_node(node, src)
15943 .map(Self::SwitchBody)
15944 .unwrap_or(Self::Unknown(node)),
15945 "switch_case" => <SwitchCase as ::treesitter_types::FromNode>::from_node(node, src)
15946 .map(Self::SwitchCase)
15947 .unwrap_or(Self::Unknown(node)),
15948 "switch_default" => {
15949 <SwitchDefault as ::treesitter_types::FromNode>::from_node(node, src)
15950 .map(Self::SwitchDefault)
15951 .unwrap_or(Self::Unknown(node))
15952 }
15953 "switch_statement" => {
15954 <SwitchStatement as ::treesitter_types::FromNode>::from_node(node, src)
15955 .map(Self::SwitchStatement)
15956 .unwrap_or(Self::Unknown(node))
15957 }
15958 "template_literal_type" => {
15959 <TemplateLiteralType as ::treesitter_types::FromNode>::from_node(node, src)
15960 .map(Self::TemplateLiteralType)
15961 .unwrap_or(Self::Unknown(node))
15962 }
15963 "template_string" => {
15964 <TemplateString as ::treesitter_types::FromNode>::from_node(node, src)
15965 .map(Self::TemplateString)
15966 .unwrap_or(Self::Unknown(node))
15967 }
15968 "template_substitution" => {
15969 <TemplateSubstitution as ::treesitter_types::FromNode>::from_node(node, src)
15970 .map(Self::TemplateSubstitution)
15971 .unwrap_or(Self::Unknown(node))
15972 }
15973 "template_type" => <TemplateType as ::treesitter_types::FromNode>::from_node(node, src)
15974 .map(Self::TemplateType)
15975 .unwrap_or(Self::Unknown(node)),
15976 "ternary_expression" => {
15977 <TernaryExpression as ::treesitter_types::FromNode>::from_node(node, src)
15978 .map(Self::TernaryExpression)
15979 .unwrap_or(Self::Unknown(node))
15980 }
15981 "throw_statement" => {
15982 <ThrowStatement as ::treesitter_types::FromNode>::from_node(node, src)
15983 .map(Self::ThrowStatement)
15984 .unwrap_or(Self::Unknown(node))
15985 }
15986 "try_statement" => <TryStatement as ::treesitter_types::FromNode>::from_node(node, src)
15987 .map(Self::TryStatement)
15988 .unwrap_or(Self::Unknown(node)),
15989 "tuple_type" => <TupleType as ::treesitter_types::FromNode>::from_node(node, src)
15990 .map(Self::TupleType)
15991 .unwrap_or(Self::Unknown(node)),
15992 "type_alias_declaration" => {
15993 <TypeAliasDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
15994 .map(Self::TypeAliasDeclaration)
15995 .unwrap_or(Self::Unknown(node))
15996 }
15997 "type_annotation" => {
15998 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
15999 .map(Self::TypeAnnotation)
16000 .unwrap_or(Self::Unknown(node))
16001 }
16002 "type_arguments" => {
16003 <TypeArguments as ::treesitter_types::FromNode>::from_node(node, src)
16004 .map(Self::TypeArguments)
16005 .unwrap_or(Self::Unknown(node))
16006 }
16007 "type_assertion" => {
16008 <TypeAssertion as ::treesitter_types::FromNode>::from_node(node, src)
16009 .map(Self::TypeAssertion)
16010 .unwrap_or(Self::Unknown(node))
16011 }
16012 "type_parameter" => {
16013 <TypeParameter as ::treesitter_types::FromNode>::from_node(node, src)
16014 .map(Self::TypeParameter)
16015 .unwrap_or(Self::Unknown(node))
16016 }
16017 "type_parameters" => {
16018 <TypeParameters as ::treesitter_types::FromNode>::from_node(node, src)
16019 .map(Self::TypeParameters)
16020 .unwrap_or(Self::Unknown(node))
16021 }
16022 "type_predicate" => {
16023 <TypePredicate as ::treesitter_types::FromNode>::from_node(node, src)
16024 .map(Self::TypePredicate)
16025 .unwrap_or(Self::Unknown(node))
16026 }
16027 "type_predicate_annotation" => {
16028 <TypePredicateAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
16029 .map(Self::TypePredicateAnnotation)
16030 .unwrap_or(Self::Unknown(node))
16031 }
16032 "type_query" => <TypeQuery as ::treesitter_types::FromNode>::from_node(node, src)
16033 .map(Self::TypeQuery)
16034 .unwrap_or(Self::Unknown(node)),
16035 "unary_expression" => {
16036 <UnaryExpression as ::treesitter_types::FromNode>::from_node(node, src)
16037 .map(Self::UnaryExpression)
16038 .unwrap_or(Self::Unknown(node))
16039 }
16040 "union_type" => <UnionType as ::treesitter_types::FromNode>::from_node(node, src)
16041 .map(Self::UnionType)
16042 .unwrap_or(Self::Unknown(node)),
16043 "update_expression" => {
16044 <UpdateExpression as ::treesitter_types::FromNode>::from_node(node, src)
16045 .map(Self::UpdateExpression)
16046 .unwrap_or(Self::Unknown(node))
16047 }
16048 "variable_declaration" => {
16049 <VariableDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
16050 .map(Self::VariableDeclaration)
16051 .unwrap_or(Self::Unknown(node))
16052 }
16053 "variable_declarator" => {
16054 <VariableDeclarator as ::treesitter_types::FromNode>::from_node(node, src)
16055 .map(Self::VariableDeclarator)
16056 .unwrap_or(Self::Unknown(node))
16057 }
16058 "while_statement" => {
16059 <WhileStatement as ::treesitter_types::FromNode>::from_node(node, src)
16060 .map(Self::WhileStatement)
16061 .unwrap_or(Self::Unknown(node))
16062 }
16063 "with_statement" => {
16064 <WithStatement as ::treesitter_types::FromNode>::from_node(node, src)
16065 .map(Self::WithStatement)
16066 .unwrap_or(Self::Unknown(node))
16067 }
16068 "yield_expression" => {
16069 <YieldExpression as ::treesitter_types::FromNode>::from_node(node, src)
16070 .map(Self::YieldExpression)
16071 .unwrap_or(Self::Unknown(node))
16072 }
16073 "comment" => <Comment as ::treesitter_types::FromNode>::from_node(node, src)
16074 .map(Self::Comment)
16075 .unwrap_or(Self::Unknown(node)),
16076 "escape_sequence" => {
16077 <EscapeSequence as ::treesitter_types::FromNode>::from_node(node, src)
16078 .map(Self::EscapeSequence)
16079 .unwrap_or(Self::Unknown(node))
16080 }
16081 "false" => <False as ::treesitter_types::FromNode>::from_node(node, src)
16082 .map(Self::False)
16083 .unwrap_or(Self::Unknown(node)),
16084 "hash_bang_line" => {
16085 <HashBangLine as ::treesitter_types::FromNode>::from_node(node, src)
16086 .map(Self::HashBangLine)
16087 .unwrap_or(Self::Unknown(node))
16088 }
16089 "html_comment" => <HtmlComment as ::treesitter_types::FromNode>::from_node(node, src)
16090 .map(Self::HtmlComment)
16091 .unwrap_or(Self::Unknown(node)),
16092 "null" => <Null as ::treesitter_types::FromNode>::from_node(node, src)
16093 .map(Self::Null)
16094 .unwrap_or(Self::Unknown(node)),
16095 "number" => <Number as ::treesitter_types::FromNode>::from_node(node, src)
16096 .map(Self::Number)
16097 .unwrap_or(Self::Unknown(node)),
16098 "private_property_identifier" => {
16099 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
16100 .map(Self::PrivatePropertyIdentifier)
16101 .unwrap_or(Self::Unknown(node))
16102 }
16103 "property_identifier" => {
16104 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
16105 .map(Self::PropertyIdentifier)
16106 .unwrap_or(Self::Unknown(node))
16107 }
16108 "regex_flags" => <RegexFlags as ::treesitter_types::FromNode>::from_node(node, src)
16109 .map(Self::RegexFlags)
16110 .unwrap_or(Self::Unknown(node)),
16111 "regex_pattern" => <RegexPattern as ::treesitter_types::FromNode>::from_node(node, src)
16112 .map(Self::RegexPattern)
16113 .unwrap_or(Self::Unknown(node)),
16114 "shorthand_property_identifier" => {
16115 <ShorthandPropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
16116 .map(Self::ShorthandPropertyIdentifier)
16117 .unwrap_or(Self::Unknown(node))
16118 }
16119 "shorthand_property_identifier_pattern" => {
16120 <ShorthandPropertyIdentifierPattern as ::treesitter_types::FromNode>::from_node(
16121 node, src,
16122 )
16123 .map(Self::ShorthandPropertyIdentifierPattern)
16124 .unwrap_or(Self::Unknown(node))
16125 }
16126 "statement_identifier" => {
16127 <StatementIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
16128 .map(Self::StatementIdentifier)
16129 .unwrap_or(Self::Unknown(node))
16130 }
16131 "string_fragment" => {
16132 <StringFragment as ::treesitter_types::FromNode>::from_node(node, src)
16133 .map(Self::StringFragment)
16134 .unwrap_or(Self::Unknown(node))
16135 }
16136 "super" => <Super as ::treesitter_types::FromNode>::from_node(node, src)
16137 .map(Self::Super)
16138 .unwrap_or(Self::Unknown(node)),
16139 "this" => <This as ::treesitter_types::FromNode>::from_node(node, src)
16140 .map(Self::This)
16141 .unwrap_or(Self::Unknown(node)),
16142 "this_type" => <ThisType as ::treesitter_types::FromNode>::from_node(node, src)
16143 .map(Self::ThisType)
16144 .unwrap_or(Self::Unknown(node)),
16145 "true" => <True as ::treesitter_types::FromNode>::from_node(node, src)
16146 .map(Self::True)
16147 .unwrap_or(Self::Unknown(node)),
16148 "type_identifier" => {
16149 <TypeIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
16150 .map(Self::TypeIdentifier)
16151 .unwrap_or(Self::Unknown(node))
16152 }
16153 "undefined" => <Undefined as ::treesitter_types::FromNode>::from_node(node, src)
16154 .map(Self::Undefined)
16155 .unwrap_or(Self::Unknown(node)),
16156 _ => Self::Unknown(node),
16157 }
16158 }
16159}
16160impl ::treesitter_types::Spanned for AnyNode<'_> {
16161 fn span(&self) -> ::treesitter_types::Span {
16162 match self {
16163 Self::Declaration(inner) => inner.span(),
16164 Self::Expression(inner) => inner.span(),
16165 Self::Pattern(inner) => inner.span(),
16166 Self::PrimaryExpression(inner) => inner.span(),
16167 Self::PrimaryType(inner) => inner.span(),
16168 Self::Statement(inner) => inner.span(),
16169 Self::Type(inner) => inner.span(),
16170 Self::AbstractClassDeclaration(inner) => inner.span(),
16171 Self::AbstractMethodSignature(inner) => inner.span(),
16172 Self::AccessibilityModifier(inner) => inner.span(),
16173 Self::AddingTypeAnnotation(inner) => inner.span(),
16174 Self::AmbientDeclaration(inner) => inner.span(),
16175 Self::Arguments(inner) => inner.span(),
16176 Self::Array(inner) => inner.span(),
16177 Self::ArrayPattern(inner) => inner.span(),
16178 Self::ArrayType(inner) => inner.span(),
16179 Self::ArrowFunction(inner) => inner.span(),
16180 Self::AsExpression(inner) => inner.span(),
16181 Self::Asserts(inner) => inner.span(),
16182 Self::AssertsAnnotation(inner) => inner.span(),
16183 Self::AssignmentExpression(inner) => inner.span(),
16184 Self::AssignmentPattern(inner) => inner.span(),
16185 Self::AugmentedAssignmentExpression(inner) => inner.span(),
16186 Self::AwaitExpression(inner) => inner.span(),
16187 Self::BinaryExpression(inner) => inner.span(),
16188 Self::BreakStatement(inner) => inner.span(),
16189 Self::CallExpression(inner) => inner.span(),
16190 Self::CallSignature(inner) => inner.span(),
16191 Self::CatchClause(inner) => inner.span(),
16192 Self::Class(inner) => inner.span(),
16193 Self::ClassBody(inner) => inner.span(),
16194 Self::ClassDeclaration(inner) => inner.span(),
16195 Self::ClassHeritage(inner) => inner.span(),
16196 Self::ClassStaticBlock(inner) => inner.span(),
16197 Self::ComputedPropertyName(inner) => inner.span(),
16198 Self::ConditionalType(inner) => inner.span(),
16199 Self::Constraint(inner) => inner.span(),
16200 Self::ConstructSignature(inner) => inner.span(),
16201 Self::ConstructorType(inner) => inner.span(),
16202 Self::ContinueStatement(inner) => inner.span(),
16203 Self::DebuggerStatement(inner) => inner.span(),
16204 Self::Decorator(inner) => inner.span(),
16205 Self::DefaultType(inner) => inner.span(),
16206 Self::DoStatement(inner) => inner.span(),
16207 Self::ElseClause(inner) => inner.span(),
16208 Self::EmptyStatement(inner) => inner.span(),
16209 Self::EnumAssignment(inner) => inner.span(),
16210 Self::EnumBody(inner) => inner.span(),
16211 Self::EnumDeclaration(inner) => inner.span(),
16212 Self::ExistentialType(inner) => inner.span(),
16213 Self::ExportClause(inner) => inner.span(),
16214 Self::ExportSpecifier(inner) => inner.span(),
16215 Self::ExportStatement(inner) => inner.span(),
16216 Self::ExpressionStatement(inner) => inner.span(),
16217 Self::ExtendsClause(inner) => inner.span(),
16218 Self::ExtendsTypeClause(inner) => inner.span(),
16219 Self::FinallyClause(inner) => inner.span(),
16220 Self::FlowMaybeType(inner) => inner.span(),
16221 Self::ForInStatement(inner) => inner.span(),
16222 Self::ForStatement(inner) => inner.span(),
16223 Self::FormalParameters(inner) => inner.span(),
16224 Self::FunctionDeclaration(inner) => inner.span(),
16225 Self::FunctionExpression(inner) => inner.span(),
16226 Self::FunctionSignature(inner) => inner.span(),
16227 Self::FunctionType(inner) => inner.span(),
16228 Self::GeneratorFunction(inner) => inner.span(),
16229 Self::GeneratorFunctionDeclaration(inner) => inner.span(),
16230 Self::GenericType(inner) => inner.span(),
16231 Self::Identifier(inner) => inner.span(),
16232 Self::IfStatement(inner) => inner.span(),
16233 Self::ImplementsClause(inner) => inner.span(),
16234 Self::Import(inner) => inner.span(),
16235 Self::ImportAlias(inner) => inner.span(),
16236 Self::ImportAttribute(inner) => inner.span(),
16237 Self::ImportClause(inner) => inner.span(),
16238 Self::ImportRequireClause(inner) => inner.span(),
16239 Self::ImportSpecifier(inner) => inner.span(),
16240 Self::ImportStatement(inner) => inner.span(),
16241 Self::IndexSignature(inner) => inner.span(),
16242 Self::IndexTypeQuery(inner) => inner.span(),
16243 Self::InferType(inner) => inner.span(),
16244 Self::InstantiationExpression(inner) => inner.span(),
16245 Self::InterfaceBody(inner) => inner.span(),
16246 Self::InterfaceDeclaration(inner) => inner.span(),
16247 Self::InternalModule(inner) => inner.span(),
16248 Self::IntersectionType(inner) => inner.span(),
16249 Self::LabeledStatement(inner) => inner.span(),
16250 Self::LexicalDeclaration(inner) => inner.span(),
16251 Self::LiteralType(inner) => inner.span(),
16252 Self::LookupType(inner) => inner.span(),
16253 Self::MappedTypeClause(inner) => inner.span(),
16254 Self::MemberExpression(inner) => inner.span(),
16255 Self::MetaProperty(inner) => inner.span(),
16256 Self::MethodDefinition(inner) => inner.span(),
16257 Self::MethodSignature(inner) => inner.span(),
16258 Self::Module(inner) => inner.span(),
16259 Self::NamedImports(inner) => inner.span(),
16260 Self::NamespaceExport(inner) => inner.span(),
16261 Self::NamespaceImport(inner) => inner.span(),
16262 Self::NestedIdentifier(inner) => inner.span(),
16263 Self::NestedTypeIdentifier(inner) => inner.span(),
16264 Self::NewExpression(inner) => inner.span(),
16265 Self::NonNullExpression(inner) => inner.span(),
16266 Self::Object(inner) => inner.span(),
16267 Self::ObjectAssignmentPattern(inner) => inner.span(),
16268 Self::ObjectPattern(inner) => inner.span(),
16269 Self::ObjectType(inner) => inner.span(),
16270 Self::OmittingTypeAnnotation(inner) => inner.span(),
16271 Self::OptingTypeAnnotation(inner) => inner.span(),
16272 Self::OptionalChain(inner) => inner.span(),
16273 Self::OptionalParameter(inner) => inner.span(),
16274 Self::OptionalType(inner) => inner.span(),
16275 Self::OverrideModifier(inner) => inner.span(),
16276 Self::Pair(inner) => inner.span(),
16277 Self::PairPattern(inner) => inner.span(),
16278 Self::ParenthesizedExpression(inner) => inner.span(),
16279 Self::ParenthesizedType(inner) => inner.span(),
16280 Self::PredefinedType(inner) => inner.span(),
16281 Self::Program(inner) => inner.span(),
16282 Self::PropertySignature(inner) => inner.span(),
16283 Self::PublicFieldDefinition(inner) => inner.span(),
16284 Self::ReadonlyType(inner) => inner.span(),
16285 Self::Regex(inner) => inner.span(),
16286 Self::RequiredParameter(inner) => inner.span(),
16287 Self::RestPattern(inner) => inner.span(),
16288 Self::RestType(inner) => inner.span(),
16289 Self::ReturnStatement(inner) => inner.span(),
16290 Self::SatisfiesExpression(inner) => inner.span(),
16291 Self::SequenceExpression(inner) => inner.span(),
16292 Self::SpreadElement(inner) => inner.span(),
16293 Self::StatementBlock(inner) => inner.span(),
16294 Self::String(inner) => inner.span(),
16295 Self::SubscriptExpression(inner) => inner.span(),
16296 Self::SwitchBody(inner) => inner.span(),
16297 Self::SwitchCase(inner) => inner.span(),
16298 Self::SwitchDefault(inner) => inner.span(),
16299 Self::SwitchStatement(inner) => inner.span(),
16300 Self::TemplateLiteralType(inner) => inner.span(),
16301 Self::TemplateString(inner) => inner.span(),
16302 Self::TemplateSubstitution(inner) => inner.span(),
16303 Self::TemplateType(inner) => inner.span(),
16304 Self::TernaryExpression(inner) => inner.span(),
16305 Self::ThrowStatement(inner) => inner.span(),
16306 Self::TryStatement(inner) => inner.span(),
16307 Self::TupleType(inner) => inner.span(),
16308 Self::TypeAliasDeclaration(inner) => inner.span(),
16309 Self::TypeAnnotation(inner) => inner.span(),
16310 Self::TypeArguments(inner) => inner.span(),
16311 Self::TypeAssertion(inner) => inner.span(),
16312 Self::TypeParameter(inner) => inner.span(),
16313 Self::TypeParameters(inner) => inner.span(),
16314 Self::TypePredicate(inner) => inner.span(),
16315 Self::TypePredicateAnnotation(inner) => inner.span(),
16316 Self::TypeQuery(inner) => inner.span(),
16317 Self::UnaryExpression(inner) => inner.span(),
16318 Self::UnionType(inner) => inner.span(),
16319 Self::UpdateExpression(inner) => inner.span(),
16320 Self::VariableDeclaration(inner) => inner.span(),
16321 Self::VariableDeclarator(inner) => inner.span(),
16322 Self::WhileStatement(inner) => inner.span(),
16323 Self::WithStatement(inner) => inner.span(),
16324 Self::YieldExpression(inner) => inner.span(),
16325 Self::Comment(inner) => inner.span(),
16326 Self::EscapeSequence(inner) => inner.span(),
16327 Self::False(inner) => inner.span(),
16328 Self::HashBangLine(inner) => inner.span(),
16329 Self::HtmlComment(inner) => inner.span(),
16330 Self::Null(inner) => inner.span(),
16331 Self::Number(inner) => inner.span(),
16332 Self::PrivatePropertyIdentifier(inner) => inner.span(),
16333 Self::PropertyIdentifier(inner) => inner.span(),
16334 Self::RegexFlags(inner) => inner.span(),
16335 Self::RegexPattern(inner) => inner.span(),
16336 Self::ShorthandPropertyIdentifier(inner) => inner.span(),
16337 Self::ShorthandPropertyIdentifierPattern(inner) => inner.span(),
16338 Self::StatementIdentifier(inner) => inner.span(),
16339 Self::StringFragment(inner) => inner.span(),
16340 Self::Super(inner) => inner.span(),
16341 Self::This(inner) => inner.span(),
16342 Self::ThisType(inner) => inner.span(),
16343 Self::True(inner) => inner.span(),
16344 Self::TypeIdentifier(inner) => inner.span(),
16345 Self::Undefined(inner) => inner.span(),
16346 Self::Unknown(node) => ::treesitter_types::Span::from(*node),
16347 }
16348 }
16349}