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: ::treesitter_types::tree_sitter::Node<'tree>,
22 src: &'tree [u8],
23 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
24 match node.kind() {
25 "abstract_class_declaration" => Ok(Self::AbstractClassDeclaration(
26 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
27 <AbstractClassDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
28 })?),
29 )),
30 "ambient_declaration" => Ok(Self::AmbientDeclaration(::std::boxed::Box::new(
31 ::treesitter_types::runtime::maybe_grow_stack(|| {
32 <AmbientDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
33 })?,
34 ))),
35 "class_declaration" => Ok(Self::ClassDeclaration(::std::boxed::Box::new(
36 ::treesitter_types::runtime::maybe_grow_stack(|| {
37 <ClassDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
38 })?,
39 ))),
40 "enum_declaration" => Ok(Self::EnumDeclaration(::std::boxed::Box::new(
41 ::treesitter_types::runtime::maybe_grow_stack(|| {
42 <EnumDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
43 })?,
44 ))),
45 "function_declaration" => Ok(Self::FunctionDeclaration(::std::boxed::Box::new(
46 ::treesitter_types::runtime::maybe_grow_stack(|| {
47 <FunctionDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
48 })?,
49 ))),
50 "function_signature" => Ok(Self::FunctionSignature(::std::boxed::Box::new(
51 ::treesitter_types::runtime::maybe_grow_stack(|| {
52 <FunctionSignature as ::treesitter_types::FromNode>::from_node(node, src)
53 })?,
54 ))),
55 "generator_function_declaration" => Ok(Self::GeneratorFunctionDeclaration(
56 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
57 <GeneratorFunctionDeclaration as ::treesitter_types::FromNode>::from_node(
58 node, src,
59 )
60 })?),
61 )),
62 "import_alias" => Ok(Self::ImportAlias(::std::boxed::Box::new(
63 ::treesitter_types::runtime::maybe_grow_stack(|| {
64 <ImportAlias as ::treesitter_types::FromNode>::from_node(node, src)
65 })?,
66 ))),
67 "interface_declaration" => Ok(Self::InterfaceDeclaration(::std::boxed::Box::new(
68 ::treesitter_types::runtime::maybe_grow_stack(|| {
69 <InterfaceDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
70 })?,
71 ))),
72 "internal_module" => Ok(Self::InternalModule(::std::boxed::Box::new(
73 ::treesitter_types::runtime::maybe_grow_stack(|| {
74 <InternalModule as ::treesitter_types::FromNode>::from_node(node, src)
75 })?,
76 ))),
77 "lexical_declaration" => Ok(Self::LexicalDeclaration(::std::boxed::Box::new(
78 ::treesitter_types::runtime::maybe_grow_stack(|| {
79 <LexicalDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
80 })?,
81 ))),
82 "module" => Ok(Self::Module(::std::boxed::Box::new(
83 ::treesitter_types::runtime::maybe_grow_stack(|| {
84 <Module as ::treesitter_types::FromNode>::from_node(node, src)
85 })?,
86 ))),
87 "type_alias_declaration" => Ok(Self::TypeAliasDeclaration(::std::boxed::Box::new(
88 ::treesitter_types::runtime::maybe_grow_stack(|| {
89 <TypeAliasDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
90 })?,
91 ))),
92 "variable_declaration" => Ok(Self::VariableDeclaration(::std::boxed::Box::new(
93 ::treesitter_types::runtime::maybe_grow_stack(|| {
94 <VariableDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
95 })?,
96 ))),
97 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
98 }
99 }
100}
101impl ::treesitter_types::Spanned for Declaration<'_> {
102 fn span(&self) -> ::treesitter_types::Span {
103 match self {
104 Self::AbstractClassDeclaration(inner) => inner.span(),
105 Self::AmbientDeclaration(inner) => inner.span(),
106 Self::ClassDeclaration(inner) => inner.span(),
107 Self::EnumDeclaration(inner) => inner.span(),
108 Self::FunctionDeclaration(inner) => inner.span(),
109 Self::FunctionSignature(inner) => inner.span(),
110 Self::GeneratorFunctionDeclaration(inner) => inner.span(),
111 Self::ImportAlias(inner) => inner.span(),
112 Self::InterfaceDeclaration(inner) => inner.span(),
113 Self::InternalModule(inner) => inner.span(),
114 Self::LexicalDeclaration(inner) => inner.span(),
115 Self::Module(inner) => inner.span(),
116 Self::TypeAliasDeclaration(inner) => inner.span(),
117 Self::VariableDeclaration(inner) => inner.span(),
118 }
119 }
120}
121#[derive(Debug, Clone, PartialEq, Eq)]
122pub enum Expression<'tree> {
123 AsExpression(::std::boxed::Box<AsExpression<'tree>>),
124 AssignmentExpression(::std::boxed::Box<AssignmentExpression<'tree>>),
125 AugmentedAssignmentExpression(::std::boxed::Box<AugmentedAssignmentExpression<'tree>>),
126 AwaitExpression(::std::boxed::Box<AwaitExpression<'tree>>),
127 BinaryExpression(::std::boxed::Box<BinaryExpression<'tree>>),
128 InstantiationExpression(::std::boxed::Box<InstantiationExpression<'tree>>),
129 InternalModule(::std::boxed::Box<InternalModule<'tree>>),
130 NewExpression(::std::boxed::Box<NewExpression<'tree>>),
131 PrimaryExpression(::std::boxed::Box<PrimaryExpression<'tree>>),
132 SatisfiesExpression(::std::boxed::Box<SatisfiesExpression<'tree>>),
133 TernaryExpression(::std::boxed::Box<TernaryExpression<'tree>>),
134 TypeAssertion(::std::boxed::Box<TypeAssertion<'tree>>),
135 UnaryExpression(::std::boxed::Box<UnaryExpression<'tree>>),
136 UpdateExpression(::std::boxed::Box<UpdateExpression<'tree>>),
137 YieldExpression(::std::boxed::Box<YieldExpression<'tree>>),
138}
139impl<'tree> ::treesitter_types::FromNode<'tree> for Expression<'tree> {
140 #[allow(clippy::collapsible_else_if)]
141 fn from_node(
142 node: ::treesitter_types::tree_sitter::Node<'tree>,
143 src: &'tree [u8],
144 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
145 match node.kind() {
146 "as_expression" => Ok(Self::AsExpression(::std::boxed::Box::new(
147 ::treesitter_types::runtime::maybe_grow_stack(|| {
148 <AsExpression as ::treesitter_types::FromNode>::from_node(node, src)
149 })?,
150 ))),
151 "assignment_expression" => Ok(Self::AssignmentExpression(::std::boxed::Box::new(
152 ::treesitter_types::runtime::maybe_grow_stack(|| {
153 <AssignmentExpression as ::treesitter_types::FromNode>::from_node(node, src)
154 })?,
155 ))),
156 "augmented_assignment_expression" => Ok(Self::AugmentedAssignmentExpression(
157 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
158 <AugmentedAssignmentExpression as ::treesitter_types::FromNode>::from_node(
159 node, src,
160 )
161 })?),
162 )),
163 "await_expression" => Ok(Self::AwaitExpression(::std::boxed::Box::new(
164 ::treesitter_types::runtime::maybe_grow_stack(|| {
165 <AwaitExpression as ::treesitter_types::FromNode>::from_node(node, src)
166 })?,
167 ))),
168 "binary_expression" => Ok(Self::BinaryExpression(::std::boxed::Box::new(
169 ::treesitter_types::runtime::maybe_grow_stack(|| {
170 <BinaryExpression as ::treesitter_types::FromNode>::from_node(node, src)
171 })?,
172 ))),
173 "instantiation_expression" => Ok(Self::InstantiationExpression(
174 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
175 <InstantiationExpression as ::treesitter_types::FromNode>::from_node(node, src)
176 })?),
177 )),
178 "internal_module" => Ok(Self::InternalModule(::std::boxed::Box::new(
179 ::treesitter_types::runtime::maybe_grow_stack(|| {
180 <InternalModule as ::treesitter_types::FromNode>::from_node(node, src)
181 })?,
182 ))),
183 "new_expression" => Ok(Self::NewExpression(::std::boxed::Box::new(
184 ::treesitter_types::runtime::maybe_grow_stack(|| {
185 <NewExpression as ::treesitter_types::FromNode>::from_node(node, src)
186 })?,
187 ))),
188 "satisfies_expression" => Ok(Self::SatisfiesExpression(::std::boxed::Box::new(
189 ::treesitter_types::runtime::maybe_grow_stack(|| {
190 <SatisfiesExpression as ::treesitter_types::FromNode>::from_node(node, src)
191 })?,
192 ))),
193 "ternary_expression" => Ok(Self::TernaryExpression(::std::boxed::Box::new(
194 ::treesitter_types::runtime::maybe_grow_stack(|| {
195 <TernaryExpression as ::treesitter_types::FromNode>::from_node(node, src)
196 })?,
197 ))),
198 "type_assertion" => Ok(Self::TypeAssertion(::std::boxed::Box::new(
199 ::treesitter_types::runtime::maybe_grow_stack(|| {
200 <TypeAssertion as ::treesitter_types::FromNode>::from_node(node, src)
201 })?,
202 ))),
203 "unary_expression" => Ok(Self::UnaryExpression(::std::boxed::Box::new(
204 ::treesitter_types::runtime::maybe_grow_stack(|| {
205 <UnaryExpression as ::treesitter_types::FromNode>::from_node(node, src)
206 })?,
207 ))),
208 "update_expression" => Ok(Self::UpdateExpression(::std::boxed::Box::new(
209 ::treesitter_types::runtime::maybe_grow_stack(|| {
210 <UpdateExpression as ::treesitter_types::FromNode>::from_node(node, src)
211 })?,
212 ))),
213 "yield_expression" => Ok(Self::YieldExpression(::std::boxed::Box::new(
214 ::treesitter_types::runtime::maybe_grow_stack(|| {
215 <YieldExpression as ::treesitter_types::FromNode>::from_node(node, src)
216 })?,
217 ))),
218 _other => {
219 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
220 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(node, src)
221 }) {
222 Ok(Self::PrimaryExpression(::std::boxed::Box::new(v)))
223 } else {
224 Err(::treesitter_types::ParseError::unexpected_kind(
225 _other, node,
226 ))
227 }
228 }
229 }
230 }
231}
232impl ::treesitter_types::Spanned for Expression<'_> {
233 fn span(&self) -> ::treesitter_types::Span {
234 match self {
235 Self::AsExpression(inner) => inner.span(),
236 Self::AssignmentExpression(inner) => inner.span(),
237 Self::AugmentedAssignmentExpression(inner) => inner.span(),
238 Self::AwaitExpression(inner) => inner.span(),
239 Self::BinaryExpression(inner) => inner.span(),
240 Self::InstantiationExpression(inner) => inner.span(),
241 Self::InternalModule(inner) => inner.span(),
242 Self::NewExpression(inner) => inner.span(),
243 Self::PrimaryExpression(inner) => inner.span(),
244 Self::SatisfiesExpression(inner) => inner.span(),
245 Self::TernaryExpression(inner) => inner.span(),
246 Self::TypeAssertion(inner) => inner.span(),
247 Self::UnaryExpression(inner) => inner.span(),
248 Self::UpdateExpression(inner) => inner.span(),
249 Self::YieldExpression(inner) => inner.span(),
250 }
251 }
252}
253#[derive(Debug, Clone, PartialEq, Eq)]
254pub enum Pattern<'tree> {
255 ArrayPattern(::std::boxed::Box<ArrayPattern<'tree>>),
256 Identifier(::std::boxed::Box<Identifier<'tree>>),
257 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
258 NonNullExpression(::std::boxed::Box<NonNullExpression<'tree>>),
259 ObjectPattern(::std::boxed::Box<ObjectPattern<'tree>>),
260 RestPattern(::std::boxed::Box<RestPattern<'tree>>),
261 SubscriptExpression(::std::boxed::Box<SubscriptExpression<'tree>>),
262 Undefined(::std::boxed::Box<Undefined<'tree>>),
263}
264impl<'tree> ::treesitter_types::FromNode<'tree> for Pattern<'tree> {
265 #[allow(clippy::collapsible_else_if)]
266 fn from_node(
267 node: ::treesitter_types::tree_sitter::Node<'tree>,
268 src: &'tree [u8],
269 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
270 match node.kind() {
271 "array_pattern" => Ok(Self::ArrayPattern(::std::boxed::Box::new(
272 ::treesitter_types::runtime::maybe_grow_stack(|| {
273 <ArrayPattern as ::treesitter_types::FromNode>::from_node(node, src)
274 })?,
275 ))),
276 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
277 ::treesitter_types::runtime::maybe_grow_stack(|| {
278 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
279 })?,
280 ))),
281 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
282 ::treesitter_types::runtime::maybe_grow_stack(|| {
283 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)
284 })?,
285 ))),
286 "non_null_expression" => Ok(Self::NonNullExpression(::std::boxed::Box::new(
287 ::treesitter_types::runtime::maybe_grow_stack(|| {
288 <NonNullExpression as ::treesitter_types::FromNode>::from_node(node, src)
289 })?,
290 ))),
291 "object_pattern" => Ok(Self::ObjectPattern(::std::boxed::Box::new(
292 ::treesitter_types::runtime::maybe_grow_stack(|| {
293 <ObjectPattern as ::treesitter_types::FromNode>::from_node(node, src)
294 })?,
295 ))),
296 "rest_pattern" => Ok(Self::RestPattern(::std::boxed::Box::new(
297 ::treesitter_types::runtime::maybe_grow_stack(|| {
298 <RestPattern as ::treesitter_types::FromNode>::from_node(node, src)
299 })?,
300 ))),
301 "subscript_expression" => Ok(Self::SubscriptExpression(::std::boxed::Box::new(
302 ::treesitter_types::runtime::maybe_grow_stack(|| {
303 <SubscriptExpression as ::treesitter_types::FromNode>::from_node(node, src)
304 })?,
305 ))),
306 "undefined" => Ok(Self::Undefined(::std::boxed::Box::new(
307 ::treesitter_types::runtime::maybe_grow_stack(|| {
308 <Undefined as ::treesitter_types::FromNode>::from_node(node, src)
309 })?,
310 ))),
311 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
312 }
313 }
314}
315impl ::treesitter_types::Spanned for Pattern<'_> {
316 fn span(&self) -> ::treesitter_types::Span {
317 match self {
318 Self::ArrayPattern(inner) => inner.span(),
319 Self::Identifier(inner) => inner.span(),
320 Self::MemberExpression(inner) => inner.span(),
321 Self::NonNullExpression(inner) => inner.span(),
322 Self::ObjectPattern(inner) => inner.span(),
323 Self::RestPattern(inner) => inner.span(),
324 Self::SubscriptExpression(inner) => inner.span(),
325 Self::Undefined(inner) => inner.span(),
326 }
327 }
328}
329#[derive(Debug, Clone, PartialEq, Eq)]
330pub enum PrimaryExpression<'tree> {
331 Array(::std::boxed::Box<Array<'tree>>),
332 ArrowFunction(::std::boxed::Box<ArrowFunction<'tree>>),
333 CallExpression(::std::boxed::Box<CallExpression<'tree>>),
334 Class(::std::boxed::Box<Class<'tree>>),
335 False(::std::boxed::Box<False<'tree>>),
336 FunctionExpression(::std::boxed::Box<FunctionExpression<'tree>>),
337 GeneratorFunction(::std::boxed::Box<GeneratorFunction<'tree>>),
338 Identifier(::std::boxed::Box<Identifier<'tree>>),
339 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
340 MetaProperty(::std::boxed::Box<MetaProperty<'tree>>),
341 NonNullExpression(::std::boxed::Box<NonNullExpression<'tree>>),
342 Null(::std::boxed::Box<Null<'tree>>),
343 Number(::std::boxed::Box<Number<'tree>>),
344 Object(::std::boxed::Box<Object<'tree>>),
345 ParenthesizedExpression(::std::boxed::Box<ParenthesizedExpression<'tree>>),
346 Regex(::std::boxed::Box<Regex<'tree>>),
347 String(::std::boxed::Box<String<'tree>>),
348 SubscriptExpression(::std::boxed::Box<SubscriptExpression<'tree>>),
349 Super(::std::boxed::Box<Super<'tree>>),
350 TemplateString(::std::boxed::Box<TemplateString<'tree>>),
351 This(::std::boxed::Box<This<'tree>>),
352 True(::std::boxed::Box<True<'tree>>),
353 Undefined(::std::boxed::Box<Undefined<'tree>>),
354}
355impl<'tree> ::treesitter_types::FromNode<'tree> for PrimaryExpression<'tree> {
356 #[allow(clippy::collapsible_else_if)]
357 fn from_node(
358 node: ::treesitter_types::tree_sitter::Node<'tree>,
359 src: &'tree [u8],
360 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
361 match node.kind() {
362 "array" => Ok(Self::Array(::std::boxed::Box::new(
363 ::treesitter_types::runtime::maybe_grow_stack(|| {
364 <Array as ::treesitter_types::FromNode>::from_node(node, src)
365 })?,
366 ))),
367 "arrow_function" => Ok(Self::ArrowFunction(::std::boxed::Box::new(
368 ::treesitter_types::runtime::maybe_grow_stack(|| {
369 <ArrowFunction as ::treesitter_types::FromNode>::from_node(node, src)
370 })?,
371 ))),
372 "call_expression" => Ok(Self::CallExpression(::std::boxed::Box::new(
373 ::treesitter_types::runtime::maybe_grow_stack(|| {
374 <CallExpression as ::treesitter_types::FromNode>::from_node(node, src)
375 })?,
376 ))),
377 "class" => Ok(Self::Class(::std::boxed::Box::new(
378 ::treesitter_types::runtime::maybe_grow_stack(|| {
379 <Class as ::treesitter_types::FromNode>::from_node(node, src)
380 })?,
381 ))),
382 "false" => Ok(Self::False(::std::boxed::Box::new(
383 ::treesitter_types::runtime::maybe_grow_stack(|| {
384 <False as ::treesitter_types::FromNode>::from_node(node, src)
385 })?,
386 ))),
387 "function_expression" => Ok(Self::FunctionExpression(::std::boxed::Box::new(
388 ::treesitter_types::runtime::maybe_grow_stack(|| {
389 <FunctionExpression as ::treesitter_types::FromNode>::from_node(node, src)
390 })?,
391 ))),
392 "generator_function" => Ok(Self::GeneratorFunction(::std::boxed::Box::new(
393 ::treesitter_types::runtime::maybe_grow_stack(|| {
394 <GeneratorFunction as ::treesitter_types::FromNode>::from_node(node, src)
395 })?,
396 ))),
397 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
398 ::treesitter_types::runtime::maybe_grow_stack(|| {
399 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
400 })?,
401 ))),
402 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
403 ::treesitter_types::runtime::maybe_grow_stack(|| {
404 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)
405 })?,
406 ))),
407 "meta_property" => Ok(Self::MetaProperty(::std::boxed::Box::new(
408 ::treesitter_types::runtime::maybe_grow_stack(|| {
409 <MetaProperty as ::treesitter_types::FromNode>::from_node(node, src)
410 })?,
411 ))),
412 "non_null_expression" => Ok(Self::NonNullExpression(::std::boxed::Box::new(
413 ::treesitter_types::runtime::maybe_grow_stack(|| {
414 <NonNullExpression as ::treesitter_types::FromNode>::from_node(node, src)
415 })?,
416 ))),
417 "null" => Ok(Self::Null(::std::boxed::Box::new(
418 ::treesitter_types::runtime::maybe_grow_stack(|| {
419 <Null as ::treesitter_types::FromNode>::from_node(node, src)
420 })?,
421 ))),
422 "number" => Ok(Self::Number(::std::boxed::Box::new(
423 ::treesitter_types::runtime::maybe_grow_stack(|| {
424 <Number as ::treesitter_types::FromNode>::from_node(node, src)
425 })?,
426 ))),
427 "object" => Ok(Self::Object(::std::boxed::Box::new(
428 ::treesitter_types::runtime::maybe_grow_stack(|| {
429 <Object as ::treesitter_types::FromNode>::from_node(node, src)
430 })?,
431 ))),
432 "parenthesized_expression" => Ok(Self::ParenthesizedExpression(
433 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
434 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(node, src)
435 })?),
436 )),
437 "regex" => Ok(Self::Regex(::std::boxed::Box::new(
438 ::treesitter_types::runtime::maybe_grow_stack(|| {
439 <Regex as ::treesitter_types::FromNode>::from_node(node, src)
440 })?,
441 ))),
442 "string" => Ok(Self::String(::std::boxed::Box::new(
443 ::treesitter_types::runtime::maybe_grow_stack(|| {
444 <String as ::treesitter_types::FromNode>::from_node(node, src)
445 })?,
446 ))),
447 "subscript_expression" => Ok(Self::SubscriptExpression(::std::boxed::Box::new(
448 ::treesitter_types::runtime::maybe_grow_stack(|| {
449 <SubscriptExpression as ::treesitter_types::FromNode>::from_node(node, src)
450 })?,
451 ))),
452 "super" => Ok(Self::Super(::std::boxed::Box::new(
453 ::treesitter_types::runtime::maybe_grow_stack(|| {
454 <Super as ::treesitter_types::FromNode>::from_node(node, src)
455 })?,
456 ))),
457 "template_string" => Ok(Self::TemplateString(::std::boxed::Box::new(
458 ::treesitter_types::runtime::maybe_grow_stack(|| {
459 <TemplateString as ::treesitter_types::FromNode>::from_node(node, src)
460 })?,
461 ))),
462 "this" => Ok(Self::This(::std::boxed::Box::new(
463 ::treesitter_types::runtime::maybe_grow_stack(|| {
464 <This as ::treesitter_types::FromNode>::from_node(node, src)
465 })?,
466 ))),
467 "true" => Ok(Self::True(::std::boxed::Box::new(
468 ::treesitter_types::runtime::maybe_grow_stack(|| {
469 <True as ::treesitter_types::FromNode>::from_node(node, src)
470 })?,
471 ))),
472 "undefined" => Ok(Self::Undefined(::std::boxed::Box::new(
473 ::treesitter_types::runtime::maybe_grow_stack(|| {
474 <Undefined as ::treesitter_types::FromNode>::from_node(node, src)
475 })?,
476 ))),
477 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
478 }
479 }
480}
481impl ::treesitter_types::Spanned for PrimaryExpression<'_> {
482 fn span(&self) -> ::treesitter_types::Span {
483 match self {
484 Self::Array(inner) => inner.span(),
485 Self::ArrowFunction(inner) => inner.span(),
486 Self::CallExpression(inner) => inner.span(),
487 Self::Class(inner) => inner.span(),
488 Self::False(inner) => inner.span(),
489 Self::FunctionExpression(inner) => inner.span(),
490 Self::GeneratorFunction(inner) => inner.span(),
491 Self::Identifier(inner) => inner.span(),
492 Self::MemberExpression(inner) => inner.span(),
493 Self::MetaProperty(inner) => inner.span(),
494 Self::NonNullExpression(inner) => inner.span(),
495 Self::Null(inner) => inner.span(),
496 Self::Number(inner) => inner.span(),
497 Self::Object(inner) => inner.span(),
498 Self::ParenthesizedExpression(inner) => inner.span(),
499 Self::Regex(inner) => inner.span(),
500 Self::String(inner) => inner.span(),
501 Self::SubscriptExpression(inner) => inner.span(),
502 Self::Super(inner) => inner.span(),
503 Self::TemplateString(inner) => inner.span(),
504 Self::This(inner) => inner.span(),
505 Self::True(inner) => inner.span(),
506 Self::Undefined(inner) => inner.span(),
507 }
508 }
509}
510#[derive(Debug, Clone, PartialEq, Eq)]
511pub enum PrimaryType<'tree> {
512 ArrayType(::std::boxed::Box<ArrayType<'tree>>),
513 ConditionalType(::std::boxed::Box<ConditionalType<'tree>>),
514 Const(::treesitter_types::Span),
515 ExistentialType(::std::boxed::Box<ExistentialType<'tree>>),
516 FlowMaybeType(::std::boxed::Box<FlowMaybeType<'tree>>),
517 GenericType(::std::boxed::Box<GenericType<'tree>>),
518 IndexTypeQuery(::std::boxed::Box<IndexTypeQuery<'tree>>),
519 IntersectionType(::std::boxed::Box<IntersectionType<'tree>>),
520 LiteralType(::std::boxed::Box<LiteralType<'tree>>),
521 LookupType(::std::boxed::Box<LookupType<'tree>>),
522 NestedTypeIdentifier(::std::boxed::Box<NestedTypeIdentifier<'tree>>),
523 ObjectType(::std::boxed::Box<ObjectType<'tree>>),
524 ParenthesizedType(::std::boxed::Box<ParenthesizedType<'tree>>),
525 PredefinedType(::std::boxed::Box<PredefinedType<'tree>>),
526 TemplateLiteralType(::std::boxed::Box<TemplateLiteralType<'tree>>),
527 ThisType(::std::boxed::Box<ThisType<'tree>>),
528 TupleType(::std::boxed::Box<TupleType<'tree>>),
529 TypeIdentifier(::std::boxed::Box<TypeIdentifier<'tree>>),
530 TypeQuery(::std::boxed::Box<TypeQuery<'tree>>),
531 UnionType(::std::boxed::Box<UnionType<'tree>>),
532}
533impl<'tree> ::treesitter_types::FromNode<'tree> for PrimaryType<'tree> {
534 #[allow(clippy::collapsible_else_if)]
535 fn from_node(
536 node: ::treesitter_types::tree_sitter::Node<'tree>,
537 src: &'tree [u8],
538 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
539 match node.kind() {
540 "array_type" => Ok(Self::ArrayType(::std::boxed::Box::new(
541 ::treesitter_types::runtime::maybe_grow_stack(|| {
542 <ArrayType as ::treesitter_types::FromNode>::from_node(node, src)
543 })?,
544 ))),
545 "conditional_type" => Ok(Self::ConditionalType(::std::boxed::Box::new(
546 ::treesitter_types::runtime::maybe_grow_stack(|| {
547 <ConditionalType as ::treesitter_types::FromNode>::from_node(node, src)
548 })?,
549 ))),
550 "const" => Ok(Self::Const(::treesitter_types::Span::from(node))),
551 "existential_type" => Ok(Self::ExistentialType(::std::boxed::Box::new(
552 ::treesitter_types::runtime::maybe_grow_stack(|| {
553 <ExistentialType as ::treesitter_types::FromNode>::from_node(node, src)
554 })?,
555 ))),
556 "flow_maybe_type" => Ok(Self::FlowMaybeType(::std::boxed::Box::new(
557 ::treesitter_types::runtime::maybe_grow_stack(|| {
558 <FlowMaybeType as ::treesitter_types::FromNode>::from_node(node, src)
559 })?,
560 ))),
561 "generic_type" => Ok(Self::GenericType(::std::boxed::Box::new(
562 ::treesitter_types::runtime::maybe_grow_stack(|| {
563 <GenericType as ::treesitter_types::FromNode>::from_node(node, src)
564 })?,
565 ))),
566 "index_type_query" => Ok(Self::IndexTypeQuery(::std::boxed::Box::new(
567 ::treesitter_types::runtime::maybe_grow_stack(|| {
568 <IndexTypeQuery as ::treesitter_types::FromNode>::from_node(node, src)
569 })?,
570 ))),
571 "intersection_type" => Ok(Self::IntersectionType(::std::boxed::Box::new(
572 ::treesitter_types::runtime::maybe_grow_stack(|| {
573 <IntersectionType as ::treesitter_types::FromNode>::from_node(node, src)
574 })?,
575 ))),
576 "literal_type" => Ok(Self::LiteralType(::std::boxed::Box::new(
577 ::treesitter_types::runtime::maybe_grow_stack(|| {
578 <LiteralType as ::treesitter_types::FromNode>::from_node(node, src)
579 })?,
580 ))),
581 "lookup_type" => Ok(Self::LookupType(::std::boxed::Box::new(
582 ::treesitter_types::runtime::maybe_grow_stack(|| {
583 <LookupType as ::treesitter_types::FromNode>::from_node(node, src)
584 })?,
585 ))),
586 "nested_type_identifier" => Ok(Self::NestedTypeIdentifier(::std::boxed::Box::new(
587 ::treesitter_types::runtime::maybe_grow_stack(|| {
588 <NestedTypeIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
589 })?,
590 ))),
591 "object_type" => Ok(Self::ObjectType(::std::boxed::Box::new(
592 ::treesitter_types::runtime::maybe_grow_stack(|| {
593 <ObjectType as ::treesitter_types::FromNode>::from_node(node, src)
594 })?,
595 ))),
596 "parenthesized_type" => Ok(Self::ParenthesizedType(::std::boxed::Box::new(
597 ::treesitter_types::runtime::maybe_grow_stack(|| {
598 <ParenthesizedType as ::treesitter_types::FromNode>::from_node(node, src)
599 })?,
600 ))),
601 "predefined_type" => Ok(Self::PredefinedType(::std::boxed::Box::new(
602 ::treesitter_types::runtime::maybe_grow_stack(|| {
603 <PredefinedType as ::treesitter_types::FromNode>::from_node(node, src)
604 })?,
605 ))),
606 "template_literal_type" => Ok(Self::TemplateLiteralType(::std::boxed::Box::new(
607 ::treesitter_types::runtime::maybe_grow_stack(|| {
608 <TemplateLiteralType as ::treesitter_types::FromNode>::from_node(node, src)
609 })?,
610 ))),
611 "this_type" => Ok(Self::ThisType(::std::boxed::Box::new(
612 ::treesitter_types::runtime::maybe_grow_stack(|| {
613 <ThisType as ::treesitter_types::FromNode>::from_node(node, src)
614 })?,
615 ))),
616 "tuple_type" => Ok(Self::TupleType(::std::boxed::Box::new(
617 ::treesitter_types::runtime::maybe_grow_stack(|| {
618 <TupleType as ::treesitter_types::FromNode>::from_node(node, src)
619 })?,
620 ))),
621 "type_identifier" => Ok(Self::TypeIdentifier(::std::boxed::Box::new(
622 ::treesitter_types::runtime::maybe_grow_stack(|| {
623 <TypeIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
624 })?,
625 ))),
626 "type_query" => Ok(Self::TypeQuery(::std::boxed::Box::new(
627 ::treesitter_types::runtime::maybe_grow_stack(|| {
628 <TypeQuery as ::treesitter_types::FromNode>::from_node(node, src)
629 })?,
630 ))),
631 "union_type" => Ok(Self::UnionType(::std::boxed::Box::new(
632 ::treesitter_types::runtime::maybe_grow_stack(|| {
633 <UnionType as ::treesitter_types::FromNode>::from_node(node, src)
634 })?,
635 ))),
636 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
637 }
638 }
639}
640impl ::treesitter_types::Spanned for PrimaryType<'_> {
641 fn span(&self) -> ::treesitter_types::Span {
642 match self {
643 Self::ArrayType(inner) => inner.span(),
644 Self::ConditionalType(inner) => inner.span(),
645 Self::Const(span) => *span,
646 Self::ExistentialType(inner) => inner.span(),
647 Self::FlowMaybeType(inner) => inner.span(),
648 Self::GenericType(inner) => inner.span(),
649 Self::IndexTypeQuery(inner) => inner.span(),
650 Self::IntersectionType(inner) => inner.span(),
651 Self::LiteralType(inner) => inner.span(),
652 Self::LookupType(inner) => inner.span(),
653 Self::NestedTypeIdentifier(inner) => inner.span(),
654 Self::ObjectType(inner) => inner.span(),
655 Self::ParenthesizedType(inner) => inner.span(),
656 Self::PredefinedType(inner) => inner.span(),
657 Self::TemplateLiteralType(inner) => inner.span(),
658 Self::ThisType(inner) => inner.span(),
659 Self::TupleType(inner) => inner.span(),
660 Self::TypeIdentifier(inner) => inner.span(),
661 Self::TypeQuery(inner) => inner.span(),
662 Self::UnionType(inner) => inner.span(),
663 }
664 }
665}
666#[derive(Debug, Clone, PartialEq, Eq)]
667pub enum Statement<'tree> {
668 BreakStatement(::std::boxed::Box<BreakStatement<'tree>>),
669 ContinueStatement(::std::boxed::Box<ContinueStatement<'tree>>),
670 DebuggerStatement(::std::boxed::Box<DebuggerStatement<'tree>>),
671 Declaration(::std::boxed::Box<Declaration<'tree>>),
672 DoStatement(::std::boxed::Box<DoStatement<'tree>>),
673 EmptyStatement(::std::boxed::Box<EmptyStatement<'tree>>),
674 ExportStatement(::std::boxed::Box<ExportStatement<'tree>>),
675 ExpressionStatement(::std::boxed::Box<ExpressionStatement<'tree>>),
676 ForInStatement(::std::boxed::Box<ForInStatement<'tree>>),
677 ForStatement(::std::boxed::Box<ForStatement<'tree>>),
678 IfStatement(::std::boxed::Box<IfStatement<'tree>>),
679 ImportStatement(::std::boxed::Box<ImportStatement<'tree>>),
680 LabeledStatement(::std::boxed::Box<LabeledStatement<'tree>>),
681 ReturnStatement(::std::boxed::Box<ReturnStatement<'tree>>),
682 StatementBlock(::std::boxed::Box<StatementBlock<'tree>>),
683 SwitchStatement(::std::boxed::Box<SwitchStatement<'tree>>),
684 ThrowStatement(::std::boxed::Box<ThrowStatement<'tree>>),
685 TryStatement(::std::boxed::Box<TryStatement<'tree>>),
686 WhileStatement(::std::boxed::Box<WhileStatement<'tree>>),
687 WithStatement(::std::boxed::Box<WithStatement<'tree>>),
688}
689impl<'tree> ::treesitter_types::FromNode<'tree> for Statement<'tree> {
690 #[allow(clippy::collapsible_else_if)]
691 fn from_node(
692 node: ::treesitter_types::tree_sitter::Node<'tree>,
693 src: &'tree [u8],
694 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
695 match node.kind() {
696 "break_statement" => Ok(Self::BreakStatement(::std::boxed::Box::new(
697 ::treesitter_types::runtime::maybe_grow_stack(|| {
698 <BreakStatement as ::treesitter_types::FromNode>::from_node(node, src)
699 })?,
700 ))),
701 "continue_statement" => Ok(Self::ContinueStatement(::std::boxed::Box::new(
702 ::treesitter_types::runtime::maybe_grow_stack(|| {
703 <ContinueStatement as ::treesitter_types::FromNode>::from_node(node, src)
704 })?,
705 ))),
706 "debugger_statement" => Ok(Self::DebuggerStatement(::std::boxed::Box::new(
707 ::treesitter_types::runtime::maybe_grow_stack(|| {
708 <DebuggerStatement as ::treesitter_types::FromNode>::from_node(node, src)
709 })?,
710 ))),
711 "do_statement" => Ok(Self::DoStatement(::std::boxed::Box::new(
712 ::treesitter_types::runtime::maybe_grow_stack(|| {
713 <DoStatement as ::treesitter_types::FromNode>::from_node(node, src)
714 })?,
715 ))),
716 "empty_statement" => Ok(Self::EmptyStatement(::std::boxed::Box::new(
717 ::treesitter_types::runtime::maybe_grow_stack(|| {
718 <EmptyStatement as ::treesitter_types::FromNode>::from_node(node, src)
719 })?,
720 ))),
721 "export_statement" => Ok(Self::ExportStatement(::std::boxed::Box::new(
722 ::treesitter_types::runtime::maybe_grow_stack(|| {
723 <ExportStatement as ::treesitter_types::FromNode>::from_node(node, src)
724 })?,
725 ))),
726 "expression_statement" => Ok(Self::ExpressionStatement(::std::boxed::Box::new(
727 ::treesitter_types::runtime::maybe_grow_stack(|| {
728 <ExpressionStatement as ::treesitter_types::FromNode>::from_node(node, src)
729 })?,
730 ))),
731 "for_in_statement" => Ok(Self::ForInStatement(::std::boxed::Box::new(
732 ::treesitter_types::runtime::maybe_grow_stack(|| {
733 <ForInStatement as ::treesitter_types::FromNode>::from_node(node, src)
734 })?,
735 ))),
736 "for_statement" => Ok(Self::ForStatement(::std::boxed::Box::new(
737 ::treesitter_types::runtime::maybe_grow_stack(|| {
738 <ForStatement as ::treesitter_types::FromNode>::from_node(node, src)
739 })?,
740 ))),
741 "if_statement" => Ok(Self::IfStatement(::std::boxed::Box::new(
742 ::treesitter_types::runtime::maybe_grow_stack(|| {
743 <IfStatement as ::treesitter_types::FromNode>::from_node(node, src)
744 })?,
745 ))),
746 "import_statement" => Ok(Self::ImportStatement(::std::boxed::Box::new(
747 ::treesitter_types::runtime::maybe_grow_stack(|| {
748 <ImportStatement as ::treesitter_types::FromNode>::from_node(node, src)
749 })?,
750 ))),
751 "labeled_statement" => Ok(Self::LabeledStatement(::std::boxed::Box::new(
752 ::treesitter_types::runtime::maybe_grow_stack(|| {
753 <LabeledStatement as ::treesitter_types::FromNode>::from_node(node, src)
754 })?,
755 ))),
756 "return_statement" => Ok(Self::ReturnStatement(::std::boxed::Box::new(
757 ::treesitter_types::runtime::maybe_grow_stack(|| {
758 <ReturnStatement as ::treesitter_types::FromNode>::from_node(node, src)
759 })?,
760 ))),
761 "statement_block" => Ok(Self::StatementBlock(::std::boxed::Box::new(
762 ::treesitter_types::runtime::maybe_grow_stack(|| {
763 <StatementBlock as ::treesitter_types::FromNode>::from_node(node, src)
764 })?,
765 ))),
766 "switch_statement" => Ok(Self::SwitchStatement(::std::boxed::Box::new(
767 ::treesitter_types::runtime::maybe_grow_stack(|| {
768 <SwitchStatement as ::treesitter_types::FromNode>::from_node(node, src)
769 })?,
770 ))),
771 "throw_statement" => Ok(Self::ThrowStatement(::std::boxed::Box::new(
772 ::treesitter_types::runtime::maybe_grow_stack(|| {
773 <ThrowStatement as ::treesitter_types::FromNode>::from_node(node, src)
774 })?,
775 ))),
776 "try_statement" => Ok(Self::TryStatement(::std::boxed::Box::new(
777 ::treesitter_types::runtime::maybe_grow_stack(|| {
778 <TryStatement as ::treesitter_types::FromNode>::from_node(node, src)
779 })?,
780 ))),
781 "while_statement" => Ok(Self::WhileStatement(::std::boxed::Box::new(
782 ::treesitter_types::runtime::maybe_grow_stack(|| {
783 <WhileStatement as ::treesitter_types::FromNode>::from_node(node, src)
784 })?,
785 ))),
786 "with_statement" => Ok(Self::WithStatement(::std::boxed::Box::new(
787 ::treesitter_types::runtime::maybe_grow_stack(|| {
788 <WithStatement as ::treesitter_types::FromNode>::from_node(node, src)
789 })?,
790 ))),
791 _other => {
792 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
793 <Declaration as ::treesitter_types::FromNode>::from_node(node, src)
794 }) {
795 Ok(Self::Declaration(::std::boxed::Box::new(v)))
796 } else {
797 Err(::treesitter_types::ParseError::unexpected_kind(
798 _other, node,
799 ))
800 }
801 }
802 }
803 }
804}
805impl ::treesitter_types::Spanned for Statement<'_> {
806 fn span(&self) -> ::treesitter_types::Span {
807 match self {
808 Self::BreakStatement(inner) => inner.span(),
809 Self::ContinueStatement(inner) => inner.span(),
810 Self::DebuggerStatement(inner) => inner.span(),
811 Self::Declaration(inner) => inner.span(),
812 Self::DoStatement(inner) => inner.span(),
813 Self::EmptyStatement(inner) => inner.span(),
814 Self::ExportStatement(inner) => inner.span(),
815 Self::ExpressionStatement(inner) => inner.span(),
816 Self::ForInStatement(inner) => inner.span(),
817 Self::ForStatement(inner) => inner.span(),
818 Self::IfStatement(inner) => inner.span(),
819 Self::ImportStatement(inner) => inner.span(),
820 Self::LabeledStatement(inner) => inner.span(),
821 Self::ReturnStatement(inner) => inner.span(),
822 Self::StatementBlock(inner) => inner.span(),
823 Self::SwitchStatement(inner) => inner.span(),
824 Self::ThrowStatement(inner) => inner.span(),
825 Self::TryStatement(inner) => inner.span(),
826 Self::WhileStatement(inner) => inner.span(),
827 Self::WithStatement(inner) => inner.span(),
828 }
829 }
830}
831#[derive(Debug, Clone, PartialEq, Eq)]
832pub enum Type<'tree> {
833 CallExpression(::std::boxed::Box<CallExpression<'tree>>),
834 ConstructorType(::std::boxed::Box<ConstructorType<'tree>>),
835 FunctionType(::std::boxed::Box<FunctionType<'tree>>),
836 InferType(::std::boxed::Box<InferType<'tree>>),
837 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
838 PrimaryType(::std::boxed::Box<PrimaryType<'tree>>),
839 ReadonlyType(::std::boxed::Box<ReadonlyType<'tree>>),
840}
841impl<'tree> ::treesitter_types::FromNode<'tree> for Type<'tree> {
842 #[allow(clippy::collapsible_else_if)]
843 fn from_node(
844 node: ::treesitter_types::tree_sitter::Node<'tree>,
845 src: &'tree [u8],
846 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
847 match node.kind() {
848 "call_expression" => Ok(Self::CallExpression(::std::boxed::Box::new(
849 ::treesitter_types::runtime::maybe_grow_stack(|| {
850 <CallExpression as ::treesitter_types::FromNode>::from_node(node, src)
851 })?,
852 ))),
853 "constructor_type" => Ok(Self::ConstructorType(::std::boxed::Box::new(
854 ::treesitter_types::runtime::maybe_grow_stack(|| {
855 <ConstructorType as ::treesitter_types::FromNode>::from_node(node, src)
856 })?,
857 ))),
858 "function_type" => Ok(Self::FunctionType(::std::boxed::Box::new(
859 ::treesitter_types::runtime::maybe_grow_stack(|| {
860 <FunctionType as ::treesitter_types::FromNode>::from_node(node, src)
861 })?,
862 ))),
863 "infer_type" => Ok(Self::InferType(::std::boxed::Box::new(
864 ::treesitter_types::runtime::maybe_grow_stack(|| {
865 <InferType as ::treesitter_types::FromNode>::from_node(node, src)
866 })?,
867 ))),
868 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
869 ::treesitter_types::runtime::maybe_grow_stack(|| {
870 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)
871 })?,
872 ))),
873 "readonly_type" => Ok(Self::ReadonlyType(::std::boxed::Box::new(
874 ::treesitter_types::runtime::maybe_grow_stack(|| {
875 <ReadonlyType as ::treesitter_types::FromNode>::from_node(node, src)
876 })?,
877 ))),
878 _other => {
879 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
880 <PrimaryType as ::treesitter_types::FromNode>::from_node(node, src)
881 }) {
882 Ok(Self::PrimaryType(::std::boxed::Box::new(v)))
883 } else {
884 Err(::treesitter_types::ParseError::unexpected_kind(
885 _other, node,
886 ))
887 }
888 }
889 }
890 }
891}
892impl ::treesitter_types::Spanned for Type<'_> {
893 fn span(&self) -> ::treesitter_types::Span {
894 match self {
895 Self::CallExpression(inner) => inner.span(),
896 Self::ConstructorType(inner) => inner.span(),
897 Self::FunctionType(inner) => inner.span(),
898 Self::InferType(inner) => inner.span(),
899 Self::MemberExpression(inner) => inner.span(),
900 Self::PrimaryType(inner) => inner.span(),
901 Self::ReadonlyType(inner) => inner.span(),
902 }
903 }
904}
905#[derive(Debug, Clone, PartialEq, Eq)]
906pub struct AbstractClassDeclaration<'tree> {
907 pub span: ::treesitter_types::Span,
908 pub body: ClassBody<'tree>,
909 pub decorator: ::std::vec::Vec<Decorator<'tree>>,
910 pub name: TypeIdentifier<'tree>,
911 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
912 pub children: ::core::option::Option<ClassHeritage<'tree>>,
913}
914impl<'tree> ::treesitter_types::FromNode<'tree> for AbstractClassDeclaration<'tree> {
915 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
916 fn from_node(
917 node: ::treesitter_types::tree_sitter::Node<'tree>,
918 src: &'tree [u8],
919 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
920 debug_assert_eq!(node.kind(), "abstract_class_declaration");
921 Ok(Self {
922 span: ::treesitter_types::Span::from(node),
923 body: {
924 let child = node
925 .child_by_field_name("body")
926 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
927 ::treesitter_types::runtime::maybe_grow_stack(|| {
928 <ClassBody as ::treesitter_types::FromNode>::from_node(child, src)
929 })?
930 },
931 decorator: {
932 let mut cursor = node.walk();
933 let mut items = ::std::vec::Vec::new();
934 for child in node.children_by_field_name("decorator", &mut cursor) {
935 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
936 <Decorator as ::treesitter_types::FromNode>::from_node(child, src)
937 })?);
938 }
939 items
940 },
941 name: {
942 let child = node
943 .child_by_field_name("name")
944 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
945 ::treesitter_types::runtime::maybe_grow_stack(|| {
946 <TypeIdentifier as ::treesitter_types::FromNode>::from_node(child, src)
947 })?
948 },
949 type_parameters: match node.child_by_field_name("type_parameters") {
950 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
951 <TypeParameters as ::treesitter_types::FromNode>::from_node(child, src)
952 })?),
953 None => None,
954 },
955 children: {
956 #[allow(clippy::suspicious_else_formatting)]
957 let non_field_children = {
958 let mut cursor = node.walk();
959 let mut result = ::std::vec::Vec::new();
960 if cursor.goto_first_child() {
961 loop {
962 if cursor.field_name().is_none()
963 && cursor.node().is_named()
964 && !cursor.node().is_extra()
965 {
966 result.push(cursor.node());
967 }
968 if !cursor.goto_next_sibling() {
969 break;
970 }
971 }
972 }
973 result
974 };
975 match non_field_children.first() {
976 Some(&child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
977 <ClassHeritage as ::treesitter_types::FromNode>::from_node(child, src)
978 })?),
979 None => None,
980 }
981 },
982 })
983 }
984}
985impl ::treesitter_types::Spanned for AbstractClassDeclaration<'_> {
986 fn span(&self) -> ::treesitter_types::Span {
987 self.span
988 }
989}
990#[derive(Debug, Clone, PartialEq, Eq)]
991pub struct AbstractMethodSignature<'tree> {
992 pub span: ::treesitter_types::Span,
993 pub name: AbstractMethodSignatureName<'tree>,
994 pub parameters: FormalParameters<'tree>,
995 pub return_type: ::core::option::Option<AbstractMethodSignatureReturnType<'tree>>,
996 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
997 pub children: ::std::vec::Vec<AbstractMethodSignatureChildren<'tree>>,
998}
999impl<'tree> ::treesitter_types::FromNode<'tree> for AbstractMethodSignature<'tree> {
1000 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1001 fn from_node(
1002 node: ::treesitter_types::tree_sitter::Node<'tree>,
1003 src: &'tree [u8],
1004 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1005 debug_assert_eq!(node.kind(), "abstract_method_signature");
1006 Ok(Self {
1007 span: ::treesitter_types::Span::from(node),
1008 name: {
1009 let child = node
1010 .child_by_field_name("name")
1011 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
1012 ::treesitter_types::runtime::maybe_grow_stack(|| {
1013 <AbstractMethodSignatureName as ::treesitter_types::FromNode>::from_node(
1014 child, src,
1015 )
1016 })?
1017 },
1018 parameters: {
1019 let child = node.child_by_field_name("parameters").ok_or_else(|| {
1020 ::treesitter_types::ParseError::missing_field("parameters", node)
1021 })?;
1022 ::treesitter_types::runtime::maybe_grow_stack(|| {
1023 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)
1024 })?
1025 },
1026 return_type: match node.child_by_field_name("return_type") {
1027 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
1028 <AbstractMethodSignatureReturnType as ::treesitter_types::FromNode>::from_node(
1029 child, src,
1030 )
1031 })?),
1032 None => None,
1033 },
1034 type_parameters: match node.child_by_field_name("type_parameters") {
1035 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
1036 <TypeParameters as ::treesitter_types::FromNode>::from_node(child, src)
1037 })?),
1038 None => None,
1039 },
1040 children: {
1041 #[allow(clippy::suspicious_else_formatting)]
1042 let non_field_children = {
1043 let mut cursor = node.walk();
1044 let mut result = ::std::vec::Vec::new();
1045 if cursor.goto_first_child() {
1046 loop {
1047 if cursor.field_name().is_none()
1048 && cursor.node().is_named()
1049 && !cursor.node().is_extra()
1050 {
1051 result.push(cursor.node());
1052 }
1053 if !cursor.goto_next_sibling() {
1054 break;
1055 }
1056 }
1057 }
1058 result
1059 };
1060 let mut items = ::std::vec::Vec::new();
1061 for child in non_field_children {
1062 items
1063 .push(
1064 ::treesitter_types::runtime::maybe_grow_stack(|| <AbstractMethodSignatureChildren as ::treesitter_types::FromNode>::from_node(
1065 child,
1066 src,
1067 ))?,
1068 );
1069 }
1070 items
1071 },
1072 })
1073 }
1074}
1075impl ::treesitter_types::Spanned for AbstractMethodSignature<'_> {
1076 fn span(&self) -> ::treesitter_types::Span {
1077 self.span
1078 }
1079}
1080#[derive(Debug, Clone, PartialEq, Eq)]
1081pub struct AccessibilityModifier<'tree> {
1082 pub span: ::treesitter_types::Span,
1083 text: &'tree str,
1084}
1085impl<'tree> ::treesitter_types::FromNode<'tree> for AccessibilityModifier<'tree> {
1086 fn from_node(
1087 node: ::treesitter_types::tree_sitter::Node<'tree>,
1088 src: &'tree [u8],
1089 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1090 debug_assert_eq!(node.kind(), "accessibility_modifier");
1091 Ok(Self {
1092 span: ::treesitter_types::Span::from(node),
1093 text: node.utf8_text(src)?,
1094 })
1095 }
1096}
1097impl<'tree> ::treesitter_types::LeafNode<'tree> for AccessibilityModifier<'tree> {
1098 fn text(&self) -> &'tree str {
1099 self.text
1100 }
1101}
1102impl ::treesitter_types::Spanned for AccessibilityModifier<'_> {
1103 fn span(&self) -> ::treesitter_types::Span {
1104 self.span
1105 }
1106}
1107#[derive(Debug, Clone, PartialEq, Eq)]
1108pub struct AddingTypeAnnotation<'tree> {
1109 pub span: ::treesitter_types::Span,
1110 pub children: Type<'tree>,
1111}
1112impl<'tree> ::treesitter_types::FromNode<'tree> for AddingTypeAnnotation<'tree> {
1113 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1114 fn from_node(
1115 node: ::treesitter_types::tree_sitter::Node<'tree>,
1116 src: &'tree [u8],
1117 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1118 debug_assert_eq!(node.kind(), "adding_type_annotation");
1119 Ok(Self {
1120 span: ::treesitter_types::Span::from(node),
1121 children: {
1122 #[allow(clippy::suspicious_else_formatting)]
1123 let non_field_children = {
1124 let mut cursor = node.walk();
1125 let mut result = ::std::vec::Vec::new();
1126 if cursor.goto_first_child() {
1127 loop {
1128 if cursor.field_name().is_none()
1129 && cursor.node().is_named()
1130 && !cursor.node().is_extra()
1131 {
1132 result.push(cursor.node());
1133 }
1134 if !cursor.goto_next_sibling() {
1135 break;
1136 }
1137 }
1138 }
1139 result
1140 };
1141 let child = if let Some(&c) = non_field_children.first() {
1142 c
1143 } else {
1144 let mut fallback_cursor = node.walk();
1145 let mut fallback_child = None;
1146 if fallback_cursor.goto_first_child() {
1147 loop {
1148 if fallback_cursor.field_name().is_none()
1149 && !fallback_cursor.node().is_extra()
1150 {
1151 let candidate = fallback_cursor.node();
1152 #[allow(clippy::needless_question_mark)]
1153 if (|| -> ::core::result::Result<
1154 _,
1155 ::treesitter_types::ParseError,
1156 > {
1157 let child = candidate;
1158 Ok(
1159 ::treesitter_types::runtime::maybe_grow_stack(|| <Type as ::treesitter_types::FromNode>::from_node(
1160 child,
1161 src,
1162 ))?,
1163 )
1164 })()
1165 .is_ok()
1166 {
1167 fallback_child = Some(candidate);
1168 break;
1169 }
1170 }
1171 if !fallback_cursor.goto_next_sibling() {
1172 break;
1173 }
1174 }
1175 }
1176 if fallback_child.is_none() {
1177 let mut cursor2 = node.walk();
1178 if cursor2.goto_first_child() {
1179 loop {
1180 if cursor2.node().is_named() && !cursor2.node().is_extra() {
1181 let candidate = cursor2.node();
1182 #[allow(clippy::needless_question_mark)]
1183 if (|| -> ::core::result::Result<
1184 _,
1185 ::treesitter_types::ParseError,
1186 > {
1187 let child = candidate;
1188 Ok(
1189 ::treesitter_types::runtime::maybe_grow_stack(|| <Type as ::treesitter_types::FromNode>::from_node(
1190 child,
1191 src,
1192 ))?,
1193 )
1194 })()
1195 .is_ok()
1196 {
1197 fallback_child = Some(candidate);
1198 break;
1199 }
1200 }
1201 if !cursor2.goto_next_sibling() {
1202 break;
1203 }
1204 }
1205 }
1206 }
1207 fallback_child.ok_or_else(|| {
1208 ::treesitter_types::ParseError::missing_field("children", node)
1209 })?
1210 };
1211 ::treesitter_types::runtime::maybe_grow_stack(|| {
1212 <Type as ::treesitter_types::FromNode>::from_node(child, src)
1213 })?
1214 },
1215 })
1216 }
1217}
1218impl ::treesitter_types::Spanned for AddingTypeAnnotation<'_> {
1219 fn span(&self) -> ::treesitter_types::Span {
1220 self.span
1221 }
1222}
1223#[derive(Debug, Clone, PartialEq, Eq)]
1224pub struct AmbientDeclaration<'tree> {
1225 pub span: ::treesitter_types::Span,
1226 pub children: ::std::vec::Vec<AmbientDeclarationChildren<'tree>>,
1227}
1228impl<'tree> ::treesitter_types::FromNode<'tree> for AmbientDeclaration<'tree> {
1229 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1230 fn from_node(
1231 node: ::treesitter_types::tree_sitter::Node<'tree>,
1232 src: &'tree [u8],
1233 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1234 debug_assert_eq!(node.kind(), "ambient_declaration");
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 mut items = ::std::vec::Vec::new();
1258 for child in non_field_children {
1259 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
1260 <AmbientDeclarationChildren as ::treesitter_types::FromNode>::from_node(
1261 child, src,
1262 )
1263 })?);
1264 }
1265 items
1266 },
1267 })
1268 }
1269}
1270impl ::treesitter_types::Spanned for AmbientDeclaration<'_> {
1271 fn span(&self) -> ::treesitter_types::Span {
1272 self.span
1273 }
1274}
1275#[derive(Debug, Clone, PartialEq, Eq)]
1276pub struct Arguments<'tree> {
1277 pub span: ::treesitter_types::Span,
1278 pub children: ::std::vec::Vec<ArgumentsChildren<'tree>>,
1279}
1280impl<'tree> ::treesitter_types::FromNode<'tree> for Arguments<'tree> {
1281 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1282 fn from_node(
1283 node: ::treesitter_types::tree_sitter::Node<'tree>,
1284 src: &'tree [u8],
1285 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1286 debug_assert_eq!(node.kind(), "arguments");
1287 Ok(Self {
1288 span: ::treesitter_types::Span::from(node),
1289 children: {
1290 #[allow(clippy::suspicious_else_formatting)]
1291 let non_field_children = {
1292 let mut cursor = node.walk();
1293 let mut result = ::std::vec::Vec::new();
1294 if cursor.goto_first_child() {
1295 loop {
1296 if cursor.field_name().is_none()
1297 && cursor.node().is_named()
1298 && !cursor.node().is_extra()
1299 {
1300 result.push(cursor.node());
1301 }
1302 if !cursor.goto_next_sibling() {
1303 break;
1304 }
1305 }
1306 }
1307 result
1308 };
1309 let mut items = ::std::vec::Vec::new();
1310 for child in non_field_children {
1311 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
1312 <ArgumentsChildren as ::treesitter_types::FromNode>::from_node(child, src)
1313 })?);
1314 }
1315 items
1316 },
1317 })
1318 }
1319}
1320impl ::treesitter_types::Spanned for Arguments<'_> {
1321 fn span(&self) -> ::treesitter_types::Span {
1322 self.span
1323 }
1324}
1325#[derive(Debug, Clone, PartialEq, Eq)]
1326pub struct Array<'tree> {
1327 pub span: ::treesitter_types::Span,
1328 pub children: ::std::vec::Vec<ArrayChildren<'tree>>,
1329}
1330impl<'tree> ::treesitter_types::FromNode<'tree> for Array<'tree> {
1331 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1332 fn from_node(
1333 node: ::treesitter_types::tree_sitter::Node<'tree>,
1334 src: &'tree [u8],
1335 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1336 debug_assert_eq!(node.kind(), "array");
1337 Ok(Self {
1338 span: ::treesitter_types::Span::from(node),
1339 children: {
1340 #[allow(clippy::suspicious_else_formatting)]
1341 let non_field_children = {
1342 let mut cursor = node.walk();
1343 let mut result = ::std::vec::Vec::new();
1344 if cursor.goto_first_child() {
1345 loop {
1346 if cursor.field_name().is_none()
1347 && cursor.node().is_named()
1348 && !cursor.node().is_extra()
1349 {
1350 result.push(cursor.node());
1351 }
1352 if !cursor.goto_next_sibling() {
1353 break;
1354 }
1355 }
1356 }
1357 result
1358 };
1359 let mut items = ::std::vec::Vec::new();
1360 for child in non_field_children {
1361 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
1362 <ArrayChildren as ::treesitter_types::FromNode>::from_node(child, src)
1363 })?);
1364 }
1365 items
1366 },
1367 })
1368 }
1369}
1370impl ::treesitter_types::Spanned for Array<'_> {
1371 fn span(&self) -> ::treesitter_types::Span {
1372 self.span
1373 }
1374}
1375#[derive(Debug, Clone, PartialEq, Eq)]
1376pub struct ArrayPattern<'tree> {
1377 pub span: ::treesitter_types::Span,
1378 pub children: ::std::vec::Vec<ArrayPatternChildren<'tree>>,
1379}
1380impl<'tree> ::treesitter_types::FromNode<'tree> for ArrayPattern<'tree> {
1381 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1382 fn from_node(
1383 node: ::treesitter_types::tree_sitter::Node<'tree>,
1384 src: &'tree [u8],
1385 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1386 debug_assert_eq!(node.kind(), "array_pattern");
1387 Ok(Self {
1388 span: ::treesitter_types::Span::from(node),
1389 children: {
1390 #[allow(clippy::suspicious_else_formatting)]
1391 let non_field_children = {
1392 let mut cursor = node.walk();
1393 let mut result = ::std::vec::Vec::new();
1394 if cursor.goto_first_child() {
1395 loop {
1396 if cursor.field_name().is_none()
1397 && cursor.node().is_named()
1398 && !cursor.node().is_extra()
1399 {
1400 result.push(cursor.node());
1401 }
1402 if !cursor.goto_next_sibling() {
1403 break;
1404 }
1405 }
1406 }
1407 result
1408 };
1409 let mut items = ::std::vec::Vec::new();
1410 for child in non_field_children {
1411 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
1412 <ArrayPatternChildren as ::treesitter_types::FromNode>::from_node(
1413 child, src,
1414 )
1415 })?);
1416 }
1417 items
1418 },
1419 })
1420 }
1421}
1422impl ::treesitter_types::Spanned for ArrayPattern<'_> {
1423 fn span(&self) -> ::treesitter_types::Span {
1424 self.span
1425 }
1426}
1427#[derive(Debug, Clone, PartialEq, Eq)]
1428pub struct ArrayType<'tree> {
1429 pub span: ::treesitter_types::Span,
1430 pub children: PrimaryType<'tree>,
1431}
1432impl<'tree> ::treesitter_types::FromNode<'tree> for ArrayType<'tree> {
1433 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1434 fn from_node(
1435 node: ::treesitter_types::tree_sitter::Node<'tree>,
1436 src: &'tree [u8],
1437 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1438 debug_assert_eq!(node.kind(), "array_type");
1439 Ok(Self {
1440 span: ::treesitter_types::Span::from(node),
1441 children: {
1442 #[allow(clippy::suspicious_else_formatting)]
1443 let non_field_children = {
1444 let mut cursor = node.walk();
1445 let mut result = ::std::vec::Vec::new();
1446 if cursor.goto_first_child() {
1447 loop {
1448 if cursor.field_name().is_none()
1449 && cursor.node().is_named()
1450 && !cursor.node().is_extra()
1451 {
1452 result.push(cursor.node());
1453 }
1454 if !cursor.goto_next_sibling() {
1455 break;
1456 }
1457 }
1458 }
1459 result
1460 };
1461 let child = if let Some(&c) = non_field_children.first() {
1462 c
1463 } else {
1464 let mut fallback_cursor = node.walk();
1465 let mut fallback_child = None;
1466 if fallback_cursor.goto_first_child() {
1467 loop {
1468 if fallback_cursor.field_name().is_none()
1469 && !fallback_cursor.node().is_extra()
1470 {
1471 let candidate = fallback_cursor.node();
1472 #[allow(clippy::needless_question_mark)]
1473 if (|| -> ::core::result::Result<
1474 _,
1475 ::treesitter_types::ParseError,
1476 > {
1477 let child = candidate;
1478 Ok(
1479 ::treesitter_types::runtime::maybe_grow_stack(|| <PrimaryType as ::treesitter_types::FromNode>::from_node(
1480 child,
1481 src,
1482 ))?,
1483 )
1484 })()
1485 .is_ok()
1486 {
1487 fallback_child = Some(candidate);
1488 break;
1489 }
1490 }
1491 if !fallback_cursor.goto_next_sibling() {
1492 break;
1493 }
1494 }
1495 }
1496 if fallback_child.is_none() {
1497 let mut cursor2 = node.walk();
1498 if cursor2.goto_first_child() {
1499 loop {
1500 if cursor2.node().is_named() && !cursor2.node().is_extra() {
1501 let candidate = cursor2.node();
1502 #[allow(clippy::needless_question_mark)]
1503 if (|| -> ::core::result::Result<
1504 _,
1505 ::treesitter_types::ParseError,
1506 > {
1507 let child = candidate;
1508 Ok(
1509 ::treesitter_types::runtime::maybe_grow_stack(|| <PrimaryType as ::treesitter_types::FromNode>::from_node(
1510 child,
1511 src,
1512 ))?,
1513 )
1514 })()
1515 .is_ok()
1516 {
1517 fallback_child = Some(candidate);
1518 break;
1519 }
1520 }
1521 if !cursor2.goto_next_sibling() {
1522 break;
1523 }
1524 }
1525 }
1526 }
1527 fallback_child.ok_or_else(|| {
1528 ::treesitter_types::ParseError::missing_field("children", node)
1529 })?
1530 };
1531 ::treesitter_types::runtime::maybe_grow_stack(|| {
1532 <PrimaryType as ::treesitter_types::FromNode>::from_node(child, src)
1533 })?
1534 },
1535 })
1536 }
1537}
1538impl ::treesitter_types::Spanned for ArrayType<'_> {
1539 fn span(&self) -> ::treesitter_types::Span {
1540 self.span
1541 }
1542}
1543#[derive(Debug, Clone, PartialEq, Eq)]
1544pub struct ArrowFunction<'tree> {
1545 pub span: ::treesitter_types::Span,
1546 pub body: ArrowFunctionBody<'tree>,
1547 pub parameter: ::core::option::Option<Identifier<'tree>>,
1548 pub parameters: ::core::option::Option<FormalParameters<'tree>>,
1549 pub return_type: ::core::option::Option<ArrowFunctionReturnType<'tree>>,
1550 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
1551}
1552impl<'tree> ::treesitter_types::FromNode<'tree> for ArrowFunction<'tree> {
1553 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1554 fn from_node(
1555 node: ::treesitter_types::tree_sitter::Node<'tree>,
1556 src: &'tree [u8],
1557 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1558 debug_assert_eq!(node.kind(), "arrow_function");
1559 Ok(Self {
1560 span: ::treesitter_types::Span::from(node),
1561 body: {
1562 let child = node
1563 .child_by_field_name("body")
1564 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
1565 ::treesitter_types::runtime::maybe_grow_stack(|| {
1566 <ArrowFunctionBody as ::treesitter_types::FromNode>::from_node(child, src)
1567 })?
1568 },
1569 parameter: match node.child_by_field_name("parameter") {
1570 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
1571 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)
1572 })?),
1573 None => None,
1574 },
1575 parameters: match node.child_by_field_name("parameters") {
1576 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
1577 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)
1578 })?),
1579 None => None,
1580 },
1581 return_type: match node.child_by_field_name("return_type") {
1582 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
1583 <ArrowFunctionReturnType as ::treesitter_types::FromNode>::from_node(child, src)
1584 })?),
1585 None => None,
1586 },
1587 type_parameters: match node.child_by_field_name("type_parameters") {
1588 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
1589 <TypeParameters as ::treesitter_types::FromNode>::from_node(child, src)
1590 })?),
1591 None => None,
1592 },
1593 })
1594 }
1595}
1596impl ::treesitter_types::Spanned for ArrowFunction<'_> {
1597 fn span(&self) -> ::treesitter_types::Span {
1598 self.span
1599 }
1600}
1601#[derive(Debug, Clone, PartialEq, Eq)]
1602pub struct AsExpression<'tree> {
1603 pub span: ::treesitter_types::Span,
1604 pub children: ::std::vec::Vec<AsExpressionChildren<'tree>>,
1605}
1606impl<'tree> ::treesitter_types::FromNode<'tree> for AsExpression<'tree> {
1607 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1608 fn from_node(
1609 node: ::treesitter_types::tree_sitter::Node<'tree>,
1610 src: &'tree [u8],
1611 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1612 debug_assert_eq!(node.kind(), "as_expression");
1613 Ok(Self {
1614 span: ::treesitter_types::Span::from(node),
1615 children: {
1616 #[allow(clippy::suspicious_else_formatting)]
1617 let non_field_children = {
1618 let mut cursor = node.walk();
1619 let mut result = ::std::vec::Vec::new();
1620 if cursor.goto_first_child() {
1621 loop {
1622 if cursor.field_name().is_none()
1623 && cursor.node().is_named()
1624 && !cursor.node().is_extra()
1625 {
1626 result.push(cursor.node());
1627 }
1628 if !cursor.goto_next_sibling() {
1629 break;
1630 }
1631 }
1632 }
1633 result
1634 };
1635 let mut items = ::std::vec::Vec::new();
1636 for child in non_field_children {
1637 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
1638 <AsExpressionChildren as ::treesitter_types::FromNode>::from_node(
1639 child, src,
1640 )
1641 })?);
1642 }
1643 items
1644 },
1645 })
1646 }
1647}
1648impl ::treesitter_types::Spanned for AsExpression<'_> {
1649 fn span(&self) -> ::treesitter_types::Span {
1650 self.span
1651 }
1652}
1653#[derive(Debug, Clone, PartialEq, Eq)]
1654pub struct Asserts<'tree> {
1655 pub span: ::treesitter_types::Span,
1656 pub children: AssertsChildren<'tree>,
1657}
1658impl<'tree> ::treesitter_types::FromNode<'tree> for Asserts<'tree> {
1659 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1660 fn from_node(
1661 node: ::treesitter_types::tree_sitter::Node<'tree>,
1662 src: &'tree [u8],
1663 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1664 debug_assert_eq!(node.kind(), "asserts");
1665 Ok(Self {
1666 span: ::treesitter_types::Span::from(node),
1667 children: {
1668 #[allow(clippy::suspicious_else_formatting)]
1669 let non_field_children = {
1670 let mut cursor = node.walk();
1671 let mut result = ::std::vec::Vec::new();
1672 if cursor.goto_first_child() {
1673 loop {
1674 if cursor.field_name().is_none()
1675 && cursor.node().is_named()
1676 && !cursor.node().is_extra()
1677 {
1678 result.push(cursor.node());
1679 }
1680 if !cursor.goto_next_sibling() {
1681 break;
1682 }
1683 }
1684 }
1685 result
1686 };
1687 let child = if let Some(&c) = non_field_children.first() {
1688 c
1689 } else {
1690 let mut fallback_cursor = node.walk();
1691 let mut fallback_child = None;
1692 if fallback_cursor.goto_first_child() {
1693 loop {
1694 if fallback_cursor.field_name().is_none()
1695 && !fallback_cursor.node().is_extra()
1696 {
1697 let candidate = fallback_cursor.node();
1698 #[allow(clippy::needless_question_mark)]
1699 if (|| -> ::core::result::Result<
1700 _,
1701 ::treesitter_types::ParseError,
1702 > {
1703 let child = candidate;
1704 Ok(
1705 ::treesitter_types::runtime::maybe_grow_stack(|| <AssertsChildren as ::treesitter_types::FromNode>::from_node(
1706 child,
1707 src,
1708 ))?,
1709 )
1710 })()
1711 .is_ok()
1712 {
1713 fallback_child = Some(candidate);
1714 break;
1715 }
1716 }
1717 if !fallback_cursor.goto_next_sibling() {
1718 break;
1719 }
1720 }
1721 }
1722 if fallback_child.is_none() {
1723 let mut cursor2 = node.walk();
1724 if cursor2.goto_first_child() {
1725 loop {
1726 if cursor2.node().is_named() && !cursor2.node().is_extra() {
1727 let candidate = cursor2.node();
1728 #[allow(clippy::needless_question_mark)]
1729 if (|| -> ::core::result::Result<
1730 _,
1731 ::treesitter_types::ParseError,
1732 > {
1733 let child = candidate;
1734 Ok(
1735 ::treesitter_types::runtime::maybe_grow_stack(|| <AssertsChildren as ::treesitter_types::FromNode>::from_node(
1736 child,
1737 src,
1738 ))?,
1739 )
1740 })()
1741 .is_ok()
1742 {
1743 fallback_child = Some(candidate);
1744 break;
1745 }
1746 }
1747 if !cursor2.goto_next_sibling() {
1748 break;
1749 }
1750 }
1751 }
1752 }
1753 fallback_child.ok_or_else(|| {
1754 ::treesitter_types::ParseError::missing_field("children", node)
1755 })?
1756 };
1757 ::treesitter_types::runtime::maybe_grow_stack(|| {
1758 <AssertsChildren as ::treesitter_types::FromNode>::from_node(child, src)
1759 })?
1760 },
1761 })
1762 }
1763}
1764impl ::treesitter_types::Spanned for Asserts<'_> {
1765 fn span(&self) -> ::treesitter_types::Span {
1766 self.span
1767 }
1768}
1769#[derive(Debug, Clone, PartialEq, Eq)]
1770pub struct AssertsAnnotation<'tree> {
1771 pub span: ::treesitter_types::Span,
1772 pub children: Asserts<'tree>,
1773}
1774impl<'tree> ::treesitter_types::FromNode<'tree> for AssertsAnnotation<'tree> {
1775 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1776 fn from_node(
1777 node: ::treesitter_types::tree_sitter::Node<'tree>,
1778 src: &'tree [u8],
1779 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1780 debug_assert_eq!(node.kind(), "asserts_annotation");
1781 Ok(Self {
1782 span: ::treesitter_types::Span::from(node),
1783 children: {
1784 #[allow(clippy::suspicious_else_formatting)]
1785 let non_field_children = {
1786 let mut cursor = node.walk();
1787 let mut result = ::std::vec::Vec::new();
1788 if cursor.goto_first_child() {
1789 loop {
1790 if cursor.field_name().is_none()
1791 && cursor.node().is_named()
1792 && !cursor.node().is_extra()
1793 {
1794 result.push(cursor.node());
1795 }
1796 if !cursor.goto_next_sibling() {
1797 break;
1798 }
1799 }
1800 }
1801 result
1802 };
1803 let child = if let Some(&c) = non_field_children.first() {
1804 c
1805 } else {
1806 let mut fallback_cursor = node.walk();
1807 let mut fallback_child = None;
1808 if fallback_cursor.goto_first_child() {
1809 loop {
1810 if fallback_cursor.field_name().is_none()
1811 && !fallback_cursor.node().is_extra()
1812 {
1813 let candidate = fallback_cursor.node();
1814 #[allow(clippy::needless_question_mark)]
1815 if (|| -> ::core::result::Result<
1816 _,
1817 ::treesitter_types::ParseError,
1818 > {
1819 let child = candidate;
1820 Ok(
1821 ::treesitter_types::runtime::maybe_grow_stack(|| <Asserts as ::treesitter_types::FromNode>::from_node(
1822 child,
1823 src,
1824 ))?,
1825 )
1826 })()
1827 .is_ok()
1828 {
1829 fallback_child = Some(candidate);
1830 break;
1831 }
1832 }
1833 if !fallback_cursor.goto_next_sibling() {
1834 break;
1835 }
1836 }
1837 }
1838 if fallback_child.is_none() {
1839 let mut cursor2 = node.walk();
1840 if cursor2.goto_first_child() {
1841 loop {
1842 if cursor2.node().is_named() && !cursor2.node().is_extra() {
1843 let candidate = cursor2.node();
1844 #[allow(clippy::needless_question_mark)]
1845 if (|| -> ::core::result::Result<
1846 _,
1847 ::treesitter_types::ParseError,
1848 > {
1849 let child = candidate;
1850 Ok(
1851 ::treesitter_types::runtime::maybe_grow_stack(|| <Asserts as ::treesitter_types::FromNode>::from_node(
1852 child,
1853 src,
1854 ))?,
1855 )
1856 })()
1857 .is_ok()
1858 {
1859 fallback_child = Some(candidate);
1860 break;
1861 }
1862 }
1863 if !cursor2.goto_next_sibling() {
1864 break;
1865 }
1866 }
1867 }
1868 }
1869 fallback_child.ok_or_else(|| {
1870 ::treesitter_types::ParseError::missing_field("children", node)
1871 })?
1872 };
1873 ::treesitter_types::runtime::maybe_grow_stack(|| {
1874 <Asserts as ::treesitter_types::FromNode>::from_node(child, src)
1875 })?
1876 },
1877 })
1878 }
1879}
1880impl ::treesitter_types::Spanned for AssertsAnnotation<'_> {
1881 fn span(&self) -> ::treesitter_types::Span {
1882 self.span
1883 }
1884}
1885#[derive(Debug, Clone, PartialEq, Eq)]
1886pub struct AssignmentExpression<'tree> {
1887 pub span: ::treesitter_types::Span,
1888 pub left: AssignmentExpressionLeft<'tree>,
1889 pub right: Expression<'tree>,
1890}
1891impl<'tree> ::treesitter_types::FromNode<'tree> for AssignmentExpression<'tree> {
1892 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1893 fn from_node(
1894 node: ::treesitter_types::tree_sitter::Node<'tree>,
1895 src: &'tree [u8],
1896 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1897 debug_assert_eq!(node.kind(), "assignment_expression");
1898 Ok(Self {
1899 span: ::treesitter_types::Span::from(node),
1900 left: {
1901 let child = node
1902 .child_by_field_name("left")
1903 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
1904 ::treesitter_types::runtime::maybe_grow_stack(|| {
1905 <AssignmentExpressionLeft as ::treesitter_types::FromNode>::from_node(
1906 child, src,
1907 )
1908 })?
1909 },
1910 right: {
1911 let child = node
1912 .child_by_field_name("right")
1913 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
1914 ::treesitter_types::runtime::maybe_grow_stack(|| {
1915 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
1916 })?
1917 },
1918 })
1919 }
1920}
1921impl ::treesitter_types::Spanned for AssignmentExpression<'_> {
1922 fn span(&self) -> ::treesitter_types::Span {
1923 self.span
1924 }
1925}
1926#[derive(Debug, Clone, PartialEq, Eq)]
1927pub struct AssignmentPattern<'tree> {
1928 pub span: ::treesitter_types::Span,
1929 pub left: Pattern<'tree>,
1930 pub right: Expression<'tree>,
1931}
1932impl<'tree> ::treesitter_types::FromNode<'tree> for AssignmentPattern<'tree> {
1933 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1934 fn from_node(
1935 node: ::treesitter_types::tree_sitter::Node<'tree>,
1936 src: &'tree [u8],
1937 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1938 debug_assert_eq!(node.kind(), "assignment_pattern");
1939 Ok(Self {
1940 span: ::treesitter_types::Span::from(node),
1941 left: {
1942 let child = node
1943 .child_by_field_name("left")
1944 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
1945 ::treesitter_types::runtime::maybe_grow_stack(|| {
1946 <Pattern as ::treesitter_types::FromNode>::from_node(child, src)
1947 })?
1948 },
1949 right: {
1950 let child = node
1951 .child_by_field_name("right")
1952 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
1953 ::treesitter_types::runtime::maybe_grow_stack(|| {
1954 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
1955 })?
1956 },
1957 })
1958 }
1959}
1960impl ::treesitter_types::Spanned for AssignmentPattern<'_> {
1961 fn span(&self) -> ::treesitter_types::Span {
1962 self.span
1963 }
1964}
1965#[derive(Debug, Clone, PartialEq, Eq)]
1966pub struct AugmentedAssignmentExpression<'tree> {
1967 pub span: ::treesitter_types::Span,
1968 pub left: AugmentedAssignmentExpressionLeft<'tree>,
1969 pub operator: AugmentedAssignmentExpressionOperator,
1970 pub right: Expression<'tree>,
1971}
1972impl<'tree> ::treesitter_types::FromNode<'tree> for AugmentedAssignmentExpression<'tree> {
1973 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1974 fn from_node(
1975 node: ::treesitter_types::tree_sitter::Node<'tree>,
1976 src: &'tree [u8],
1977 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1978 debug_assert_eq!(node.kind(), "augmented_assignment_expression");
1979 Ok(Self {
1980 span: ::treesitter_types::Span::from(node),
1981 left: {
1982 let child = node
1983 .child_by_field_name("left")
1984 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
1985 ::treesitter_types::runtime::maybe_grow_stack(|| {
1986 <AugmentedAssignmentExpressionLeft as ::treesitter_types::FromNode>::from_node(
1987 child, src,
1988 )
1989 })?
1990 },
1991 operator: {
1992 let child = node.child_by_field_name("operator").ok_or_else(|| {
1993 ::treesitter_types::ParseError::missing_field("operator", node)
1994 })?;
1995 ::treesitter_types::runtime::maybe_grow_stack(|| {
1996 <AugmentedAssignmentExpressionOperator as ::treesitter_types::FromNode>::from_node(
1997 child,
1998 src,
1999 )
2000 })?
2001 },
2002 right: {
2003 let child = node
2004 .child_by_field_name("right")
2005 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
2006 ::treesitter_types::runtime::maybe_grow_stack(|| {
2007 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
2008 })?
2009 },
2010 })
2011 }
2012}
2013impl ::treesitter_types::Spanned for AugmentedAssignmentExpression<'_> {
2014 fn span(&self) -> ::treesitter_types::Span {
2015 self.span
2016 }
2017}
2018#[derive(Debug, Clone, PartialEq, Eq)]
2019pub struct AwaitExpression<'tree> {
2020 pub span: ::treesitter_types::Span,
2021 pub children: Expression<'tree>,
2022}
2023impl<'tree> ::treesitter_types::FromNode<'tree> for AwaitExpression<'tree> {
2024 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2025 fn from_node(
2026 node: ::treesitter_types::tree_sitter::Node<'tree>,
2027 src: &'tree [u8],
2028 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2029 debug_assert_eq!(node.kind(), "await_expression");
2030 Ok(Self {
2031 span: ::treesitter_types::Span::from(node),
2032 children: {
2033 #[allow(clippy::suspicious_else_formatting)]
2034 let non_field_children = {
2035 let mut cursor = node.walk();
2036 let mut result = ::std::vec::Vec::new();
2037 if cursor.goto_first_child() {
2038 loop {
2039 if cursor.field_name().is_none()
2040 && cursor.node().is_named()
2041 && !cursor.node().is_extra()
2042 {
2043 result.push(cursor.node());
2044 }
2045 if !cursor.goto_next_sibling() {
2046 break;
2047 }
2048 }
2049 }
2050 result
2051 };
2052 let child = if let Some(&c) = non_field_children.first() {
2053 c
2054 } else {
2055 let mut fallback_cursor = node.walk();
2056 let mut fallback_child = None;
2057 if fallback_cursor.goto_first_child() {
2058 loop {
2059 if fallback_cursor.field_name().is_none()
2060 && !fallback_cursor.node().is_extra()
2061 {
2062 let candidate = fallback_cursor.node();
2063 #[allow(clippy::needless_question_mark)]
2064 if (|| -> ::core::result::Result<
2065 _,
2066 ::treesitter_types::ParseError,
2067 > {
2068 let child = candidate;
2069 Ok(
2070 ::treesitter_types::runtime::maybe_grow_stack(|| <Expression as ::treesitter_types::FromNode>::from_node(
2071 child,
2072 src,
2073 ))?,
2074 )
2075 })()
2076 .is_ok()
2077 {
2078 fallback_child = Some(candidate);
2079 break;
2080 }
2081 }
2082 if !fallback_cursor.goto_next_sibling() {
2083 break;
2084 }
2085 }
2086 }
2087 if fallback_child.is_none() {
2088 let mut cursor2 = node.walk();
2089 if cursor2.goto_first_child() {
2090 loop {
2091 if cursor2.node().is_named() && !cursor2.node().is_extra() {
2092 let candidate = cursor2.node();
2093 #[allow(clippy::needless_question_mark)]
2094 if (|| -> ::core::result::Result<
2095 _,
2096 ::treesitter_types::ParseError,
2097 > {
2098 let child = candidate;
2099 Ok(
2100 ::treesitter_types::runtime::maybe_grow_stack(|| <Expression as ::treesitter_types::FromNode>::from_node(
2101 child,
2102 src,
2103 ))?,
2104 )
2105 })()
2106 .is_ok()
2107 {
2108 fallback_child = Some(candidate);
2109 break;
2110 }
2111 }
2112 if !cursor2.goto_next_sibling() {
2113 break;
2114 }
2115 }
2116 }
2117 }
2118 fallback_child.ok_or_else(|| {
2119 ::treesitter_types::ParseError::missing_field("children", node)
2120 })?
2121 };
2122 ::treesitter_types::runtime::maybe_grow_stack(|| {
2123 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
2124 })?
2125 },
2126 })
2127 }
2128}
2129impl ::treesitter_types::Spanned for AwaitExpression<'_> {
2130 fn span(&self) -> ::treesitter_types::Span {
2131 self.span
2132 }
2133}
2134#[derive(Debug, Clone, PartialEq, Eq)]
2135pub struct BinaryExpression<'tree> {
2136 pub span: ::treesitter_types::Span,
2137 pub left: BinaryExpressionLeft<'tree>,
2138 pub operator: BinaryExpressionOperator,
2139 pub right: Expression<'tree>,
2140}
2141impl<'tree> ::treesitter_types::FromNode<'tree> for BinaryExpression<'tree> {
2142 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2143 fn from_node(
2144 node: ::treesitter_types::tree_sitter::Node<'tree>,
2145 src: &'tree [u8],
2146 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2147 debug_assert_eq!(node.kind(), "binary_expression");
2148 Ok(Self {
2149 span: ::treesitter_types::Span::from(node),
2150 left: {
2151 let child = node
2152 .child_by_field_name("left")
2153 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
2154 ::treesitter_types::runtime::maybe_grow_stack(|| {
2155 <BinaryExpressionLeft as ::treesitter_types::FromNode>::from_node(child, src)
2156 })?
2157 },
2158 operator: {
2159 let child = node.child_by_field_name("operator").ok_or_else(|| {
2160 ::treesitter_types::ParseError::missing_field("operator", node)
2161 })?;
2162 ::treesitter_types::runtime::maybe_grow_stack(|| {
2163 <BinaryExpressionOperator as ::treesitter_types::FromNode>::from_node(
2164 child, src,
2165 )
2166 })?
2167 },
2168 right: {
2169 let child = node
2170 .child_by_field_name("right")
2171 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
2172 ::treesitter_types::runtime::maybe_grow_stack(|| {
2173 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
2174 })?
2175 },
2176 })
2177 }
2178}
2179impl ::treesitter_types::Spanned for BinaryExpression<'_> {
2180 fn span(&self) -> ::treesitter_types::Span {
2181 self.span
2182 }
2183}
2184#[derive(Debug, Clone, PartialEq, Eq)]
2185pub struct BreakStatement<'tree> {
2186 pub span: ::treesitter_types::Span,
2187 pub label: ::core::option::Option<StatementIdentifier<'tree>>,
2188}
2189impl<'tree> ::treesitter_types::FromNode<'tree> for BreakStatement<'tree> {
2190 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2191 fn from_node(
2192 node: ::treesitter_types::tree_sitter::Node<'tree>,
2193 src: &'tree [u8],
2194 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2195 debug_assert_eq!(node.kind(), "break_statement");
2196 Ok(Self {
2197 span: ::treesitter_types::Span::from(node),
2198 label: match node.child_by_field_name("label") {
2199 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
2200 <StatementIdentifier as ::treesitter_types::FromNode>::from_node(child, src)
2201 })?),
2202 None => None,
2203 },
2204 })
2205 }
2206}
2207impl ::treesitter_types::Spanned for BreakStatement<'_> {
2208 fn span(&self) -> ::treesitter_types::Span {
2209 self.span
2210 }
2211}
2212#[derive(Debug, Clone, PartialEq, Eq)]
2213pub struct CallExpression<'tree> {
2214 pub span: ::treesitter_types::Span,
2215 pub arguments: CallExpressionArguments<'tree>,
2216 pub function: CallExpressionFunction<'tree>,
2217 pub type_arguments: ::core::option::Option<TypeArguments<'tree>>,
2218}
2219impl<'tree> ::treesitter_types::FromNode<'tree> for CallExpression<'tree> {
2220 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2221 fn from_node(
2222 node: ::treesitter_types::tree_sitter::Node<'tree>,
2223 src: &'tree [u8],
2224 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2225 debug_assert_eq!(node.kind(), "call_expression");
2226 Ok(Self {
2227 span: ::treesitter_types::Span::from(node),
2228 arguments: {
2229 let child = node.child_by_field_name("arguments").ok_or_else(|| {
2230 ::treesitter_types::ParseError::missing_field("arguments", node)
2231 })?;
2232 ::treesitter_types::runtime::maybe_grow_stack(|| {
2233 <CallExpressionArguments as ::treesitter_types::FromNode>::from_node(child, src)
2234 })?
2235 },
2236 function: {
2237 let child = node.child_by_field_name("function").ok_or_else(|| {
2238 ::treesitter_types::ParseError::missing_field("function", node)
2239 })?;
2240 ::treesitter_types::runtime::maybe_grow_stack(|| {
2241 <CallExpressionFunction as ::treesitter_types::FromNode>::from_node(child, src)
2242 })?
2243 },
2244 type_arguments: match node.child_by_field_name("type_arguments") {
2245 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
2246 <TypeArguments as ::treesitter_types::FromNode>::from_node(child, src)
2247 })?),
2248 None => None,
2249 },
2250 })
2251 }
2252}
2253impl ::treesitter_types::Spanned for CallExpression<'_> {
2254 fn span(&self) -> ::treesitter_types::Span {
2255 self.span
2256 }
2257}
2258#[derive(Debug, Clone, PartialEq, Eq)]
2259pub struct CallSignature<'tree> {
2260 pub span: ::treesitter_types::Span,
2261 pub parameters: FormalParameters<'tree>,
2262 pub return_type: ::core::option::Option<CallSignatureReturnType<'tree>>,
2263 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
2264}
2265impl<'tree> ::treesitter_types::FromNode<'tree> for CallSignature<'tree> {
2266 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2267 fn from_node(
2268 node: ::treesitter_types::tree_sitter::Node<'tree>,
2269 src: &'tree [u8],
2270 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2271 debug_assert_eq!(node.kind(), "call_signature");
2272 Ok(Self {
2273 span: ::treesitter_types::Span::from(node),
2274 parameters: {
2275 let child = node.child_by_field_name("parameters").ok_or_else(|| {
2276 ::treesitter_types::ParseError::missing_field("parameters", node)
2277 })?;
2278 ::treesitter_types::runtime::maybe_grow_stack(|| {
2279 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)
2280 })?
2281 },
2282 return_type: match node.child_by_field_name("return_type") {
2283 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
2284 <CallSignatureReturnType as ::treesitter_types::FromNode>::from_node(child, src)
2285 })?),
2286 None => None,
2287 },
2288 type_parameters: match node.child_by_field_name("type_parameters") {
2289 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
2290 <TypeParameters as ::treesitter_types::FromNode>::from_node(child, src)
2291 })?),
2292 None => None,
2293 },
2294 })
2295 }
2296}
2297impl ::treesitter_types::Spanned for CallSignature<'_> {
2298 fn span(&self) -> ::treesitter_types::Span {
2299 self.span
2300 }
2301}
2302#[derive(Debug, Clone, PartialEq, Eq)]
2303pub struct CatchClause<'tree> {
2304 pub span: ::treesitter_types::Span,
2305 pub body: StatementBlock<'tree>,
2306 pub parameter: ::core::option::Option<CatchClauseParameter<'tree>>,
2307 pub r#type: ::core::option::Option<TypeAnnotation<'tree>>,
2308}
2309impl<'tree> ::treesitter_types::FromNode<'tree> for CatchClause<'tree> {
2310 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2311 fn from_node(
2312 node: ::treesitter_types::tree_sitter::Node<'tree>,
2313 src: &'tree [u8],
2314 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2315 debug_assert_eq!(node.kind(), "catch_clause");
2316 Ok(Self {
2317 span: ::treesitter_types::Span::from(node),
2318 body: {
2319 let child = node
2320 .child_by_field_name("body")
2321 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
2322 ::treesitter_types::runtime::maybe_grow_stack(|| {
2323 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)
2324 })?
2325 },
2326 parameter: match node.child_by_field_name("parameter") {
2327 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
2328 <CatchClauseParameter as ::treesitter_types::FromNode>::from_node(child, src)
2329 })?),
2330 None => None,
2331 },
2332 r#type: match node.child_by_field_name("type") {
2333 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
2334 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(child, src)
2335 })?),
2336 None => None,
2337 },
2338 })
2339 }
2340}
2341impl ::treesitter_types::Spanned for CatchClause<'_> {
2342 fn span(&self) -> ::treesitter_types::Span {
2343 self.span
2344 }
2345}
2346#[derive(Debug, Clone, PartialEq, Eq)]
2347pub struct Class<'tree> {
2348 pub span: ::treesitter_types::Span,
2349 pub body: ClassBody<'tree>,
2350 pub decorator: ::std::vec::Vec<Decorator<'tree>>,
2351 pub name: ::core::option::Option<TypeIdentifier<'tree>>,
2352 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
2353 pub children: ::core::option::Option<ClassHeritage<'tree>>,
2354}
2355impl<'tree> ::treesitter_types::FromNode<'tree> for Class<'tree> {
2356 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2357 fn from_node(
2358 node: ::treesitter_types::tree_sitter::Node<'tree>,
2359 src: &'tree [u8],
2360 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2361 debug_assert_eq!(node.kind(), "class");
2362 Ok(Self {
2363 span: ::treesitter_types::Span::from(node),
2364 body: {
2365 let child = node
2366 .child_by_field_name("body")
2367 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
2368 ::treesitter_types::runtime::maybe_grow_stack(|| {
2369 <ClassBody as ::treesitter_types::FromNode>::from_node(child, src)
2370 })?
2371 },
2372 decorator: {
2373 let mut cursor = node.walk();
2374 let mut items = ::std::vec::Vec::new();
2375 for child in node.children_by_field_name("decorator", &mut cursor) {
2376 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
2377 <Decorator as ::treesitter_types::FromNode>::from_node(child, src)
2378 })?);
2379 }
2380 items
2381 },
2382 name: match node.child_by_field_name("name") {
2383 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
2384 <TypeIdentifier as ::treesitter_types::FromNode>::from_node(child, src)
2385 })?),
2386 None => None,
2387 },
2388 type_parameters: match node.child_by_field_name("type_parameters") {
2389 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
2390 <TypeParameters as ::treesitter_types::FromNode>::from_node(child, src)
2391 })?),
2392 None => None,
2393 },
2394 children: {
2395 #[allow(clippy::suspicious_else_formatting)]
2396 let non_field_children = {
2397 let mut cursor = node.walk();
2398 let mut result = ::std::vec::Vec::new();
2399 if cursor.goto_first_child() {
2400 loop {
2401 if cursor.field_name().is_none()
2402 && cursor.node().is_named()
2403 && !cursor.node().is_extra()
2404 {
2405 result.push(cursor.node());
2406 }
2407 if !cursor.goto_next_sibling() {
2408 break;
2409 }
2410 }
2411 }
2412 result
2413 };
2414 match non_field_children.first() {
2415 Some(&child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
2416 <ClassHeritage as ::treesitter_types::FromNode>::from_node(child, src)
2417 })?),
2418 None => None,
2419 }
2420 },
2421 })
2422 }
2423}
2424impl ::treesitter_types::Spanned for Class<'_> {
2425 fn span(&self) -> ::treesitter_types::Span {
2426 self.span
2427 }
2428}
2429#[derive(Debug, Clone, PartialEq, Eq)]
2430pub struct ClassBody<'tree> {
2431 pub span: ::treesitter_types::Span,
2432 pub decorator: ::std::vec::Vec<Decorator<'tree>>,
2433 pub children: ::std::vec::Vec<ClassBodyChildren<'tree>>,
2434}
2435impl<'tree> ::treesitter_types::FromNode<'tree> for ClassBody<'tree> {
2436 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2437 fn from_node(
2438 node: ::treesitter_types::tree_sitter::Node<'tree>,
2439 src: &'tree [u8],
2440 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2441 debug_assert_eq!(node.kind(), "class_body");
2442 Ok(Self {
2443 span: ::treesitter_types::Span::from(node),
2444 decorator: {
2445 let mut cursor = node.walk();
2446 let mut items = ::std::vec::Vec::new();
2447 for child in node.children_by_field_name("decorator", &mut cursor) {
2448 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
2449 <Decorator as ::treesitter_types::FromNode>::from_node(child, src)
2450 })?);
2451 }
2452 items
2453 },
2454 children: {
2455 #[allow(clippy::suspicious_else_formatting)]
2456 let non_field_children = {
2457 let mut cursor = node.walk();
2458 let mut result = ::std::vec::Vec::new();
2459 if cursor.goto_first_child() {
2460 loop {
2461 if cursor.field_name().is_none()
2462 && cursor.node().is_named()
2463 && !cursor.node().is_extra()
2464 {
2465 result.push(cursor.node());
2466 }
2467 if !cursor.goto_next_sibling() {
2468 break;
2469 }
2470 }
2471 }
2472 result
2473 };
2474 let mut items = ::std::vec::Vec::new();
2475 for child in non_field_children {
2476 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
2477 <ClassBodyChildren as ::treesitter_types::FromNode>::from_node(child, src)
2478 })?);
2479 }
2480 items
2481 },
2482 })
2483 }
2484}
2485impl ::treesitter_types::Spanned for ClassBody<'_> {
2486 fn span(&self) -> ::treesitter_types::Span {
2487 self.span
2488 }
2489}
2490#[derive(Debug, Clone, PartialEq, Eq)]
2491pub struct ClassDeclaration<'tree> {
2492 pub span: ::treesitter_types::Span,
2493 pub body: ClassBody<'tree>,
2494 pub decorator: ::std::vec::Vec<Decorator<'tree>>,
2495 pub name: TypeIdentifier<'tree>,
2496 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
2497 pub children: ::core::option::Option<ClassHeritage<'tree>>,
2498}
2499impl<'tree> ::treesitter_types::FromNode<'tree> for ClassDeclaration<'tree> {
2500 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2501 fn from_node(
2502 node: ::treesitter_types::tree_sitter::Node<'tree>,
2503 src: &'tree [u8],
2504 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2505 debug_assert_eq!(node.kind(), "class_declaration");
2506 Ok(Self {
2507 span: ::treesitter_types::Span::from(node),
2508 body: {
2509 let child = node
2510 .child_by_field_name("body")
2511 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
2512 ::treesitter_types::runtime::maybe_grow_stack(|| {
2513 <ClassBody as ::treesitter_types::FromNode>::from_node(child, src)
2514 })?
2515 },
2516 decorator: {
2517 let mut cursor = node.walk();
2518 let mut items = ::std::vec::Vec::new();
2519 for child in node.children_by_field_name("decorator", &mut cursor) {
2520 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
2521 <Decorator as ::treesitter_types::FromNode>::from_node(child, src)
2522 })?);
2523 }
2524 items
2525 },
2526 name: {
2527 let child = node
2528 .child_by_field_name("name")
2529 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
2530 ::treesitter_types::runtime::maybe_grow_stack(|| {
2531 <TypeIdentifier as ::treesitter_types::FromNode>::from_node(child, src)
2532 })?
2533 },
2534 type_parameters: match node.child_by_field_name("type_parameters") {
2535 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
2536 <TypeParameters as ::treesitter_types::FromNode>::from_node(child, src)
2537 })?),
2538 None => None,
2539 },
2540 children: {
2541 #[allow(clippy::suspicious_else_formatting)]
2542 let non_field_children = {
2543 let mut cursor = node.walk();
2544 let mut result = ::std::vec::Vec::new();
2545 if cursor.goto_first_child() {
2546 loop {
2547 if cursor.field_name().is_none()
2548 && cursor.node().is_named()
2549 && !cursor.node().is_extra()
2550 {
2551 result.push(cursor.node());
2552 }
2553 if !cursor.goto_next_sibling() {
2554 break;
2555 }
2556 }
2557 }
2558 result
2559 };
2560 match non_field_children.first() {
2561 Some(&child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
2562 <ClassHeritage as ::treesitter_types::FromNode>::from_node(child, src)
2563 })?),
2564 None => None,
2565 }
2566 },
2567 })
2568 }
2569}
2570impl ::treesitter_types::Spanned for ClassDeclaration<'_> {
2571 fn span(&self) -> ::treesitter_types::Span {
2572 self.span
2573 }
2574}
2575#[derive(Debug, Clone, PartialEq, Eq)]
2576pub struct ClassHeritage<'tree> {
2577 pub span: ::treesitter_types::Span,
2578 pub children: ::std::vec::Vec<ClassHeritageChildren<'tree>>,
2579}
2580impl<'tree> ::treesitter_types::FromNode<'tree> for ClassHeritage<'tree> {
2581 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2582 fn from_node(
2583 node: ::treesitter_types::tree_sitter::Node<'tree>,
2584 src: &'tree [u8],
2585 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2586 debug_assert_eq!(node.kind(), "class_heritage");
2587 Ok(Self {
2588 span: ::treesitter_types::Span::from(node),
2589 children: {
2590 #[allow(clippy::suspicious_else_formatting)]
2591 let non_field_children = {
2592 let mut cursor = node.walk();
2593 let mut result = ::std::vec::Vec::new();
2594 if cursor.goto_first_child() {
2595 loop {
2596 if cursor.field_name().is_none()
2597 && cursor.node().is_named()
2598 && !cursor.node().is_extra()
2599 {
2600 result.push(cursor.node());
2601 }
2602 if !cursor.goto_next_sibling() {
2603 break;
2604 }
2605 }
2606 }
2607 result
2608 };
2609 let mut items = ::std::vec::Vec::new();
2610 for child in non_field_children {
2611 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
2612 <ClassHeritageChildren as ::treesitter_types::FromNode>::from_node(
2613 child, src,
2614 )
2615 })?);
2616 }
2617 items
2618 },
2619 })
2620 }
2621}
2622impl ::treesitter_types::Spanned for ClassHeritage<'_> {
2623 fn span(&self) -> ::treesitter_types::Span {
2624 self.span
2625 }
2626}
2627#[derive(Debug, Clone, PartialEq, Eq)]
2628pub struct ClassStaticBlock<'tree> {
2629 pub span: ::treesitter_types::Span,
2630 pub body: StatementBlock<'tree>,
2631}
2632impl<'tree> ::treesitter_types::FromNode<'tree> for ClassStaticBlock<'tree> {
2633 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2634 fn from_node(
2635 node: ::treesitter_types::tree_sitter::Node<'tree>,
2636 src: &'tree [u8],
2637 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2638 debug_assert_eq!(node.kind(), "class_static_block");
2639 Ok(Self {
2640 span: ::treesitter_types::Span::from(node),
2641 body: {
2642 let child = node
2643 .child_by_field_name("body")
2644 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
2645 ::treesitter_types::runtime::maybe_grow_stack(|| {
2646 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)
2647 })?
2648 },
2649 })
2650 }
2651}
2652impl ::treesitter_types::Spanned for ClassStaticBlock<'_> {
2653 fn span(&self) -> ::treesitter_types::Span {
2654 self.span
2655 }
2656}
2657#[derive(Debug, Clone, PartialEq, Eq)]
2658pub struct ComputedPropertyName<'tree> {
2659 pub span: ::treesitter_types::Span,
2660 pub children: Expression<'tree>,
2661}
2662impl<'tree> ::treesitter_types::FromNode<'tree> for ComputedPropertyName<'tree> {
2663 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2664 fn from_node(
2665 node: ::treesitter_types::tree_sitter::Node<'tree>,
2666 src: &'tree [u8],
2667 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2668 debug_assert_eq!(node.kind(), "computed_property_name");
2669 Ok(Self {
2670 span: ::treesitter_types::Span::from(node),
2671 children: {
2672 #[allow(clippy::suspicious_else_formatting)]
2673 let non_field_children = {
2674 let mut cursor = node.walk();
2675 let mut result = ::std::vec::Vec::new();
2676 if cursor.goto_first_child() {
2677 loop {
2678 if cursor.field_name().is_none()
2679 && cursor.node().is_named()
2680 && !cursor.node().is_extra()
2681 {
2682 result.push(cursor.node());
2683 }
2684 if !cursor.goto_next_sibling() {
2685 break;
2686 }
2687 }
2688 }
2689 result
2690 };
2691 let child = if let Some(&c) = non_field_children.first() {
2692 c
2693 } else {
2694 let mut fallback_cursor = node.walk();
2695 let mut fallback_child = None;
2696 if fallback_cursor.goto_first_child() {
2697 loop {
2698 if fallback_cursor.field_name().is_none()
2699 && !fallback_cursor.node().is_extra()
2700 {
2701 let candidate = fallback_cursor.node();
2702 #[allow(clippy::needless_question_mark)]
2703 if (|| -> ::core::result::Result<
2704 _,
2705 ::treesitter_types::ParseError,
2706 > {
2707 let child = candidate;
2708 Ok(
2709 ::treesitter_types::runtime::maybe_grow_stack(|| <Expression as ::treesitter_types::FromNode>::from_node(
2710 child,
2711 src,
2712 ))?,
2713 )
2714 })()
2715 .is_ok()
2716 {
2717 fallback_child = Some(candidate);
2718 break;
2719 }
2720 }
2721 if !fallback_cursor.goto_next_sibling() {
2722 break;
2723 }
2724 }
2725 }
2726 if fallback_child.is_none() {
2727 let mut cursor2 = node.walk();
2728 if cursor2.goto_first_child() {
2729 loop {
2730 if cursor2.node().is_named() && !cursor2.node().is_extra() {
2731 let candidate = cursor2.node();
2732 #[allow(clippy::needless_question_mark)]
2733 if (|| -> ::core::result::Result<
2734 _,
2735 ::treesitter_types::ParseError,
2736 > {
2737 let child = candidate;
2738 Ok(
2739 ::treesitter_types::runtime::maybe_grow_stack(|| <Expression as ::treesitter_types::FromNode>::from_node(
2740 child,
2741 src,
2742 ))?,
2743 )
2744 })()
2745 .is_ok()
2746 {
2747 fallback_child = Some(candidate);
2748 break;
2749 }
2750 }
2751 if !cursor2.goto_next_sibling() {
2752 break;
2753 }
2754 }
2755 }
2756 }
2757 fallback_child.ok_or_else(|| {
2758 ::treesitter_types::ParseError::missing_field("children", node)
2759 })?
2760 };
2761 ::treesitter_types::runtime::maybe_grow_stack(|| {
2762 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
2763 })?
2764 },
2765 })
2766 }
2767}
2768impl ::treesitter_types::Spanned for ComputedPropertyName<'_> {
2769 fn span(&self) -> ::treesitter_types::Span {
2770 self.span
2771 }
2772}
2773#[derive(Debug, Clone, PartialEq, Eq)]
2774pub struct ConditionalType<'tree> {
2775 pub span: ::treesitter_types::Span,
2776 pub alternative: Type<'tree>,
2777 pub consequence: Type<'tree>,
2778 pub left: Type<'tree>,
2779 pub right: Type<'tree>,
2780}
2781impl<'tree> ::treesitter_types::FromNode<'tree> for ConditionalType<'tree> {
2782 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2783 fn from_node(
2784 node: ::treesitter_types::tree_sitter::Node<'tree>,
2785 src: &'tree [u8],
2786 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2787 debug_assert_eq!(node.kind(), "conditional_type");
2788 Ok(Self {
2789 span: ::treesitter_types::Span::from(node),
2790 alternative: {
2791 let child = node.child_by_field_name("alternative").ok_or_else(|| {
2792 ::treesitter_types::ParseError::missing_field("alternative", node)
2793 })?;
2794 ::treesitter_types::runtime::maybe_grow_stack(|| {
2795 <Type as ::treesitter_types::FromNode>::from_node(child, src)
2796 })?
2797 },
2798 consequence: {
2799 let child = node.child_by_field_name("consequence").ok_or_else(|| {
2800 ::treesitter_types::ParseError::missing_field("consequence", node)
2801 })?;
2802 ::treesitter_types::runtime::maybe_grow_stack(|| {
2803 <Type as ::treesitter_types::FromNode>::from_node(child, src)
2804 })?
2805 },
2806 left: {
2807 let child = node
2808 .child_by_field_name("left")
2809 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
2810 ::treesitter_types::runtime::maybe_grow_stack(|| {
2811 <Type as ::treesitter_types::FromNode>::from_node(child, src)
2812 })?
2813 },
2814 right: {
2815 let child = node
2816 .child_by_field_name("right")
2817 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
2818 ::treesitter_types::runtime::maybe_grow_stack(|| {
2819 <Type as ::treesitter_types::FromNode>::from_node(child, src)
2820 })?
2821 },
2822 })
2823 }
2824}
2825impl ::treesitter_types::Spanned for ConditionalType<'_> {
2826 fn span(&self) -> ::treesitter_types::Span {
2827 self.span
2828 }
2829}
2830#[derive(Debug, Clone, PartialEq, Eq)]
2831pub struct Constraint<'tree> {
2832 pub span: ::treesitter_types::Span,
2833 pub children: Type<'tree>,
2834}
2835impl<'tree> ::treesitter_types::FromNode<'tree> for Constraint<'tree> {
2836 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2837 fn from_node(
2838 node: ::treesitter_types::tree_sitter::Node<'tree>,
2839 src: &'tree [u8],
2840 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2841 debug_assert_eq!(node.kind(), "constraint");
2842 Ok(Self {
2843 span: ::treesitter_types::Span::from(node),
2844 children: {
2845 #[allow(clippy::suspicious_else_formatting)]
2846 let non_field_children = {
2847 let mut cursor = node.walk();
2848 let mut result = ::std::vec::Vec::new();
2849 if cursor.goto_first_child() {
2850 loop {
2851 if cursor.field_name().is_none()
2852 && cursor.node().is_named()
2853 && !cursor.node().is_extra()
2854 {
2855 result.push(cursor.node());
2856 }
2857 if !cursor.goto_next_sibling() {
2858 break;
2859 }
2860 }
2861 }
2862 result
2863 };
2864 let child = if let Some(&c) = non_field_children.first() {
2865 c
2866 } else {
2867 let mut fallback_cursor = node.walk();
2868 let mut fallback_child = None;
2869 if fallback_cursor.goto_first_child() {
2870 loop {
2871 if fallback_cursor.field_name().is_none()
2872 && !fallback_cursor.node().is_extra()
2873 {
2874 let candidate = fallback_cursor.node();
2875 #[allow(clippy::needless_question_mark)]
2876 if (|| -> ::core::result::Result<
2877 _,
2878 ::treesitter_types::ParseError,
2879 > {
2880 let child = candidate;
2881 Ok(
2882 ::treesitter_types::runtime::maybe_grow_stack(|| <Type as ::treesitter_types::FromNode>::from_node(
2883 child,
2884 src,
2885 ))?,
2886 )
2887 })()
2888 .is_ok()
2889 {
2890 fallback_child = Some(candidate);
2891 break;
2892 }
2893 }
2894 if !fallback_cursor.goto_next_sibling() {
2895 break;
2896 }
2897 }
2898 }
2899 if fallback_child.is_none() {
2900 let mut cursor2 = node.walk();
2901 if cursor2.goto_first_child() {
2902 loop {
2903 if cursor2.node().is_named() && !cursor2.node().is_extra() {
2904 let candidate = cursor2.node();
2905 #[allow(clippy::needless_question_mark)]
2906 if (|| -> ::core::result::Result<
2907 _,
2908 ::treesitter_types::ParseError,
2909 > {
2910 let child = candidate;
2911 Ok(
2912 ::treesitter_types::runtime::maybe_grow_stack(|| <Type as ::treesitter_types::FromNode>::from_node(
2913 child,
2914 src,
2915 ))?,
2916 )
2917 })()
2918 .is_ok()
2919 {
2920 fallback_child = Some(candidate);
2921 break;
2922 }
2923 }
2924 if !cursor2.goto_next_sibling() {
2925 break;
2926 }
2927 }
2928 }
2929 }
2930 fallback_child.ok_or_else(|| {
2931 ::treesitter_types::ParseError::missing_field("children", node)
2932 })?
2933 };
2934 ::treesitter_types::runtime::maybe_grow_stack(|| {
2935 <Type as ::treesitter_types::FromNode>::from_node(child, src)
2936 })?
2937 },
2938 })
2939 }
2940}
2941impl ::treesitter_types::Spanned for Constraint<'_> {
2942 fn span(&self) -> ::treesitter_types::Span {
2943 self.span
2944 }
2945}
2946#[derive(Debug, Clone, PartialEq, Eq)]
2947pub struct ConstructSignature<'tree> {
2948 pub span: ::treesitter_types::Span,
2949 pub parameters: FormalParameters<'tree>,
2950 pub r#type: ::core::option::Option<TypeAnnotation<'tree>>,
2951 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
2952}
2953impl<'tree> ::treesitter_types::FromNode<'tree> for ConstructSignature<'tree> {
2954 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2955 fn from_node(
2956 node: ::treesitter_types::tree_sitter::Node<'tree>,
2957 src: &'tree [u8],
2958 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2959 debug_assert_eq!(node.kind(), "construct_signature");
2960 Ok(Self {
2961 span: ::treesitter_types::Span::from(node),
2962 parameters: {
2963 let child = node.child_by_field_name("parameters").ok_or_else(|| {
2964 ::treesitter_types::ParseError::missing_field("parameters", node)
2965 })?;
2966 ::treesitter_types::runtime::maybe_grow_stack(|| {
2967 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)
2968 })?
2969 },
2970 r#type: match node.child_by_field_name("type") {
2971 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
2972 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(child, src)
2973 })?),
2974 None => None,
2975 },
2976 type_parameters: match node.child_by_field_name("type_parameters") {
2977 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
2978 <TypeParameters as ::treesitter_types::FromNode>::from_node(child, src)
2979 })?),
2980 None => None,
2981 },
2982 })
2983 }
2984}
2985impl ::treesitter_types::Spanned for ConstructSignature<'_> {
2986 fn span(&self) -> ::treesitter_types::Span {
2987 self.span
2988 }
2989}
2990#[derive(Debug, Clone, PartialEq, Eq)]
2991pub struct ConstructorType<'tree> {
2992 pub span: ::treesitter_types::Span,
2993 pub parameters: FormalParameters<'tree>,
2994 pub r#type: Type<'tree>,
2995 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
2996}
2997impl<'tree> ::treesitter_types::FromNode<'tree> for ConstructorType<'tree> {
2998 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2999 fn from_node(
3000 node: ::treesitter_types::tree_sitter::Node<'tree>,
3001 src: &'tree [u8],
3002 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3003 debug_assert_eq!(node.kind(), "constructor_type");
3004 Ok(Self {
3005 span: ::treesitter_types::Span::from(node),
3006 parameters: {
3007 let child = node.child_by_field_name("parameters").ok_or_else(|| {
3008 ::treesitter_types::ParseError::missing_field("parameters", node)
3009 })?;
3010 ::treesitter_types::runtime::maybe_grow_stack(|| {
3011 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)
3012 })?
3013 },
3014 r#type: {
3015 let child = node
3016 .child_by_field_name("type")
3017 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("type", node))?;
3018 ::treesitter_types::runtime::maybe_grow_stack(|| {
3019 <Type as ::treesitter_types::FromNode>::from_node(child, src)
3020 })?
3021 },
3022 type_parameters: match node.child_by_field_name("type_parameters") {
3023 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
3024 <TypeParameters as ::treesitter_types::FromNode>::from_node(child, src)
3025 })?),
3026 None => None,
3027 },
3028 })
3029 }
3030}
3031impl ::treesitter_types::Spanned for ConstructorType<'_> {
3032 fn span(&self) -> ::treesitter_types::Span {
3033 self.span
3034 }
3035}
3036#[derive(Debug, Clone, PartialEq, Eq)]
3037pub struct ContinueStatement<'tree> {
3038 pub span: ::treesitter_types::Span,
3039 pub label: ::core::option::Option<StatementIdentifier<'tree>>,
3040}
3041impl<'tree> ::treesitter_types::FromNode<'tree> for ContinueStatement<'tree> {
3042 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3043 fn from_node(
3044 node: ::treesitter_types::tree_sitter::Node<'tree>,
3045 src: &'tree [u8],
3046 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3047 debug_assert_eq!(node.kind(), "continue_statement");
3048 Ok(Self {
3049 span: ::treesitter_types::Span::from(node),
3050 label: match node.child_by_field_name("label") {
3051 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
3052 <StatementIdentifier as ::treesitter_types::FromNode>::from_node(child, src)
3053 })?),
3054 None => None,
3055 },
3056 })
3057 }
3058}
3059impl ::treesitter_types::Spanned for ContinueStatement<'_> {
3060 fn span(&self) -> ::treesitter_types::Span {
3061 self.span
3062 }
3063}
3064#[derive(Debug, Clone, PartialEq, Eq)]
3065pub struct DebuggerStatement<'tree> {
3066 pub span: ::treesitter_types::Span,
3067 text: &'tree str,
3068}
3069impl<'tree> ::treesitter_types::FromNode<'tree> for DebuggerStatement<'tree> {
3070 fn from_node(
3071 node: ::treesitter_types::tree_sitter::Node<'tree>,
3072 src: &'tree [u8],
3073 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3074 debug_assert_eq!(node.kind(), "debugger_statement");
3075 Ok(Self {
3076 span: ::treesitter_types::Span::from(node),
3077 text: node.utf8_text(src)?,
3078 })
3079 }
3080}
3081impl<'tree> ::treesitter_types::LeafNode<'tree> for DebuggerStatement<'tree> {
3082 fn text(&self) -> &'tree str {
3083 self.text
3084 }
3085}
3086impl ::treesitter_types::Spanned for DebuggerStatement<'_> {
3087 fn span(&self) -> ::treesitter_types::Span {
3088 self.span
3089 }
3090}
3091#[derive(Debug, Clone, PartialEq, Eq)]
3092pub struct Decorator<'tree> {
3093 pub span: ::treesitter_types::Span,
3094 pub children: DecoratorChildren<'tree>,
3095}
3096impl<'tree> ::treesitter_types::FromNode<'tree> for Decorator<'tree> {
3097 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3098 fn from_node(
3099 node: ::treesitter_types::tree_sitter::Node<'tree>,
3100 src: &'tree [u8],
3101 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3102 debug_assert_eq!(node.kind(), "decorator");
3103 Ok(Self {
3104 span: ::treesitter_types::Span::from(node),
3105 children: {
3106 #[allow(clippy::suspicious_else_formatting)]
3107 let non_field_children = {
3108 let mut cursor = node.walk();
3109 let mut result = ::std::vec::Vec::new();
3110 if cursor.goto_first_child() {
3111 loop {
3112 if cursor.field_name().is_none()
3113 && cursor.node().is_named()
3114 && !cursor.node().is_extra()
3115 {
3116 result.push(cursor.node());
3117 }
3118 if !cursor.goto_next_sibling() {
3119 break;
3120 }
3121 }
3122 }
3123 result
3124 };
3125 let child = if let Some(&c) = non_field_children.first() {
3126 c
3127 } else {
3128 let mut fallback_cursor = node.walk();
3129 let mut fallback_child = None;
3130 if fallback_cursor.goto_first_child() {
3131 loop {
3132 if fallback_cursor.field_name().is_none()
3133 && !fallback_cursor.node().is_extra()
3134 {
3135 let candidate = fallback_cursor.node();
3136 #[allow(clippy::needless_question_mark)]
3137 if (|| -> ::core::result::Result<
3138 _,
3139 ::treesitter_types::ParseError,
3140 > {
3141 let child = candidate;
3142 Ok(
3143 ::treesitter_types::runtime::maybe_grow_stack(|| <DecoratorChildren as ::treesitter_types::FromNode>::from_node(
3144 child,
3145 src,
3146 ))?,
3147 )
3148 })()
3149 .is_ok()
3150 {
3151 fallback_child = Some(candidate);
3152 break;
3153 }
3154 }
3155 if !fallback_cursor.goto_next_sibling() {
3156 break;
3157 }
3158 }
3159 }
3160 if fallback_child.is_none() {
3161 let mut cursor2 = node.walk();
3162 if cursor2.goto_first_child() {
3163 loop {
3164 if cursor2.node().is_named() && !cursor2.node().is_extra() {
3165 let candidate = cursor2.node();
3166 #[allow(clippy::needless_question_mark)]
3167 if (|| -> ::core::result::Result<
3168 _,
3169 ::treesitter_types::ParseError,
3170 > {
3171 let child = candidate;
3172 Ok(
3173 ::treesitter_types::runtime::maybe_grow_stack(|| <DecoratorChildren as ::treesitter_types::FromNode>::from_node(
3174 child,
3175 src,
3176 ))?,
3177 )
3178 })()
3179 .is_ok()
3180 {
3181 fallback_child = Some(candidate);
3182 break;
3183 }
3184 }
3185 if !cursor2.goto_next_sibling() {
3186 break;
3187 }
3188 }
3189 }
3190 }
3191 fallback_child.ok_or_else(|| {
3192 ::treesitter_types::ParseError::missing_field("children", node)
3193 })?
3194 };
3195 ::treesitter_types::runtime::maybe_grow_stack(|| {
3196 <DecoratorChildren as ::treesitter_types::FromNode>::from_node(child, src)
3197 })?
3198 },
3199 })
3200 }
3201}
3202impl ::treesitter_types::Spanned for Decorator<'_> {
3203 fn span(&self) -> ::treesitter_types::Span {
3204 self.span
3205 }
3206}
3207#[derive(Debug, Clone, PartialEq, Eq)]
3208pub struct DefaultType<'tree> {
3209 pub span: ::treesitter_types::Span,
3210 pub children: Type<'tree>,
3211}
3212impl<'tree> ::treesitter_types::FromNode<'tree> for DefaultType<'tree> {
3213 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3214 fn from_node(
3215 node: ::treesitter_types::tree_sitter::Node<'tree>,
3216 src: &'tree [u8],
3217 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3218 debug_assert_eq!(node.kind(), "default_type");
3219 Ok(Self {
3220 span: ::treesitter_types::Span::from(node),
3221 children: {
3222 #[allow(clippy::suspicious_else_formatting)]
3223 let non_field_children = {
3224 let mut cursor = node.walk();
3225 let mut result = ::std::vec::Vec::new();
3226 if cursor.goto_first_child() {
3227 loop {
3228 if cursor.field_name().is_none()
3229 && cursor.node().is_named()
3230 && !cursor.node().is_extra()
3231 {
3232 result.push(cursor.node());
3233 }
3234 if !cursor.goto_next_sibling() {
3235 break;
3236 }
3237 }
3238 }
3239 result
3240 };
3241 let child = if let Some(&c) = non_field_children.first() {
3242 c
3243 } else {
3244 let mut fallback_cursor = node.walk();
3245 let mut fallback_child = None;
3246 if fallback_cursor.goto_first_child() {
3247 loop {
3248 if fallback_cursor.field_name().is_none()
3249 && !fallback_cursor.node().is_extra()
3250 {
3251 let candidate = fallback_cursor.node();
3252 #[allow(clippy::needless_question_mark)]
3253 if (|| -> ::core::result::Result<
3254 _,
3255 ::treesitter_types::ParseError,
3256 > {
3257 let child = candidate;
3258 Ok(
3259 ::treesitter_types::runtime::maybe_grow_stack(|| <Type as ::treesitter_types::FromNode>::from_node(
3260 child,
3261 src,
3262 ))?,
3263 )
3264 })()
3265 .is_ok()
3266 {
3267 fallback_child = Some(candidate);
3268 break;
3269 }
3270 }
3271 if !fallback_cursor.goto_next_sibling() {
3272 break;
3273 }
3274 }
3275 }
3276 if fallback_child.is_none() {
3277 let mut cursor2 = node.walk();
3278 if cursor2.goto_first_child() {
3279 loop {
3280 if cursor2.node().is_named() && !cursor2.node().is_extra() {
3281 let candidate = cursor2.node();
3282 #[allow(clippy::needless_question_mark)]
3283 if (|| -> ::core::result::Result<
3284 _,
3285 ::treesitter_types::ParseError,
3286 > {
3287 let child = candidate;
3288 Ok(
3289 ::treesitter_types::runtime::maybe_grow_stack(|| <Type as ::treesitter_types::FromNode>::from_node(
3290 child,
3291 src,
3292 ))?,
3293 )
3294 })()
3295 .is_ok()
3296 {
3297 fallback_child = Some(candidate);
3298 break;
3299 }
3300 }
3301 if !cursor2.goto_next_sibling() {
3302 break;
3303 }
3304 }
3305 }
3306 }
3307 fallback_child.ok_or_else(|| {
3308 ::treesitter_types::ParseError::missing_field("children", node)
3309 })?
3310 };
3311 ::treesitter_types::runtime::maybe_grow_stack(|| {
3312 <Type as ::treesitter_types::FromNode>::from_node(child, src)
3313 })?
3314 },
3315 })
3316 }
3317}
3318impl ::treesitter_types::Spanned for DefaultType<'_> {
3319 fn span(&self) -> ::treesitter_types::Span {
3320 self.span
3321 }
3322}
3323#[derive(Debug, Clone, PartialEq, Eq)]
3324pub struct DoStatement<'tree> {
3325 pub span: ::treesitter_types::Span,
3326 pub body: Statement<'tree>,
3327 pub condition: ParenthesizedExpression<'tree>,
3328}
3329impl<'tree> ::treesitter_types::FromNode<'tree> for DoStatement<'tree> {
3330 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3331 fn from_node(
3332 node: ::treesitter_types::tree_sitter::Node<'tree>,
3333 src: &'tree [u8],
3334 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3335 debug_assert_eq!(node.kind(), "do_statement");
3336 Ok(Self {
3337 span: ::treesitter_types::Span::from(node),
3338 body: {
3339 let child = node
3340 .child_by_field_name("body")
3341 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
3342 ::treesitter_types::runtime::maybe_grow_stack(|| {
3343 <Statement as ::treesitter_types::FromNode>::from_node(child, src)
3344 })?
3345 },
3346 condition: {
3347 let child = node.child_by_field_name("condition").ok_or_else(|| {
3348 ::treesitter_types::ParseError::missing_field("condition", node)
3349 })?;
3350 ::treesitter_types::runtime::maybe_grow_stack(|| {
3351 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(child, src)
3352 })?
3353 },
3354 })
3355 }
3356}
3357impl ::treesitter_types::Spanned for DoStatement<'_> {
3358 fn span(&self) -> ::treesitter_types::Span {
3359 self.span
3360 }
3361}
3362#[derive(Debug, Clone, PartialEq, Eq)]
3363pub struct ElseClause<'tree> {
3364 pub span: ::treesitter_types::Span,
3365 pub children: Statement<'tree>,
3366}
3367impl<'tree> ::treesitter_types::FromNode<'tree> for ElseClause<'tree> {
3368 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3369 fn from_node(
3370 node: ::treesitter_types::tree_sitter::Node<'tree>,
3371 src: &'tree [u8],
3372 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3373 debug_assert_eq!(node.kind(), "else_clause");
3374 Ok(Self {
3375 span: ::treesitter_types::Span::from(node),
3376 children: {
3377 #[allow(clippy::suspicious_else_formatting)]
3378 let non_field_children = {
3379 let mut cursor = node.walk();
3380 let mut result = ::std::vec::Vec::new();
3381 if cursor.goto_first_child() {
3382 loop {
3383 if cursor.field_name().is_none()
3384 && cursor.node().is_named()
3385 && !cursor.node().is_extra()
3386 {
3387 result.push(cursor.node());
3388 }
3389 if !cursor.goto_next_sibling() {
3390 break;
3391 }
3392 }
3393 }
3394 result
3395 };
3396 let child = if let Some(&c) = non_field_children.first() {
3397 c
3398 } else {
3399 let mut fallback_cursor = node.walk();
3400 let mut fallback_child = None;
3401 if fallback_cursor.goto_first_child() {
3402 loop {
3403 if fallback_cursor.field_name().is_none()
3404 && !fallback_cursor.node().is_extra()
3405 {
3406 let candidate = fallback_cursor.node();
3407 #[allow(clippy::needless_question_mark)]
3408 if (|| -> ::core::result::Result<
3409 _,
3410 ::treesitter_types::ParseError,
3411 > {
3412 let child = candidate;
3413 Ok(
3414 ::treesitter_types::runtime::maybe_grow_stack(|| <Statement as ::treesitter_types::FromNode>::from_node(
3415 child,
3416 src,
3417 ))?,
3418 )
3419 })()
3420 .is_ok()
3421 {
3422 fallback_child = Some(candidate);
3423 break;
3424 }
3425 }
3426 if !fallback_cursor.goto_next_sibling() {
3427 break;
3428 }
3429 }
3430 }
3431 if fallback_child.is_none() {
3432 let mut cursor2 = node.walk();
3433 if cursor2.goto_first_child() {
3434 loop {
3435 if cursor2.node().is_named() && !cursor2.node().is_extra() {
3436 let candidate = cursor2.node();
3437 #[allow(clippy::needless_question_mark)]
3438 if (|| -> ::core::result::Result<
3439 _,
3440 ::treesitter_types::ParseError,
3441 > {
3442 let child = candidate;
3443 Ok(
3444 ::treesitter_types::runtime::maybe_grow_stack(|| <Statement as ::treesitter_types::FromNode>::from_node(
3445 child,
3446 src,
3447 ))?,
3448 )
3449 })()
3450 .is_ok()
3451 {
3452 fallback_child = Some(candidate);
3453 break;
3454 }
3455 }
3456 if !cursor2.goto_next_sibling() {
3457 break;
3458 }
3459 }
3460 }
3461 }
3462 fallback_child.ok_or_else(|| {
3463 ::treesitter_types::ParseError::missing_field("children", node)
3464 })?
3465 };
3466 ::treesitter_types::runtime::maybe_grow_stack(|| {
3467 <Statement as ::treesitter_types::FromNode>::from_node(child, src)
3468 })?
3469 },
3470 })
3471 }
3472}
3473impl ::treesitter_types::Spanned for ElseClause<'_> {
3474 fn span(&self) -> ::treesitter_types::Span {
3475 self.span
3476 }
3477}
3478#[derive(Debug, Clone, PartialEq, Eq)]
3479pub struct EmptyStatement<'tree> {
3480 pub span: ::treesitter_types::Span,
3481 text: &'tree str,
3482}
3483impl<'tree> ::treesitter_types::FromNode<'tree> for EmptyStatement<'tree> {
3484 fn from_node(
3485 node: ::treesitter_types::tree_sitter::Node<'tree>,
3486 src: &'tree [u8],
3487 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3488 debug_assert_eq!(node.kind(), "empty_statement");
3489 Ok(Self {
3490 span: ::treesitter_types::Span::from(node),
3491 text: node.utf8_text(src)?,
3492 })
3493 }
3494}
3495impl<'tree> ::treesitter_types::LeafNode<'tree> for EmptyStatement<'tree> {
3496 fn text(&self) -> &'tree str {
3497 self.text
3498 }
3499}
3500impl ::treesitter_types::Spanned for EmptyStatement<'_> {
3501 fn span(&self) -> ::treesitter_types::Span {
3502 self.span
3503 }
3504}
3505#[derive(Debug, Clone, PartialEq, Eq)]
3506pub struct EnumAssignment<'tree> {
3507 pub span: ::treesitter_types::Span,
3508 pub name: EnumAssignmentName<'tree>,
3509 pub value: Expression<'tree>,
3510}
3511impl<'tree> ::treesitter_types::FromNode<'tree> for EnumAssignment<'tree> {
3512 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3513 fn from_node(
3514 node: ::treesitter_types::tree_sitter::Node<'tree>,
3515 src: &'tree [u8],
3516 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3517 debug_assert_eq!(node.kind(), "enum_assignment");
3518 Ok(Self {
3519 span: ::treesitter_types::Span::from(node),
3520 name: {
3521 let child = node
3522 .child_by_field_name("name")
3523 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
3524 ::treesitter_types::runtime::maybe_grow_stack(|| {
3525 <EnumAssignmentName as ::treesitter_types::FromNode>::from_node(child, src)
3526 })?
3527 },
3528 value: {
3529 let child = node
3530 .child_by_field_name("value")
3531 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
3532 ::treesitter_types::runtime::maybe_grow_stack(|| {
3533 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
3534 })?
3535 },
3536 })
3537 }
3538}
3539impl ::treesitter_types::Spanned for EnumAssignment<'_> {
3540 fn span(&self) -> ::treesitter_types::Span {
3541 self.span
3542 }
3543}
3544#[derive(Debug, Clone, PartialEq, Eq)]
3545pub struct EnumBody<'tree> {
3546 pub span: ::treesitter_types::Span,
3547 pub name: ::std::vec::Vec<EnumBodyName<'tree>>,
3548 pub children: ::std::vec::Vec<EnumAssignment<'tree>>,
3549}
3550impl<'tree> ::treesitter_types::FromNode<'tree> for EnumBody<'tree> {
3551 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3552 fn from_node(
3553 node: ::treesitter_types::tree_sitter::Node<'tree>,
3554 src: &'tree [u8],
3555 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3556 debug_assert_eq!(node.kind(), "enum_body");
3557 Ok(Self {
3558 span: ::treesitter_types::Span::from(node),
3559 name: {
3560 let mut cursor = node.walk();
3561 let mut items = ::std::vec::Vec::new();
3562 for child in node.children_by_field_name("name", &mut cursor) {
3563 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
3564 <EnumBodyName as ::treesitter_types::FromNode>::from_node(child, src)
3565 })?);
3566 }
3567 items
3568 },
3569 children: {
3570 #[allow(clippy::suspicious_else_formatting)]
3571 let non_field_children = {
3572 let mut cursor = node.walk();
3573 let mut result = ::std::vec::Vec::new();
3574 if cursor.goto_first_child() {
3575 loop {
3576 if cursor.field_name().is_none()
3577 && cursor.node().is_named()
3578 && !cursor.node().is_extra()
3579 {
3580 result.push(cursor.node());
3581 }
3582 if !cursor.goto_next_sibling() {
3583 break;
3584 }
3585 }
3586 }
3587 result
3588 };
3589 let mut items = ::std::vec::Vec::new();
3590 for child in non_field_children {
3591 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
3592 <EnumAssignment as ::treesitter_types::FromNode>::from_node(child, src)
3593 })?);
3594 }
3595 items
3596 },
3597 })
3598 }
3599}
3600impl ::treesitter_types::Spanned for EnumBody<'_> {
3601 fn span(&self) -> ::treesitter_types::Span {
3602 self.span
3603 }
3604}
3605#[derive(Debug, Clone, PartialEq, Eq)]
3606pub struct EnumDeclaration<'tree> {
3607 pub span: ::treesitter_types::Span,
3608 pub body: EnumBody<'tree>,
3609 pub name: Identifier<'tree>,
3610}
3611impl<'tree> ::treesitter_types::FromNode<'tree> for EnumDeclaration<'tree> {
3612 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3613 fn from_node(
3614 node: ::treesitter_types::tree_sitter::Node<'tree>,
3615 src: &'tree [u8],
3616 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3617 debug_assert_eq!(node.kind(), "enum_declaration");
3618 Ok(Self {
3619 span: ::treesitter_types::Span::from(node),
3620 body: {
3621 let child = node
3622 .child_by_field_name("body")
3623 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
3624 ::treesitter_types::runtime::maybe_grow_stack(|| {
3625 <EnumBody as ::treesitter_types::FromNode>::from_node(child, src)
3626 })?
3627 },
3628 name: {
3629 let child = node
3630 .child_by_field_name("name")
3631 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
3632 ::treesitter_types::runtime::maybe_grow_stack(|| {
3633 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)
3634 })?
3635 },
3636 })
3637 }
3638}
3639impl ::treesitter_types::Spanned for EnumDeclaration<'_> {
3640 fn span(&self) -> ::treesitter_types::Span {
3641 self.span
3642 }
3643}
3644#[derive(Debug, Clone, PartialEq, Eq)]
3645pub struct ExistentialType<'tree> {
3646 pub span: ::treesitter_types::Span,
3647 text: &'tree str,
3648}
3649impl<'tree> ::treesitter_types::FromNode<'tree> for ExistentialType<'tree> {
3650 fn from_node(
3651 node: ::treesitter_types::tree_sitter::Node<'tree>,
3652 src: &'tree [u8],
3653 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3654 debug_assert_eq!(node.kind(), "existential_type");
3655 Ok(Self {
3656 span: ::treesitter_types::Span::from(node),
3657 text: node.utf8_text(src)?,
3658 })
3659 }
3660}
3661impl<'tree> ::treesitter_types::LeafNode<'tree> for ExistentialType<'tree> {
3662 fn text(&self) -> &'tree str {
3663 self.text
3664 }
3665}
3666impl ::treesitter_types::Spanned for ExistentialType<'_> {
3667 fn span(&self) -> ::treesitter_types::Span {
3668 self.span
3669 }
3670}
3671#[derive(Debug, Clone, PartialEq, Eq)]
3672pub struct ExportClause<'tree> {
3673 pub span: ::treesitter_types::Span,
3674 pub children: ::std::vec::Vec<ExportSpecifier<'tree>>,
3675}
3676impl<'tree> ::treesitter_types::FromNode<'tree> for ExportClause<'tree> {
3677 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3678 fn from_node(
3679 node: ::treesitter_types::tree_sitter::Node<'tree>,
3680 src: &'tree [u8],
3681 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3682 debug_assert_eq!(node.kind(), "export_clause");
3683 Ok(Self {
3684 span: ::treesitter_types::Span::from(node),
3685 children: {
3686 #[allow(clippy::suspicious_else_formatting)]
3687 let non_field_children = {
3688 let mut cursor = node.walk();
3689 let mut result = ::std::vec::Vec::new();
3690 if cursor.goto_first_child() {
3691 loop {
3692 if cursor.field_name().is_none()
3693 && cursor.node().is_named()
3694 && !cursor.node().is_extra()
3695 {
3696 result.push(cursor.node());
3697 }
3698 if !cursor.goto_next_sibling() {
3699 break;
3700 }
3701 }
3702 }
3703 result
3704 };
3705 let mut items = ::std::vec::Vec::new();
3706 for child in non_field_children {
3707 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
3708 <ExportSpecifier as ::treesitter_types::FromNode>::from_node(child, src)
3709 })?);
3710 }
3711 items
3712 },
3713 })
3714 }
3715}
3716impl ::treesitter_types::Spanned for ExportClause<'_> {
3717 fn span(&self) -> ::treesitter_types::Span {
3718 self.span
3719 }
3720}
3721#[derive(Debug, Clone, PartialEq, Eq)]
3722pub struct ExportSpecifier<'tree> {
3723 pub span: ::treesitter_types::Span,
3724 pub alias: ::core::option::Option<ExportSpecifierAlias<'tree>>,
3725 pub name: ExportSpecifierName<'tree>,
3726}
3727impl<'tree> ::treesitter_types::FromNode<'tree> for ExportSpecifier<'tree> {
3728 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3729 fn from_node(
3730 node: ::treesitter_types::tree_sitter::Node<'tree>,
3731 src: &'tree [u8],
3732 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3733 debug_assert_eq!(node.kind(), "export_specifier");
3734 Ok(Self {
3735 span: ::treesitter_types::Span::from(node),
3736 alias: match node.child_by_field_name("alias") {
3737 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
3738 <ExportSpecifierAlias as ::treesitter_types::FromNode>::from_node(child, src)
3739 })?),
3740 None => None,
3741 },
3742 name: {
3743 let child = node
3744 .child_by_field_name("name")
3745 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
3746 ::treesitter_types::runtime::maybe_grow_stack(|| {
3747 <ExportSpecifierName as ::treesitter_types::FromNode>::from_node(child, src)
3748 })?
3749 },
3750 })
3751 }
3752}
3753impl ::treesitter_types::Spanned for ExportSpecifier<'_> {
3754 fn span(&self) -> ::treesitter_types::Span {
3755 self.span
3756 }
3757}
3758#[derive(Debug, Clone, PartialEq, Eq)]
3759pub struct ExportStatement<'tree> {
3760 pub span: ::treesitter_types::Span,
3761 pub declaration: ::core::option::Option<Declaration<'tree>>,
3762 pub decorator: ::std::vec::Vec<Decorator<'tree>>,
3763 pub source: ::core::option::Option<String<'tree>>,
3764 pub value: ::core::option::Option<Expression<'tree>>,
3765 pub children: ::core::option::Option<ExportStatementChildren<'tree>>,
3766}
3767impl<'tree> ::treesitter_types::FromNode<'tree> for ExportStatement<'tree> {
3768 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3769 fn from_node(
3770 node: ::treesitter_types::tree_sitter::Node<'tree>,
3771 src: &'tree [u8],
3772 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3773 debug_assert_eq!(node.kind(), "export_statement");
3774 Ok(Self {
3775 span: ::treesitter_types::Span::from(node),
3776 declaration: match node.child_by_field_name("declaration") {
3777 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
3778 <Declaration as ::treesitter_types::FromNode>::from_node(child, src)
3779 })?),
3780 None => None,
3781 },
3782 decorator: {
3783 let mut cursor = node.walk();
3784 let mut items = ::std::vec::Vec::new();
3785 for child in node.children_by_field_name("decorator", &mut cursor) {
3786 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
3787 <Decorator as ::treesitter_types::FromNode>::from_node(child, src)
3788 })?);
3789 }
3790 items
3791 },
3792 source: match node.child_by_field_name("source") {
3793 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
3794 <String as ::treesitter_types::FromNode>::from_node(child, src)
3795 })?),
3796 None => None,
3797 },
3798 value: match node.child_by_field_name("value") {
3799 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
3800 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
3801 })?),
3802 None => None,
3803 },
3804 children: {
3805 #[allow(clippy::suspicious_else_formatting)]
3806 let non_field_children = {
3807 let mut cursor = node.walk();
3808 let mut result = ::std::vec::Vec::new();
3809 if cursor.goto_first_child() {
3810 loop {
3811 if cursor.field_name().is_none()
3812 && cursor.node().is_named()
3813 && !cursor.node().is_extra()
3814 {
3815 result.push(cursor.node());
3816 }
3817 if !cursor.goto_next_sibling() {
3818 break;
3819 }
3820 }
3821 }
3822 result
3823 };
3824 match non_field_children.first() {
3825 Some(&child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
3826 <ExportStatementChildren as ::treesitter_types::FromNode>::from_node(
3827 child, src,
3828 )
3829 })?),
3830 None => None,
3831 }
3832 },
3833 })
3834 }
3835}
3836impl ::treesitter_types::Spanned for ExportStatement<'_> {
3837 fn span(&self) -> ::treesitter_types::Span {
3838 self.span
3839 }
3840}
3841#[derive(Debug, Clone, PartialEq, Eq)]
3842pub struct ExpressionStatement<'tree> {
3843 pub span: ::treesitter_types::Span,
3844 pub children: ExpressionStatementChildren<'tree>,
3845}
3846impl<'tree> ::treesitter_types::FromNode<'tree> for ExpressionStatement<'tree> {
3847 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3848 fn from_node(
3849 node: ::treesitter_types::tree_sitter::Node<'tree>,
3850 src: &'tree [u8],
3851 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3852 debug_assert_eq!(node.kind(), "expression_statement");
3853 Ok(Self {
3854 span: ::treesitter_types::Span::from(node),
3855 children: {
3856 #[allow(clippy::suspicious_else_formatting)]
3857 let non_field_children = {
3858 let mut cursor = node.walk();
3859 let mut result = ::std::vec::Vec::new();
3860 if cursor.goto_first_child() {
3861 loop {
3862 if cursor.field_name().is_none()
3863 && cursor.node().is_named()
3864 && !cursor.node().is_extra()
3865 {
3866 result.push(cursor.node());
3867 }
3868 if !cursor.goto_next_sibling() {
3869 break;
3870 }
3871 }
3872 }
3873 result
3874 };
3875 let child = if let Some(&c) = non_field_children.first() {
3876 c
3877 } else {
3878 let mut fallback_cursor = node.walk();
3879 let mut fallback_child = None;
3880 if fallback_cursor.goto_first_child() {
3881 loop {
3882 if fallback_cursor.field_name().is_none()
3883 && !fallback_cursor.node().is_extra()
3884 {
3885 let candidate = fallback_cursor.node();
3886 #[allow(clippy::needless_question_mark)]
3887 if (|| -> ::core::result::Result<
3888 _,
3889 ::treesitter_types::ParseError,
3890 > {
3891 let child = candidate;
3892 Ok(
3893 ::treesitter_types::runtime::maybe_grow_stack(|| <ExpressionStatementChildren as ::treesitter_types::FromNode>::from_node(
3894 child,
3895 src,
3896 ))?,
3897 )
3898 })()
3899 .is_ok()
3900 {
3901 fallback_child = Some(candidate);
3902 break;
3903 }
3904 }
3905 if !fallback_cursor.goto_next_sibling() {
3906 break;
3907 }
3908 }
3909 }
3910 if fallback_child.is_none() {
3911 let mut cursor2 = node.walk();
3912 if cursor2.goto_first_child() {
3913 loop {
3914 if cursor2.node().is_named() && !cursor2.node().is_extra() {
3915 let candidate = cursor2.node();
3916 #[allow(clippy::needless_question_mark)]
3917 if (|| -> ::core::result::Result<
3918 _,
3919 ::treesitter_types::ParseError,
3920 > {
3921 let child = candidate;
3922 Ok(
3923 ::treesitter_types::runtime::maybe_grow_stack(|| <ExpressionStatementChildren as ::treesitter_types::FromNode>::from_node(
3924 child,
3925 src,
3926 ))?,
3927 )
3928 })()
3929 .is_ok()
3930 {
3931 fallback_child = Some(candidate);
3932 break;
3933 }
3934 }
3935 if !cursor2.goto_next_sibling() {
3936 break;
3937 }
3938 }
3939 }
3940 }
3941 fallback_child.ok_or_else(|| {
3942 ::treesitter_types::ParseError::missing_field("children", node)
3943 })?
3944 };
3945 ::treesitter_types::runtime::maybe_grow_stack(|| {
3946 <ExpressionStatementChildren as ::treesitter_types::FromNode>::from_node(
3947 child, src,
3948 )
3949 })?
3950 },
3951 })
3952 }
3953}
3954impl ::treesitter_types::Spanned for ExpressionStatement<'_> {
3955 fn span(&self) -> ::treesitter_types::Span {
3956 self.span
3957 }
3958}
3959#[derive(Debug, Clone, PartialEq, Eq)]
3960pub struct ExtendsClause<'tree> {
3961 pub span: ::treesitter_types::Span,
3962 pub type_arguments: ::std::vec::Vec<TypeArguments<'tree>>,
3963 pub value: ::std::vec::Vec<Expression<'tree>>,
3964}
3965impl<'tree> ::treesitter_types::FromNode<'tree> for ExtendsClause<'tree> {
3966 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3967 fn from_node(
3968 node: ::treesitter_types::tree_sitter::Node<'tree>,
3969 src: &'tree [u8],
3970 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3971 debug_assert_eq!(node.kind(), "extends_clause");
3972 Ok(Self {
3973 span: ::treesitter_types::Span::from(node),
3974 type_arguments: {
3975 let mut cursor = node.walk();
3976 let mut items = ::std::vec::Vec::new();
3977 for child in node.children_by_field_name("type_arguments", &mut cursor) {
3978 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
3979 <TypeArguments as ::treesitter_types::FromNode>::from_node(child, src)
3980 })?);
3981 }
3982 items
3983 },
3984 value: {
3985 let mut cursor = node.walk();
3986 let mut items = ::std::vec::Vec::new();
3987 for child in node.children_by_field_name("value", &mut cursor) {
3988 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
3989 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
3990 })?);
3991 }
3992 items
3993 },
3994 })
3995 }
3996}
3997impl ::treesitter_types::Spanned for ExtendsClause<'_> {
3998 fn span(&self) -> ::treesitter_types::Span {
3999 self.span
4000 }
4001}
4002#[derive(Debug, Clone, PartialEq, Eq)]
4003pub struct ExtendsTypeClause<'tree> {
4004 pub span: ::treesitter_types::Span,
4005 pub r#type: ::std::vec::Vec<ExtendsTypeClauseType<'tree>>,
4006}
4007impl<'tree> ::treesitter_types::FromNode<'tree> for ExtendsTypeClause<'tree> {
4008 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4009 fn from_node(
4010 node: ::treesitter_types::tree_sitter::Node<'tree>,
4011 src: &'tree [u8],
4012 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4013 debug_assert_eq!(node.kind(), "extends_type_clause");
4014 Ok(Self {
4015 span: ::treesitter_types::Span::from(node),
4016 r#type: {
4017 let mut cursor = node.walk();
4018 let mut items = ::std::vec::Vec::new();
4019 for child in node.children_by_field_name("type", &mut cursor) {
4020 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
4021 <ExtendsTypeClauseType as ::treesitter_types::FromNode>::from_node(
4022 child, src,
4023 )
4024 })?);
4025 }
4026 items
4027 },
4028 })
4029 }
4030}
4031impl ::treesitter_types::Spanned for ExtendsTypeClause<'_> {
4032 fn span(&self) -> ::treesitter_types::Span {
4033 self.span
4034 }
4035}
4036#[derive(Debug, Clone, PartialEq, Eq)]
4037pub struct FinallyClause<'tree> {
4038 pub span: ::treesitter_types::Span,
4039 pub body: StatementBlock<'tree>,
4040}
4041impl<'tree> ::treesitter_types::FromNode<'tree> for FinallyClause<'tree> {
4042 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4043 fn from_node(
4044 node: ::treesitter_types::tree_sitter::Node<'tree>,
4045 src: &'tree [u8],
4046 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4047 debug_assert_eq!(node.kind(), "finally_clause");
4048 Ok(Self {
4049 span: ::treesitter_types::Span::from(node),
4050 body: {
4051 let child = node
4052 .child_by_field_name("body")
4053 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
4054 ::treesitter_types::runtime::maybe_grow_stack(|| {
4055 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)
4056 })?
4057 },
4058 })
4059 }
4060}
4061impl ::treesitter_types::Spanned for FinallyClause<'_> {
4062 fn span(&self) -> ::treesitter_types::Span {
4063 self.span
4064 }
4065}
4066#[derive(Debug, Clone, PartialEq, Eq)]
4067pub struct FlowMaybeType<'tree> {
4068 pub span: ::treesitter_types::Span,
4069 pub children: PrimaryType<'tree>,
4070}
4071impl<'tree> ::treesitter_types::FromNode<'tree> for FlowMaybeType<'tree> {
4072 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4073 fn from_node(
4074 node: ::treesitter_types::tree_sitter::Node<'tree>,
4075 src: &'tree [u8],
4076 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4077 debug_assert_eq!(node.kind(), "flow_maybe_type");
4078 Ok(Self {
4079 span: ::treesitter_types::Span::from(node),
4080 children: {
4081 #[allow(clippy::suspicious_else_formatting)]
4082 let non_field_children = {
4083 let mut cursor = node.walk();
4084 let mut result = ::std::vec::Vec::new();
4085 if cursor.goto_first_child() {
4086 loop {
4087 if cursor.field_name().is_none()
4088 && cursor.node().is_named()
4089 && !cursor.node().is_extra()
4090 {
4091 result.push(cursor.node());
4092 }
4093 if !cursor.goto_next_sibling() {
4094 break;
4095 }
4096 }
4097 }
4098 result
4099 };
4100 let child = if let Some(&c) = non_field_children.first() {
4101 c
4102 } else {
4103 let mut fallback_cursor = node.walk();
4104 let mut fallback_child = None;
4105 if fallback_cursor.goto_first_child() {
4106 loop {
4107 if fallback_cursor.field_name().is_none()
4108 && !fallback_cursor.node().is_extra()
4109 {
4110 let candidate = fallback_cursor.node();
4111 #[allow(clippy::needless_question_mark)]
4112 if (|| -> ::core::result::Result<
4113 _,
4114 ::treesitter_types::ParseError,
4115 > {
4116 let child = candidate;
4117 Ok(
4118 ::treesitter_types::runtime::maybe_grow_stack(|| <PrimaryType as ::treesitter_types::FromNode>::from_node(
4119 child,
4120 src,
4121 ))?,
4122 )
4123 })()
4124 .is_ok()
4125 {
4126 fallback_child = Some(candidate);
4127 break;
4128 }
4129 }
4130 if !fallback_cursor.goto_next_sibling() {
4131 break;
4132 }
4133 }
4134 }
4135 if fallback_child.is_none() {
4136 let mut cursor2 = node.walk();
4137 if cursor2.goto_first_child() {
4138 loop {
4139 if cursor2.node().is_named() && !cursor2.node().is_extra() {
4140 let candidate = cursor2.node();
4141 #[allow(clippy::needless_question_mark)]
4142 if (|| -> ::core::result::Result<
4143 _,
4144 ::treesitter_types::ParseError,
4145 > {
4146 let child = candidate;
4147 Ok(
4148 ::treesitter_types::runtime::maybe_grow_stack(|| <PrimaryType as ::treesitter_types::FromNode>::from_node(
4149 child,
4150 src,
4151 ))?,
4152 )
4153 })()
4154 .is_ok()
4155 {
4156 fallback_child = Some(candidate);
4157 break;
4158 }
4159 }
4160 if !cursor2.goto_next_sibling() {
4161 break;
4162 }
4163 }
4164 }
4165 }
4166 fallback_child.ok_or_else(|| {
4167 ::treesitter_types::ParseError::missing_field("children", node)
4168 })?
4169 };
4170 ::treesitter_types::runtime::maybe_grow_stack(|| {
4171 <PrimaryType as ::treesitter_types::FromNode>::from_node(child, src)
4172 })?
4173 },
4174 })
4175 }
4176}
4177impl ::treesitter_types::Spanned for FlowMaybeType<'_> {
4178 fn span(&self) -> ::treesitter_types::Span {
4179 self.span
4180 }
4181}
4182#[derive(Debug, Clone, PartialEq, Eq)]
4183pub struct ForInStatement<'tree> {
4184 pub span: ::treesitter_types::Span,
4185 pub body: Statement<'tree>,
4186 pub kind: ::core::option::Option<ForInStatementKind>,
4187 pub left: ForInStatementLeft<'tree>,
4188 pub operator: ForInStatementOperator,
4189 pub right: ForInStatementRight<'tree>,
4190 pub value: ::core::option::Option<Expression<'tree>>,
4191}
4192impl<'tree> ::treesitter_types::FromNode<'tree> for ForInStatement<'tree> {
4193 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4194 fn from_node(
4195 node: ::treesitter_types::tree_sitter::Node<'tree>,
4196 src: &'tree [u8],
4197 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4198 debug_assert_eq!(node.kind(), "for_in_statement");
4199 Ok(Self {
4200 span: ::treesitter_types::Span::from(node),
4201 body: {
4202 let child = node
4203 .child_by_field_name("body")
4204 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
4205 ::treesitter_types::runtime::maybe_grow_stack(|| {
4206 <Statement as ::treesitter_types::FromNode>::from_node(child, src)
4207 })?
4208 },
4209 kind: match node.child_by_field_name("kind") {
4210 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
4211 <ForInStatementKind as ::treesitter_types::FromNode>::from_node(child, src)
4212 })?),
4213 None => None,
4214 },
4215 left: {
4216 let child = node
4217 .child_by_field_name("left")
4218 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
4219 ::treesitter_types::runtime::maybe_grow_stack(|| {
4220 <ForInStatementLeft as ::treesitter_types::FromNode>::from_node(child, src)
4221 })?
4222 },
4223 operator: {
4224 let child = node.child_by_field_name("operator").ok_or_else(|| {
4225 ::treesitter_types::ParseError::missing_field("operator", node)
4226 })?;
4227 ::treesitter_types::runtime::maybe_grow_stack(|| {
4228 <ForInStatementOperator as ::treesitter_types::FromNode>::from_node(child, src)
4229 })?
4230 },
4231 right: {
4232 let child = node
4233 .child_by_field_name("right")
4234 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
4235 ::treesitter_types::runtime::maybe_grow_stack(|| {
4236 <ForInStatementRight as ::treesitter_types::FromNode>::from_node(child, src)
4237 })?
4238 },
4239 value: match node.child_by_field_name("value") {
4240 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
4241 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
4242 })?),
4243 None => None,
4244 },
4245 })
4246 }
4247}
4248impl ::treesitter_types::Spanned for ForInStatement<'_> {
4249 fn span(&self) -> ::treesitter_types::Span {
4250 self.span
4251 }
4252}
4253#[derive(Debug, Clone, PartialEq, Eq)]
4254pub struct ForStatement<'tree> {
4255 pub span: ::treesitter_types::Span,
4256 pub body: Statement<'tree>,
4257 pub condition: ::std::vec::Vec<ForStatementCondition<'tree>>,
4258 pub increment: ::core::option::Option<ForStatementIncrement<'tree>>,
4259 pub initializer: ForStatementInitializer<'tree>,
4260}
4261impl<'tree> ::treesitter_types::FromNode<'tree> for ForStatement<'tree> {
4262 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4263 fn from_node(
4264 node: ::treesitter_types::tree_sitter::Node<'tree>,
4265 src: &'tree [u8],
4266 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4267 debug_assert_eq!(node.kind(), "for_statement");
4268 Ok(Self {
4269 span: ::treesitter_types::Span::from(node),
4270 body: {
4271 let child = node
4272 .child_by_field_name("body")
4273 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
4274 ::treesitter_types::runtime::maybe_grow_stack(|| {
4275 <Statement as ::treesitter_types::FromNode>::from_node(child, src)
4276 })?
4277 },
4278 condition: {
4279 let mut cursor = node.walk();
4280 let mut items = ::std::vec::Vec::new();
4281 for child in node.children_by_field_name("condition", &mut cursor) {
4282 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
4283 <ForStatementCondition as ::treesitter_types::FromNode>::from_node(
4284 child, src,
4285 )
4286 })?);
4287 }
4288 items
4289 },
4290 increment: match node.child_by_field_name("increment") {
4291 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
4292 <ForStatementIncrement as ::treesitter_types::FromNode>::from_node(child, src)
4293 })?),
4294 None => None,
4295 },
4296 initializer: {
4297 let child = node.child_by_field_name("initializer").ok_or_else(|| {
4298 ::treesitter_types::ParseError::missing_field("initializer", node)
4299 })?;
4300 ::treesitter_types::runtime::maybe_grow_stack(|| {
4301 <ForStatementInitializer as ::treesitter_types::FromNode>::from_node(child, src)
4302 })?
4303 },
4304 })
4305 }
4306}
4307impl ::treesitter_types::Spanned for ForStatement<'_> {
4308 fn span(&self) -> ::treesitter_types::Span {
4309 self.span
4310 }
4311}
4312#[derive(Debug, Clone, PartialEq, Eq)]
4313pub struct FormalParameters<'tree> {
4314 pub span: ::treesitter_types::Span,
4315 pub children: ::std::vec::Vec<FormalParametersChildren<'tree>>,
4316}
4317impl<'tree> ::treesitter_types::FromNode<'tree> for FormalParameters<'tree> {
4318 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4319 fn from_node(
4320 node: ::treesitter_types::tree_sitter::Node<'tree>,
4321 src: &'tree [u8],
4322 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4323 debug_assert_eq!(node.kind(), "formal_parameters");
4324 Ok(Self {
4325 span: ::treesitter_types::Span::from(node),
4326 children: {
4327 #[allow(clippy::suspicious_else_formatting)]
4328 let non_field_children = {
4329 let mut cursor = node.walk();
4330 let mut result = ::std::vec::Vec::new();
4331 if cursor.goto_first_child() {
4332 loop {
4333 if cursor.field_name().is_none()
4334 && cursor.node().is_named()
4335 && !cursor.node().is_extra()
4336 {
4337 result.push(cursor.node());
4338 }
4339 if !cursor.goto_next_sibling() {
4340 break;
4341 }
4342 }
4343 }
4344 result
4345 };
4346 let mut items = ::std::vec::Vec::new();
4347 for child in non_field_children {
4348 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
4349 <FormalParametersChildren as ::treesitter_types::FromNode>::from_node(
4350 child, src,
4351 )
4352 })?);
4353 }
4354 items
4355 },
4356 })
4357 }
4358}
4359impl ::treesitter_types::Spanned for FormalParameters<'_> {
4360 fn span(&self) -> ::treesitter_types::Span {
4361 self.span
4362 }
4363}
4364#[derive(Debug, Clone, PartialEq, Eq)]
4365pub struct FunctionDeclaration<'tree> {
4366 pub span: ::treesitter_types::Span,
4367 pub body: StatementBlock<'tree>,
4368 pub name: Identifier<'tree>,
4369 pub parameters: FormalParameters<'tree>,
4370 pub return_type: ::core::option::Option<FunctionDeclarationReturnType<'tree>>,
4371 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
4372}
4373impl<'tree> ::treesitter_types::FromNode<'tree> for FunctionDeclaration<'tree> {
4374 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4375 fn from_node(
4376 node: ::treesitter_types::tree_sitter::Node<'tree>,
4377 src: &'tree [u8],
4378 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4379 debug_assert_eq!(node.kind(), "function_declaration");
4380 Ok(Self {
4381 span: ::treesitter_types::Span::from(node),
4382 body: {
4383 let child = node
4384 .child_by_field_name("body")
4385 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
4386 ::treesitter_types::runtime::maybe_grow_stack(|| {
4387 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)
4388 })?
4389 },
4390 name: {
4391 let child = node
4392 .child_by_field_name("name")
4393 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
4394 ::treesitter_types::runtime::maybe_grow_stack(|| {
4395 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)
4396 })?
4397 },
4398 parameters: {
4399 let child = node.child_by_field_name("parameters").ok_or_else(|| {
4400 ::treesitter_types::ParseError::missing_field("parameters", node)
4401 })?;
4402 ::treesitter_types::runtime::maybe_grow_stack(|| {
4403 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)
4404 })?
4405 },
4406 return_type: match node.child_by_field_name("return_type") {
4407 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
4408 <FunctionDeclarationReturnType as ::treesitter_types::FromNode>::from_node(
4409 child, src,
4410 )
4411 })?),
4412 None => None,
4413 },
4414 type_parameters: match node.child_by_field_name("type_parameters") {
4415 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
4416 <TypeParameters as ::treesitter_types::FromNode>::from_node(child, src)
4417 })?),
4418 None => None,
4419 },
4420 })
4421 }
4422}
4423impl ::treesitter_types::Spanned for FunctionDeclaration<'_> {
4424 fn span(&self) -> ::treesitter_types::Span {
4425 self.span
4426 }
4427}
4428#[derive(Debug, Clone, PartialEq, Eq)]
4429pub struct FunctionExpression<'tree> {
4430 pub span: ::treesitter_types::Span,
4431 pub body: StatementBlock<'tree>,
4432 pub name: ::core::option::Option<Identifier<'tree>>,
4433 pub parameters: FormalParameters<'tree>,
4434 pub return_type: ::core::option::Option<FunctionExpressionReturnType<'tree>>,
4435 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
4436}
4437impl<'tree> ::treesitter_types::FromNode<'tree> for FunctionExpression<'tree> {
4438 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4439 fn from_node(
4440 node: ::treesitter_types::tree_sitter::Node<'tree>,
4441 src: &'tree [u8],
4442 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4443 debug_assert_eq!(node.kind(), "function_expression");
4444 Ok(Self {
4445 span: ::treesitter_types::Span::from(node),
4446 body: {
4447 let child = node
4448 .child_by_field_name("body")
4449 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
4450 ::treesitter_types::runtime::maybe_grow_stack(|| {
4451 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)
4452 })?
4453 },
4454 name: match node.child_by_field_name("name") {
4455 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
4456 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)
4457 })?),
4458 None => None,
4459 },
4460 parameters: {
4461 let child = node.child_by_field_name("parameters").ok_or_else(|| {
4462 ::treesitter_types::ParseError::missing_field("parameters", node)
4463 })?;
4464 ::treesitter_types::runtime::maybe_grow_stack(|| {
4465 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)
4466 })?
4467 },
4468 return_type: match node.child_by_field_name("return_type") {
4469 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
4470 <FunctionExpressionReturnType as ::treesitter_types::FromNode>::from_node(
4471 child, src,
4472 )
4473 })?),
4474 None => None,
4475 },
4476 type_parameters: match node.child_by_field_name("type_parameters") {
4477 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
4478 <TypeParameters as ::treesitter_types::FromNode>::from_node(child, src)
4479 })?),
4480 None => None,
4481 },
4482 })
4483 }
4484}
4485impl ::treesitter_types::Spanned for FunctionExpression<'_> {
4486 fn span(&self) -> ::treesitter_types::Span {
4487 self.span
4488 }
4489}
4490#[derive(Debug, Clone, PartialEq, Eq)]
4491pub struct FunctionSignature<'tree> {
4492 pub span: ::treesitter_types::Span,
4493 pub name: Identifier<'tree>,
4494 pub parameters: FormalParameters<'tree>,
4495 pub return_type: ::core::option::Option<FunctionSignatureReturnType<'tree>>,
4496 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
4497}
4498impl<'tree> ::treesitter_types::FromNode<'tree> for FunctionSignature<'tree> {
4499 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4500 fn from_node(
4501 node: ::treesitter_types::tree_sitter::Node<'tree>,
4502 src: &'tree [u8],
4503 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4504 debug_assert_eq!(node.kind(), "function_signature");
4505 Ok(Self {
4506 span: ::treesitter_types::Span::from(node),
4507 name: {
4508 let child = node
4509 .child_by_field_name("name")
4510 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
4511 ::treesitter_types::runtime::maybe_grow_stack(|| {
4512 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)
4513 })?
4514 },
4515 parameters: {
4516 let child = node.child_by_field_name("parameters").ok_or_else(|| {
4517 ::treesitter_types::ParseError::missing_field("parameters", node)
4518 })?;
4519 ::treesitter_types::runtime::maybe_grow_stack(|| {
4520 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)
4521 })?
4522 },
4523 return_type: match node.child_by_field_name("return_type") {
4524 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
4525 <FunctionSignatureReturnType as ::treesitter_types::FromNode>::from_node(
4526 child, src,
4527 )
4528 })?),
4529 None => None,
4530 },
4531 type_parameters: match node.child_by_field_name("type_parameters") {
4532 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
4533 <TypeParameters as ::treesitter_types::FromNode>::from_node(child, src)
4534 })?),
4535 None => None,
4536 },
4537 })
4538 }
4539}
4540impl ::treesitter_types::Spanned for FunctionSignature<'_> {
4541 fn span(&self) -> ::treesitter_types::Span {
4542 self.span
4543 }
4544}
4545#[derive(Debug, Clone, PartialEq, Eq)]
4546pub struct FunctionType<'tree> {
4547 pub span: ::treesitter_types::Span,
4548 pub parameters: FormalParameters<'tree>,
4549 pub return_type: FunctionTypeReturnType<'tree>,
4550 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
4551}
4552impl<'tree> ::treesitter_types::FromNode<'tree> for FunctionType<'tree> {
4553 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4554 fn from_node(
4555 node: ::treesitter_types::tree_sitter::Node<'tree>,
4556 src: &'tree [u8],
4557 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4558 debug_assert_eq!(node.kind(), "function_type");
4559 Ok(Self {
4560 span: ::treesitter_types::Span::from(node),
4561 parameters: {
4562 let child = node.child_by_field_name("parameters").ok_or_else(|| {
4563 ::treesitter_types::ParseError::missing_field("parameters", node)
4564 })?;
4565 ::treesitter_types::runtime::maybe_grow_stack(|| {
4566 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)
4567 })?
4568 },
4569 return_type: {
4570 let child = node.child_by_field_name("return_type").ok_or_else(|| {
4571 ::treesitter_types::ParseError::missing_field("return_type", node)
4572 })?;
4573 ::treesitter_types::runtime::maybe_grow_stack(|| {
4574 <FunctionTypeReturnType as ::treesitter_types::FromNode>::from_node(child, src)
4575 })?
4576 },
4577 type_parameters: match node.child_by_field_name("type_parameters") {
4578 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
4579 <TypeParameters as ::treesitter_types::FromNode>::from_node(child, src)
4580 })?),
4581 None => None,
4582 },
4583 })
4584 }
4585}
4586impl ::treesitter_types::Spanned for FunctionType<'_> {
4587 fn span(&self) -> ::treesitter_types::Span {
4588 self.span
4589 }
4590}
4591#[derive(Debug, Clone, PartialEq, Eq)]
4592pub struct GeneratorFunction<'tree> {
4593 pub span: ::treesitter_types::Span,
4594 pub body: StatementBlock<'tree>,
4595 pub name: ::core::option::Option<Identifier<'tree>>,
4596 pub parameters: FormalParameters<'tree>,
4597 pub return_type: ::core::option::Option<GeneratorFunctionReturnType<'tree>>,
4598 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
4599}
4600impl<'tree> ::treesitter_types::FromNode<'tree> for GeneratorFunction<'tree> {
4601 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4602 fn from_node(
4603 node: ::treesitter_types::tree_sitter::Node<'tree>,
4604 src: &'tree [u8],
4605 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4606 debug_assert_eq!(node.kind(), "generator_function");
4607 Ok(Self {
4608 span: ::treesitter_types::Span::from(node),
4609 body: {
4610 let child = node
4611 .child_by_field_name("body")
4612 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
4613 ::treesitter_types::runtime::maybe_grow_stack(|| {
4614 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)
4615 })?
4616 },
4617 name: match node.child_by_field_name("name") {
4618 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
4619 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)
4620 })?),
4621 None => None,
4622 },
4623 parameters: {
4624 let child = node.child_by_field_name("parameters").ok_or_else(|| {
4625 ::treesitter_types::ParseError::missing_field("parameters", node)
4626 })?;
4627 ::treesitter_types::runtime::maybe_grow_stack(|| {
4628 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)
4629 })?
4630 },
4631 return_type: match node.child_by_field_name("return_type") {
4632 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
4633 <GeneratorFunctionReturnType as ::treesitter_types::FromNode>::from_node(
4634 child, src,
4635 )
4636 })?),
4637 None => None,
4638 },
4639 type_parameters: match node.child_by_field_name("type_parameters") {
4640 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
4641 <TypeParameters as ::treesitter_types::FromNode>::from_node(child, src)
4642 })?),
4643 None => None,
4644 },
4645 })
4646 }
4647}
4648impl ::treesitter_types::Spanned for GeneratorFunction<'_> {
4649 fn span(&self) -> ::treesitter_types::Span {
4650 self.span
4651 }
4652}
4653#[derive(Debug, Clone, PartialEq, Eq)]
4654pub struct GeneratorFunctionDeclaration<'tree> {
4655 pub span: ::treesitter_types::Span,
4656 pub body: StatementBlock<'tree>,
4657 pub name: Identifier<'tree>,
4658 pub parameters: FormalParameters<'tree>,
4659 pub return_type: ::core::option::Option<GeneratorFunctionDeclarationReturnType<'tree>>,
4660 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
4661}
4662impl<'tree> ::treesitter_types::FromNode<'tree> for GeneratorFunctionDeclaration<'tree> {
4663 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4664 fn from_node(
4665 node: ::treesitter_types::tree_sitter::Node<'tree>,
4666 src: &'tree [u8],
4667 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4668 debug_assert_eq!(node.kind(), "generator_function_declaration");
4669 Ok(Self {
4670 span: ::treesitter_types::Span::from(node),
4671 body: {
4672 let child = node
4673 .child_by_field_name("body")
4674 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
4675 ::treesitter_types::runtime::maybe_grow_stack(|| {
4676 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)
4677 })?
4678 },
4679 name: {
4680 let child = node
4681 .child_by_field_name("name")
4682 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
4683 ::treesitter_types::runtime::maybe_grow_stack(|| {
4684 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)
4685 })?
4686 },
4687 parameters: {
4688 let child = node.child_by_field_name("parameters").ok_or_else(|| {
4689 ::treesitter_types::ParseError::missing_field("parameters", node)
4690 })?;
4691 ::treesitter_types::runtime::maybe_grow_stack(|| {
4692 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)
4693 })?
4694 },
4695 return_type: match node.child_by_field_name("return_type") {
4696 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
4697 <GeneratorFunctionDeclarationReturnType as ::treesitter_types::FromNode>::from_node(
4698 child,
4699 src,
4700 )
4701 })?),
4702 None => None,
4703 },
4704 type_parameters: match node.child_by_field_name("type_parameters") {
4705 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
4706 <TypeParameters as ::treesitter_types::FromNode>::from_node(child, src)
4707 })?),
4708 None => None,
4709 },
4710 })
4711 }
4712}
4713impl ::treesitter_types::Spanned for GeneratorFunctionDeclaration<'_> {
4714 fn span(&self) -> ::treesitter_types::Span {
4715 self.span
4716 }
4717}
4718#[derive(Debug, Clone, PartialEq, Eq)]
4719pub struct GenericType<'tree> {
4720 pub span: ::treesitter_types::Span,
4721 pub name: GenericTypeName<'tree>,
4722 pub type_arguments: TypeArguments<'tree>,
4723}
4724impl<'tree> ::treesitter_types::FromNode<'tree> for GenericType<'tree> {
4725 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4726 fn from_node(
4727 node: ::treesitter_types::tree_sitter::Node<'tree>,
4728 src: &'tree [u8],
4729 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4730 debug_assert_eq!(node.kind(), "generic_type");
4731 Ok(Self {
4732 span: ::treesitter_types::Span::from(node),
4733 name: {
4734 let child = node
4735 .child_by_field_name("name")
4736 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
4737 ::treesitter_types::runtime::maybe_grow_stack(|| {
4738 <GenericTypeName as ::treesitter_types::FromNode>::from_node(child, src)
4739 })?
4740 },
4741 type_arguments: {
4742 let child = node.child_by_field_name("type_arguments").ok_or_else(|| {
4743 ::treesitter_types::ParseError::missing_field("type_arguments", node)
4744 })?;
4745 ::treesitter_types::runtime::maybe_grow_stack(|| {
4746 <TypeArguments as ::treesitter_types::FromNode>::from_node(child, src)
4747 })?
4748 },
4749 })
4750 }
4751}
4752impl ::treesitter_types::Spanned for GenericType<'_> {
4753 fn span(&self) -> ::treesitter_types::Span {
4754 self.span
4755 }
4756}
4757#[derive(Debug, Clone, PartialEq, Eq)]
4758pub struct Identifier<'tree> {
4759 pub span: ::treesitter_types::Span,
4760 text: &'tree str,
4761}
4762impl<'tree> ::treesitter_types::FromNode<'tree> for Identifier<'tree> {
4763 fn from_node(
4764 node: ::treesitter_types::tree_sitter::Node<'tree>,
4765 src: &'tree [u8],
4766 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4767 debug_assert_eq!(node.kind(), "identifier");
4768 Ok(Self {
4769 span: ::treesitter_types::Span::from(node),
4770 text: node.utf8_text(src)?,
4771 })
4772 }
4773}
4774impl<'tree> ::treesitter_types::LeafNode<'tree> for Identifier<'tree> {
4775 fn text(&self) -> &'tree str {
4776 self.text
4777 }
4778}
4779impl ::treesitter_types::Spanned for Identifier<'_> {
4780 fn span(&self) -> ::treesitter_types::Span {
4781 self.span
4782 }
4783}
4784#[derive(Debug, Clone, PartialEq, Eq)]
4785pub struct IfStatement<'tree> {
4786 pub span: ::treesitter_types::Span,
4787 pub alternative: ::core::option::Option<ElseClause<'tree>>,
4788 pub condition: ParenthesizedExpression<'tree>,
4789 pub consequence: Statement<'tree>,
4790}
4791impl<'tree> ::treesitter_types::FromNode<'tree> for IfStatement<'tree> {
4792 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4793 fn from_node(
4794 node: ::treesitter_types::tree_sitter::Node<'tree>,
4795 src: &'tree [u8],
4796 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4797 debug_assert_eq!(node.kind(), "if_statement");
4798 Ok(Self {
4799 span: ::treesitter_types::Span::from(node),
4800 alternative: match node.child_by_field_name("alternative") {
4801 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
4802 <ElseClause as ::treesitter_types::FromNode>::from_node(child, src)
4803 })?),
4804 None => None,
4805 },
4806 condition: {
4807 let child = node.child_by_field_name("condition").ok_or_else(|| {
4808 ::treesitter_types::ParseError::missing_field("condition", node)
4809 })?;
4810 ::treesitter_types::runtime::maybe_grow_stack(|| {
4811 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(child, src)
4812 })?
4813 },
4814 consequence: {
4815 let child = node.child_by_field_name("consequence").ok_or_else(|| {
4816 ::treesitter_types::ParseError::missing_field("consequence", node)
4817 })?;
4818 ::treesitter_types::runtime::maybe_grow_stack(|| {
4819 <Statement as ::treesitter_types::FromNode>::from_node(child, src)
4820 })?
4821 },
4822 })
4823 }
4824}
4825impl ::treesitter_types::Spanned for IfStatement<'_> {
4826 fn span(&self) -> ::treesitter_types::Span {
4827 self.span
4828 }
4829}
4830#[derive(Debug, Clone, PartialEq, Eq)]
4831pub struct ImplementsClause<'tree> {
4832 pub span: ::treesitter_types::Span,
4833 pub children: ::std::vec::Vec<Type<'tree>>,
4834}
4835impl<'tree> ::treesitter_types::FromNode<'tree> for ImplementsClause<'tree> {
4836 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4837 fn from_node(
4838 node: ::treesitter_types::tree_sitter::Node<'tree>,
4839 src: &'tree [u8],
4840 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4841 debug_assert_eq!(node.kind(), "implements_clause");
4842 Ok(Self {
4843 span: ::treesitter_types::Span::from(node),
4844 children: {
4845 #[allow(clippy::suspicious_else_formatting)]
4846 let non_field_children = {
4847 let mut cursor = node.walk();
4848 let mut result = ::std::vec::Vec::new();
4849 if cursor.goto_first_child() {
4850 loop {
4851 if cursor.field_name().is_none()
4852 && cursor.node().is_named()
4853 && !cursor.node().is_extra()
4854 {
4855 result.push(cursor.node());
4856 }
4857 if !cursor.goto_next_sibling() {
4858 break;
4859 }
4860 }
4861 }
4862 result
4863 };
4864 let mut items = ::std::vec::Vec::new();
4865 for child in non_field_children {
4866 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
4867 <Type as ::treesitter_types::FromNode>::from_node(child, src)
4868 })?);
4869 }
4870 items
4871 },
4872 })
4873 }
4874}
4875impl ::treesitter_types::Spanned for ImplementsClause<'_> {
4876 fn span(&self) -> ::treesitter_types::Span {
4877 self.span
4878 }
4879}
4880#[derive(Debug, Clone, PartialEq, Eq)]
4881pub struct Import<'tree> {
4882 pub span: ::treesitter_types::Span,
4883 text: &'tree str,
4884}
4885impl<'tree> ::treesitter_types::FromNode<'tree> for Import<'tree> {
4886 fn from_node(
4887 node: ::treesitter_types::tree_sitter::Node<'tree>,
4888 src: &'tree [u8],
4889 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4890 debug_assert_eq!(node.kind(), "import");
4891 Ok(Self {
4892 span: ::treesitter_types::Span::from(node),
4893 text: node.utf8_text(src)?,
4894 })
4895 }
4896}
4897impl<'tree> ::treesitter_types::LeafNode<'tree> for Import<'tree> {
4898 fn text(&self) -> &'tree str {
4899 self.text
4900 }
4901}
4902impl ::treesitter_types::Spanned for Import<'_> {
4903 fn span(&self) -> ::treesitter_types::Span {
4904 self.span
4905 }
4906}
4907#[derive(Debug, Clone, PartialEq, Eq)]
4908pub struct ImportAlias<'tree> {
4909 pub span: ::treesitter_types::Span,
4910 pub children: ::std::vec::Vec<ImportAliasChildren<'tree>>,
4911}
4912impl<'tree> ::treesitter_types::FromNode<'tree> for ImportAlias<'tree> {
4913 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4914 fn from_node(
4915 node: ::treesitter_types::tree_sitter::Node<'tree>,
4916 src: &'tree [u8],
4917 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4918 debug_assert_eq!(node.kind(), "import_alias");
4919 Ok(Self {
4920 span: ::treesitter_types::Span::from(node),
4921 children: {
4922 #[allow(clippy::suspicious_else_formatting)]
4923 let non_field_children = {
4924 let mut cursor = node.walk();
4925 let mut result = ::std::vec::Vec::new();
4926 if cursor.goto_first_child() {
4927 loop {
4928 if cursor.field_name().is_none()
4929 && cursor.node().is_named()
4930 && !cursor.node().is_extra()
4931 {
4932 result.push(cursor.node());
4933 }
4934 if !cursor.goto_next_sibling() {
4935 break;
4936 }
4937 }
4938 }
4939 result
4940 };
4941 let mut items = ::std::vec::Vec::new();
4942 for child in non_field_children {
4943 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
4944 <ImportAliasChildren as ::treesitter_types::FromNode>::from_node(child, src)
4945 })?);
4946 }
4947 items
4948 },
4949 })
4950 }
4951}
4952impl ::treesitter_types::Spanned for ImportAlias<'_> {
4953 fn span(&self) -> ::treesitter_types::Span {
4954 self.span
4955 }
4956}
4957#[derive(Debug, Clone, PartialEq, Eq)]
4958pub struct ImportAttribute<'tree> {
4959 pub span: ::treesitter_types::Span,
4960 pub children: Object<'tree>,
4961}
4962impl<'tree> ::treesitter_types::FromNode<'tree> for ImportAttribute<'tree> {
4963 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4964 fn from_node(
4965 node: ::treesitter_types::tree_sitter::Node<'tree>,
4966 src: &'tree [u8],
4967 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4968 debug_assert_eq!(node.kind(), "import_attribute");
4969 Ok(Self {
4970 span: ::treesitter_types::Span::from(node),
4971 children: {
4972 #[allow(clippy::suspicious_else_formatting)]
4973 let non_field_children = {
4974 let mut cursor = node.walk();
4975 let mut result = ::std::vec::Vec::new();
4976 if cursor.goto_first_child() {
4977 loop {
4978 if cursor.field_name().is_none()
4979 && cursor.node().is_named()
4980 && !cursor.node().is_extra()
4981 {
4982 result.push(cursor.node());
4983 }
4984 if !cursor.goto_next_sibling() {
4985 break;
4986 }
4987 }
4988 }
4989 result
4990 };
4991 let child = if let Some(&c) = non_field_children.first() {
4992 c
4993 } else {
4994 let mut fallback_cursor = node.walk();
4995 let mut fallback_child = None;
4996 if fallback_cursor.goto_first_child() {
4997 loop {
4998 if fallback_cursor.field_name().is_none()
4999 && !fallback_cursor.node().is_extra()
5000 {
5001 let candidate = fallback_cursor.node();
5002 #[allow(clippy::needless_question_mark)]
5003 if (|| -> ::core::result::Result<
5004 _,
5005 ::treesitter_types::ParseError,
5006 > {
5007 let child = candidate;
5008 Ok(
5009 ::treesitter_types::runtime::maybe_grow_stack(|| <Object as ::treesitter_types::FromNode>::from_node(
5010 child,
5011 src,
5012 ))?,
5013 )
5014 })()
5015 .is_ok()
5016 {
5017 fallback_child = Some(candidate);
5018 break;
5019 }
5020 }
5021 if !fallback_cursor.goto_next_sibling() {
5022 break;
5023 }
5024 }
5025 }
5026 if fallback_child.is_none() {
5027 let mut cursor2 = node.walk();
5028 if cursor2.goto_first_child() {
5029 loop {
5030 if cursor2.node().is_named() && !cursor2.node().is_extra() {
5031 let candidate = cursor2.node();
5032 #[allow(clippy::needless_question_mark)]
5033 if (|| -> ::core::result::Result<
5034 _,
5035 ::treesitter_types::ParseError,
5036 > {
5037 let child = candidate;
5038 Ok(
5039 ::treesitter_types::runtime::maybe_grow_stack(|| <Object as ::treesitter_types::FromNode>::from_node(
5040 child,
5041 src,
5042 ))?,
5043 )
5044 })()
5045 .is_ok()
5046 {
5047 fallback_child = Some(candidate);
5048 break;
5049 }
5050 }
5051 if !cursor2.goto_next_sibling() {
5052 break;
5053 }
5054 }
5055 }
5056 }
5057 fallback_child.ok_or_else(|| {
5058 ::treesitter_types::ParseError::missing_field("children", node)
5059 })?
5060 };
5061 ::treesitter_types::runtime::maybe_grow_stack(|| {
5062 <Object as ::treesitter_types::FromNode>::from_node(child, src)
5063 })?
5064 },
5065 })
5066 }
5067}
5068impl ::treesitter_types::Spanned for ImportAttribute<'_> {
5069 fn span(&self) -> ::treesitter_types::Span {
5070 self.span
5071 }
5072}
5073#[derive(Debug, Clone, PartialEq, Eq)]
5074pub struct ImportClause<'tree> {
5075 pub span: ::treesitter_types::Span,
5076 pub children: ::std::vec::Vec<ImportClauseChildren<'tree>>,
5077}
5078impl<'tree> ::treesitter_types::FromNode<'tree> for ImportClause<'tree> {
5079 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5080 fn from_node(
5081 node: ::treesitter_types::tree_sitter::Node<'tree>,
5082 src: &'tree [u8],
5083 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5084 debug_assert_eq!(node.kind(), "import_clause");
5085 Ok(Self {
5086 span: ::treesitter_types::Span::from(node),
5087 children: {
5088 #[allow(clippy::suspicious_else_formatting)]
5089 let non_field_children = {
5090 let mut cursor = node.walk();
5091 let mut result = ::std::vec::Vec::new();
5092 if cursor.goto_first_child() {
5093 loop {
5094 if cursor.field_name().is_none()
5095 && cursor.node().is_named()
5096 && !cursor.node().is_extra()
5097 {
5098 result.push(cursor.node());
5099 }
5100 if !cursor.goto_next_sibling() {
5101 break;
5102 }
5103 }
5104 }
5105 result
5106 };
5107 let mut items = ::std::vec::Vec::new();
5108 for child in non_field_children {
5109 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
5110 <ImportClauseChildren as ::treesitter_types::FromNode>::from_node(
5111 child, src,
5112 )
5113 })?);
5114 }
5115 items
5116 },
5117 })
5118 }
5119}
5120impl ::treesitter_types::Spanned for ImportClause<'_> {
5121 fn span(&self) -> ::treesitter_types::Span {
5122 self.span
5123 }
5124}
5125#[derive(Debug, Clone, PartialEq, Eq)]
5126pub struct ImportRequireClause<'tree> {
5127 pub span: ::treesitter_types::Span,
5128 pub source: String<'tree>,
5129 pub children: Identifier<'tree>,
5130}
5131impl<'tree> ::treesitter_types::FromNode<'tree> for ImportRequireClause<'tree> {
5132 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5133 fn from_node(
5134 node: ::treesitter_types::tree_sitter::Node<'tree>,
5135 src: &'tree [u8],
5136 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5137 debug_assert_eq!(node.kind(), "import_require_clause");
5138 Ok(Self {
5139 span: ::treesitter_types::Span::from(node),
5140 source: {
5141 let child = node
5142 .child_by_field_name("source")
5143 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("source", node))?;
5144 ::treesitter_types::runtime::maybe_grow_stack(|| {
5145 <String as ::treesitter_types::FromNode>::from_node(child, src)
5146 })?
5147 },
5148 children: {
5149 #[allow(clippy::suspicious_else_formatting)]
5150 let non_field_children = {
5151 let mut cursor = node.walk();
5152 let mut result = ::std::vec::Vec::new();
5153 if cursor.goto_first_child() {
5154 loop {
5155 if cursor.field_name().is_none()
5156 && cursor.node().is_named()
5157 && !cursor.node().is_extra()
5158 {
5159 result.push(cursor.node());
5160 }
5161 if !cursor.goto_next_sibling() {
5162 break;
5163 }
5164 }
5165 }
5166 result
5167 };
5168 let child = if let Some(&c) = non_field_children.first() {
5169 c
5170 } else {
5171 let mut fallback_cursor = node.walk();
5172 let mut fallback_child = None;
5173 if fallback_cursor.goto_first_child() {
5174 loop {
5175 if fallback_cursor.field_name().is_none()
5176 && !fallback_cursor.node().is_extra()
5177 {
5178 let candidate = fallback_cursor.node();
5179 #[allow(clippy::needless_question_mark)]
5180 if (|| -> ::core::result::Result<
5181 _,
5182 ::treesitter_types::ParseError,
5183 > {
5184 let child = candidate;
5185 Ok(
5186 ::treesitter_types::runtime::maybe_grow_stack(|| <Identifier as ::treesitter_types::FromNode>::from_node(
5187 child,
5188 src,
5189 ))?,
5190 )
5191 })()
5192 .is_ok()
5193 {
5194 fallback_child = Some(candidate);
5195 break;
5196 }
5197 }
5198 if !fallback_cursor.goto_next_sibling() {
5199 break;
5200 }
5201 }
5202 }
5203 if fallback_child.is_none() {
5204 let mut cursor2 = node.walk();
5205 if cursor2.goto_first_child() {
5206 loop {
5207 if cursor2.node().is_named() && !cursor2.node().is_extra() {
5208 let candidate = cursor2.node();
5209 #[allow(clippy::needless_question_mark)]
5210 if (|| -> ::core::result::Result<
5211 _,
5212 ::treesitter_types::ParseError,
5213 > {
5214 let child = candidate;
5215 Ok(
5216 ::treesitter_types::runtime::maybe_grow_stack(|| <Identifier as ::treesitter_types::FromNode>::from_node(
5217 child,
5218 src,
5219 ))?,
5220 )
5221 })()
5222 .is_ok()
5223 {
5224 fallback_child = Some(candidate);
5225 break;
5226 }
5227 }
5228 if !cursor2.goto_next_sibling() {
5229 break;
5230 }
5231 }
5232 }
5233 }
5234 fallback_child.ok_or_else(|| {
5235 ::treesitter_types::ParseError::missing_field("children", node)
5236 })?
5237 };
5238 ::treesitter_types::runtime::maybe_grow_stack(|| {
5239 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)
5240 })?
5241 },
5242 })
5243 }
5244}
5245impl ::treesitter_types::Spanned for ImportRequireClause<'_> {
5246 fn span(&self) -> ::treesitter_types::Span {
5247 self.span
5248 }
5249}
5250#[derive(Debug, Clone, PartialEq, Eq)]
5251pub struct ImportSpecifier<'tree> {
5252 pub span: ::treesitter_types::Span,
5253 pub alias: ::core::option::Option<Identifier<'tree>>,
5254 pub name: ImportSpecifierName<'tree>,
5255}
5256impl<'tree> ::treesitter_types::FromNode<'tree> for ImportSpecifier<'tree> {
5257 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5258 fn from_node(
5259 node: ::treesitter_types::tree_sitter::Node<'tree>,
5260 src: &'tree [u8],
5261 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5262 debug_assert_eq!(node.kind(), "import_specifier");
5263 Ok(Self {
5264 span: ::treesitter_types::Span::from(node),
5265 alias: match node.child_by_field_name("alias") {
5266 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
5267 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)
5268 })?),
5269 None => None,
5270 },
5271 name: {
5272 let child = node
5273 .child_by_field_name("name")
5274 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
5275 ::treesitter_types::runtime::maybe_grow_stack(|| {
5276 <ImportSpecifierName as ::treesitter_types::FromNode>::from_node(child, src)
5277 })?
5278 },
5279 })
5280 }
5281}
5282impl ::treesitter_types::Spanned for ImportSpecifier<'_> {
5283 fn span(&self) -> ::treesitter_types::Span {
5284 self.span
5285 }
5286}
5287#[derive(Debug, Clone, PartialEq, Eq)]
5288pub struct ImportStatement<'tree> {
5289 pub span: ::treesitter_types::Span,
5290 pub source: ::core::option::Option<String<'tree>>,
5291 pub children: ::std::vec::Vec<ImportStatementChildren<'tree>>,
5292}
5293impl<'tree> ::treesitter_types::FromNode<'tree> for ImportStatement<'tree> {
5294 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5295 fn from_node(
5296 node: ::treesitter_types::tree_sitter::Node<'tree>,
5297 src: &'tree [u8],
5298 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5299 debug_assert_eq!(node.kind(), "import_statement");
5300 Ok(Self {
5301 span: ::treesitter_types::Span::from(node),
5302 source: match node.child_by_field_name("source") {
5303 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
5304 <String as ::treesitter_types::FromNode>::from_node(child, src)
5305 })?),
5306 None => None,
5307 },
5308 children: {
5309 #[allow(clippy::suspicious_else_formatting)]
5310 let non_field_children = {
5311 let mut cursor = node.walk();
5312 let mut result = ::std::vec::Vec::new();
5313 if cursor.goto_first_child() {
5314 loop {
5315 if cursor.field_name().is_none()
5316 && cursor.node().is_named()
5317 && !cursor.node().is_extra()
5318 {
5319 result.push(cursor.node());
5320 }
5321 if !cursor.goto_next_sibling() {
5322 break;
5323 }
5324 }
5325 }
5326 result
5327 };
5328 let mut items = ::std::vec::Vec::new();
5329 for child in non_field_children {
5330 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
5331 <ImportStatementChildren as ::treesitter_types::FromNode>::from_node(
5332 child, src,
5333 )
5334 })?);
5335 }
5336 items
5337 },
5338 })
5339 }
5340}
5341impl ::treesitter_types::Spanned for ImportStatement<'_> {
5342 fn span(&self) -> ::treesitter_types::Span {
5343 self.span
5344 }
5345}
5346#[derive(Debug, Clone, PartialEq, Eq)]
5347pub struct IndexSignature<'tree> {
5348 pub span: ::treesitter_types::Span,
5349 pub index_type: ::core::option::Option<Type<'tree>>,
5350 pub name: ::core::option::Option<Identifier<'tree>>,
5351 pub sign: ::core::option::Option<IndexSignatureSign>,
5352 pub r#type: IndexSignatureType<'tree>,
5353 pub children: ::core::option::Option<MappedTypeClause<'tree>>,
5354}
5355impl<'tree> ::treesitter_types::FromNode<'tree> for IndexSignature<'tree> {
5356 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5357 fn from_node(
5358 node: ::treesitter_types::tree_sitter::Node<'tree>,
5359 src: &'tree [u8],
5360 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5361 debug_assert_eq!(node.kind(), "index_signature");
5362 Ok(Self {
5363 span: ::treesitter_types::Span::from(node),
5364 index_type: match node.child_by_field_name("index_type") {
5365 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
5366 <Type as ::treesitter_types::FromNode>::from_node(child, src)
5367 })?),
5368 None => None,
5369 },
5370 name: match node.child_by_field_name("name") {
5371 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
5372 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)
5373 })?),
5374 None => None,
5375 },
5376 sign: match node.child_by_field_name("sign") {
5377 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
5378 <IndexSignatureSign as ::treesitter_types::FromNode>::from_node(child, src)
5379 })?),
5380 None => None,
5381 },
5382 r#type: {
5383 let child = node
5384 .child_by_field_name("type")
5385 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("type", node))?;
5386 ::treesitter_types::runtime::maybe_grow_stack(|| {
5387 <IndexSignatureType as ::treesitter_types::FromNode>::from_node(child, src)
5388 })?
5389 },
5390 children: {
5391 #[allow(clippy::suspicious_else_formatting)]
5392 let non_field_children = {
5393 let mut cursor = node.walk();
5394 let mut result = ::std::vec::Vec::new();
5395 if cursor.goto_first_child() {
5396 loop {
5397 if cursor.field_name().is_none()
5398 && cursor.node().is_named()
5399 && !cursor.node().is_extra()
5400 {
5401 result.push(cursor.node());
5402 }
5403 if !cursor.goto_next_sibling() {
5404 break;
5405 }
5406 }
5407 }
5408 result
5409 };
5410 match non_field_children.first() {
5411 Some(&child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
5412 <MappedTypeClause as ::treesitter_types::FromNode>::from_node(child, src)
5413 })?),
5414 None => None,
5415 }
5416 },
5417 })
5418 }
5419}
5420impl ::treesitter_types::Spanned for IndexSignature<'_> {
5421 fn span(&self) -> ::treesitter_types::Span {
5422 self.span
5423 }
5424}
5425#[derive(Debug, Clone, PartialEq, Eq)]
5426pub struct IndexTypeQuery<'tree> {
5427 pub span: ::treesitter_types::Span,
5428 pub children: PrimaryType<'tree>,
5429}
5430impl<'tree> ::treesitter_types::FromNode<'tree> for IndexTypeQuery<'tree> {
5431 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5432 fn from_node(
5433 node: ::treesitter_types::tree_sitter::Node<'tree>,
5434 src: &'tree [u8],
5435 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5436 debug_assert_eq!(node.kind(), "index_type_query");
5437 Ok(Self {
5438 span: ::treesitter_types::Span::from(node),
5439 children: {
5440 #[allow(clippy::suspicious_else_formatting)]
5441 let non_field_children = {
5442 let mut cursor = node.walk();
5443 let mut result = ::std::vec::Vec::new();
5444 if cursor.goto_first_child() {
5445 loop {
5446 if cursor.field_name().is_none()
5447 && cursor.node().is_named()
5448 && !cursor.node().is_extra()
5449 {
5450 result.push(cursor.node());
5451 }
5452 if !cursor.goto_next_sibling() {
5453 break;
5454 }
5455 }
5456 }
5457 result
5458 };
5459 let child = if let Some(&c) = non_field_children.first() {
5460 c
5461 } else {
5462 let mut fallback_cursor = node.walk();
5463 let mut fallback_child = None;
5464 if fallback_cursor.goto_first_child() {
5465 loop {
5466 if fallback_cursor.field_name().is_none()
5467 && !fallback_cursor.node().is_extra()
5468 {
5469 let candidate = fallback_cursor.node();
5470 #[allow(clippy::needless_question_mark)]
5471 if (|| -> ::core::result::Result<
5472 _,
5473 ::treesitter_types::ParseError,
5474 > {
5475 let child = candidate;
5476 Ok(
5477 ::treesitter_types::runtime::maybe_grow_stack(|| <PrimaryType as ::treesitter_types::FromNode>::from_node(
5478 child,
5479 src,
5480 ))?,
5481 )
5482 })()
5483 .is_ok()
5484 {
5485 fallback_child = Some(candidate);
5486 break;
5487 }
5488 }
5489 if !fallback_cursor.goto_next_sibling() {
5490 break;
5491 }
5492 }
5493 }
5494 if fallback_child.is_none() {
5495 let mut cursor2 = node.walk();
5496 if cursor2.goto_first_child() {
5497 loop {
5498 if cursor2.node().is_named() && !cursor2.node().is_extra() {
5499 let candidate = cursor2.node();
5500 #[allow(clippy::needless_question_mark)]
5501 if (|| -> ::core::result::Result<
5502 _,
5503 ::treesitter_types::ParseError,
5504 > {
5505 let child = candidate;
5506 Ok(
5507 ::treesitter_types::runtime::maybe_grow_stack(|| <PrimaryType as ::treesitter_types::FromNode>::from_node(
5508 child,
5509 src,
5510 ))?,
5511 )
5512 })()
5513 .is_ok()
5514 {
5515 fallback_child = Some(candidate);
5516 break;
5517 }
5518 }
5519 if !cursor2.goto_next_sibling() {
5520 break;
5521 }
5522 }
5523 }
5524 }
5525 fallback_child.ok_or_else(|| {
5526 ::treesitter_types::ParseError::missing_field("children", node)
5527 })?
5528 };
5529 ::treesitter_types::runtime::maybe_grow_stack(|| {
5530 <PrimaryType as ::treesitter_types::FromNode>::from_node(child, src)
5531 })?
5532 },
5533 })
5534 }
5535}
5536impl ::treesitter_types::Spanned for IndexTypeQuery<'_> {
5537 fn span(&self) -> ::treesitter_types::Span {
5538 self.span
5539 }
5540}
5541#[derive(Debug, Clone, PartialEq, Eq)]
5542pub struct InferType<'tree> {
5543 pub span: ::treesitter_types::Span,
5544 pub children: ::std::vec::Vec<InferTypeChildren<'tree>>,
5545}
5546impl<'tree> ::treesitter_types::FromNode<'tree> for InferType<'tree> {
5547 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5548 fn from_node(
5549 node: ::treesitter_types::tree_sitter::Node<'tree>,
5550 src: &'tree [u8],
5551 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5552 debug_assert_eq!(node.kind(), "infer_type");
5553 Ok(Self {
5554 span: ::treesitter_types::Span::from(node),
5555 children: {
5556 #[allow(clippy::suspicious_else_formatting)]
5557 let non_field_children = {
5558 let mut cursor = node.walk();
5559 let mut result = ::std::vec::Vec::new();
5560 if cursor.goto_first_child() {
5561 loop {
5562 if cursor.field_name().is_none()
5563 && cursor.node().is_named()
5564 && !cursor.node().is_extra()
5565 {
5566 result.push(cursor.node());
5567 }
5568 if !cursor.goto_next_sibling() {
5569 break;
5570 }
5571 }
5572 }
5573 result
5574 };
5575 let mut items = ::std::vec::Vec::new();
5576 for child in non_field_children {
5577 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
5578 <InferTypeChildren as ::treesitter_types::FromNode>::from_node(child, src)
5579 })?);
5580 }
5581 items
5582 },
5583 })
5584 }
5585}
5586impl ::treesitter_types::Spanned for InferType<'_> {
5587 fn span(&self) -> ::treesitter_types::Span {
5588 self.span
5589 }
5590}
5591#[derive(Debug, Clone, PartialEq, Eq)]
5592pub struct InstantiationExpression<'tree> {
5593 pub span: ::treesitter_types::Span,
5594 pub function: ::core::option::Option<InstantiationExpressionFunction<'tree>>,
5595 pub type_arguments: TypeArguments<'tree>,
5596 pub children: ::core::option::Option<Expression<'tree>>,
5597}
5598impl<'tree> ::treesitter_types::FromNode<'tree> for InstantiationExpression<'tree> {
5599 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5600 fn from_node(
5601 node: ::treesitter_types::tree_sitter::Node<'tree>,
5602 src: &'tree [u8],
5603 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5604 debug_assert_eq!(node.kind(), "instantiation_expression");
5605 Ok(Self {
5606 span: ::treesitter_types::Span::from(node),
5607 function: match node.child_by_field_name("function") {
5608 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
5609 <InstantiationExpressionFunction as ::treesitter_types::FromNode>::from_node(
5610 child, src,
5611 )
5612 })?),
5613 None => None,
5614 },
5615 type_arguments: {
5616 let child = node.child_by_field_name("type_arguments").ok_or_else(|| {
5617 ::treesitter_types::ParseError::missing_field("type_arguments", node)
5618 })?;
5619 ::treesitter_types::runtime::maybe_grow_stack(|| {
5620 <TypeArguments as ::treesitter_types::FromNode>::from_node(child, src)
5621 })?
5622 },
5623 children: {
5624 #[allow(clippy::suspicious_else_formatting)]
5625 let non_field_children = {
5626 let mut cursor = node.walk();
5627 let mut result = ::std::vec::Vec::new();
5628 if cursor.goto_first_child() {
5629 loop {
5630 if cursor.field_name().is_none()
5631 && cursor.node().is_named()
5632 && !cursor.node().is_extra()
5633 {
5634 result.push(cursor.node());
5635 }
5636 if !cursor.goto_next_sibling() {
5637 break;
5638 }
5639 }
5640 }
5641 result
5642 };
5643 match non_field_children.first() {
5644 Some(&child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
5645 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
5646 })?),
5647 None => None,
5648 }
5649 },
5650 })
5651 }
5652}
5653impl ::treesitter_types::Spanned for InstantiationExpression<'_> {
5654 fn span(&self) -> ::treesitter_types::Span {
5655 self.span
5656 }
5657}
5658#[derive(Debug, Clone, PartialEq, Eq)]
5659pub struct InterfaceBody<'tree> {
5660 pub span: ::treesitter_types::Span,
5661 pub children: ::std::vec::Vec<InterfaceBodyChildren<'tree>>,
5662}
5663impl<'tree> ::treesitter_types::FromNode<'tree> for InterfaceBody<'tree> {
5664 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5665 fn from_node(
5666 node: ::treesitter_types::tree_sitter::Node<'tree>,
5667 src: &'tree [u8],
5668 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5669 debug_assert_eq!(node.kind(), "interface_body");
5670 Ok(Self {
5671 span: ::treesitter_types::Span::from(node),
5672 children: {
5673 #[allow(clippy::suspicious_else_formatting)]
5674 let non_field_children = {
5675 let mut cursor = node.walk();
5676 let mut result = ::std::vec::Vec::new();
5677 if cursor.goto_first_child() {
5678 loop {
5679 if cursor.field_name().is_none()
5680 && cursor.node().is_named()
5681 && !cursor.node().is_extra()
5682 {
5683 result.push(cursor.node());
5684 }
5685 if !cursor.goto_next_sibling() {
5686 break;
5687 }
5688 }
5689 }
5690 result
5691 };
5692 let mut items = ::std::vec::Vec::new();
5693 for child in non_field_children {
5694 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
5695 <InterfaceBodyChildren as ::treesitter_types::FromNode>::from_node(
5696 child, src,
5697 )
5698 })?);
5699 }
5700 items
5701 },
5702 })
5703 }
5704}
5705impl ::treesitter_types::Spanned for InterfaceBody<'_> {
5706 fn span(&self) -> ::treesitter_types::Span {
5707 self.span
5708 }
5709}
5710#[derive(Debug, Clone, PartialEq, Eq)]
5711pub struct InterfaceDeclaration<'tree> {
5712 pub span: ::treesitter_types::Span,
5713 pub body: InterfaceBody<'tree>,
5714 pub name: TypeIdentifier<'tree>,
5715 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
5716 pub children: ::core::option::Option<ExtendsTypeClause<'tree>>,
5717}
5718impl<'tree> ::treesitter_types::FromNode<'tree> for InterfaceDeclaration<'tree> {
5719 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5720 fn from_node(
5721 node: ::treesitter_types::tree_sitter::Node<'tree>,
5722 src: &'tree [u8],
5723 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5724 debug_assert_eq!(node.kind(), "interface_declaration");
5725 Ok(Self {
5726 span: ::treesitter_types::Span::from(node),
5727 body: {
5728 let child = node
5729 .child_by_field_name("body")
5730 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
5731 ::treesitter_types::runtime::maybe_grow_stack(|| {
5732 <InterfaceBody as ::treesitter_types::FromNode>::from_node(child, src)
5733 })?
5734 },
5735 name: {
5736 let child = node
5737 .child_by_field_name("name")
5738 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
5739 ::treesitter_types::runtime::maybe_grow_stack(|| {
5740 <TypeIdentifier as ::treesitter_types::FromNode>::from_node(child, src)
5741 })?
5742 },
5743 type_parameters: match node.child_by_field_name("type_parameters") {
5744 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
5745 <TypeParameters as ::treesitter_types::FromNode>::from_node(child, src)
5746 })?),
5747 None => None,
5748 },
5749 children: {
5750 #[allow(clippy::suspicious_else_formatting)]
5751 let non_field_children = {
5752 let mut cursor = node.walk();
5753 let mut result = ::std::vec::Vec::new();
5754 if cursor.goto_first_child() {
5755 loop {
5756 if cursor.field_name().is_none()
5757 && cursor.node().is_named()
5758 && !cursor.node().is_extra()
5759 {
5760 result.push(cursor.node());
5761 }
5762 if !cursor.goto_next_sibling() {
5763 break;
5764 }
5765 }
5766 }
5767 result
5768 };
5769 match non_field_children.first() {
5770 Some(&child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
5771 <ExtendsTypeClause as ::treesitter_types::FromNode>::from_node(child, src)
5772 })?),
5773 None => None,
5774 }
5775 },
5776 })
5777 }
5778}
5779impl ::treesitter_types::Spanned for InterfaceDeclaration<'_> {
5780 fn span(&self) -> ::treesitter_types::Span {
5781 self.span
5782 }
5783}
5784#[derive(Debug, Clone, PartialEq, Eq)]
5785pub struct InternalModule<'tree> {
5786 pub span: ::treesitter_types::Span,
5787 pub body: ::core::option::Option<StatementBlock<'tree>>,
5788 pub name: InternalModuleName<'tree>,
5789}
5790impl<'tree> ::treesitter_types::FromNode<'tree> for InternalModule<'tree> {
5791 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5792 fn from_node(
5793 node: ::treesitter_types::tree_sitter::Node<'tree>,
5794 src: &'tree [u8],
5795 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5796 debug_assert_eq!(node.kind(), "internal_module");
5797 Ok(Self {
5798 span: ::treesitter_types::Span::from(node),
5799 body: match node.child_by_field_name("body") {
5800 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
5801 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)
5802 })?),
5803 None => None,
5804 },
5805 name: {
5806 let child = node
5807 .child_by_field_name("name")
5808 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
5809 ::treesitter_types::runtime::maybe_grow_stack(|| {
5810 <InternalModuleName as ::treesitter_types::FromNode>::from_node(child, src)
5811 })?
5812 },
5813 })
5814 }
5815}
5816impl ::treesitter_types::Spanned for InternalModule<'_> {
5817 fn span(&self) -> ::treesitter_types::Span {
5818 self.span
5819 }
5820}
5821#[derive(Debug, Clone, PartialEq, Eq)]
5822pub struct IntersectionType<'tree> {
5823 pub span: ::treesitter_types::Span,
5824 pub children: ::std::vec::Vec<Type<'tree>>,
5825}
5826impl<'tree> ::treesitter_types::FromNode<'tree> for IntersectionType<'tree> {
5827 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5828 fn from_node(
5829 node: ::treesitter_types::tree_sitter::Node<'tree>,
5830 src: &'tree [u8],
5831 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5832 debug_assert_eq!(node.kind(), "intersection_type");
5833 Ok(Self {
5834 span: ::treesitter_types::Span::from(node),
5835 children: {
5836 #[allow(clippy::suspicious_else_formatting)]
5837 let non_field_children = {
5838 let mut cursor = node.walk();
5839 let mut result = ::std::vec::Vec::new();
5840 if cursor.goto_first_child() {
5841 loop {
5842 if cursor.field_name().is_none()
5843 && cursor.node().is_named()
5844 && !cursor.node().is_extra()
5845 {
5846 result.push(cursor.node());
5847 }
5848 if !cursor.goto_next_sibling() {
5849 break;
5850 }
5851 }
5852 }
5853 result
5854 };
5855 let mut items = ::std::vec::Vec::new();
5856 for child in non_field_children {
5857 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
5858 <Type as ::treesitter_types::FromNode>::from_node(child, src)
5859 })?);
5860 }
5861 items
5862 },
5863 })
5864 }
5865}
5866impl ::treesitter_types::Spanned for IntersectionType<'_> {
5867 fn span(&self) -> ::treesitter_types::Span {
5868 self.span
5869 }
5870}
5871#[derive(Debug, Clone, PartialEq, Eq)]
5872pub struct LabeledStatement<'tree> {
5873 pub span: ::treesitter_types::Span,
5874 pub body: Statement<'tree>,
5875 pub label: StatementIdentifier<'tree>,
5876}
5877impl<'tree> ::treesitter_types::FromNode<'tree> for LabeledStatement<'tree> {
5878 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5879 fn from_node(
5880 node: ::treesitter_types::tree_sitter::Node<'tree>,
5881 src: &'tree [u8],
5882 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5883 debug_assert_eq!(node.kind(), "labeled_statement");
5884 Ok(Self {
5885 span: ::treesitter_types::Span::from(node),
5886 body: {
5887 let child = node
5888 .child_by_field_name("body")
5889 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
5890 ::treesitter_types::runtime::maybe_grow_stack(|| {
5891 <Statement as ::treesitter_types::FromNode>::from_node(child, src)
5892 })?
5893 },
5894 label: {
5895 let child = node
5896 .child_by_field_name("label")
5897 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("label", node))?;
5898 ::treesitter_types::runtime::maybe_grow_stack(|| {
5899 <StatementIdentifier as ::treesitter_types::FromNode>::from_node(child, src)
5900 })?
5901 },
5902 })
5903 }
5904}
5905impl ::treesitter_types::Spanned for LabeledStatement<'_> {
5906 fn span(&self) -> ::treesitter_types::Span {
5907 self.span
5908 }
5909}
5910#[derive(Debug, Clone, PartialEq, Eq)]
5911pub struct LexicalDeclaration<'tree> {
5912 pub span: ::treesitter_types::Span,
5913 pub kind: LexicalDeclarationKind,
5914 pub children: ::std::vec::Vec<VariableDeclarator<'tree>>,
5915}
5916impl<'tree> ::treesitter_types::FromNode<'tree> for LexicalDeclaration<'tree> {
5917 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5918 fn from_node(
5919 node: ::treesitter_types::tree_sitter::Node<'tree>,
5920 src: &'tree [u8],
5921 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5922 debug_assert_eq!(node.kind(), "lexical_declaration");
5923 Ok(Self {
5924 span: ::treesitter_types::Span::from(node),
5925 kind: {
5926 let child = node
5927 .child_by_field_name("kind")
5928 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("kind", node))?;
5929 ::treesitter_types::runtime::maybe_grow_stack(|| {
5930 <LexicalDeclarationKind as ::treesitter_types::FromNode>::from_node(child, src)
5931 })?
5932 },
5933 children: {
5934 #[allow(clippy::suspicious_else_formatting)]
5935 let non_field_children = {
5936 let mut cursor = node.walk();
5937 let mut result = ::std::vec::Vec::new();
5938 if cursor.goto_first_child() {
5939 loop {
5940 if cursor.field_name().is_none()
5941 && cursor.node().is_named()
5942 && !cursor.node().is_extra()
5943 {
5944 result.push(cursor.node());
5945 }
5946 if !cursor.goto_next_sibling() {
5947 break;
5948 }
5949 }
5950 }
5951 result
5952 };
5953 let mut items = ::std::vec::Vec::new();
5954 for child in non_field_children {
5955 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
5956 <VariableDeclarator as ::treesitter_types::FromNode>::from_node(child, src)
5957 })?);
5958 }
5959 items
5960 },
5961 })
5962 }
5963}
5964impl ::treesitter_types::Spanned for LexicalDeclaration<'_> {
5965 fn span(&self) -> ::treesitter_types::Span {
5966 self.span
5967 }
5968}
5969#[derive(Debug, Clone, PartialEq, Eq)]
5970pub struct LiteralType<'tree> {
5971 pub span: ::treesitter_types::Span,
5972 pub children: LiteralTypeChildren<'tree>,
5973}
5974impl<'tree> ::treesitter_types::FromNode<'tree> for LiteralType<'tree> {
5975 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5976 fn from_node(
5977 node: ::treesitter_types::tree_sitter::Node<'tree>,
5978 src: &'tree [u8],
5979 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5980 debug_assert_eq!(node.kind(), "literal_type");
5981 Ok(Self {
5982 span: ::treesitter_types::Span::from(node),
5983 children: {
5984 #[allow(clippy::suspicious_else_formatting)]
5985 let non_field_children = {
5986 let mut cursor = node.walk();
5987 let mut result = ::std::vec::Vec::new();
5988 if cursor.goto_first_child() {
5989 loop {
5990 if cursor.field_name().is_none()
5991 && cursor.node().is_named()
5992 && !cursor.node().is_extra()
5993 {
5994 result.push(cursor.node());
5995 }
5996 if !cursor.goto_next_sibling() {
5997 break;
5998 }
5999 }
6000 }
6001 result
6002 };
6003 let child = if let Some(&c) = non_field_children.first() {
6004 c
6005 } else {
6006 let mut fallback_cursor = node.walk();
6007 let mut fallback_child = None;
6008 if fallback_cursor.goto_first_child() {
6009 loop {
6010 if fallback_cursor.field_name().is_none()
6011 && !fallback_cursor.node().is_extra()
6012 {
6013 let candidate = fallback_cursor.node();
6014 #[allow(clippy::needless_question_mark)]
6015 if (|| -> ::core::result::Result<
6016 _,
6017 ::treesitter_types::ParseError,
6018 > {
6019 let child = candidate;
6020 Ok(
6021 ::treesitter_types::runtime::maybe_grow_stack(|| <LiteralTypeChildren as ::treesitter_types::FromNode>::from_node(
6022 child,
6023 src,
6024 ))?,
6025 )
6026 })()
6027 .is_ok()
6028 {
6029 fallback_child = Some(candidate);
6030 break;
6031 }
6032 }
6033 if !fallback_cursor.goto_next_sibling() {
6034 break;
6035 }
6036 }
6037 }
6038 if fallback_child.is_none() {
6039 let mut cursor2 = node.walk();
6040 if cursor2.goto_first_child() {
6041 loop {
6042 if cursor2.node().is_named() && !cursor2.node().is_extra() {
6043 let candidate = cursor2.node();
6044 #[allow(clippy::needless_question_mark)]
6045 if (|| -> ::core::result::Result<
6046 _,
6047 ::treesitter_types::ParseError,
6048 > {
6049 let child = candidate;
6050 Ok(
6051 ::treesitter_types::runtime::maybe_grow_stack(|| <LiteralTypeChildren as ::treesitter_types::FromNode>::from_node(
6052 child,
6053 src,
6054 ))?,
6055 )
6056 })()
6057 .is_ok()
6058 {
6059 fallback_child = Some(candidate);
6060 break;
6061 }
6062 }
6063 if !cursor2.goto_next_sibling() {
6064 break;
6065 }
6066 }
6067 }
6068 }
6069 fallback_child.ok_or_else(|| {
6070 ::treesitter_types::ParseError::missing_field("children", node)
6071 })?
6072 };
6073 ::treesitter_types::runtime::maybe_grow_stack(|| {
6074 <LiteralTypeChildren as ::treesitter_types::FromNode>::from_node(child, src)
6075 })?
6076 },
6077 })
6078 }
6079}
6080impl ::treesitter_types::Spanned for LiteralType<'_> {
6081 fn span(&self) -> ::treesitter_types::Span {
6082 self.span
6083 }
6084}
6085#[derive(Debug, Clone, PartialEq, Eq)]
6086pub struct LookupType<'tree> {
6087 pub span: ::treesitter_types::Span,
6088 pub children: ::std::vec::Vec<Type<'tree>>,
6089}
6090impl<'tree> ::treesitter_types::FromNode<'tree> for LookupType<'tree> {
6091 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6092 fn from_node(
6093 node: ::treesitter_types::tree_sitter::Node<'tree>,
6094 src: &'tree [u8],
6095 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6096 debug_assert_eq!(node.kind(), "lookup_type");
6097 Ok(Self {
6098 span: ::treesitter_types::Span::from(node),
6099 children: {
6100 #[allow(clippy::suspicious_else_formatting)]
6101 let non_field_children = {
6102 let mut cursor = node.walk();
6103 let mut result = ::std::vec::Vec::new();
6104 if cursor.goto_first_child() {
6105 loop {
6106 if cursor.field_name().is_none()
6107 && cursor.node().is_named()
6108 && !cursor.node().is_extra()
6109 {
6110 result.push(cursor.node());
6111 }
6112 if !cursor.goto_next_sibling() {
6113 break;
6114 }
6115 }
6116 }
6117 result
6118 };
6119 let mut items = ::std::vec::Vec::new();
6120 for child in non_field_children {
6121 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
6122 <Type as ::treesitter_types::FromNode>::from_node(child, src)
6123 })?);
6124 }
6125 items
6126 },
6127 })
6128 }
6129}
6130impl ::treesitter_types::Spanned for LookupType<'_> {
6131 fn span(&self) -> ::treesitter_types::Span {
6132 self.span
6133 }
6134}
6135#[derive(Debug, Clone, PartialEq, Eq)]
6136pub struct MappedTypeClause<'tree> {
6137 pub span: ::treesitter_types::Span,
6138 pub alias: ::core::option::Option<Type<'tree>>,
6139 pub name: TypeIdentifier<'tree>,
6140 pub r#type: Type<'tree>,
6141}
6142impl<'tree> ::treesitter_types::FromNode<'tree> for MappedTypeClause<'tree> {
6143 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6144 fn from_node(
6145 node: ::treesitter_types::tree_sitter::Node<'tree>,
6146 src: &'tree [u8],
6147 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6148 debug_assert_eq!(node.kind(), "mapped_type_clause");
6149 Ok(Self {
6150 span: ::treesitter_types::Span::from(node),
6151 alias: match node.child_by_field_name("alias") {
6152 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
6153 <Type as ::treesitter_types::FromNode>::from_node(child, src)
6154 })?),
6155 None => None,
6156 },
6157 name: {
6158 let child = node
6159 .child_by_field_name("name")
6160 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
6161 ::treesitter_types::runtime::maybe_grow_stack(|| {
6162 <TypeIdentifier as ::treesitter_types::FromNode>::from_node(child, src)
6163 })?
6164 },
6165 r#type: {
6166 let child = node
6167 .child_by_field_name("type")
6168 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("type", node))?;
6169 ::treesitter_types::runtime::maybe_grow_stack(|| {
6170 <Type as ::treesitter_types::FromNode>::from_node(child, src)
6171 })?
6172 },
6173 })
6174 }
6175}
6176impl ::treesitter_types::Spanned for MappedTypeClause<'_> {
6177 fn span(&self) -> ::treesitter_types::Span {
6178 self.span
6179 }
6180}
6181#[derive(Debug, Clone, PartialEq, Eq)]
6182pub struct MemberExpression<'tree> {
6183 pub span: ::treesitter_types::Span,
6184 pub object: MemberExpressionObject<'tree>,
6185 pub optional_chain: ::core::option::Option<OptionalChain<'tree>>,
6186 pub property: MemberExpressionProperty<'tree>,
6187}
6188impl<'tree> ::treesitter_types::FromNode<'tree> for MemberExpression<'tree> {
6189 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6190 fn from_node(
6191 node: ::treesitter_types::tree_sitter::Node<'tree>,
6192 src: &'tree [u8],
6193 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6194 debug_assert_eq!(node.kind(), "member_expression");
6195 Ok(Self {
6196 span: ::treesitter_types::Span::from(node),
6197 object: {
6198 let child = node
6199 .child_by_field_name("object")
6200 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("object", node))?;
6201 ::treesitter_types::runtime::maybe_grow_stack(|| {
6202 <MemberExpressionObject as ::treesitter_types::FromNode>::from_node(child, src)
6203 })?
6204 },
6205 optional_chain: match node.child_by_field_name("optional_chain") {
6206 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
6207 <OptionalChain as ::treesitter_types::FromNode>::from_node(child, src)
6208 })?),
6209 None => None,
6210 },
6211 property: {
6212 let child = node.child_by_field_name("property").ok_or_else(|| {
6213 ::treesitter_types::ParseError::missing_field("property", node)
6214 })?;
6215 ::treesitter_types::runtime::maybe_grow_stack(|| {
6216 <MemberExpressionProperty as ::treesitter_types::FromNode>::from_node(
6217 child, src,
6218 )
6219 })?
6220 },
6221 })
6222 }
6223}
6224impl ::treesitter_types::Spanned for MemberExpression<'_> {
6225 fn span(&self) -> ::treesitter_types::Span {
6226 self.span
6227 }
6228}
6229#[derive(Debug, Clone, PartialEq, Eq)]
6230pub struct MetaProperty<'tree> {
6231 pub span: ::treesitter_types::Span,
6232 text: &'tree str,
6233}
6234impl<'tree> ::treesitter_types::FromNode<'tree> for MetaProperty<'tree> {
6235 fn from_node(
6236 node: ::treesitter_types::tree_sitter::Node<'tree>,
6237 src: &'tree [u8],
6238 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6239 debug_assert_eq!(node.kind(), "meta_property");
6240 Ok(Self {
6241 span: ::treesitter_types::Span::from(node),
6242 text: node.utf8_text(src)?,
6243 })
6244 }
6245}
6246impl<'tree> ::treesitter_types::LeafNode<'tree> for MetaProperty<'tree> {
6247 fn text(&self) -> &'tree str {
6248 self.text
6249 }
6250}
6251impl ::treesitter_types::Spanned for MetaProperty<'_> {
6252 fn span(&self) -> ::treesitter_types::Span {
6253 self.span
6254 }
6255}
6256#[derive(Debug, Clone, PartialEq, Eq)]
6257pub struct MethodDefinition<'tree> {
6258 pub span: ::treesitter_types::Span,
6259 pub body: StatementBlock<'tree>,
6260 pub name: MethodDefinitionName<'tree>,
6261 pub parameters: FormalParameters<'tree>,
6262 pub return_type: ::core::option::Option<MethodDefinitionReturnType<'tree>>,
6263 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
6264 pub children: ::std::vec::Vec<MethodDefinitionChildren<'tree>>,
6265}
6266impl<'tree> ::treesitter_types::FromNode<'tree> for MethodDefinition<'tree> {
6267 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6268 fn from_node(
6269 node: ::treesitter_types::tree_sitter::Node<'tree>,
6270 src: &'tree [u8],
6271 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6272 debug_assert_eq!(node.kind(), "method_definition");
6273 Ok(Self {
6274 span: ::treesitter_types::Span::from(node),
6275 body: {
6276 let child = node
6277 .child_by_field_name("body")
6278 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
6279 ::treesitter_types::runtime::maybe_grow_stack(|| {
6280 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)
6281 })?
6282 },
6283 name: {
6284 let child = node
6285 .child_by_field_name("name")
6286 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
6287 ::treesitter_types::runtime::maybe_grow_stack(|| {
6288 <MethodDefinitionName as ::treesitter_types::FromNode>::from_node(child, src)
6289 })?
6290 },
6291 parameters: {
6292 let child = node.child_by_field_name("parameters").ok_or_else(|| {
6293 ::treesitter_types::ParseError::missing_field("parameters", node)
6294 })?;
6295 ::treesitter_types::runtime::maybe_grow_stack(|| {
6296 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)
6297 })?
6298 },
6299 return_type: match node.child_by_field_name("return_type") {
6300 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
6301 <MethodDefinitionReturnType as ::treesitter_types::FromNode>::from_node(
6302 child, src,
6303 )
6304 })?),
6305 None => None,
6306 },
6307 type_parameters: match node.child_by_field_name("type_parameters") {
6308 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
6309 <TypeParameters as ::treesitter_types::FromNode>::from_node(child, src)
6310 })?),
6311 None => None,
6312 },
6313 children: {
6314 #[allow(clippy::suspicious_else_formatting)]
6315 let non_field_children = {
6316 let mut cursor = node.walk();
6317 let mut result = ::std::vec::Vec::new();
6318 if cursor.goto_first_child() {
6319 loop {
6320 if cursor.field_name().is_none()
6321 && cursor.node().is_named()
6322 && !cursor.node().is_extra()
6323 {
6324 result.push(cursor.node());
6325 }
6326 if !cursor.goto_next_sibling() {
6327 break;
6328 }
6329 }
6330 }
6331 result
6332 };
6333 let mut items = ::std::vec::Vec::new();
6334 for child in non_field_children {
6335 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
6336 <MethodDefinitionChildren as ::treesitter_types::FromNode>::from_node(
6337 child, src,
6338 )
6339 })?);
6340 }
6341 items
6342 },
6343 })
6344 }
6345}
6346impl ::treesitter_types::Spanned for MethodDefinition<'_> {
6347 fn span(&self) -> ::treesitter_types::Span {
6348 self.span
6349 }
6350}
6351#[derive(Debug, Clone, PartialEq, Eq)]
6352pub struct MethodSignature<'tree> {
6353 pub span: ::treesitter_types::Span,
6354 pub name: MethodSignatureName<'tree>,
6355 pub parameters: FormalParameters<'tree>,
6356 pub return_type: ::core::option::Option<MethodSignatureReturnType<'tree>>,
6357 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
6358 pub children: ::std::vec::Vec<MethodSignatureChildren<'tree>>,
6359}
6360impl<'tree> ::treesitter_types::FromNode<'tree> for MethodSignature<'tree> {
6361 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6362 fn from_node(
6363 node: ::treesitter_types::tree_sitter::Node<'tree>,
6364 src: &'tree [u8],
6365 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6366 debug_assert_eq!(node.kind(), "method_signature");
6367 Ok(Self {
6368 span: ::treesitter_types::Span::from(node),
6369 name: {
6370 let child = node
6371 .child_by_field_name("name")
6372 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
6373 ::treesitter_types::runtime::maybe_grow_stack(|| {
6374 <MethodSignatureName as ::treesitter_types::FromNode>::from_node(child, src)
6375 })?
6376 },
6377 parameters: {
6378 let child = node.child_by_field_name("parameters").ok_or_else(|| {
6379 ::treesitter_types::ParseError::missing_field("parameters", node)
6380 })?;
6381 ::treesitter_types::runtime::maybe_grow_stack(|| {
6382 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)
6383 })?
6384 },
6385 return_type: match node.child_by_field_name("return_type") {
6386 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
6387 <MethodSignatureReturnType as ::treesitter_types::FromNode>::from_node(
6388 child, src,
6389 )
6390 })?),
6391 None => None,
6392 },
6393 type_parameters: match node.child_by_field_name("type_parameters") {
6394 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
6395 <TypeParameters as ::treesitter_types::FromNode>::from_node(child, src)
6396 })?),
6397 None => None,
6398 },
6399 children: {
6400 #[allow(clippy::suspicious_else_formatting)]
6401 let non_field_children = {
6402 let mut cursor = node.walk();
6403 let mut result = ::std::vec::Vec::new();
6404 if cursor.goto_first_child() {
6405 loop {
6406 if cursor.field_name().is_none()
6407 && cursor.node().is_named()
6408 && !cursor.node().is_extra()
6409 {
6410 result.push(cursor.node());
6411 }
6412 if !cursor.goto_next_sibling() {
6413 break;
6414 }
6415 }
6416 }
6417 result
6418 };
6419 let mut items = ::std::vec::Vec::new();
6420 for child in non_field_children {
6421 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
6422 <MethodSignatureChildren as ::treesitter_types::FromNode>::from_node(
6423 child, src,
6424 )
6425 })?);
6426 }
6427 items
6428 },
6429 })
6430 }
6431}
6432impl ::treesitter_types::Spanned for MethodSignature<'_> {
6433 fn span(&self) -> ::treesitter_types::Span {
6434 self.span
6435 }
6436}
6437#[derive(Debug, Clone, PartialEq, Eq)]
6438pub struct Module<'tree> {
6439 pub span: ::treesitter_types::Span,
6440 pub body: ::core::option::Option<StatementBlock<'tree>>,
6441 pub name: ModuleName<'tree>,
6442}
6443impl<'tree> ::treesitter_types::FromNode<'tree> for Module<'tree> {
6444 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6445 fn from_node(
6446 node: ::treesitter_types::tree_sitter::Node<'tree>,
6447 src: &'tree [u8],
6448 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6449 debug_assert_eq!(node.kind(), "module");
6450 Ok(Self {
6451 span: ::treesitter_types::Span::from(node),
6452 body: match node.child_by_field_name("body") {
6453 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
6454 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)
6455 })?),
6456 None => None,
6457 },
6458 name: {
6459 let child = node
6460 .child_by_field_name("name")
6461 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
6462 ::treesitter_types::runtime::maybe_grow_stack(|| {
6463 <ModuleName as ::treesitter_types::FromNode>::from_node(child, src)
6464 })?
6465 },
6466 })
6467 }
6468}
6469impl ::treesitter_types::Spanned for Module<'_> {
6470 fn span(&self) -> ::treesitter_types::Span {
6471 self.span
6472 }
6473}
6474#[derive(Debug, Clone, PartialEq, Eq)]
6475pub struct NamedImports<'tree> {
6476 pub span: ::treesitter_types::Span,
6477 pub children: ::std::vec::Vec<ImportSpecifier<'tree>>,
6478}
6479impl<'tree> ::treesitter_types::FromNode<'tree> for NamedImports<'tree> {
6480 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6481 fn from_node(
6482 node: ::treesitter_types::tree_sitter::Node<'tree>,
6483 src: &'tree [u8],
6484 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6485 debug_assert_eq!(node.kind(), "named_imports");
6486 Ok(Self {
6487 span: ::treesitter_types::Span::from(node),
6488 children: {
6489 #[allow(clippy::suspicious_else_formatting)]
6490 let non_field_children = {
6491 let mut cursor = node.walk();
6492 let mut result = ::std::vec::Vec::new();
6493 if cursor.goto_first_child() {
6494 loop {
6495 if cursor.field_name().is_none()
6496 && cursor.node().is_named()
6497 && !cursor.node().is_extra()
6498 {
6499 result.push(cursor.node());
6500 }
6501 if !cursor.goto_next_sibling() {
6502 break;
6503 }
6504 }
6505 }
6506 result
6507 };
6508 let mut items = ::std::vec::Vec::new();
6509 for child in non_field_children {
6510 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
6511 <ImportSpecifier as ::treesitter_types::FromNode>::from_node(child, src)
6512 })?);
6513 }
6514 items
6515 },
6516 })
6517 }
6518}
6519impl ::treesitter_types::Spanned for NamedImports<'_> {
6520 fn span(&self) -> ::treesitter_types::Span {
6521 self.span
6522 }
6523}
6524#[derive(Debug, Clone, PartialEq, Eq)]
6525pub struct NamespaceExport<'tree> {
6526 pub span: ::treesitter_types::Span,
6527 pub children: NamespaceExportChildren<'tree>,
6528}
6529impl<'tree> ::treesitter_types::FromNode<'tree> for NamespaceExport<'tree> {
6530 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6531 fn from_node(
6532 node: ::treesitter_types::tree_sitter::Node<'tree>,
6533 src: &'tree [u8],
6534 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6535 debug_assert_eq!(node.kind(), "namespace_export");
6536 Ok(Self {
6537 span: ::treesitter_types::Span::from(node),
6538 children: {
6539 #[allow(clippy::suspicious_else_formatting)]
6540 let non_field_children = {
6541 let mut cursor = node.walk();
6542 let mut result = ::std::vec::Vec::new();
6543 if cursor.goto_first_child() {
6544 loop {
6545 if cursor.field_name().is_none()
6546 && cursor.node().is_named()
6547 && !cursor.node().is_extra()
6548 {
6549 result.push(cursor.node());
6550 }
6551 if !cursor.goto_next_sibling() {
6552 break;
6553 }
6554 }
6555 }
6556 result
6557 };
6558 let child = if let Some(&c) = non_field_children.first() {
6559 c
6560 } else {
6561 let mut fallback_cursor = node.walk();
6562 let mut fallback_child = None;
6563 if fallback_cursor.goto_first_child() {
6564 loop {
6565 if fallback_cursor.field_name().is_none()
6566 && !fallback_cursor.node().is_extra()
6567 {
6568 let candidate = fallback_cursor.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 ::treesitter_types::runtime::maybe_grow_stack(|| <NamespaceExportChildren 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 !fallback_cursor.goto_next_sibling() {
6589 break;
6590 }
6591 }
6592 }
6593 if fallback_child.is_none() {
6594 let mut cursor2 = node.walk();
6595 if cursor2.goto_first_child() {
6596 loop {
6597 if cursor2.node().is_named() && !cursor2.node().is_extra() {
6598 let candidate = cursor2.node();
6599 #[allow(clippy::needless_question_mark)]
6600 if (|| -> ::core::result::Result<
6601 _,
6602 ::treesitter_types::ParseError,
6603 > {
6604 let child = candidate;
6605 Ok(
6606 ::treesitter_types::runtime::maybe_grow_stack(|| <NamespaceExportChildren as ::treesitter_types::FromNode>::from_node(
6607 child,
6608 src,
6609 ))?,
6610 )
6611 })()
6612 .is_ok()
6613 {
6614 fallback_child = Some(candidate);
6615 break;
6616 }
6617 }
6618 if !cursor2.goto_next_sibling() {
6619 break;
6620 }
6621 }
6622 }
6623 }
6624 fallback_child.ok_or_else(|| {
6625 ::treesitter_types::ParseError::missing_field("children", node)
6626 })?
6627 };
6628 ::treesitter_types::runtime::maybe_grow_stack(|| {
6629 <NamespaceExportChildren as ::treesitter_types::FromNode>::from_node(child, src)
6630 })?
6631 },
6632 })
6633 }
6634}
6635impl ::treesitter_types::Spanned for NamespaceExport<'_> {
6636 fn span(&self) -> ::treesitter_types::Span {
6637 self.span
6638 }
6639}
6640#[derive(Debug, Clone, PartialEq, Eq)]
6641pub struct NamespaceImport<'tree> {
6642 pub span: ::treesitter_types::Span,
6643 pub children: Identifier<'tree>,
6644}
6645impl<'tree> ::treesitter_types::FromNode<'tree> for NamespaceImport<'tree> {
6646 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6647 fn from_node(
6648 node: ::treesitter_types::tree_sitter::Node<'tree>,
6649 src: &'tree [u8],
6650 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6651 debug_assert_eq!(node.kind(), "namespace_import");
6652 Ok(Self {
6653 span: ::treesitter_types::Span::from(node),
6654 children: {
6655 #[allow(clippy::suspicious_else_formatting)]
6656 let non_field_children = {
6657 let mut cursor = node.walk();
6658 let mut result = ::std::vec::Vec::new();
6659 if cursor.goto_first_child() {
6660 loop {
6661 if cursor.field_name().is_none()
6662 && cursor.node().is_named()
6663 && !cursor.node().is_extra()
6664 {
6665 result.push(cursor.node());
6666 }
6667 if !cursor.goto_next_sibling() {
6668 break;
6669 }
6670 }
6671 }
6672 result
6673 };
6674 let child = if let Some(&c) = non_field_children.first() {
6675 c
6676 } else {
6677 let mut fallback_cursor = node.walk();
6678 let mut fallback_child = None;
6679 if fallback_cursor.goto_first_child() {
6680 loop {
6681 if fallback_cursor.field_name().is_none()
6682 && !fallback_cursor.node().is_extra()
6683 {
6684 let candidate = fallback_cursor.node();
6685 #[allow(clippy::needless_question_mark)]
6686 if (|| -> ::core::result::Result<
6687 _,
6688 ::treesitter_types::ParseError,
6689 > {
6690 let child = candidate;
6691 Ok(
6692 ::treesitter_types::runtime::maybe_grow_stack(|| <Identifier as ::treesitter_types::FromNode>::from_node(
6693 child,
6694 src,
6695 ))?,
6696 )
6697 })()
6698 .is_ok()
6699 {
6700 fallback_child = Some(candidate);
6701 break;
6702 }
6703 }
6704 if !fallback_cursor.goto_next_sibling() {
6705 break;
6706 }
6707 }
6708 }
6709 if fallback_child.is_none() {
6710 let mut cursor2 = node.walk();
6711 if cursor2.goto_first_child() {
6712 loop {
6713 if cursor2.node().is_named() && !cursor2.node().is_extra() {
6714 let candidate = cursor2.node();
6715 #[allow(clippy::needless_question_mark)]
6716 if (|| -> ::core::result::Result<
6717 _,
6718 ::treesitter_types::ParseError,
6719 > {
6720 let child = candidate;
6721 Ok(
6722 ::treesitter_types::runtime::maybe_grow_stack(|| <Identifier as ::treesitter_types::FromNode>::from_node(
6723 child,
6724 src,
6725 ))?,
6726 )
6727 })()
6728 .is_ok()
6729 {
6730 fallback_child = Some(candidate);
6731 break;
6732 }
6733 }
6734 if !cursor2.goto_next_sibling() {
6735 break;
6736 }
6737 }
6738 }
6739 }
6740 fallback_child.ok_or_else(|| {
6741 ::treesitter_types::ParseError::missing_field("children", node)
6742 })?
6743 };
6744 ::treesitter_types::runtime::maybe_grow_stack(|| {
6745 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)
6746 })?
6747 },
6748 })
6749 }
6750}
6751impl ::treesitter_types::Spanned for NamespaceImport<'_> {
6752 fn span(&self) -> ::treesitter_types::Span {
6753 self.span
6754 }
6755}
6756#[derive(Debug, Clone, PartialEq, Eq)]
6757pub struct NestedIdentifier<'tree> {
6758 pub span: ::treesitter_types::Span,
6759 pub object: NestedIdentifierObject<'tree>,
6760 pub property: PropertyIdentifier<'tree>,
6761}
6762impl<'tree> ::treesitter_types::FromNode<'tree> for NestedIdentifier<'tree> {
6763 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6764 fn from_node(
6765 node: ::treesitter_types::tree_sitter::Node<'tree>,
6766 src: &'tree [u8],
6767 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6768 debug_assert_eq!(node.kind(), "nested_identifier");
6769 Ok(Self {
6770 span: ::treesitter_types::Span::from(node),
6771 object: {
6772 let child = node
6773 .child_by_field_name("object")
6774 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("object", node))?;
6775 ::treesitter_types::runtime::maybe_grow_stack(|| {
6776 <NestedIdentifierObject as ::treesitter_types::FromNode>::from_node(child, src)
6777 })?
6778 },
6779 property: {
6780 let child = node.child_by_field_name("property").ok_or_else(|| {
6781 ::treesitter_types::ParseError::missing_field("property", node)
6782 })?;
6783 ::treesitter_types::runtime::maybe_grow_stack(|| {
6784 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(child, src)
6785 })?
6786 },
6787 })
6788 }
6789}
6790impl ::treesitter_types::Spanned for NestedIdentifier<'_> {
6791 fn span(&self) -> ::treesitter_types::Span {
6792 self.span
6793 }
6794}
6795#[derive(Debug, Clone, PartialEq, Eq)]
6796pub struct NestedTypeIdentifier<'tree> {
6797 pub span: ::treesitter_types::Span,
6798 pub module: NestedTypeIdentifierModule<'tree>,
6799 pub name: TypeIdentifier<'tree>,
6800}
6801impl<'tree> ::treesitter_types::FromNode<'tree> for NestedTypeIdentifier<'tree> {
6802 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6803 fn from_node(
6804 node: ::treesitter_types::tree_sitter::Node<'tree>,
6805 src: &'tree [u8],
6806 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6807 debug_assert_eq!(node.kind(), "nested_type_identifier");
6808 Ok(Self {
6809 span: ::treesitter_types::Span::from(node),
6810 module: {
6811 let child = node
6812 .child_by_field_name("module")
6813 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("module", node))?;
6814 ::treesitter_types::runtime::maybe_grow_stack(|| {
6815 <NestedTypeIdentifierModule as ::treesitter_types::FromNode>::from_node(
6816 child, src,
6817 )
6818 })?
6819 },
6820 name: {
6821 let child = node
6822 .child_by_field_name("name")
6823 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
6824 ::treesitter_types::runtime::maybe_grow_stack(|| {
6825 <TypeIdentifier as ::treesitter_types::FromNode>::from_node(child, src)
6826 })?
6827 },
6828 })
6829 }
6830}
6831impl ::treesitter_types::Spanned for NestedTypeIdentifier<'_> {
6832 fn span(&self) -> ::treesitter_types::Span {
6833 self.span
6834 }
6835}
6836#[derive(Debug, Clone, PartialEq, Eq)]
6837pub struct NewExpression<'tree> {
6838 pub span: ::treesitter_types::Span,
6839 pub arguments: ::core::option::Option<Arguments<'tree>>,
6840 pub constructor: PrimaryExpression<'tree>,
6841 pub type_arguments: ::core::option::Option<TypeArguments<'tree>>,
6842}
6843impl<'tree> ::treesitter_types::FromNode<'tree> for NewExpression<'tree> {
6844 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6845 fn from_node(
6846 node: ::treesitter_types::tree_sitter::Node<'tree>,
6847 src: &'tree [u8],
6848 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6849 debug_assert_eq!(node.kind(), "new_expression");
6850 Ok(Self {
6851 span: ::treesitter_types::Span::from(node),
6852 arguments: match node.child_by_field_name("arguments") {
6853 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
6854 <Arguments as ::treesitter_types::FromNode>::from_node(child, src)
6855 })?),
6856 None => None,
6857 },
6858 constructor: {
6859 let child = node.child_by_field_name("constructor").ok_or_else(|| {
6860 ::treesitter_types::ParseError::missing_field("constructor", node)
6861 })?;
6862 ::treesitter_types::runtime::maybe_grow_stack(|| {
6863 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(child, src)
6864 })?
6865 },
6866 type_arguments: match node.child_by_field_name("type_arguments") {
6867 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
6868 <TypeArguments as ::treesitter_types::FromNode>::from_node(child, src)
6869 })?),
6870 None => None,
6871 },
6872 })
6873 }
6874}
6875impl ::treesitter_types::Spanned for NewExpression<'_> {
6876 fn span(&self) -> ::treesitter_types::Span {
6877 self.span
6878 }
6879}
6880#[derive(Debug, Clone, PartialEq, Eq)]
6881pub struct NonNullExpression<'tree> {
6882 pub span: ::treesitter_types::Span,
6883 pub children: Expression<'tree>,
6884}
6885impl<'tree> ::treesitter_types::FromNode<'tree> for NonNullExpression<'tree> {
6886 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6887 fn from_node(
6888 node: ::treesitter_types::tree_sitter::Node<'tree>,
6889 src: &'tree [u8],
6890 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6891 debug_assert_eq!(node.kind(), "non_null_expression");
6892 Ok(Self {
6893 span: ::treesitter_types::Span::from(node),
6894 children: {
6895 #[allow(clippy::suspicious_else_formatting)]
6896 let non_field_children = {
6897 let mut cursor = node.walk();
6898 let mut result = ::std::vec::Vec::new();
6899 if cursor.goto_first_child() {
6900 loop {
6901 if cursor.field_name().is_none()
6902 && cursor.node().is_named()
6903 && !cursor.node().is_extra()
6904 {
6905 result.push(cursor.node());
6906 }
6907 if !cursor.goto_next_sibling() {
6908 break;
6909 }
6910 }
6911 }
6912 result
6913 };
6914 let child = if let Some(&c) = non_field_children.first() {
6915 c
6916 } else {
6917 let mut fallback_cursor = node.walk();
6918 let mut fallback_child = None;
6919 if fallback_cursor.goto_first_child() {
6920 loop {
6921 if fallback_cursor.field_name().is_none()
6922 && !fallback_cursor.node().is_extra()
6923 {
6924 let candidate = fallback_cursor.node();
6925 #[allow(clippy::needless_question_mark)]
6926 if (|| -> ::core::result::Result<
6927 _,
6928 ::treesitter_types::ParseError,
6929 > {
6930 let child = candidate;
6931 Ok(
6932 ::treesitter_types::runtime::maybe_grow_stack(|| <Expression as ::treesitter_types::FromNode>::from_node(
6933 child,
6934 src,
6935 ))?,
6936 )
6937 })()
6938 .is_ok()
6939 {
6940 fallback_child = Some(candidate);
6941 break;
6942 }
6943 }
6944 if !fallback_cursor.goto_next_sibling() {
6945 break;
6946 }
6947 }
6948 }
6949 if fallback_child.is_none() {
6950 let mut cursor2 = node.walk();
6951 if cursor2.goto_first_child() {
6952 loop {
6953 if cursor2.node().is_named() && !cursor2.node().is_extra() {
6954 let candidate = cursor2.node();
6955 #[allow(clippy::needless_question_mark)]
6956 if (|| -> ::core::result::Result<
6957 _,
6958 ::treesitter_types::ParseError,
6959 > {
6960 let child = candidate;
6961 Ok(
6962 ::treesitter_types::runtime::maybe_grow_stack(|| <Expression as ::treesitter_types::FromNode>::from_node(
6963 child,
6964 src,
6965 ))?,
6966 )
6967 })()
6968 .is_ok()
6969 {
6970 fallback_child = Some(candidate);
6971 break;
6972 }
6973 }
6974 if !cursor2.goto_next_sibling() {
6975 break;
6976 }
6977 }
6978 }
6979 }
6980 fallback_child.ok_or_else(|| {
6981 ::treesitter_types::ParseError::missing_field("children", node)
6982 })?
6983 };
6984 ::treesitter_types::runtime::maybe_grow_stack(|| {
6985 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
6986 })?
6987 },
6988 })
6989 }
6990}
6991impl ::treesitter_types::Spanned for NonNullExpression<'_> {
6992 fn span(&self) -> ::treesitter_types::Span {
6993 self.span
6994 }
6995}
6996#[derive(Debug, Clone, PartialEq, Eq)]
6997pub struct Object<'tree> {
6998 pub span: ::treesitter_types::Span,
6999 pub children: ::std::vec::Vec<ObjectChildren<'tree>>,
7000}
7001impl<'tree> ::treesitter_types::FromNode<'tree> for Object<'tree> {
7002 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7003 fn from_node(
7004 node: ::treesitter_types::tree_sitter::Node<'tree>,
7005 src: &'tree [u8],
7006 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7007 debug_assert_eq!(node.kind(), "object");
7008 Ok(Self {
7009 span: ::treesitter_types::Span::from(node),
7010 children: {
7011 #[allow(clippy::suspicious_else_formatting)]
7012 let non_field_children = {
7013 let mut cursor = node.walk();
7014 let mut result = ::std::vec::Vec::new();
7015 if cursor.goto_first_child() {
7016 loop {
7017 if cursor.field_name().is_none()
7018 && cursor.node().is_named()
7019 && !cursor.node().is_extra()
7020 {
7021 result.push(cursor.node());
7022 }
7023 if !cursor.goto_next_sibling() {
7024 break;
7025 }
7026 }
7027 }
7028 result
7029 };
7030 let mut items = ::std::vec::Vec::new();
7031 for child in non_field_children {
7032 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
7033 <ObjectChildren as ::treesitter_types::FromNode>::from_node(child, src)
7034 })?);
7035 }
7036 items
7037 },
7038 })
7039 }
7040}
7041impl ::treesitter_types::Spanned for Object<'_> {
7042 fn span(&self) -> ::treesitter_types::Span {
7043 self.span
7044 }
7045}
7046#[derive(Debug, Clone, PartialEq, Eq)]
7047pub struct ObjectAssignmentPattern<'tree> {
7048 pub span: ::treesitter_types::Span,
7049 pub left: ObjectAssignmentPatternLeft<'tree>,
7050 pub right: Expression<'tree>,
7051}
7052impl<'tree> ::treesitter_types::FromNode<'tree> for ObjectAssignmentPattern<'tree> {
7053 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7054 fn from_node(
7055 node: ::treesitter_types::tree_sitter::Node<'tree>,
7056 src: &'tree [u8],
7057 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7058 debug_assert_eq!(node.kind(), "object_assignment_pattern");
7059 Ok(Self {
7060 span: ::treesitter_types::Span::from(node),
7061 left: {
7062 let child = node
7063 .child_by_field_name("left")
7064 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
7065 ::treesitter_types::runtime::maybe_grow_stack(|| {
7066 <ObjectAssignmentPatternLeft as ::treesitter_types::FromNode>::from_node(
7067 child, src,
7068 )
7069 })?
7070 },
7071 right: {
7072 let child = node
7073 .child_by_field_name("right")
7074 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
7075 ::treesitter_types::runtime::maybe_grow_stack(|| {
7076 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
7077 })?
7078 },
7079 })
7080 }
7081}
7082impl ::treesitter_types::Spanned for ObjectAssignmentPattern<'_> {
7083 fn span(&self) -> ::treesitter_types::Span {
7084 self.span
7085 }
7086}
7087#[derive(Debug, Clone, PartialEq, Eq)]
7088pub struct ObjectPattern<'tree> {
7089 pub span: ::treesitter_types::Span,
7090 pub children: ::std::vec::Vec<ObjectPatternChildren<'tree>>,
7091}
7092impl<'tree> ::treesitter_types::FromNode<'tree> for ObjectPattern<'tree> {
7093 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7094 fn from_node(
7095 node: ::treesitter_types::tree_sitter::Node<'tree>,
7096 src: &'tree [u8],
7097 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7098 debug_assert_eq!(node.kind(), "object_pattern");
7099 Ok(Self {
7100 span: ::treesitter_types::Span::from(node),
7101 children: {
7102 #[allow(clippy::suspicious_else_formatting)]
7103 let non_field_children = {
7104 let mut cursor = node.walk();
7105 let mut result = ::std::vec::Vec::new();
7106 if cursor.goto_first_child() {
7107 loop {
7108 if cursor.field_name().is_none()
7109 && cursor.node().is_named()
7110 && !cursor.node().is_extra()
7111 {
7112 result.push(cursor.node());
7113 }
7114 if !cursor.goto_next_sibling() {
7115 break;
7116 }
7117 }
7118 }
7119 result
7120 };
7121 let mut items = ::std::vec::Vec::new();
7122 for child in non_field_children {
7123 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
7124 <ObjectPatternChildren as ::treesitter_types::FromNode>::from_node(
7125 child, src,
7126 )
7127 })?);
7128 }
7129 items
7130 },
7131 })
7132 }
7133}
7134impl ::treesitter_types::Spanned for ObjectPattern<'_> {
7135 fn span(&self) -> ::treesitter_types::Span {
7136 self.span
7137 }
7138}
7139#[derive(Debug, Clone, PartialEq, Eq)]
7140pub struct ObjectType<'tree> {
7141 pub span: ::treesitter_types::Span,
7142 pub children: ::std::vec::Vec<ObjectTypeChildren<'tree>>,
7143}
7144impl<'tree> ::treesitter_types::FromNode<'tree> for ObjectType<'tree> {
7145 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7146 fn from_node(
7147 node: ::treesitter_types::tree_sitter::Node<'tree>,
7148 src: &'tree [u8],
7149 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7150 debug_assert_eq!(node.kind(), "object_type");
7151 Ok(Self {
7152 span: ::treesitter_types::Span::from(node),
7153 children: {
7154 #[allow(clippy::suspicious_else_formatting)]
7155 let non_field_children = {
7156 let mut cursor = node.walk();
7157 let mut result = ::std::vec::Vec::new();
7158 if cursor.goto_first_child() {
7159 loop {
7160 if cursor.field_name().is_none()
7161 && cursor.node().is_named()
7162 && !cursor.node().is_extra()
7163 {
7164 result.push(cursor.node());
7165 }
7166 if !cursor.goto_next_sibling() {
7167 break;
7168 }
7169 }
7170 }
7171 result
7172 };
7173 let mut items = ::std::vec::Vec::new();
7174 for child in non_field_children {
7175 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
7176 <ObjectTypeChildren as ::treesitter_types::FromNode>::from_node(child, src)
7177 })?);
7178 }
7179 items
7180 },
7181 })
7182 }
7183}
7184impl ::treesitter_types::Spanned for ObjectType<'_> {
7185 fn span(&self) -> ::treesitter_types::Span {
7186 self.span
7187 }
7188}
7189#[derive(Debug, Clone, PartialEq, Eq)]
7190pub struct OmittingTypeAnnotation<'tree> {
7191 pub span: ::treesitter_types::Span,
7192 pub children: Type<'tree>,
7193}
7194impl<'tree> ::treesitter_types::FromNode<'tree> for OmittingTypeAnnotation<'tree> {
7195 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7196 fn from_node(
7197 node: ::treesitter_types::tree_sitter::Node<'tree>,
7198 src: &'tree [u8],
7199 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7200 debug_assert_eq!(node.kind(), "omitting_type_annotation");
7201 Ok(Self {
7202 span: ::treesitter_types::Span::from(node),
7203 children: {
7204 #[allow(clippy::suspicious_else_formatting)]
7205 let non_field_children = {
7206 let mut cursor = node.walk();
7207 let mut result = ::std::vec::Vec::new();
7208 if cursor.goto_first_child() {
7209 loop {
7210 if cursor.field_name().is_none()
7211 && cursor.node().is_named()
7212 && !cursor.node().is_extra()
7213 {
7214 result.push(cursor.node());
7215 }
7216 if !cursor.goto_next_sibling() {
7217 break;
7218 }
7219 }
7220 }
7221 result
7222 };
7223 let child = if let Some(&c) = non_field_children.first() {
7224 c
7225 } else {
7226 let mut fallback_cursor = node.walk();
7227 let mut fallback_child = None;
7228 if fallback_cursor.goto_first_child() {
7229 loop {
7230 if fallback_cursor.field_name().is_none()
7231 && !fallback_cursor.node().is_extra()
7232 {
7233 let candidate = fallback_cursor.node();
7234 #[allow(clippy::needless_question_mark)]
7235 if (|| -> ::core::result::Result<
7236 _,
7237 ::treesitter_types::ParseError,
7238 > {
7239 let child = candidate;
7240 Ok(
7241 ::treesitter_types::runtime::maybe_grow_stack(|| <Type as ::treesitter_types::FromNode>::from_node(
7242 child,
7243 src,
7244 ))?,
7245 )
7246 })()
7247 .is_ok()
7248 {
7249 fallback_child = Some(candidate);
7250 break;
7251 }
7252 }
7253 if !fallback_cursor.goto_next_sibling() {
7254 break;
7255 }
7256 }
7257 }
7258 if fallback_child.is_none() {
7259 let mut cursor2 = node.walk();
7260 if cursor2.goto_first_child() {
7261 loop {
7262 if cursor2.node().is_named() && !cursor2.node().is_extra() {
7263 let candidate = cursor2.node();
7264 #[allow(clippy::needless_question_mark)]
7265 if (|| -> ::core::result::Result<
7266 _,
7267 ::treesitter_types::ParseError,
7268 > {
7269 let child = candidate;
7270 Ok(
7271 ::treesitter_types::runtime::maybe_grow_stack(|| <Type as ::treesitter_types::FromNode>::from_node(
7272 child,
7273 src,
7274 ))?,
7275 )
7276 })()
7277 .is_ok()
7278 {
7279 fallback_child = Some(candidate);
7280 break;
7281 }
7282 }
7283 if !cursor2.goto_next_sibling() {
7284 break;
7285 }
7286 }
7287 }
7288 }
7289 fallback_child.ok_or_else(|| {
7290 ::treesitter_types::ParseError::missing_field("children", node)
7291 })?
7292 };
7293 ::treesitter_types::runtime::maybe_grow_stack(|| {
7294 <Type as ::treesitter_types::FromNode>::from_node(child, src)
7295 })?
7296 },
7297 })
7298 }
7299}
7300impl ::treesitter_types::Spanned for OmittingTypeAnnotation<'_> {
7301 fn span(&self) -> ::treesitter_types::Span {
7302 self.span
7303 }
7304}
7305#[derive(Debug, Clone, PartialEq, Eq)]
7306pub struct OptingTypeAnnotation<'tree> {
7307 pub span: ::treesitter_types::Span,
7308 pub children: Type<'tree>,
7309}
7310impl<'tree> ::treesitter_types::FromNode<'tree> for OptingTypeAnnotation<'tree> {
7311 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7312 fn from_node(
7313 node: ::treesitter_types::tree_sitter::Node<'tree>,
7314 src: &'tree [u8],
7315 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7316 debug_assert_eq!(node.kind(), "opting_type_annotation");
7317 Ok(Self {
7318 span: ::treesitter_types::Span::from(node),
7319 children: {
7320 #[allow(clippy::suspicious_else_formatting)]
7321 let non_field_children = {
7322 let mut cursor = node.walk();
7323 let mut result = ::std::vec::Vec::new();
7324 if cursor.goto_first_child() {
7325 loop {
7326 if cursor.field_name().is_none()
7327 && cursor.node().is_named()
7328 && !cursor.node().is_extra()
7329 {
7330 result.push(cursor.node());
7331 }
7332 if !cursor.goto_next_sibling() {
7333 break;
7334 }
7335 }
7336 }
7337 result
7338 };
7339 let child = if let Some(&c) = non_field_children.first() {
7340 c
7341 } else {
7342 let mut fallback_cursor = node.walk();
7343 let mut fallback_child = None;
7344 if fallback_cursor.goto_first_child() {
7345 loop {
7346 if fallback_cursor.field_name().is_none()
7347 && !fallback_cursor.node().is_extra()
7348 {
7349 let candidate = fallback_cursor.node();
7350 #[allow(clippy::needless_question_mark)]
7351 if (|| -> ::core::result::Result<
7352 _,
7353 ::treesitter_types::ParseError,
7354 > {
7355 let child = candidate;
7356 Ok(
7357 ::treesitter_types::runtime::maybe_grow_stack(|| <Type as ::treesitter_types::FromNode>::from_node(
7358 child,
7359 src,
7360 ))?,
7361 )
7362 })()
7363 .is_ok()
7364 {
7365 fallback_child = Some(candidate);
7366 break;
7367 }
7368 }
7369 if !fallback_cursor.goto_next_sibling() {
7370 break;
7371 }
7372 }
7373 }
7374 if fallback_child.is_none() {
7375 let mut cursor2 = node.walk();
7376 if cursor2.goto_first_child() {
7377 loop {
7378 if cursor2.node().is_named() && !cursor2.node().is_extra() {
7379 let candidate = cursor2.node();
7380 #[allow(clippy::needless_question_mark)]
7381 if (|| -> ::core::result::Result<
7382 _,
7383 ::treesitter_types::ParseError,
7384 > {
7385 let child = candidate;
7386 Ok(
7387 ::treesitter_types::runtime::maybe_grow_stack(|| <Type as ::treesitter_types::FromNode>::from_node(
7388 child,
7389 src,
7390 ))?,
7391 )
7392 })()
7393 .is_ok()
7394 {
7395 fallback_child = Some(candidate);
7396 break;
7397 }
7398 }
7399 if !cursor2.goto_next_sibling() {
7400 break;
7401 }
7402 }
7403 }
7404 }
7405 fallback_child.ok_or_else(|| {
7406 ::treesitter_types::ParseError::missing_field("children", node)
7407 })?
7408 };
7409 ::treesitter_types::runtime::maybe_grow_stack(|| {
7410 <Type as ::treesitter_types::FromNode>::from_node(child, src)
7411 })?
7412 },
7413 })
7414 }
7415}
7416impl ::treesitter_types::Spanned for OptingTypeAnnotation<'_> {
7417 fn span(&self) -> ::treesitter_types::Span {
7418 self.span
7419 }
7420}
7421#[derive(Debug, Clone, PartialEq, Eq)]
7422pub struct OptionalChain<'tree> {
7423 pub span: ::treesitter_types::Span,
7424 text: &'tree str,
7425}
7426impl<'tree> ::treesitter_types::FromNode<'tree> for OptionalChain<'tree> {
7427 fn from_node(
7428 node: ::treesitter_types::tree_sitter::Node<'tree>,
7429 src: &'tree [u8],
7430 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7431 debug_assert_eq!(node.kind(), "optional_chain");
7432 Ok(Self {
7433 span: ::treesitter_types::Span::from(node),
7434 text: node.utf8_text(src)?,
7435 })
7436 }
7437}
7438impl<'tree> ::treesitter_types::LeafNode<'tree> for OptionalChain<'tree> {
7439 fn text(&self) -> &'tree str {
7440 self.text
7441 }
7442}
7443impl ::treesitter_types::Spanned for OptionalChain<'_> {
7444 fn span(&self) -> ::treesitter_types::Span {
7445 self.span
7446 }
7447}
7448#[derive(Debug, Clone, PartialEq, Eq)]
7449pub struct OptionalParameter<'tree> {
7450 pub span: ::treesitter_types::Span,
7451 pub decorator: ::std::vec::Vec<Decorator<'tree>>,
7452 pub name: ::core::option::Option<Identifier<'tree>>,
7453 pub pattern: ::core::option::Option<OptionalParameterPattern<'tree>>,
7454 pub r#type: ::core::option::Option<TypeAnnotation<'tree>>,
7455 pub value: ::core::option::Option<Expression<'tree>>,
7456 pub children: ::std::vec::Vec<OptionalParameterChildren<'tree>>,
7457}
7458impl<'tree> ::treesitter_types::FromNode<'tree> for OptionalParameter<'tree> {
7459 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7460 fn from_node(
7461 node: ::treesitter_types::tree_sitter::Node<'tree>,
7462 src: &'tree [u8],
7463 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7464 debug_assert_eq!(node.kind(), "optional_parameter");
7465 Ok(Self {
7466 span: ::treesitter_types::Span::from(node),
7467 decorator: {
7468 let mut cursor = node.walk();
7469 let mut items = ::std::vec::Vec::new();
7470 for child in node.children_by_field_name("decorator", &mut cursor) {
7471 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
7472 <Decorator as ::treesitter_types::FromNode>::from_node(child, src)
7473 })?);
7474 }
7475 items
7476 },
7477 name: match node.child_by_field_name("name") {
7478 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
7479 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)
7480 })?),
7481 None => None,
7482 },
7483 pattern: match node.child_by_field_name("pattern") {
7484 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
7485 <OptionalParameterPattern as ::treesitter_types::FromNode>::from_node(
7486 child, src,
7487 )
7488 })?),
7489 None => None,
7490 },
7491 r#type: match node.child_by_field_name("type") {
7492 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
7493 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(child, src)
7494 })?),
7495 None => None,
7496 },
7497 value: match node.child_by_field_name("value") {
7498 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
7499 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
7500 })?),
7501 None => None,
7502 },
7503 children: {
7504 #[allow(clippy::suspicious_else_formatting)]
7505 let non_field_children = {
7506 let mut cursor = node.walk();
7507 let mut result = ::std::vec::Vec::new();
7508 if cursor.goto_first_child() {
7509 loop {
7510 if cursor.field_name().is_none()
7511 && cursor.node().is_named()
7512 && !cursor.node().is_extra()
7513 {
7514 result.push(cursor.node());
7515 }
7516 if !cursor.goto_next_sibling() {
7517 break;
7518 }
7519 }
7520 }
7521 result
7522 };
7523 let mut items = ::std::vec::Vec::new();
7524 for child in non_field_children {
7525 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
7526 <OptionalParameterChildren as ::treesitter_types::FromNode>::from_node(
7527 child, src,
7528 )
7529 })?);
7530 }
7531 items
7532 },
7533 })
7534 }
7535}
7536impl ::treesitter_types::Spanned for OptionalParameter<'_> {
7537 fn span(&self) -> ::treesitter_types::Span {
7538 self.span
7539 }
7540}
7541#[derive(Debug, Clone, PartialEq, Eq)]
7542pub struct OptionalType<'tree> {
7543 pub span: ::treesitter_types::Span,
7544 pub children: Type<'tree>,
7545}
7546impl<'tree> ::treesitter_types::FromNode<'tree> for OptionalType<'tree> {
7547 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7548 fn from_node(
7549 node: ::treesitter_types::tree_sitter::Node<'tree>,
7550 src: &'tree [u8],
7551 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7552 debug_assert_eq!(node.kind(), "optional_type");
7553 Ok(Self {
7554 span: ::treesitter_types::Span::from(node),
7555 children: {
7556 #[allow(clippy::suspicious_else_formatting)]
7557 let non_field_children = {
7558 let mut cursor = node.walk();
7559 let mut result = ::std::vec::Vec::new();
7560 if cursor.goto_first_child() {
7561 loop {
7562 if cursor.field_name().is_none()
7563 && cursor.node().is_named()
7564 && !cursor.node().is_extra()
7565 {
7566 result.push(cursor.node());
7567 }
7568 if !cursor.goto_next_sibling() {
7569 break;
7570 }
7571 }
7572 }
7573 result
7574 };
7575 let child = if let Some(&c) = non_field_children.first() {
7576 c
7577 } else {
7578 let mut fallback_cursor = node.walk();
7579 let mut fallback_child = None;
7580 if fallback_cursor.goto_first_child() {
7581 loop {
7582 if fallback_cursor.field_name().is_none()
7583 && !fallback_cursor.node().is_extra()
7584 {
7585 let candidate = fallback_cursor.node();
7586 #[allow(clippy::needless_question_mark)]
7587 if (|| -> ::core::result::Result<
7588 _,
7589 ::treesitter_types::ParseError,
7590 > {
7591 let child = candidate;
7592 Ok(
7593 ::treesitter_types::runtime::maybe_grow_stack(|| <Type as ::treesitter_types::FromNode>::from_node(
7594 child,
7595 src,
7596 ))?,
7597 )
7598 })()
7599 .is_ok()
7600 {
7601 fallback_child = Some(candidate);
7602 break;
7603 }
7604 }
7605 if !fallback_cursor.goto_next_sibling() {
7606 break;
7607 }
7608 }
7609 }
7610 if fallback_child.is_none() {
7611 let mut cursor2 = node.walk();
7612 if cursor2.goto_first_child() {
7613 loop {
7614 if cursor2.node().is_named() && !cursor2.node().is_extra() {
7615 let candidate = cursor2.node();
7616 #[allow(clippy::needless_question_mark)]
7617 if (|| -> ::core::result::Result<
7618 _,
7619 ::treesitter_types::ParseError,
7620 > {
7621 let child = candidate;
7622 Ok(
7623 ::treesitter_types::runtime::maybe_grow_stack(|| <Type as ::treesitter_types::FromNode>::from_node(
7624 child,
7625 src,
7626 ))?,
7627 )
7628 })()
7629 .is_ok()
7630 {
7631 fallback_child = Some(candidate);
7632 break;
7633 }
7634 }
7635 if !cursor2.goto_next_sibling() {
7636 break;
7637 }
7638 }
7639 }
7640 }
7641 fallback_child.ok_or_else(|| {
7642 ::treesitter_types::ParseError::missing_field("children", node)
7643 })?
7644 };
7645 ::treesitter_types::runtime::maybe_grow_stack(|| {
7646 <Type as ::treesitter_types::FromNode>::from_node(child, src)
7647 })?
7648 },
7649 })
7650 }
7651}
7652impl ::treesitter_types::Spanned for OptionalType<'_> {
7653 fn span(&self) -> ::treesitter_types::Span {
7654 self.span
7655 }
7656}
7657#[derive(Debug, Clone, PartialEq, Eq)]
7658pub struct OverrideModifier<'tree> {
7659 pub span: ::treesitter_types::Span,
7660 text: &'tree str,
7661}
7662impl<'tree> ::treesitter_types::FromNode<'tree> for OverrideModifier<'tree> {
7663 fn from_node(
7664 node: ::treesitter_types::tree_sitter::Node<'tree>,
7665 src: &'tree [u8],
7666 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7667 debug_assert_eq!(node.kind(), "override_modifier");
7668 Ok(Self {
7669 span: ::treesitter_types::Span::from(node),
7670 text: node.utf8_text(src)?,
7671 })
7672 }
7673}
7674impl<'tree> ::treesitter_types::LeafNode<'tree> for OverrideModifier<'tree> {
7675 fn text(&self) -> &'tree str {
7676 self.text
7677 }
7678}
7679impl ::treesitter_types::Spanned for OverrideModifier<'_> {
7680 fn span(&self) -> ::treesitter_types::Span {
7681 self.span
7682 }
7683}
7684#[derive(Debug, Clone, PartialEq, Eq)]
7685pub struct Pair<'tree> {
7686 pub span: ::treesitter_types::Span,
7687 pub key: PairKey<'tree>,
7688 pub value: Expression<'tree>,
7689}
7690impl<'tree> ::treesitter_types::FromNode<'tree> for Pair<'tree> {
7691 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7692 fn from_node(
7693 node: ::treesitter_types::tree_sitter::Node<'tree>,
7694 src: &'tree [u8],
7695 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7696 debug_assert_eq!(node.kind(), "pair");
7697 Ok(Self {
7698 span: ::treesitter_types::Span::from(node),
7699 key: {
7700 let child = node
7701 .child_by_field_name("key")
7702 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("key", node))?;
7703 ::treesitter_types::runtime::maybe_grow_stack(|| {
7704 <PairKey as ::treesitter_types::FromNode>::from_node(child, src)
7705 })?
7706 },
7707 value: {
7708 let child = node
7709 .child_by_field_name("value")
7710 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
7711 ::treesitter_types::runtime::maybe_grow_stack(|| {
7712 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
7713 })?
7714 },
7715 })
7716 }
7717}
7718impl ::treesitter_types::Spanned for Pair<'_> {
7719 fn span(&self) -> ::treesitter_types::Span {
7720 self.span
7721 }
7722}
7723#[derive(Debug, Clone, PartialEq, Eq)]
7724pub struct PairPattern<'tree> {
7725 pub span: ::treesitter_types::Span,
7726 pub key: PairPatternKey<'tree>,
7727 pub value: PairPatternValue<'tree>,
7728}
7729impl<'tree> ::treesitter_types::FromNode<'tree> for PairPattern<'tree> {
7730 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7731 fn from_node(
7732 node: ::treesitter_types::tree_sitter::Node<'tree>,
7733 src: &'tree [u8],
7734 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7735 debug_assert_eq!(node.kind(), "pair_pattern");
7736 Ok(Self {
7737 span: ::treesitter_types::Span::from(node),
7738 key: {
7739 let child = node
7740 .child_by_field_name("key")
7741 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("key", node))?;
7742 ::treesitter_types::runtime::maybe_grow_stack(|| {
7743 <PairPatternKey as ::treesitter_types::FromNode>::from_node(child, src)
7744 })?
7745 },
7746 value: {
7747 let child = node
7748 .child_by_field_name("value")
7749 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
7750 ::treesitter_types::runtime::maybe_grow_stack(|| {
7751 <PairPatternValue as ::treesitter_types::FromNode>::from_node(child, src)
7752 })?
7753 },
7754 })
7755 }
7756}
7757impl ::treesitter_types::Spanned for PairPattern<'_> {
7758 fn span(&self) -> ::treesitter_types::Span {
7759 self.span
7760 }
7761}
7762#[derive(Debug, Clone, PartialEq, Eq)]
7763pub struct ParenthesizedExpression<'tree> {
7764 pub span: ::treesitter_types::Span,
7765 pub r#type: ::core::option::Option<TypeAnnotation<'tree>>,
7766 pub children: ParenthesizedExpressionChildren<'tree>,
7767}
7768impl<'tree> ::treesitter_types::FromNode<'tree> for ParenthesizedExpression<'tree> {
7769 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7770 fn from_node(
7771 node: ::treesitter_types::tree_sitter::Node<'tree>,
7772 src: &'tree [u8],
7773 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7774 debug_assert_eq!(node.kind(), "parenthesized_expression");
7775 Ok(Self {
7776 span: ::treesitter_types::Span::from(node),
7777 r#type: match node.child_by_field_name("type") {
7778 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
7779 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(child, src)
7780 })?),
7781 None => None,
7782 },
7783 children: {
7784 #[allow(clippy::suspicious_else_formatting)]
7785 let non_field_children = {
7786 let mut cursor = node.walk();
7787 let mut result = ::std::vec::Vec::new();
7788 if cursor.goto_first_child() {
7789 loop {
7790 if cursor.field_name().is_none()
7791 && cursor.node().is_named()
7792 && !cursor.node().is_extra()
7793 {
7794 result.push(cursor.node());
7795 }
7796 if !cursor.goto_next_sibling() {
7797 break;
7798 }
7799 }
7800 }
7801 result
7802 };
7803 let child = if let Some(&c) = non_field_children.first() {
7804 c
7805 } else {
7806 let mut fallback_cursor = node.walk();
7807 let mut fallback_child = None;
7808 if fallback_cursor.goto_first_child() {
7809 loop {
7810 if fallback_cursor.field_name().is_none()
7811 && !fallback_cursor.node().is_extra()
7812 {
7813 let candidate = fallback_cursor.node();
7814 #[allow(clippy::needless_question_mark)]
7815 if (|| -> ::core::result::Result<
7816 _,
7817 ::treesitter_types::ParseError,
7818 > {
7819 let child = candidate;
7820 Ok(
7821 ::treesitter_types::runtime::maybe_grow_stack(|| <ParenthesizedExpressionChildren as ::treesitter_types::FromNode>::from_node(
7822 child,
7823 src,
7824 ))?,
7825 )
7826 })()
7827 .is_ok()
7828 {
7829 fallback_child = Some(candidate);
7830 break;
7831 }
7832 }
7833 if !fallback_cursor.goto_next_sibling() {
7834 break;
7835 }
7836 }
7837 }
7838 if fallback_child.is_none() {
7839 let mut cursor2 = node.walk();
7840 if cursor2.goto_first_child() {
7841 loop {
7842 if cursor2.node().is_named() && !cursor2.node().is_extra() {
7843 let candidate = cursor2.node();
7844 #[allow(clippy::needless_question_mark)]
7845 if (|| -> ::core::result::Result<
7846 _,
7847 ::treesitter_types::ParseError,
7848 > {
7849 let child = candidate;
7850 Ok(
7851 ::treesitter_types::runtime::maybe_grow_stack(|| <ParenthesizedExpressionChildren as ::treesitter_types::FromNode>::from_node(
7852 child,
7853 src,
7854 ))?,
7855 )
7856 })()
7857 .is_ok()
7858 {
7859 fallback_child = Some(candidate);
7860 break;
7861 }
7862 }
7863 if !cursor2.goto_next_sibling() {
7864 break;
7865 }
7866 }
7867 }
7868 }
7869 fallback_child.ok_or_else(|| {
7870 ::treesitter_types::ParseError::missing_field("children", node)
7871 })?
7872 };
7873 ::treesitter_types::runtime::maybe_grow_stack(|| {
7874 <ParenthesizedExpressionChildren as ::treesitter_types::FromNode>::from_node(
7875 child, src,
7876 )
7877 })?
7878 },
7879 })
7880 }
7881}
7882impl ::treesitter_types::Spanned for ParenthesizedExpression<'_> {
7883 fn span(&self) -> ::treesitter_types::Span {
7884 self.span
7885 }
7886}
7887#[derive(Debug, Clone, PartialEq, Eq)]
7888pub struct ParenthesizedType<'tree> {
7889 pub span: ::treesitter_types::Span,
7890 pub children: Type<'tree>,
7891}
7892impl<'tree> ::treesitter_types::FromNode<'tree> for ParenthesizedType<'tree> {
7893 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7894 fn from_node(
7895 node: ::treesitter_types::tree_sitter::Node<'tree>,
7896 src: &'tree [u8],
7897 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7898 debug_assert_eq!(node.kind(), "parenthesized_type");
7899 Ok(Self {
7900 span: ::treesitter_types::Span::from(node),
7901 children: {
7902 #[allow(clippy::suspicious_else_formatting)]
7903 let non_field_children = {
7904 let mut cursor = node.walk();
7905 let mut result = ::std::vec::Vec::new();
7906 if cursor.goto_first_child() {
7907 loop {
7908 if cursor.field_name().is_none()
7909 && cursor.node().is_named()
7910 && !cursor.node().is_extra()
7911 {
7912 result.push(cursor.node());
7913 }
7914 if !cursor.goto_next_sibling() {
7915 break;
7916 }
7917 }
7918 }
7919 result
7920 };
7921 let child = if let Some(&c) = non_field_children.first() {
7922 c
7923 } else {
7924 let mut fallback_cursor = node.walk();
7925 let mut fallback_child = None;
7926 if fallback_cursor.goto_first_child() {
7927 loop {
7928 if fallback_cursor.field_name().is_none()
7929 && !fallback_cursor.node().is_extra()
7930 {
7931 let candidate = fallback_cursor.node();
7932 #[allow(clippy::needless_question_mark)]
7933 if (|| -> ::core::result::Result<
7934 _,
7935 ::treesitter_types::ParseError,
7936 > {
7937 let child = candidate;
7938 Ok(
7939 ::treesitter_types::runtime::maybe_grow_stack(|| <Type as ::treesitter_types::FromNode>::from_node(
7940 child,
7941 src,
7942 ))?,
7943 )
7944 })()
7945 .is_ok()
7946 {
7947 fallback_child = Some(candidate);
7948 break;
7949 }
7950 }
7951 if !fallback_cursor.goto_next_sibling() {
7952 break;
7953 }
7954 }
7955 }
7956 if fallback_child.is_none() {
7957 let mut cursor2 = node.walk();
7958 if cursor2.goto_first_child() {
7959 loop {
7960 if cursor2.node().is_named() && !cursor2.node().is_extra() {
7961 let candidate = cursor2.node();
7962 #[allow(clippy::needless_question_mark)]
7963 if (|| -> ::core::result::Result<
7964 _,
7965 ::treesitter_types::ParseError,
7966 > {
7967 let child = candidate;
7968 Ok(
7969 ::treesitter_types::runtime::maybe_grow_stack(|| <Type as ::treesitter_types::FromNode>::from_node(
7970 child,
7971 src,
7972 ))?,
7973 )
7974 })()
7975 .is_ok()
7976 {
7977 fallback_child = Some(candidate);
7978 break;
7979 }
7980 }
7981 if !cursor2.goto_next_sibling() {
7982 break;
7983 }
7984 }
7985 }
7986 }
7987 fallback_child.ok_or_else(|| {
7988 ::treesitter_types::ParseError::missing_field("children", node)
7989 })?
7990 };
7991 ::treesitter_types::runtime::maybe_grow_stack(|| {
7992 <Type as ::treesitter_types::FromNode>::from_node(child, src)
7993 })?
7994 },
7995 })
7996 }
7997}
7998impl ::treesitter_types::Spanned for ParenthesizedType<'_> {
7999 fn span(&self) -> ::treesitter_types::Span {
8000 self.span
8001 }
8002}
8003#[derive(Debug, Clone, PartialEq, Eq)]
8004pub struct PredefinedType<'tree> {
8005 pub span: ::treesitter_types::Span,
8006 text: &'tree str,
8007}
8008impl<'tree> ::treesitter_types::FromNode<'tree> for PredefinedType<'tree> {
8009 fn from_node(
8010 node: ::treesitter_types::tree_sitter::Node<'tree>,
8011 src: &'tree [u8],
8012 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8013 debug_assert_eq!(node.kind(), "predefined_type");
8014 Ok(Self {
8015 span: ::treesitter_types::Span::from(node),
8016 text: node.utf8_text(src)?,
8017 })
8018 }
8019}
8020impl<'tree> ::treesitter_types::LeafNode<'tree> for PredefinedType<'tree> {
8021 fn text(&self) -> &'tree str {
8022 self.text
8023 }
8024}
8025impl ::treesitter_types::Spanned for PredefinedType<'_> {
8026 fn span(&self) -> ::treesitter_types::Span {
8027 self.span
8028 }
8029}
8030#[derive(Debug, Clone, PartialEq, Eq)]
8031pub struct Program<'tree> {
8032 pub span: ::treesitter_types::Span,
8033 pub children: ::std::vec::Vec<ProgramChildren<'tree>>,
8034}
8035impl<'tree> ::treesitter_types::FromNode<'tree> for Program<'tree> {
8036 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8037 fn from_node(
8038 node: ::treesitter_types::tree_sitter::Node<'tree>,
8039 src: &'tree [u8],
8040 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8041 debug_assert_eq!(node.kind(), "program");
8042 Ok(Self {
8043 span: ::treesitter_types::Span::from(node),
8044 children: {
8045 #[allow(clippy::suspicious_else_formatting)]
8046 let non_field_children = {
8047 let mut cursor = node.walk();
8048 let mut result = ::std::vec::Vec::new();
8049 if cursor.goto_first_child() {
8050 loop {
8051 if cursor.field_name().is_none()
8052 && cursor.node().is_named()
8053 && !cursor.node().is_extra()
8054 {
8055 result.push(cursor.node());
8056 }
8057 if !cursor.goto_next_sibling() {
8058 break;
8059 }
8060 }
8061 }
8062 result
8063 };
8064 let mut items = ::std::vec::Vec::new();
8065 for child in non_field_children {
8066 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
8067 <ProgramChildren as ::treesitter_types::FromNode>::from_node(child, src)
8068 })?);
8069 }
8070 items
8071 },
8072 })
8073 }
8074}
8075impl ::treesitter_types::Spanned for Program<'_> {
8076 fn span(&self) -> ::treesitter_types::Span {
8077 self.span
8078 }
8079}
8080#[derive(Debug, Clone, PartialEq, Eq)]
8081pub struct PropertySignature<'tree> {
8082 pub span: ::treesitter_types::Span,
8083 pub name: PropertySignatureName<'tree>,
8084 pub r#type: ::core::option::Option<TypeAnnotation<'tree>>,
8085 pub children: ::std::vec::Vec<PropertySignatureChildren<'tree>>,
8086}
8087impl<'tree> ::treesitter_types::FromNode<'tree> for PropertySignature<'tree> {
8088 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8089 fn from_node(
8090 node: ::treesitter_types::tree_sitter::Node<'tree>,
8091 src: &'tree [u8],
8092 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8093 debug_assert_eq!(node.kind(), "property_signature");
8094 Ok(Self {
8095 span: ::treesitter_types::Span::from(node),
8096 name: {
8097 let child = node
8098 .child_by_field_name("name")
8099 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
8100 ::treesitter_types::runtime::maybe_grow_stack(|| {
8101 <PropertySignatureName as ::treesitter_types::FromNode>::from_node(child, src)
8102 })?
8103 },
8104 r#type: match node.child_by_field_name("type") {
8105 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
8106 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(child, src)
8107 })?),
8108 None => None,
8109 },
8110 children: {
8111 #[allow(clippy::suspicious_else_formatting)]
8112 let non_field_children = {
8113 let mut cursor = node.walk();
8114 let mut result = ::std::vec::Vec::new();
8115 if cursor.goto_first_child() {
8116 loop {
8117 if cursor.field_name().is_none()
8118 && cursor.node().is_named()
8119 && !cursor.node().is_extra()
8120 {
8121 result.push(cursor.node());
8122 }
8123 if !cursor.goto_next_sibling() {
8124 break;
8125 }
8126 }
8127 }
8128 result
8129 };
8130 let mut items = ::std::vec::Vec::new();
8131 for child in non_field_children {
8132 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
8133 <PropertySignatureChildren as ::treesitter_types::FromNode>::from_node(
8134 child, src,
8135 )
8136 })?);
8137 }
8138 items
8139 },
8140 })
8141 }
8142}
8143impl ::treesitter_types::Spanned for PropertySignature<'_> {
8144 fn span(&self) -> ::treesitter_types::Span {
8145 self.span
8146 }
8147}
8148#[derive(Debug, Clone, PartialEq, Eq)]
8149pub struct PublicFieldDefinition<'tree> {
8150 pub span: ::treesitter_types::Span,
8151 pub decorator: ::std::vec::Vec<Decorator<'tree>>,
8152 pub name: PublicFieldDefinitionName<'tree>,
8153 pub r#type: ::core::option::Option<TypeAnnotation<'tree>>,
8154 pub value: ::core::option::Option<Expression<'tree>>,
8155 pub children: ::std::vec::Vec<PublicFieldDefinitionChildren<'tree>>,
8156}
8157impl<'tree> ::treesitter_types::FromNode<'tree> for PublicFieldDefinition<'tree> {
8158 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8159 fn from_node(
8160 node: ::treesitter_types::tree_sitter::Node<'tree>,
8161 src: &'tree [u8],
8162 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8163 debug_assert_eq!(node.kind(), "public_field_definition");
8164 Ok(Self {
8165 span: ::treesitter_types::Span::from(node),
8166 decorator: {
8167 let mut cursor = node.walk();
8168 let mut items = ::std::vec::Vec::new();
8169 for child in node.children_by_field_name("decorator", &mut cursor) {
8170 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
8171 <Decorator as ::treesitter_types::FromNode>::from_node(child, src)
8172 })?);
8173 }
8174 items
8175 },
8176 name: {
8177 let child = node
8178 .child_by_field_name("name")
8179 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
8180 ::treesitter_types::runtime::maybe_grow_stack(|| {
8181 <PublicFieldDefinitionName as ::treesitter_types::FromNode>::from_node(
8182 child, src,
8183 )
8184 })?
8185 },
8186 r#type: match node.child_by_field_name("type") {
8187 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
8188 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(child, src)
8189 })?),
8190 None => None,
8191 },
8192 value: match node.child_by_field_name("value") {
8193 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
8194 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
8195 })?),
8196 None => None,
8197 },
8198 children: {
8199 #[allow(clippy::suspicious_else_formatting)]
8200 let non_field_children = {
8201 let mut cursor = node.walk();
8202 let mut result = ::std::vec::Vec::new();
8203 if cursor.goto_first_child() {
8204 loop {
8205 if cursor.field_name().is_none()
8206 && cursor.node().is_named()
8207 && !cursor.node().is_extra()
8208 {
8209 result.push(cursor.node());
8210 }
8211 if !cursor.goto_next_sibling() {
8212 break;
8213 }
8214 }
8215 }
8216 result
8217 };
8218 let mut items = ::std::vec::Vec::new();
8219 for child in non_field_children {
8220 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
8221 <PublicFieldDefinitionChildren as ::treesitter_types::FromNode>::from_node(
8222 child, src,
8223 )
8224 })?);
8225 }
8226 items
8227 },
8228 })
8229 }
8230}
8231impl ::treesitter_types::Spanned for PublicFieldDefinition<'_> {
8232 fn span(&self) -> ::treesitter_types::Span {
8233 self.span
8234 }
8235}
8236#[derive(Debug, Clone, PartialEq, Eq)]
8237pub struct ReadonlyType<'tree> {
8238 pub span: ::treesitter_types::Span,
8239 pub children: Type<'tree>,
8240}
8241impl<'tree> ::treesitter_types::FromNode<'tree> for ReadonlyType<'tree> {
8242 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8243 fn from_node(
8244 node: ::treesitter_types::tree_sitter::Node<'tree>,
8245 src: &'tree [u8],
8246 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8247 debug_assert_eq!(node.kind(), "readonly_type");
8248 Ok(Self {
8249 span: ::treesitter_types::Span::from(node),
8250 children: {
8251 #[allow(clippy::suspicious_else_formatting)]
8252 let non_field_children = {
8253 let mut cursor = node.walk();
8254 let mut result = ::std::vec::Vec::new();
8255 if cursor.goto_first_child() {
8256 loop {
8257 if cursor.field_name().is_none()
8258 && cursor.node().is_named()
8259 && !cursor.node().is_extra()
8260 {
8261 result.push(cursor.node());
8262 }
8263 if !cursor.goto_next_sibling() {
8264 break;
8265 }
8266 }
8267 }
8268 result
8269 };
8270 let child = if let Some(&c) = non_field_children.first() {
8271 c
8272 } else {
8273 let mut fallback_cursor = node.walk();
8274 let mut fallback_child = None;
8275 if fallback_cursor.goto_first_child() {
8276 loop {
8277 if fallback_cursor.field_name().is_none()
8278 && !fallback_cursor.node().is_extra()
8279 {
8280 let candidate = fallback_cursor.node();
8281 #[allow(clippy::needless_question_mark)]
8282 if (|| -> ::core::result::Result<
8283 _,
8284 ::treesitter_types::ParseError,
8285 > {
8286 let child = candidate;
8287 Ok(
8288 ::treesitter_types::runtime::maybe_grow_stack(|| <Type as ::treesitter_types::FromNode>::from_node(
8289 child,
8290 src,
8291 ))?,
8292 )
8293 })()
8294 .is_ok()
8295 {
8296 fallback_child = Some(candidate);
8297 break;
8298 }
8299 }
8300 if !fallback_cursor.goto_next_sibling() {
8301 break;
8302 }
8303 }
8304 }
8305 if fallback_child.is_none() {
8306 let mut cursor2 = node.walk();
8307 if cursor2.goto_first_child() {
8308 loop {
8309 if cursor2.node().is_named() && !cursor2.node().is_extra() {
8310 let candidate = cursor2.node();
8311 #[allow(clippy::needless_question_mark)]
8312 if (|| -> ::core::result::Result<
8313 _,
8314 ::treesitter_types::ParseError,
8315 > {
8316 let child = candidate;
8317 Ok(
8318 ::treesitter_types::runtime::maybe_grow_stack(|| <Type as ::treesitter_types::FromNode>::from_node(
8319 child,
8320 src,
8321 ))?,
8322 )
8323 })()
8324 .is_ok()
8325 {
8326 fallback_child = Some(candidate);
8327 break;
8328 }
8329 }
8330 if !cursor2.goto_next_sibling() {
8331 break;
8332 }
8333 }
8334 }
8335 }
8336 fallback_child.ok_or_else(|| {
8337 ::treesitter_types::ParseError::missing_field("children", node)
8338 })?
8339 };
8340 ::treesitter_types::runtime::maybe_grow_stack(|| {
8341 <Type as ::treesitter_types::FromNode>::from_node(child, src)
8342 })?
8343 },
8344 })
8345 }
8346}
8347impl ::treesitter_types::Spanned for ReadonlyType<'_> {
8348 fn span(&self) -> ::treesitter_types::Span {
8349 self.span
8350 }
8351}
8352#[derive(Debug, Clone, PartialEq, Eq)]
8353pub struct Regex<'tree> {
8354 pub span: ::treesitter_types::Span,
8355 pub flags: ::core::option::Option<RegexFlags<'tree>>,
8356 pub pattern: RegexPattern<'tree>,
8357}
8358impl<'tree> ::treesitter_types::FromNode<'tree> for Regex<'tree> {
8359 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8360 fn from_node(
8361 node: ::treesitter_types::tree_sitter::Node<'tree>,
8362 src: &'tree [u8],
8363 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8364 debug_assert_eq!(node.kind(), "regex");
8365 Ok(Self {
8366 span: ::treesitter_types::Span::from(node),
8367 flags: match node.child_by_field_name("flags") {
8368 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
8369 <RegexFlags as ::treesitter_types::FromNode>::from_node(child, src)
8370 })?),
8371 None => None,
8372 },
8373 pattern: {
8374 let child = node.child_by_field_name("pattern").ok_or_else(|| {
8375 ::treesitter_types::ParseError::missing_field("pattern", node)
8376 })?;
8377 ::treesitter_types::runtime::maybe_grow_stack(|| {
8378 <RegexPattern as ::treesitter_types::FromNode>::from_node(child, src)
8379 })?
8380 },
8381 })
8382 }
8383}
8384impl ::treesitter_types::Spanned for Regex<'_> {
8385 fn span(&self) -> ::treesitter_types::Span {
8386 self.span
8387 }
8388}
8389#[derive(Debug, Clone, PartialEq, Eq)]
8390pub struct RequiredParameter<'tree> {
8391 pub span: ::treesitter_types::Span,
8392 pub decorator: ::std::vec::Vec<Decorator<'tree>>,
8393 pub name: ::core::option::Option<RequiredParameterName<'tree>>,
8394 pub pattern: ::core::option::Option<RequiredParameterPattern<'tree>>,
8395 pub r#type: ::core::option::Option<TypeAnnotation<'tree>>,
8396 pub value: ::core::option::Option<Expression<'tree>>,
8397 pub children: ::std::vec::Vec<RequiredParameterChildren<'tree>>,
8398}
8399impl<'tree> ::treesitter_types::FromNode<'tree> for RequiredParameter<'tree> {
8400 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8401 fn from_node(
8402 node: ::treesitter_types::tree_sitter::Node<'tree>,
8403 src: &'tree [u8],
8404 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8405 debug_assert_eq!(node.kind(), "required_parameter");
8406 Ok(Self {
8407 span: ::treesitter_types::Span::from(node),
8408 decorator: {
8409 let mut cursor = node.walk();
8410 let mut items = ::std::vec::Vec::new();
8411 for child in node.children_by_field_name("decorator", &mut cursor) {
8412 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
8413 <Decorator as ::treesitter_types::FromNode>::from_node(child, src)
8414 })?);
8415 }
8416 items
8417 },
8418 name: match node.child_by_field_name("name") {
8419 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
8420 <RequiredParameterName as ::treesitter_types::FromNode>::from_node(child, src)
8421 })?),
8422 None => None,
8423 },
8424 pattern: match node.child_by_field_name("pattern") {
8425 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
8426 <RequiredParameterPattern as ::treesitter_types::FromNode>::from_node(
8427 child, src,
8428 )
8429 })?),
8430 None => None,
8431 },
8432 r#type: match node.child_by_field_name("type") {
8433 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
8434 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(child, src)
8435 })?),
8436 None => None,
8437 },
8438 value: match node.child_by_field_name("value") {
8439 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
8440 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
8441 })?),
8442 None => None,
8443 },
8444 children: {
8445 #[allow(clippy::suspicious_else_formatting)]
8446 let non_field_children = {
8447 let mut cursor = node.walk();
8448 let mut result = ::std::vec::Vec::new();
8449 if cursor.goto_first_child() {
8450 loop {
8451 if cursor.field_name().is_none()
8452 && cursor.node().is_named()
8453 && !cursor.node().is_extra()
8454 {
8455 result.push(cursor.node());
8456 }
8457 if !cursor.goto_next_sibling() {
8458 break;
8459 }
8460 }
8461 }
8462 result
8463 };
8464 let mut items = ::std::vec::Vec::new();
8465 for child in non_field_children {
8466 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
8467 <RequiredParameterChildren as ::treesitter_types::FromNode>::from_node(
8468 child, src,
8469 )
8470 })?);
8471 }
8472 items
8473 },
8474 })
8475 }
8476}
8477impl ::treesitter_types::Spanned for RequiredParameter<'_> {
8478 fn span(&self) -> ::treesitter_types::Span {
8479 self.span
8480 }
8481}
8482#[derive(Debug, Clone, PartialEq, Eq)]
8483pub struct RestPattern<'tree> {
8484 pub span: ::treesitter_types::Span,
8485 pub children: RestPatternChildren<'tree>,
8486}
8487impl<'tree> ::treesitter_types::FromNode<'tree> for RestPattern<'tree> {
8488 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8489 fn from_node(
8490 node: ::treesitter_types::tree_sitter::Node<'tree>,
8491 src: &'tree [u8],
8492 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8493 debug_assert_eq!(node.kind(), "rest_pattern");
8494 Ok(Self {
8495 span: ::treesitter_types::Span::from(node),
8496 children: {
8497 #[allow(clippy::suspicious_else_formatting)]
8498 let non_field_children = {
8499 let mut cursor = node.walk();
8500 let mut result = ::std::vec::Vec::new();
8501 if cursor.goto_first_child() {
8502 loop {
8503 if cursor.field_name().is_none()
8504 && cursor.node().is_named()
8505 && !cursor.node().is_extra()
8506 {
8507 result.push(cursor.node());
8508 }
8509 if !cursor.goto_next_sibling() {
8510 break;
8511 }
8512 }
8513 }
8514 result
8515 };
8516 let child = if let Some(&c) = non_field_children.first() {
8517 c
8518 } else {
8519 let mut fallback_cursor = node.walk();
8520 let mut fallback_child = None;
8521 if fallback_cursor.goto_first_child() {
8522 loop {
8523 if fallback_cursor.field_name().is_none()
8524 && !fallback_cursor.node().is_extra()
8525 {
8526 let candidate = fallback_cursor.node();
8527 #[allow(clippy::needless_question_mark)]
8528 if (|| -> ::core::result::Result<
8529 _,
8530 ::treesitter_types::ParseError,
8531 > {
8532 let child = candidate;
8533 Ok(
8534 ::treesitter_types::runtime::maybe_grow_stack(|| <RestPatternChildren as ::treesitter_types::FromNode>::from_node(
8535 child,
8536 src,
8537 ))?,
8538 )
8539 })()
8540 .is_ok()
8541 {
8542 fallback_child = Some(candidate);
8543 break;
8544 }
8545 }
8546 if !fallback_cursor.goto_next_sibling() {
8547 break;
8548 }
8549 }
8550 }
8551 if fallback_child.is_none() {
8552 let mut cursor2 = node.walk();
8553 if cursor2.goto_first_child() {
8554 loop {
8555 if cursor2.node().is_named() && !cursor2.node().is_extra() {
8556 let candidate = cursor2.node();
8557 #[allow(clippy::needless_question_mark)]
8558 if (|| -> ::core::result::Result<
8559 _,
8560 ::treesitter_types::ParseError,
8561 > {
8562 let child = candidate;
8563 Ok(
8564 ::treesitter_types::runtime::maybe_grow_stack(|| <RestPatternChildren as ::treesitter_types::FromNode>::from_node(
8565 child,
8566 src,
8567 ))?,
8568 )
8569 })()
8570 .is_ok()
8571 {
8572 fallback_child = Some(candidate);
8573 break;
8574 }
8575 }
8576 if !cursor2.goto_next_sibling() {
8577 break;
8578 }
8579 }
8580 }
8581 }
8582 fallback_child.ok_or_else(|| {
8583 ::treesitter_types::ParseError::missing_field("children", node)
8584 })?
8585 };
8586 ::treesitter_types::runtime::maybe_grow_stack(|| {
8587 <RestPatternChildren as ::treesitter_types::FromNode>::from_node(child, src)
8588 })?
8589 },
8590 })
8591 }
8592}
8593impl ::treesitter_types::Spanned for RestPattern<'_> {
8594 fn span(&self) -> ::treesitter_types::Span {
8595 self.span
8596 }
8597}
8598#[derive(Debug, Clone, PartialEq, Eq)]
8599pub struct RestType<'tree> {
8600 pub span: ::treesitter_types::Span,
8601 pub children: Type<'tree>,
8602}
8603impl<'tree> ::treesitter_types::FromNode<'tree> for RestType<'tree> {
8604 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8605 fn from_node(
8606 node: ::treesitter_types::tree_sitter::Node<'tree>,
8607 src: &'tree [u8],
8608 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8609 debug_assert_eq!(node.kind(), "rest_type");
8610 Ok(Self {
8611 span: ::treesitter_types::Span::from(node),
8612 children: {
8613 #[allow(clippy::suspicious_else_formatting)]
8614 let non_field_children = {
8615 let mut cursor = node.walk();
8616 let mut result = ::std::vec::Vec::new();
8617 if cursor.goto_first_child() {
8618 loop {
8619 if cursor.field_name().is_none()
8620 && cursor.node().is_named()
8621 && !cursor.node().is_extra()
8622 {
8623 result.push(cursor.node());
8624 }
8625 if !cursor.goto_next_sibling() {
8626 break;
8627 }
8628 }
8629 }
8630 result
8631 };
8632 let child = if let Some(&c) = non_field_children.first() {
8633 c
8634 } else {
8635 let mut fallback_cursor = node.walk();
8636 let mut fallback_child = None;
8637 if fallback_cursor.goto_first_child() {
8638 loop {
8639 if fallback_cursor.field_name().is_none()
8640 && !fallback_cursor.node().is_extra()
8641 {
8642 let candidate = fallback_cursor.node();
8643 #[allow(clippy::needless_question_mark)]
8644 if (|| -> ::core::result::Result<
8645 _,
8646 ::treesitter_types::ParseError,
8647 > {
8648 let child = candidate;
8649 Ok(
8650 ::treesitter_types::runtime::maybe_grow_stack(|| <Type as ::treesitter_types::FromNode>::from_node(
8651 child,
8652 src,
8653 ))?,
8654 )
8655 })()
8656 .is_ok()
8657 {
8658 fallback_child = Some(candidate);
8659 break;
8660 }
8661 }
8662 if !fallback_cursor.goto_next_sibling() {
8663 break;
8664 }
8665 }
8666 }
8667 if fallback_child.is_none() {
8668 let mut cursor2 = node.walk();
8669 if cursor2.goto_first_child() {
8670 loop {
8671 if cursor2.node().is_named() && !cursor2.node().is_extra() {
8672 let candidate = cursor2.node();
8673 #[allow(clippy::needless_question_mark)]
8674 if (|| -> ::core::result::Result<
8675 _,
8676 ::treesitter_types::ParseError,
8677 > {
8678 let child = candidate;
8679 Ok(
8680 ::treesitter_types::runtime::maybe_grow_stack(|| <Type as ::treesitter_types::FromNode>::from_node(
8681 child,
8682 src,
8683 ))?,
8684 )
8685 })()
8686 .is_ok()
8687 {
8688 fallback_child = Some(candidate);
8689 break;
8690 }
8691 }
8692 if !cursor2.goto_next_sibling() {
8693 break;
8694 }
8695 }
8696 }
8697 }
8698 fallback_child.ok_or_else(|| {
8699 ::treesitter_types::ParseError::missing_field("children", node)
8700 })?
8701 };
8702 ::treesitter_types::runtime::maybe_grow_stack(|| {
8703 <Type as ::treesitter_types::FromNode>::from_node(child, src)
8704 })?
8705 },
8706 })
8707 }
8708}
8709impl ::treesitter_types::Spanned for RestType<'_> {
8710 fn span(&self) -> ::treesitter_types::Span {
8711 self.span
8712 }
8713}
8714#[derive(Debug, Clone, PartialEq, Eq)]
8715pub struct ReturnStatement<'tree> {
8716 pub span: ::treesitter_types::Span,
8717 pub children: ::core::option::Option<ReturnStatementChildren<'tree>>,
8718}
8719impl<'tree> ::treesitter_types::FromNode<'tree> for ReturnStatement<'tree> {
8720 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8721 fn from_node(
8722 node: ::treesitter_types::tree_sitter::Node<'tree>,
8723 src: &'tree [u8],
8724 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8725 debug_assert_eq!(node.kind(), "return_statement");
8726 Ok(Self {
8727 span: ::treesitter_types::Span::from(node),
8728 children: {
8729 #[allow(clippy::suspicious_else_formatting)]
8730 let non_field_children = {
8731 let mut cursor = node.walk();
8732 let mut result = ::std::vec::Vec::new();
8733 if cursor.goto_first_child() {
8734 loop {
8735 if cursor.field_name().is_none()
8736 && cursor.node().is_named()
8737 && !cursor.node().is_extra()
8738 {
8739 result.push(cursor.node());
8740 }
8741 if !cursor.goto_next_sibling() {
8742 break;
8743 }
8744 }
8745 }
8746 result
8747 };
8748 match non_field_children.first() {
8749 Some(&child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
8750 <ReturnStatementChildren as ::treesitter_types::FromNode>::from_node(
8751 child, src,
8752 )
8753 })?),
8754 None => None,
8755 }
8756 },
8757 })
8758 }
8759}
8760impl ::treesitter_types::Spanned for ReturnStatement<'_> {
8761 fn span(&self) -> ::treesitter_types::Span {
8762 self.span
8763 }
8764}
8765#[derive(Debug, Clone, PartialEq, Eq)]
8766pub struct SatisfiesExpression<'tree> {
8767 pub span: ::treesitter_types::Span,
8768 pub children: ::std::vec::Vec<SatisfiesExpressionChildren<'tree>>,
8769}
8770impl<'tree> ::treesitter_types::FromNode<'tree> for SatisfiesExpression<'tree> {
8771 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8772 fn from_node(
8773 node: ::treesitter_types::tree_sitter::Node<'tree>,
8774 src: &'tree [u8],
8775 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8776 debug_assert_eq!(node.kind(), "satisfies_expression");
8777 Ok(Self {
8778 span: ::treesitter_types::Span::from(node),
8779 children: {
8780 #[allow(clippy::suspicious_else_formatting)]
8781 let non_field_children = {
8782 let mut cursor = node.walk();
8783 let mut result = ::std::vec::Vec::new();
8784 if cursor.goto_first_child() {
8785 loop {
8786 if cursor.field_name().is_none()
8787 && cursor.node().is_named()
8788 && !cursor.node().is_extra()
8789 {
8790 result.push(cursor.node());
8791 }
8792 if !cursor.goto_next_sibling() {
8793 break;
8794 }
8795 }
8796 }
8797 result
8798 };
8799 let mut items = ::std::vec::Vec::new();
8800 for child in non_field_children {
8801 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
8802 <SatisfiesExpressionChildren as ::treesitter_types::FromNode>::from_node(
8803 child, src,
8804 )
8805 })?);
8806 }
8807 items
8808 },
8809 })
8810 }
8811}
8812impl ::treesitter_types::Spanned for SatisfiesExpression<'_> {
8813 fn span(&self) -> ::treesitter_types::Span {
8814 self.span
8815 }
8816}
8817#[derive(Debug, Clone, PartialEq, Eq)]
8818pub struct SequenceExpression<'tree> {
8819 pub span: ::treesitter_types::Span,
8820 pub children: ::std::vec::Vec<Expression<'tree>>,
8821}
8822impl<'tree> ::treesitter_types::FromNode<'tree> for SequenceExpression<'tree> {
8823 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8824 fn from_node(
8825 node: ::treesitter_types::tree_sitter::Node<'tree>,
8826 src: &'tree [u8],
8827 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8828 debug_assert_eq!(node.kind(), "sequence_expression");
8829 Ok(Self {
8830 span: ::treesitter_types::Span::from(node),
8831 children: {
8832 #[allow(clippy::suspicious_else_formatting)]
8833 let non_field_children = {
8834 let mut cursor = node.walk();
8835 let mut result = ::std::vec::Vec::new();
8836 if cursor.goto_first_child() {
8837 loop {
8838 if cursor.field_name().is_none()
8839 && cursor.node().is_named()
8840 && !cursor.node().is_extra()
8841 {
8842 result.push(cursor.node());
8843 }
8844 if !cursor.goto_next_sibling() {
8845 break;
8846 }
8847 }
8848 }
8849 result
8850 };
8851 let mut items = ::std::vec::Vec::new();
8852 for child in non_field_children {
8853 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
8854 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
8855 })?);
8856 }
8857 items
8858 },
8859 })
8860 }
8861}
8862impl ::treesitter_types::Spanned for SequenceExpression<'_> {
8863 fn span(&self) -> ::treesitter_types::Span {
8864 self.span
8865 }
8866}
8867#[derive(Debug, Clone, PartialEq, Eq)]
8868pub struct SpreadElement<'tree> {
8869 pub span: ::treesitter_types::Span,
8870 pub children: Expression<'tree>,
8871}
8872impl<'tree> ::treesitter_types::FromNode<'tree> for SpreadElement<'tree> {
8873 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8874 fn from_node(
8875 node: ::treesitter_types::tree_sitter::Node<'tree>,
8876 src: &'tree [u8],
8877 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8878 debug_assert_eq!(node.kind(), "spread_element");
8879 Ok(Self {
8880 span: ::treesitter_types::Span::from(node),
8881 children: {
8882 #[allow(clippy::suspicious_else_formatting)]
8883 let non_field_children = {
8884 let mut cursor = node.walk();
8885 let mut result = ::std::vec::Vec::new();
8886 if cursor.goto_first_child() {
8887 loop {
8888 if cursor.field_name().is_none()
8889 && cursor.node().is_named()
8890 && !cursor.node().is_extra()
8891 {
8892 result.push(cursor.node());
8893 }
8894 if !cursor.goto_next_sibling() {
8895 break;
8896 }
8897 }
8898 }
8899 result
8900 };
8901 let child = if let Some(&c) = non_field_children.first() {
8902 c
8903 } else {
8904 let mut fallback_cursor = node.walk();
8905 let mut fallback_child = None;
8906 if fallback_cursor.goto_first_child() {
8907 loop {
8908 if fallback_cursor.field_name().is_none()
8909 && !fallback_cursor.node().is_extra()
8910 {
8911 let candidate = fallback_cursor.node();
8912 #[allow(clippy::needless_question_mark)]
8913 if (|| -> ::core::result::Result<
8914 _,
8915 ::treesitter_types::ParseError,
8916 > {
8917 let child = candidate;
8918 Ok(
8919 ::treesitter_types::runtime::maybe_grow_stack(|| <Expression as ::treesitter_types::FromNode>::from_node(
8920 child,
8921 src,
8922 ))?,
8923 )
8924 })()
8925 .is_ok()
8926 {
8927 fallback_child = Some(candidate);
8928 break;
8929 }
8930 }
8931 if !fallback_cursor.goto_next_sibling() {
8932 break;
8933 }
8934 }
8935 }
8936 if fallback_child.is_none() {
8937 let mut cursor2 = node.walk();
8938 if cursor2.goto_first_child() {
8939 loop {
8940 if cursor2.node().is_named() && !cursor2.node().is_extra() {
8941 let candidate = cursor2.node();
8942 #[allow(clippy::needless_question_mark)]
8943 if (|| -> ::core::result::Result<
8944 _,
8945 ::treesitter_types::ParseError,
8946 > {
8947 let child = candidate;
8948 Ok(
8949 ::treesitter_types::runtime::maybe_grow_stack(|| <Expression as ::treesitter_types::FromNode>::from_node(
8950 child,
8951 src,
8952 ))?,
8953 )
8954 })()
8955 .is_ok()
8956 {
8957 fallback_child = Some(candidate);
8958 break;
8959 }
8960 }
8961 if !cursor2.goto_next_sibling() {
8962 break;
8963 }
8964 }
8965 }
8966 }
8967 fallback_child.ok_or_else(|| {
8968 ::treesitter_types::ParseError::missing_field("children", node)
8969 })?
8970 };
8971 ::treesitter_types::runtime::maybe_grow_stack(|| {
8972 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
8973 })?
8974 },
8975 })
8976 }
8977}
8978impl ::treesitter_types::Spanned for SpreadElement<'_> {
8979 fn span(&self) -> ::treesitter_types::Span {
8980 self.span
8981 }
8982}
8983#[derive(Debug, Clone, PartialEq, Eq)]
8984pub struct StatementBlock<'tree> {
8985 pub span: ::treesitter_types::Span,
8986 pub children: ::std::vec::Vec<Statement<'tree>>,
8987}
8988impl<'tree> ::treesitter_types::FromNode<'tree> for StatementBlock<'tree> {
8989 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8990 fn from_node(
8991 node: ::treesitter_types::tree_sitter::Node<'tree>,
8992 src: &'tree [u8],
8993 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8994 debug_assert_eq!(node.kind(), "statement_block");
8995 Ok(Self {
8996 span: ::treesitter_types::Span::from(node),
8997 children: {
8998 #[allow(clippy::suspicious_else_formatting)]
8999 let non_field_children = {
9000 let mut cursor = node.walk();
9001 let mut result = ::std::vec::Vec::new();
9002 if cursor.goto_first_child() {
9003 loop {
9004 if cursor.field_name().is_none()
9005 && cursor.node().is_named()
9006 && !cursor.node().is_extra()
9007 {
9008 result.push(cursor.node());
9009 }
9010 if !cursor.goto_next_sibling() {
9011 break;
9012 }
9013 }
9014 }
9015 result
9016 };
9017 let mut items = ::std::vec::Vec::new();
9018 for child in non_field_children {
9019 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
9020 <Statement as ::treesitter_types::FromNode>::from_node(child, src)
9021 })?);
9022 }
9023 items
9024 },
9025 })
9026 }
9027}
9028impl ::treesitter_types::Spanned for StatementBlock<'_> {
9029 fn span(&self) -> ::treesitter_types::Span {
9030 self.span
9031 }
9032}
9033#[derive(Debug, Clone, PartialEq, Eq)]
9034pub struct String<'tree> {
9035 pub span: ::treesitter_types::Span,
9036 pub children: ::std::vec::Vec<StringChildren<'tree>>,
9037}
9038impl<'tree> ::treesitter_types::FromNode<'tree> for String<'tree> {
9039 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9040 fn from_node(
9041 node: ::treesitter_types::tree_sitter::Node<'tree>,
9042 src: &'tree [u8],
9043 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9044 debug_assert_eq!(node.kind(), "string");
9045 Ok(Self {
9046 span: ::treesitter_types::Span::from(node),
9047 children: {
9048 #[allow(clippy::suspicious_else_formatting)]
9049 let non_field_children = {
9050 let mut cursor = node.walk();
9051 let mut result = ::std::vec::Vec::new();
9052 if cursor.goto_first_child() {
9053 loop {
9054 if cursor.field_name().is_none()
9055 && cursor.node().is_named()
9056 && !cursor.node().is_extra()
9057 {
9058 result.push(cursor.node());
9059 }
9060 if !cursor.goto_next_sibling() {
9061 break;
9062 }
9063 }
9064 }
9065 result
9066 };
9067 let mut items = ::std::vec::Vec::new();
9068 for child in non_field_children {
9069 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
9070 <StringChildren as ::treesitter_types::FromNode>::from_node(child, src)
9071 })?);
9072 }
9073 items
9074 },
9075 })
9076 }
9077}
9078impl ::treesitter_types::Spanned for String<'_> {
9079 fn span(&self) -> ::treesitter_types::Span {
9080 self.span
9081 }
9082}
9083#[derive(Debug, Clone, PartialEq, Eq)]
9084pub struct SubscriptExpression<'tree> {
9085 pub span: ::treesitter_types::Span,
9086 pub index: SubscriptExpressionIndex<'tree>,
9087 pub object: Expression<'tree>,
9088 pub optional_chain: ::core::option::Option<OptionalChain<'tree>>,
9089}
9090impl<'tree> ::treesitter_types::FromNode<'tree> for SubscriptExpression<'tree> {
9091 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9092 fn from_node(
9093 node: ::treesitter_types::tree_sitter::Node<'tree>,
9094 src: &'tree [u8],
9095 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9096 debug_assert_eq!(node.kind(), "subscript_expression");
9097 Ok(Self {
9098 span: ::treesitter_types::Span::from(node),
9099 index: {
9100 let child = node
9101 .child_by_field_name("index")
9102 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("index", node))?;
9103 ::treesitter_types::runtime::maybe_grow_stack(|| {
9104 <SubscriptExpressionIndex as ::treesitter_types::FromNode>::from_node(
9105 child, src,
9106 )
9107 })?
9108 },
9109 object: {
9110 let child = node
9111 .child_by_field_name("object")
9112 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("object", node))?;
9113 ::treesitter_types::runtime::maybe_grow_stack(|| {
9114 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
9115 })?
9116 },
9117 optional_chain: match node.child_by_field_name("optional_chain") {
9118 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
9119 <OptionalChain as ::treesitter_types::FromNode>::from_node(child, src)
9120 })?),
9121 None => None,
9122 },
9123 })
9124 }
9125}
9126impl ::treesitter_types::Spanned for SubscriptExpression<'_> {
9127 fn span(&self) -> ::treesitter_types::Span {
9128 self.span
9129 }
9130}
9131#[derive(Debug, Clone, PartialEq, Eq)]
9132pub struct SwitchBody<'tree> {
9133 pub span: ::treesitter_types::Span,
9134 pub children: ::std::vec::Vec<SwitchBodyChildren<'tree>>,
9135}
9136impl<'tree> ::treesitter_types::FromNode<'tree> for SwitchBody<'tree> {
9137 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9138 fn from_node(
9139 node: ::treesitter_types::tree_sitter::Node<'tree>,
9140 src: &'tree [u8],
9141 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9142 debug_assert_eq!(node.kind(), "switch_body");
9143 Ok(Self {
9144 span: ::treesitter_types::Span::from(node),
9145 children: {
9146 #[allow(clippy::suspicious_else_formatting)]
9147 let non_field_children = {
9148 let mut cursor = node.walk();
9149 let mut result = ::std::vec::Vec::new();
9150 if cursor.goto_first_child() {
9151 loop {
9152 if cursor.field_name().is_none()
9153 && cursor.node().is_named()
9154 && !cursor.node().is_extra()
9155 {
9156 result.push(cursor.node());
9157 }
9158 if !cursor.goto_next_sibling() {
9159 break;
9160 }
9161 }
9162 }
9163 result
9164 };
9165 let mut items = ::std::vec::Vec::new();
9166 for child in non_field_children {
9167 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
9168 <SwitchBodyChildren as ::treesitter_types::FromNode>::from_node(child, src)
9169 })?);
9170 }
9171 items
9172 },
9173 })
9174 }
9175}
9176impl ::treesitter_types::Spanned for SwitchBody<'_> {
9177 fn span(&self) -> ::treesitter_types::Span {
9178 self.span
9179 }
9180}
9181#[derive(Debug, Clone, PartialEq, Eq)]
9182pub struct SwitchCase<'tree> {
9183 pub span: ::treesitter_types::Span,
9184 pub body: ::std::vec::Vec<Statement<'tree>>,
9185 pub value: SwitchCaseValue<'tree>,
9186}
9187impl<'tree> ::treesitter_types::FromNode<'tree> for SwitchCase<'tree> {
9188 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9189 fn from_node(
9190 node: ::treesitter_types::tree_sitter::Node<'tree>,
9191 src: &'tree [u8],
9192 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9193 debug_assert_eq!(node.kind(), "switch_case");
9194 Ok(Self {
9195 span: ::treesitter_types::Span::from(node),
9196 body: {
9197 let mut cursor = node.walk();
9198 let mut items = ::std::vec::Vec::new();
9199 for child in node.children_by_field_name("body", &mut cursor) {
9200 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
9201 <Statement as ::treesitter_types::FromNode>::from_node(child, src)
9202 })?);
9203 }
9204 items
9205 },
9206 value: {
9207 let child = node
9208 .child_by_field_name("value")
9209 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
9210 ::treesitter_types::runtime::maybe_grow_stack(|| {
9211 <SwitchCaseValue as ::treesitter_types::FromNode>::from_node(child, src)
9212 })?
9213 },
9214 })
9215 }
9216}
9217impl ::treesitter_types::Spanned for SwitchCase<'_> {
9218 fn span(&self) -> ::treesitter_types::Span {
9219 self.span
9220 }
9221}
9222#[derive(Debug, Clone, PartialEq, Eq)]
9223pub struct SwitchDefault<'tree> {
9224 pub span: ::treesitter_types::Span,
9225 pub body: ::std::vec::Vec<Statement<'tree>>,
9226}
9227impl<'tree> ::treesitter_types::FromNode<'tree> for SwitchDefault<'tree> {
9228 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9229 fn from_node(
9230 node: ::treesitter_types::tree_sitter::Node<'tree>,
9231 src: &'tree [u8],
9232 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9233 debug_assert_eq!(node.kind(), "switch_default");
9234 Ok(Self {
9235 span: ::treesitter_types::Span::from(node),
9236 body: {
9237 let mut cursor = node.walk();
9238 let mut items = ::std::vec::Vec::new();
9239 for child in node.children_by_field_name("body", &mut cursor) {
9240 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
9241 <Statement as ::treesitter_types::FromNode>::from_node(child, src)
9242 })?);
9243 }
9244 items
9245 },
9246 })
9247 }
9248}
9249impl ::treesitter_types::Spanned for SwitchDefault<'_> {
9250 fn span(&self) -> ::treesitter_types::Span {
9251 self.span
9252 }
9253}
9254#[derive(Debug, Clone, PartialEq, Eq)]
9255pub struct SwitchStatement<'tree> {
9256 pub span: ::treesitter_types::Span,
9257 pub body: SwitchBody<'tree>,
9258 pub value: ParenthesizedExpression<'tree>,
9259}
9260impl<'tree> ::treesitter_types::FromNode<'tree> for SwitchStatement<'tree> {
9261 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9262 fn from_node(
9263 node: ::treesitter_types::tree_sitter::Node<'tree>,
9264 src: &'tree [u8],
9265 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9266 debug_assert_eq!(node.kind(), "switch_statement");
9267 Ok(Self {
9268 span: ::treesitter_types::Span::from(node),
9269 body: {
9270 let child = node
9271 .child_by_field_name("body")
9272 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
9273 ::treesitter_types::runtime::maybe_grow_stack(|| {
9274 <SwitchBody as ::treesitter_types::FromNode>::from_node(child, src)
9275 })?
9276 },
9277 value: {
9278 let child = node
9279 .child_by_field_name("value")
9280 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
9281 ::treesitter_types::runtime::maybe_grow_stack(|| {
9282 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(child, src)
9283 })?
9284 },
9285 })
9286 }
9287}
9288impl ::treesitter_types::Spanned for SwitchStatement<'_> {
9289 fn span(&self) -> ::treesitter_types::Span {
9290 self.span
9291 }
9292}
9293#[derive(Debug, Clone, PartialEq, Eq)]
9294pub struct TemplateLiteralType<'tree> {
9295 pub span: ::treesitter_types::Span,
9296 pub children: ::std::vec::Vec<TemplateLiteralTypeChildren<'tree>>,
9297}
9298impl<'tree> ::treesitter_types::FromNode<'tree> for TemplateLiteralType<'tree> {
9299 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9300 fn from_node(
9301 node: ::treesitter_types::tree_sitter::Node<'tree>,
9302 src: &'tree [u8],
9303 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9304 debug_assert_eq!(node.kind(), "template_literal_type");
9305 Ok(Self {
9306 span: ::treesitter_types::Span::from(node),
9307 children: {
9308 #[allow(clippy::suspicious_else_formatting)]
9309 let non_field_children = {
9310 let mut cursor = node.walk();
9311 let mut result = ::std::vec::Vec::new();
9312 if cursor.goto_first_child() {
9313 loop {
9314 if cursor.field_name().is_none()
9315 && cursor.node().is_named()
9316 && !cursor.node().is_extra()
9317 {
9318 result.push(cursor.node());
9319 }
9320 if !cursor.goto_next_sibling() {
9321 break;
9322 }
9323 }
9324 }
9325 result
9326 };
9327 let mut items = ::std::vec::Vec::new();
9328 for child in non_field_children {
9329 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
9330 <TemplateLiteralTypeChildren as ::treesitter_types::FromNode>::from_node(
9331 child, src,
9332 )
9333 })?);
9334 }
9335 items
9336 },
9337 })
9338 }
9339}
9340impl ::treesitter_types::Spanned for TemplateLiteralType<'_> {
9341 fn span(&self) -> ::treesitter_types::Span {
9342 self.span
9343 }
9344}
9345#[derive(Debug, Clone, PartialEq, Eq)]
9346pub struct TemplateString<'tree> {
9347 pub span: ::treesitter_types::Span,
9348 pub children: ::std::vec::Vec<TemplateStringChildren<'tree>>,
9349}
9350impl<'tree> ::treesitter_types::FromNode<'tree> for TemplateString<'tree> {
9351 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9352 fn from_node(
9353 node: ::treesitter_types::tree_sitter::Node<'tree>,
9354 src: &'tree [u8],
9355 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9356 debug_assert_eq!(node.kind(), "template_string");
9357 Ok(Self {
9358 span: ::treesitter_types::Span::from(node),
9359 children: {
9360 #[allow(clippy::suspicious_else_formatting)]
9361 let non_field_children = {
9362 let mut cursor = node.walk();
9363 let mut result = ::std::vec::Vec::new();
9364 if cursor.goto_first_child() {
9365 loop {
9366 if cursor.field_name().is_none()
9367 && cursor.node().is_named()
9368 && !cursor.node().is_extra()
9369 {
9370 result.push(cursor.node());
9371 }
9372 if !cursor.goto_next_sibling() {
9373 break;
9374 }
9375 }
9376 }
9377 result
9378 };
9379 let mut items = ::std::vec::Vec::new();
9380 for child in non_field_children {
9381 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
9382 <TemplateStringChildren as ::treesitter_types::FromNode>::from_node(
9383 child, src,
9384 )
9385 })?);
9386 }
9387 items
9388 },
9389 })
9390 }
9391}
9392impl ::treesitter_types::Spanned for TemplateString<'_> {
9393 fn span(&self) -> ::treesitter_types::Span {
9394 self.span
9395 }
9396}
9397#[derive(Debug, Clone, PartialEq, Eq)]
9398pub struct TemplateSubstitution<'tree> {
9399 pub span: ::treesitter_types::Span,
9400 pub children: TemplateSubstitutionChildren<'tree>,
9401}
9402impl<'tree> ::treesitter_types::FromNode<'tree> for TemplateSubstitution<'tree> {
9403 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9404 fn from_node(
9405 node: ::treesitter_types::tree_sitter::Node<'tree>,
9406 src: &'tree [u8],
9407 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9408 debug_assert_eq!(node.kind(), "template_substitution");
9409 Ok(Self {
9410 span: ::treesitter_types::Span::from(node),
9411 children: {
9412 #[allow(clippy::suspicious_else_formatting)]
9413 let non_field_children = {
9414 let mut cursor = node.walk();
9415 let mut result = ::std::vec::Vec::new();
9416 if cursor.goto_first_child() {
9417 loop {
9418 if cursor.field_name().is_none()
9419 && cursor.node().is_named()
9420 && !cursor.node().is_extra()
9421 {
9422 result.push(cursor.node());
9423 }
9424 if !cursor.goto_next_sibling() {
9425 break;
9426 }
9427 }
9428 }
9429 result
9430 };
9431 let child = if let Some(&c) = non_field_children.first() {
9432 c
9433 } else {
9434 let mut fallback_cursor = node.walk();
9435 let mut fallback_child = None;
9436 if fallback_cursor.goto_first_child() {
9437 loop {
9438 if fallback_cursor.field_name().is_none()
9439 && !fallback_cursor.node().is_extra()
9440 {
9441 let candidate = fallback_cursor.node();
9442 #[allow(clippy::needless_question_mark)]
9443 if (|| -> ::core::result::Result<
9444 _,
9445 ::treesitter_types::ParseError,
9446 > {
9447 let child = candidate;
9448 Ok(
9449 ::treesitter_types::runtime::maybe_grow_stack(|| <TemplateSubstitutionChildren as ::treesitter_types::FromNode>::from_node(
9450 child,
9451 src,
9452 ))?,
9453 )
9454 })()
9455 .is_ok()
9456 {
9457 fallback_child = Some(candidate);
9458 break;
9459 }
9460 }
9461 if !fallback_cursor.goto_next_sibling() {
9462 break;
9463 }
9464 }
9465 }
9466 if fallback_child.is_none() {
9467 let mut cursor2 = node.walk();
9468 if cursor2.goto_first_child() {
9469 loop {
9470 if cursor2.node().is_named() && !cursor2.node().is_extra() {
9471 let candidate = cursor2.node();
9472 #[allow(clippy::needless_question_mark)]
9473 if (|| -> ::core::result::Result<
9474 _,
9475 ::treesitter_types::ParseError,
9476 > {
9477 let child = candidate;
9478 Ok(
9479 ::treesitter_types::runtime::maybe_grow_stack(|| <TemplateSubstitutionChildren as ::treesitter_types::FromNode>::from_node(
9480 child,
9481 src,
9482 ))?,
9483 )
9484 })()
9485 .is_ok()
9486 {
9487 fallback_child = Some(candidate);
9488 break;
9489 }
9490 }
9491 if !cursor2.goto_next_sibling() {
9492 break;
9493 }
9494 }
9495 }
9496 }
9497 fallback_child.ok_or_else(|| {
9498 ::treesitter_types::ParseError::missing_field("children", node)
9499 })?
9500 };
9501 ::treesitter_types::runtime::maybe_grow_stack(|| {
9502 <TemplateSubstitutionChildren as ::treesitter_types::FromNode>::from_node(
9503 child, src,
9504 )
9505 })?
9506 },
9507 })
9508 }
9509}
9510impl ::treesitter_types::Spanned for TemplateSubstitution<'_> {
9511 fn span(&self) -> ::treesitter_types::Span {
9512 self.span
9513 }
9514}
9515#[derive(Debug, Clone, PartialEq, Eq)]
9516pub struct TemplateType<'tree> {
9517 pub span: ::treesitter_types::Span,
9518 pub children: TemplateTypeChildren<'tree>,
9519}
9520impl<'tree> ::treesitter_types::FromNode<'tree> for TemplateType<'tree> {
9521 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9522 fn from_node(
9523 node: ::treesitter_types::tree_sitter::Node<'tree>,
9524 src: &'tree [u8],
9525 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9526 debug_assert_eq!(node.kind(), "template_type");
9527 Ok(Self {
9528 span: ::treesitter_types::Span::from(node),
9529 children: {
9530 #[allow(clippy::suspicious_else_formatting)]
9531 let non_field_children = {
9532 let mut cursor = node.walk();
9533 let mut result = ::std::vec::Vec::new();
9534 if cursor.goto_first_child() {
9535 loop {
9536 if cursor.field_name().is_none()
9537 && cursor.node().is_named()
9538 && !cursor.node().is_extra()
9539 {
9540 result.push(cursor.node());
9541 }
9542 if !cursor.goto_next_sibling() {
9543 break;
9544 }
9545 }
9546 }
9547 result
9548 };
9549 let child = if let Some(&c) = non_field_children.first() {
9550 c
9551 } else {
9552 let mut fallback_cursor = node.walk();
9553 let mut fallback_child = None;
9554 if fallback_cursor.goto_first_child() {
9555 loop {
9556 if fallback_cursor.field_name().is_none()
9557 && !fallback_cursor.node().is_extra()
9558 {
9559 let candidate = fallback_cursor.node();
9560 #[allow(clippy::needless_question_mark)]
9561 if (|| -> ::core::result::Result<
9562 _,
9563 ::treesitter_types::ParseError,
9564 > {
9565 let child = candidate;
9566 Ok(
9567 ::treesitter_types::runtime::maybe_grow_stack(|| <TemplateTypeChildren as ::treesitter_types::FromNode>::from_node(
9568 child,
9569 src,
9570 ))?,
9571 )
9572 })()
9573 .is_ok()
9574 {
9575 fallback_child = Some(candidate);
9576 break;
9577 }
9578 }
9579 if !fallback_cursor.goto_next_sibling() {
9580 break;
9581 }
9582 }
9583 }
9584 if fallback_child.is_none() {
9585 let mut cursor2 = node.walk();
9586 if cursor2.goto_first_child() {
9587 loop {
9588 if cursor2.node().is_named() && !cursor2.node().is_extra() {
9589 let candidate = cursor2.node();
9590 #[allow(clippy::needless_question_mark)]
9591 if (|| -> ::core::result::Result<
9592 _,
9593 ::treesitter_types::ParseError,
9594 > {
9595 let child = candidate;
9596 Ok(
9597 ::treesitter_types::runtime::maybe_grow_stack(|| <TemplateTypeChildren as ::treesitter_types::FromNode>::from_node(
9598 child,
9599 src,
9600 ))?,
9601 )
9602 })()
9603 .is_ok()
9604 {
9605 fallback_child = Some(candidate);
9606 break;
9607 }
9608 }
9609 if !cursor2.goto_next_sibling() {
9610 break;
9611 }
9612 }
9613 }
9614 }
9615 fallback_child.ok_or_else(|| {
9616 ::treesitter_types::ParseError::missing_field("children", node)
9617 })?
9618 };
9619 ::treesitter_types::runtime::maybe_grow_stack(|| {
9620 <TemplateTypeChildren as ::treesitter_types::FromNode>::from_node(child, src)
9621 })?
9622 },
9623 })
9624 }
9625}
9626impl ::treesitter_types::Spanned for TemplateType<'_> {
9627 fn span(&self) -> ::treesitter_types::Span {
9628 self.span
9629 }
9630}
9631#[derive(Debug, Clone, PartialEq, Eq)]
9632pub struct TernaryExpression<'tree> {
9633 pub span: ::treesitter_types::Span,
9634 pub alternative: Expression<'tree>,
9635 pub condition: Expression<'tree>,
9636 pub consequence: Expression<'tree>,
9637}
9638impl<'tree> ::treesitter_types::FromNode<'tree> for TernaryExpression<'tree> {
9639 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9640 fn from_node(
9641 node: ::treesitter_types::tree_sitter::Node<'tree>,
9642 src: &'tree [u8],
9643 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9644 debug_assert_eq!(node.kind(), "ternary_expression");
9645 Ok(Self {
9646 span: ::treesitter_types::Span::from(node),
9647 alternative: {
9648 let child = node.child_by_field_name("alternative").ok_or_else(|| {
9649 ::treesitter_types::ParseError::missing_field("alternative", node)
9650 })?;
9651 ::treesitter_types::runtime::maybe_grow_stack(|| {
9652 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
9653 })?
9654 },
9655 condition: {
9656 let child = node.child_by_field_name("condition").ok_or_else(|| {
9657 ::treesitter_types::ParseError::missing_field("condition", node)
9658 })?;
9659 ::treesitter_types::runtime::maybe_grow_stack(|| {
9660 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
9661 })?
9662 },
9663 consequence: {
9664 let child = node.child_by_field_name("consequence").ok_or_else(|| {
9665 ::treesitter_types::ParseError::missing_field("consequence", node)
9666 })?;
9667 ::treesitter_types::runtime::maybe_grow_stack(|| {
9668 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
9669 })?
9670 },
9671 })
9672 }
9673}
9674impl ::treesitter_types::Spanned for TernaryExpression<'_> {
9675 fn span(&self) -> ::treesitter_types::Span {
9676 self.span
9677 }
9678}
9679#[derive(Debug, Clone, PartialEq, Eq)]
9680pub struct ThrowStatement<'tree> {
9681 pub span: ::treesitter_types::Span,
9682 pub children: ThrowStatementChildren<'tree>,
9683}
9684impl<'tree> ::treesitter_types::FromNode<'tree> for ThrowStatement<'tree> {
9685 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9686 fn from_node(
9687 node: ::treesitter_types::tree_sitter::Node<'tree>,
9688 src: &'tree [u8],
9689 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9690 debug_assert_eq!(node.kind(), "throw_statement");
9691 Ok(Self {
9692 span: ::treesitter_types::Span::from(node),
9693 children: {
9694 #[allow(clippy::suspicious_else_formatting)]
9695 let non_field_children = {
9696 let mut cursor = node.walk();
9697 let mut result = ::std::vec::Vec::new();
9698 if cursor.goto_first_child() {
9699 loop {
9700 if cursor.field_name().is_none()
9701 && cursor.node().is_named()
9702 && !cursor.node().is_extra()
9703 {
9704 result.push(cursor.node());
9705 }
9706 if !cursor.goto_next_sibling() {
9707 break;
9708 }
9709 }
9710 }
9711 result
9712 };
9713 let child = if let Some(&c) = non_field_children.first() {
9714 c
9715 } else {
9716 let mut fallback_cursor = node.walk();
9717 let mut fallback_child = None;
9718 if fallback_cursor.goto_first_child() {
9719 loop {
9720 if fallback_cursor.field_name().is_none()
9721 && !fallback_cursor.node().is_extra()
9722 {
9723 let candidate = fallback_cursor.node();
9724 #[allow(clippy::needless_question_mark)]
9725 if (|| -> ::core::result::Result<
9726 _,
9727 ::treesitter_types::ParseError,
9728 > {
9729 let child = candidate;
9730 Ok(
9731 ::treesitter_types::runtime::maybe_grow_stack(|| <ThrowStatementChildren as ::treesitter_types::FromNode>::from_node(
9732 child,
9733 src,
9734 ))?,
9735 )
9736 })()
9737 .is_ok()
9738 {
9739 fallback_child = Some(candidate);
9740 break;
9741 }
9742 }
9743 if !fallback_cursor.goto_next_sibling() {
9744 break;
9745 }
9746 }
9747 }
9748 if fallback_child.is_none() {
9749 let mut cursor2 = node.walk();
9750 if cursor2.goto_first_child() {
9751 loop {
9752 if cursor2.node().is_named() && !cursor2.node().is_extra() {
9753 let candidate = cursor2.node();
9754 #[allow(clippy::needless_question_mark)]
9755 if (|| -> ::core::result::Result<
9756 _,
9757 ::treesitter_types::ParseError,
9758 > {
9759 let child = candidate;
9760 Ok(
9761 ::treesitter_types::runtime::maybe_grow_stack(|| <ThrowStatementChildren as ::treesitter_types::FromNode>::from_node(
9762 child,
9763 src,
9764 ))?,
9765 )
9766 })()
9767 .is_ok()
9768 {
9769 fallback_child = Some(candidate);
9770 break;
9771 }
9772 }
9773 if !cursor2.goto_next_sibling() {
9774 break;
9775 }
9776 }
9777 }
9778 }
9779 fallback_child.ok_or_else(|| {
9780 ::treesitter_types::ParseError::missing_field("children", node)
9781 })?
9782 };
9783 ::treesitter_types::runtime::maybe_grow_stack(|| {
9784 <ThrowStatementChildren as ::treesitter_types::FromNode>::from_node(child, src)
9785 })?
9786 },
9787 })
9788 }
9789}
9790impl ::treesitter_types::Spanned for ThrowStatement<'_> {
9791 fn span(&self) -> ::treesitter_types::Span {
9792 self.span
9793 }
9794}
9795#[derive(Debug, Clone, PartialEq, Eq)]
9796pub struct TryStatement<'tree> {
9797 pub span: ::treesitter_types::Span,
9798 pub body: StatementBlock<'tree>,
9799 pub finalizer: ::core::option::Option<FinallyClause<'tree>>,
9800 pub handler: ::core::option::Option<CatchClause<'tree>>,
9801}
9802impl<'tree> ::treesitter_types::FromNode<'tree> for TryStatement<'tree> {
9803 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9804 fn from_node(
9805 node: ::treesitter_types::tree_sitter::Node<'tree>,
9806 src: &'tree [u8],
9807 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9808 debug_assert_eq!(node.kind(), "try_statement");
9809 Ok(Self {
9810 span: ::treesitter_types::Span::from(node),
9811 body: {
9812 let child = node
9813 .child_by_field_name("body")
9814 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
9815 ::treesitter_types::runtime::maybe_grow_stack(|| {
9816 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)
9817 })?
9818 },
9819 finalizer: match node.child_by_field_name("finalizer") {
9820 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
9821 <FinallyClause as ::treesitter_types::FromNode>::from_node(child, src)
9822 })?),
9823 None => None,
9824 },
9825 handler: match node.child_by_field_name("handler") {
9826 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
9827 <CatchClause as ::treesitter_types::FromNode>::from_node(child, src)
9828 })?),
9829 None => None,
9830 },
9831 })
9832 }
9833}
9834impl ::treesitter_types::Spanned for TryStatement<'_> {
9835 fn span(&self) -> ::treesitter_types::Span {
9836 self.span
9837 }
9838}
9839#[derive(Debug, Clone, PartialEq, Eq)]
9840pub struct TupleType<'tree> {
9841 pub span: ::treesitter_types::Span,
9842 pub children: ::std::vec::Vec<TupleTypeChildren<'tree>>,
9843}
9844impl<'tree> ::treesitter_types::FromNode<'tree> for TupleType<'tree> {
9845 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9846 fn from_node(
9847 node: ::treesitter_types::tree_sitter::Node<'tree>,
9848 src: &'tree [u8],
9849 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9850 debug_assert_eq!(node.kind(), "tuple_type");
9851 Ok(Self {
9852 span: ::treesitter_types::Span::from(node),
9853 children: {
9854 #[allow(clippy::suspicious_else_formatting)]
9855 let non_field_children = {
9856 let mut cursor = node.walk();
9857 let mut result = ::std::vec::Vec::new();
9858 if cursor.goto_first_child() {
9859 loop {
9860 if cursor.field_name().is_none()
9861 && cursor.node().is_named()
9862 && !cursor.node().is_extra()
9863 {
9864 result.push(cursor.node());
9865 }
9866 if !cursor.goto_next_sibling() {
9867 break;
9868 }
9869 }
9870 }
9871 result
9872 };
9873 let mut items = ::std::vec::Vec::new();
9874 for child in non_field_children {
9875 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
9876 <TupleTypeChildren as ::treesitter_types::FromNode>::from_node(child, src)
9877 })?);
9878 }
9879 items
9880 },
9881 })
9882 }
9883}
9884impl ::treesitter_types::Spanned for TupleType<'_> {
9885 fn span(&self) -> ::treesitter_types::Span {
9886 self.span
9887 }
9888}
9889#[derive(Debug, Clone, PartialEq, Eq)]
9890pub struct TypeAliasDeclaration<'tree> {
9891 pub span: ::treesitter_types::Span,
9892 pub name: TypeIdentifier<'tree>,
9893 pub type_parameters: ::core::option::Option<TypeParameters<'tree>>,
9894 pub value: Type<'tree>,
9895}
9896impl<'tree> ::treesitter_types::FromNode<'tree> for TypeAliasDeclaration<'tree> {
9897 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9898 fn from_node(
9899 node: ::treesitter_types::tree_sitter::Node<'tree>,
9900 src: &'tree [u8],
9901 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9902 debug_assert_eq!(node.kind(), "type_alias_declaration");
9903 Ok(Self {
9904 span: ::treesitter_types::Span::from(node),
9905 name: {
9906 let child = node
9907 .child_by_field_name("name")
9908 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
9909 ::treesitter_types::runtime::maybe_grow_stack(|| {
9910 <TypeIdentifier as ::treesitter_types::FromNode>::from_node(child, src)
9911 })?
9912 },
9913 type_parameters: match node.child_by_field_name("type_parameters") {
9914 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
9915 <TypeParameters as ::treesitter_types::FromNode>::from_node(child, src)
9916 })?),
9917 None => None,
9918 },
9919 value: {
9920 let child = node
9921 .child_by_field_name("value")
9922 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
9923 ::treesitter_types::runtime::maybe_grow_stack(|| {
9924 <Type as ::treesitter_types::FromNode>::from_node(child, src)
9925 })?
9926 },
9927 })
9928 }
9929}
9930impl ::treesitter_types::Spanned for TypeAliasDeclaration<'_> {
9931 fn span(&self) -> ::treesitter_types::Span {
9932 self.span
9933 }
9934}
9935#[derive(Debug, Clone, PartialEq, Eq)]
9936pub struct TypeAnnotation<'tree> {
9937 pub span: ::treesitter_types::Span,
9938 pub children: Type<'tree>,
9939}
9940impl<'tree> ::treesitter_types::FromNode<'tree> for TypeAnnotation<'tree> {
9941 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9942 fn from_node(
9943 node: ::treesitter_types::tree_sitter::Node<'tree>,
9944 src: &'tree [u8],
9945 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9946 debug_assert_eq!(node.kind(), "type_annotation");
9947 Ok(Self {
9948 span: ::treesitter_types::Span::from(node),
9949 children: {
9950 #[allow(clippy::suspicious_else_formatting)]
9951 let non_field_children = {
9952 let mut cursor = node.walk();
9953 let mut result = ::std::vec::Vec::new();
9954 if cursor.goto_first_child() {
9955 loop {
9956 if cursor.field_name().is_none()
9957 && cursor.node().is_named()
9958 && !cursor.node().is_extra()
9959 {
9960 result.push(cursor.node());
9961 }
9962 if !cursor.goto_next_sibling() {
9963 break;
9964 }
9965 }
9966 }
9967 result
9968 };
9969 let child = if let Some(&c) = non_field_children.first() {
9970 c
9971 } else {
9972 let mut fallback_cursor = node.walk();
9973 let mut fallback_child = None;
9974 if fallback_cursor.goto_first_child() {
9975 loop {
9976 if fallback_cursor.field_name().is_none()
9977 && !fallback_cursor.node().is_extra()
9978 {
9979 let candidate = fallback_cursor.node();
9980 #[allow(clippy::needless_question_mark)]
9981 if (|| -> ::core::result::Result<
9982 _,
9983 ::treesitter_types::ParseError,
9984 > {
9985 let child = candidate;
9986 Ok(
9987 ::treesitter_types::runtime::maybe_grow_stack(|| <Type as ::treesitter_types::FromNode>::from_node(
9988 child,
9989 src,
9990 ))?,
9991 )
9992 })()
9993 .is_ok()
9994 {
9995 fallback_child = Some(candidate);
9996 break;
9997 }
9998 }
9999 if !fallback_cursor.goto_next_sibling() {
10000 break;
10001 }
10002 }
10003 }
10004 if fallback_child.is_none() {
10005 let mut cursor2 = node.walk();
10006 if cursor2.goto_first_child() {
10007 loop {
10008 if cursor2.node().is_named() && !cursor2.node().is_extra() {
10009 let candidate = cursor2.node();
10010 #[allow(clippy::needless_question_mark)]
10011 if (|| -> ::core::result::Result<
10012 _,
10013 ::treesitter_types::ParseError,
10014 > {
10015 let child = candidate;
10016 Ok(
10017 ::treesitter_types::runtime::maybe_grow_stack(|| <Type as ::treesitter_types::FromNode>::from_node(
10018 child,
10019 src,
10020 ))?,
10021 )
10022 })()
10023 .is_ok()
10024 {
10025 fallback_child = Some(candidate);
10026 break;
10027 }
10028 }
10029 if !cursor2.goto_next_sibling() {
10030 break;
10031 }
10032 }
10033 }
10034 }
10035 fallback_child.ok_or_else(|| {
10036 ::treesitter_types::ParseError::missing_field("children", node)
10037 })?
10038 };
10039 ::treesitter_types::runtime::maybe_grow_stack(|| {
10040 <Type as ::treesitter_types::FromNode>::from_node(child, src)
10041 })?
10042 },
10043 })
10044 }
10045}
10046impl ::treesitter_types::Spanned for TypeAnnotation<'_> {
10047 fn span(&self) -> ::treesitter_types::Span {
10048 self.span
10049 }
10050}
10051#[derive(Debug, Clone, PartialEq, Eq)]
10052pub struct TypeArguments<'tree> {
10053 pub span: ::treesitter_types::Span,
10054 pub children: ::std::vec::Vec<Type<'tree>>,
10055}
10056impl<'tree> ::treesitter_types::FromNode<'tree> for TypeArguments<'tree> {
10057 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
10058 fn from_node(
10059 node: ::treesitter_types::tree_sitter::Node<'tree>,
10060 src: &'tree [u8],
10061 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10062 debug_assert_eq!(node.kind(), "type_arguments");
10063 Ok(Self {
10064 span: ::treesitter_types::Span::from(node),
10065 children: {
10066 #[allow(clippy::suspicious_else_formatting)]
10067 let non_field_children = {
10068 let mut cursor = node.walk();
10069 let mut result = ::std::vec::Vec::new();
10070 if cursor.goto_first_child() {
10071 loop {
10072 if cursor.field_name().is_none()
10073 && cursor.node().is_named()
10074 && !cursor.node().is_extra()
10075 {
10076 result.push(cursor.node());
10077 }
10078 if !cursor.goto_next_sibling() {
10079 break;
10080 }
10081 }
10082 }
10083 result
10084 };
10085 let mut items = ::std::vec::Vec::new();
10086 for child in non_field_children {
10087 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
10088 <Type as ::treesitter_types::FromNode>::from_node(child, src)
10089 })?);
10090 }
10091 items
10092 },
10093 })
10094 }
10095}
10096impl ::treesitter_types::Spanned for TypeArguments<'_> {
10097 fn span(&self) -> ::treesitter_types::Span {
10098 self.span
10099 }
10100}
10101#[derive(Debug, Clone, PartialEq, Eq)]
10102pub struct TypeAssertion<'tree> {
10103 pub span: ::treesitter_types::Span,
10104 pub children: ::std::vec::Vec<TypeAssertionChildren<'tree>>,
10105}
10106impl<'tree> ::treesitter_types::FromNode<'tree> for TypeAssertion<'tree> {
10107 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
10108 fn from_node(
10109 node: ::treesitter_types::tree_sitter::Node<'tree>,
10110 src: &'tree [u8],
10111 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10112 debug_assert_eq!(node.kind(), "type_assertion");
10113 Ok(Self {
10114 span: ::treesitter_types::Span::from(node),
10115 children: {
10116 #[allow(clippy::suspicious_else_formatting)]
10117 let non_field_children = {
10118 let mut cursor = node.walk();
10119 let mut result = ::std::vec::Vec::new();
10120 if cursor.goto_first_child() {
10121 loop {
10122 if cursor.field_name().is_none()
10123 && cursor.node().is_named()
10124 && !cursor.node().is_extra()
10125 {
10126 result.push(cursor.node());
10127 }
10128 if !cursor.goto_next_sibling() {
10129 break;
10130 }
10131 }
10132 }
10133 result
10134 };
10135 let mut items = ::std::vec::Vec::new();
10136 for child in non_field_children {
10137 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
10138 <TypeAssertionChildren as ::treesitter_types::FromNode>::from_node(
10139 child, src,
10140 )
10141 })?);
10142 }
10143 items
10144 },
10145 })
10146 }
10147}
10148impl ::treesitter_types::Spanned for TypeAssertion<'_> {
10149 fn span(&self) -> ::treesitter_types::Span {
10150 self.span
10151 }
10152}
10153#[derive(Debug, Clone, PartialEq, Eq)]
10154pub struct TypeParameter<'tree> {
10155 pub span: ::treesitter_types::Span,
10156 pub constraint: ::core::option::Option<Constraint<'tree>>,
10157 pub name: TypeIdentifier<'tree>,
10158 pub value: ::core::option::Option<DefaultType<'tree>>,
10159}
10160impl<'tree> ::treesitter_types::FromNode<'tree> for TypeParameter<'tree> {
10161 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
10162 fn from_node(
10163 node: ::treesitter_types::tree_sitter::Node<'tree>,
10164 src: &'tree [u8],
10165 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10166 debug_assert_eq!(node.kind(), "type_parameter");
10167 Ok(Self {
10168 span: ::treesitter_types::Span::from(node),
10169 constraint: match node.child_by_field_name("constraint") {
10170 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
10171 <Constraint as ::treesitter_types::FromNode>::from_node(child, src)
10172 })?),
10173 None => None,
10174 },
10175 name: {
10176 let child = node
10177 .child_by_field_name("name")
10178 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
10179 ::treesitter_types::runtime::maybe_grow_stack(|| {
10180 <TypeIdentifier as ::treesitter_types::FromNode>::from_node(child, src)
10181 })?
10182 },
10183 value: match node.child_by_field_name("value") {
10184 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
10185 <DefaultType as ::treesitter_types::FromNode>::from_node(child, src)
10186 })?),
10187 None => None,
10188 },
10189 })
10190 }
10191}
10192impl ::treesitter_types::Spanned for TypeParameter<'_> {
10193 fn span(&self) -> ::treesitter_types::Span {
10194 self.span
10195 }
10196}
10197#[derive(Debug, Clone, PartialEq, Eq)]
10198pub struct TypeParameters<'tree> {
10199 pub span: ::treesitter_types::Span,
10200 pub children: ::std::vec::Vec<TypeParameter<'tree>>,
10201}
10202impl<'tree> ::treesitter_types::FromNode<'tree> for TypeParameters<'tree> {
10203 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
10204 fn from_node(
10205 node: ::treesitter_types::tree_sitter::Node<'tree>,
10206 src: &'tree [u8],
10207 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10208 debug_assert_eq!(node.kind(), "type_parameters");
10209 Ok(Self {
10210 span: ::treesitter_types::Span::from(node),
10211 children: {
10212 #[allow(clippy::suspicious_else_formatting)]
10213 let non_field_children = {
10214 let mut cursor = node.walk();
10215 let mut result = ::std::vec::Vec::new();
10216 if cursor.goto_first_child() {
10217 loop {
10218 if cursor.field_name().is_none()
10219 && cursor.node().is_named()
10220 && !cursor.node().is_extra()
10221 {
10222 result.push(cursor.node());
10223 }
10224 if !cursor.goto_next_sibling() {
10225 break;
10226 }
10227 }
10228 }
10229 result
10230 };
10231 let mut items = ::std::vec::Vec::new();
10232 for child in non_field_children {
10233 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
10234 <TypeParameter as ::treesitter_types::FromNode>::from_node(child, src)
10235 })?);
10236 }
10237 items
10238 },
10239 })
10240 }
10241}
10242impl ::treesitter_types::Spanned for TypeParameters<'_> {
10243 fn span(&self) -> ::treesitter_types::Span {
10244 self.span
10245 }
10246}
10247#[derive(Debug, Clone, PartialEq, Eq)]
10248pub struct TypePredicate<'tree> {
10249 pub span: ::treesitter_types::Span,
10250 pub name: TypePredicateName<'tree>,
10251 pub r#type: Type<'tree>,
10252}
10253impl<'tree> ::treesitter_types::FromNode<'tree> for TypePredicate<'tree> {
10254 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
10255 fn from_node(
10256 node: ::treesitter_types::tree_sitter::Node<'tree>,
10257 src: &'tree [u8],
10258 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10259 debug_assert_eq!(node.kind(), "type_predicate");
10260 Ok(Self {
10261 span: ::treesitter_types::Span::from(node),
10262 name: {
10263 let child = node
10264 .child_by_field_name("name")
10265 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
10266 ::treesitter_types::runtime::maybe_grow_stack(|| {
10267 <TypePredicateName as ::treesitter_types::FromNode>::from_node(child, src)
10268 })?
10269 },
10270 r#type: {
10271 let child = node
10272 .child_by_field_name("type")
10273 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("type", node))?;
10274 ::treesitter_types::runtime::maybe_grow_stack(|| {
10275 <Type as ::treesitter_types::FromNode>::from_node(child, src)
10276 })?
10277 },
10278 })
10279 }
10280}
10281impl ::treesitter_types::Spanned for TypePredicate<'_> {
10282 fn span(&self) -> ::treesitter_types::Span {
10283 self.span
10284 }
10285}
10286#[derive(Debug, Clone, PartialEq, Eq)]
10287pub struct TypePredicateAnnotation<'tree> {
10288 pub span: ::treesitter_types::Span,
10289 pub children: TypePredicate<'tree>,
10290}
10291impl<'tree> ::treesitter_types::FromNode<'tree> for TypePredicateAnnotation<'tree> {
10292 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
10293 fn from_node(
10294 node: ::treesitter_types::tree_sitter::Node<'tree>,
10295 src: &'tree [u8],
10296 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10297 debug_assert_eq!(node.kind(), "type_predicate_annotation");
10298 Ok(Self {
10299 span: ::treesitter_types::Span::from(node),
10300 children: {
10301 #[allow(clippy::suspicious_else_formatting)]
10302 let non_field_children = {
10303 let mut cursor = node.walk();
10304 let mut result = ::std::vec::Vec::new();
10305 if cursor.goto_first_child() {
10306 loop {
10307 if cursor.field_name().is_none()
10308 && cursor.node().is_named()
10309 && !cursor.node().is_extra()
10310 {
10311 result.push(cursor.node());
10312 }
10313 if !cursor.goto_next_sibling() {
10314 break;
10315 }
10316 }
10317 }
10318 result
10319 };
10320 let child = if let Some(&c) = non_field_children.first() {
10321 c
10322 } else {
10323 let mut fallback_cursor = node.walk();
10324 let mut fallback_child = None;
10325 if fallback_cursor.goto_first_child() {
10326 loop {
10327 if fallback_cursor.field_name().is_none()
10328 && !fallback_cursor.node().is_extra()
10329 {
10330 let candidate = fallback_cursor.node();
10331 #[allow(clippy::needless_question_mark)]
10332 if (|| -> ::core::result::Result<
10333 _,
10334 ::treesitter_types::ParseError,
10335 > {
10336 let child = candidate;
10337 Ok(
10338 ::treesitter_types::runtime::maybe_grow_stack(|| <TypePredicate as ::treesitter_types::FromNode>::from_node(
10339 child,
10340 src,
10341 ))?,
10342 )
10343 })()
10344 .is_ok()
10345 {
10346 fallback_child = Some(candidate);
10347 break;
10348 }
10349 }
10350 if !fallback_cursor.goto_next_sibling() {
10351 break;
10352 }
10353 }
10354 }
10355 if fallback_child.is_none() {
10356 let mut cursor2 = node.walk();
10357 if cursor2.goto_first_child() {
10358 loop {
10359 if cursor2.node().is_named() && !cursor2.node().is_extra() {
10360 let candidate = cursor2.node();
10361 #[allow(clippy::needless_question_mark)]
10362 if (|| -> ::core::result::Result<
10363 _,
10364 ::treesitter_types::ParseError,
10365 > {
10366 let child = candidate;
10367 Ok(
10368 ::treesitter_types::runtime::maybe_grow_stack(|| <TypePredicate as ::treesitter_types::FromNode>::from_node(
10369 child,
10370 src,
10371 ))?,
10372 )
10373 })()
10374 .is_ok()
10375 {
10376 fallback_child = Some(candidate);
10377 break;
10378 }
10379 }
10380 if !cursor2.goto_next_sibling() {
10381 break;
10382 }
10383 }
10384 }
10385 }
10386 fallback_child.ok_or_else(|| {
10387 ::treesitter_types::ParseError::missing_field("children", node)
10388 })?
10389 };
10390 ::treesitter_types::runtime::maybe_grow_stack(|| {
10391 <TypePredicate as ::treesitter_types::FromNode>::from_node(child, src)
10392 })?
10393 },
10394 })
10395 }
10396}
10397impl ::treesitter_types::Spanned for TypePredicateAnnotation<'_> {
10398 fn span(&self) -> ::treesitter_types::Span {
10399 self.span
10400 }
10401}
10402#[derive(Debug, Clone, PartialEq, Eq)]
10403pub struct TypeQuery<'tree> {
10404 pub span: ::treesitter_types::Span,
10405 pub children: TypeQueryChildren<'tree>,
10406}
10407impl<'tree> ::treesitter_types::FromNode<'tree> for TypeQuery<'tree> {
10408 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
10409 fn from_node(
10410 node: ::treesitter_types::tree_sitter::Node<'tree>,
10411 src: &'tree [u8],
10412 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10413 debug_assert_eq!(node.kind(), "type_query");
10414 Ok(Self {
10415 span: ::treesitter_types::Span::from(node),
10416 children: {
10417 #[allow(clippy::suspicious_else_formatting)]
10418 let non_field_children = {
10419 let mut cursor = node.walk();
10420 let mut result = ::std::vec::Vec::new();
10421 if cursor.goto_first_child() {
10422 loop {
10423 if cursor.field_name().is_none()
10424 && cursor.node().is_named()
10425 && !cursor.node().is_extra()
10426 {
10427 result.push(cursor.node());
10428 }
10429 if !cursor.goto_next_sibling() {
10430 break;
10431 }
10432 }
10433 }
10434 result
10435 };
10436 let child = if let Some(&c) = non_field_children.first() {
10437 c
10438 } else {
10439 let mut fallback_cursor = node.walk();
10440 let mut fallback_child = None;
10441 if fallback_cursor.goto_first_child() {
10442 loop {
10443 if fallback_cursor.field_name().is_none()
10444 && !fallback_cursor.node().is_extra()
10445 {
10446 let candidate = fallback_cursor.node();
10447 #[allow(clippy::needless_question_mark)]
10448 if (|| -> ::core::result::Result<
10449 _,
10450 ::treesitter_types::ParseError,
10451 > {
10452 let child = candidate;
10453 Ok(
10454 ::treesitter_types::runtime::maybe_grow_stack(|| <TypeQueryChildren as ::treesitter_types::FromNode>::from_node(
10455 child,
10456 src,
10457 ))?,
10458 )
10459 })()
10460 .is_ok()
10461 {
10462 fallback_child = Some(candidate);
10463 break;
10464 }
10465 }
10466 if !fallback_cursor.goto_next_sibling() {
10467 break;
10468 }
10469 }
10470 }
10471 if fallback_child.is_none() {
10472 let mut cursor2 = node.walk();
10473 if cursor2.goto_first_child() {
10474 loop {
10475 if cursor2.node().is_named() && !cursor2.node().is_extra() {
10476 let candidate = cursor2.node();
10477 #[allow(clippy::needless_question_mark)]
10478 if (|| -> ::core::result::Result<
10479 _,
10480 ::treesitter_types::ParseError,
10481 > {
10482 let child = candidate;
10483 Ok(
10484 ::treesitter_types::runtime::maybe_grow_stack(|| <TypeQueryChildren as ::treesitter_types::FromNode>::from_node(
10485 child,
10486 src,
10487 ))?,
10488 )
10489 })()
10490 .is_ok()
10491 {
10492 fallback_child = Some(candidate);
10493 break;
10494 }
10495 }
10496 if !cursor2.goto_next_sibling() {
10497 break;
10498 }
10499 }
10500 }
10501 }
10502 fallback_child.ok_or_else(|| {
10503 ::treesitter_types::ParseError::missing_field("children", node)
10504 })?
10505 };
10506 ::treesitter_types::runtime::maybe_grow_stack(|| {
10507 <TypeQueryChildren as ::treesitter_types::FromNode>::from_node(child, src)
10508 })?
10509 },
10510 })
10511 }
10512}
10513impl ::treesitter_types::Spanned for TypeQuery<'_> {
10514 fn span(&self) -> ::treesitter_types::Span {
10515 self.span
10516 }
10517}
10518#[derive(Debug, Clone, PartialEq, Eq)]
10519pub struct UnaryExpression<'tree> {
10520 pub span: ::treesitter_types::Span,
10521 pub argument: UnaryExpressionArgument<'tree>,
10522 pub operator: UnaryExpressionOperator,
10523}
10524impl<'tree> ::treesitter_types::FromNode<'tree> for UnaryExpression<'tree> {
10525 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
10526 fn from_node(
10527 node: ::treesitter_types::tree_sitter::Node<'tree>,
10528 src: &'tree [u8],
10529 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10530 debug_assert_eq!(node.kind(), "unary_expression");
10531 Ok(Self {
10532 span: ::treesitter_types::Span::from(node),
10533 argument: {
10534 let child = node.child_by_field_name("argument").ok_or_else(|| {
10535 ::treesitter_types::ParseError::missing_field("argument", node)
10536 })?;
10537 ::treesitter_types::runtime::maybe_grow_stack(|| {
10538 <UnaryExpressionArgument as ::treesitter_types::FromNode>::from_node(child, src)
10539 })?
10540 },
10541 operator: {
10542 let child = node.child_by_field_name("operator").ok_or_else(|| {
10543 ::treesitter_types::ParseError::missing_field("operator", node)
10544 })?;
10545 ::treesitter_types::runtime::maybe_grow_stack(|| {
10546 <UnaryExpressionOperator as ::treesitter_types::FromNode>::from_node(child, src)
10547 })?
10548 },
10549 })
10550 }
10551}
10552impl ::treesitter_types::Spanned for UnaryExpression<'_> {
10553 fn span(&self) -> ::treesitter_types::Span {
10554 self.span
10555 }
10556}
10557#[derive(Debug, Clone, PartialEq, Eq)]
10558pub struct UnionType<'tree> {
10559 pub span: ::treesitter_types::Span,
10560 pub children: ::std::vec::Vec<Type<'tree>>,
10561}
10562impl<'tree> ::treesitter_types::FromNode<'tree> for UnionType<'tree> {
10563 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
10564 fn from_node(
10565 node: ::treesitter_types::tree_sitter::Node<'tree>,
10566 src: &'tree [u8],
10567 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10568 debug_assert_eq!(node.kind(), "union_type");
10569 Ok(Self {
10570 span: ::treesitter_types::Span::from(node),
10571 children: {
10572 #[allow(clippy::suspicious_else_formatting)]
10573 let non_field_children = {
10574 let mut cursor = node.walk();
10575 let mut result = ::std::vec::Vec::new();
10576 if cursor.goto_first_child() {
10577 loop {
10578 if cursor.field_name().is_none()
10579 && cursor.node().is_named()
10580 && !cursor.node().is_extra()
10581 {
10582 result.push(cursor.node());
10583 }
10584 if !cursor.goto_next_sibling() {
10585 break;
10586 }
10587 }
10588 }
10589 result
10590 };
10591 let mut items = ::std::vec::Vec::new();
10592 for child in non_field_children {
10593 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
10594 <Type as ::treesitter_types::FromNode>::from_node(child, src)
10595 })?);
10596 }
10597 items
10598 },
10599 })
10600 }
10601}
10602impl ::treesitter_types::Spanned for UnionType<'_> {
10603 fn span(&self) -> ::treesitter_types::Span {
10604 self.span
10605 }
10606}
10607#[derive(Debug, Clone, PartialEq, Eq)]
10608pub struct UpdateExpression<'tree> {
10609 pub span: ::treesitter_types::Span,
10610 pub argument: Expression<'tree>,
10611 pub operator: UpdateExpressionOperator,
10612}
10613impl<'tree> ::treesitter_types::FromNode<'tree> for UpdateExpression<'tree> {
10614 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
10615 fn from_node(
10616 node: ::treesitter_types::tree_sitter::Node<'tree>,
10617 src: &'tree [u8],
10618 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10619 debug_assert_eq!(node.kind(), "update_expression");
10620 Ok(Self {
10621 span: ::treesitter_types::Span::from(node),
10622 argument: {
10623 let child = node.child_by_field_name("argument").ok_or_else(|| {
10624 ::treesitter_types::ParseError::missing_field("argument", node)
10625 })?;
10626 ::treesitter_types::runtime::maybe_grow_stack(|| {
10627 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
10628 })?
10629 },
10630 operator: {
10631 let child = node.child_by_field_name("operator").ok_or_else(|| {
10632 ::treesitter_types::ParseError::missing_field("operator", node)
10633 })?;
10634 ::treesitter_types::runtime::maybe_grow_stack(|| {
10635 <UpdateExpressionOperator as ::treesitter_types::FromNode>::from_node(
10636 child, src,
10637 )
10638 })?
10639 },
10640 })
10641 }
10642}
10643impl ::treesitter_types::Spanned for UpdateExpression<'_> {
10644 fn span(&self) -> ::treesitter_types::Span {
10645 self.span
10646 }
10647}
10648#[derive(Debug, Clone, PartialEq, Eq)]
10649pub struct VariableDeclaration<'tree> {
10650 pub span: ::treesitter_types::Span,
10651 pub children: ::std::vec::Vec<VariableDeclarator<'tree>>,
10652}
10653impl<'tree> ::treesitter_types::FromNode<'tree> for VariableDeclaration<'tree> {
10654 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
10655 fn from_node(
10656 node: ::treesitter_types::tree_sitter::Node<'tree>,
10657 src: &'tree [u8],
10658 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10659 debug_assert_eq!(node.kind(), "variable_declaration");
10660 Ok(Self {
10661 span: ::treesitter_types::Span::from(node),
10662 children: {
10663 #[allow(clippy::suspicious_else_formatting)]
10664 let non_field_children = {
10665 let mut cursor = node.walk();
10666 let mut result = ::std::vec::Vec::new();
10667 if cursor.goto_first_child() {
10668 loop {
10669 if cursor.field_name().is_none()
10670 && cursor.node().is_named()
10671 && !cursor.node().is_extra()
10672 {
10673 result.push(cursor.node());
10674 }
10675 if !cursor.goto_next_sibling() {
10676 break;
10677 }
10678 }
10679 }
10680 result
10681 };
10682 let mut items = ::std::vec::Vec::new();
10683 for child in non_field_children {
10684 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
10685 <VariableDeclarator as ::treesitter_types::FromNode>::from_node(child, src)
10686 })?);
10687 }
10688 items
10689 },
10690 })
10691 }
10692}
10693impl ::treesitter_types::Spanned for VariableDeclaration<'_> {
10694 fn span(&self) -> ::treesitter_types::Span {
10695 self.span
10696 }
10697}
10698#[derive(Debug, Clone, PartialEq, Eq)]
10699pub struct VariableDeclarator<'tree> {
10700 pub span: ::treesitter_types::Span,
10701 pub name: VariableDeclaratorName<'tree>,
10702 pub r#type: ::core::option::Option<TypeAnnotation<'tree>>,
10703 pub value: ::core::option::Option<Expression<'tree>>,
10704}
10705impl<'tree> ::treesitter_types::FromNode<'tree> for VariableDeclarator<'tree> {
10706 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
10707 fn from_node(
10708 node: ::treesitter_types::tree_sitter::Node<'tree>,
10709 src: &'tree [u8],
10710 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10711 debug_assert_eq!(node.kind(), "variable_declarator");
10712 Ok(Self {
10713 span: ::treesitter_types::Span::from(node),
10714 name: {
10715 let child = node
10716 .child_by_field_name("name")
10717 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
10718 ::treesitter_types::runtime::maybe_grow_stack(|| {
10719 <VariableDeclaratorName as ::treesitter_types::FromNode>::from_node(child, src)
10720 })?
10721 },
10722 r#type: match node.child_by_field_name("type") {
10723 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
10724 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(child, src)
10725 })?),
10726 None => None,
10727 },
10728 value: match node.child_by_field_name("value") {
10729 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
10730 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
10731 })?),
10732 None => None,
10733 },
10734 })
10735 }
10736}
10737impl ::treesitter_types::Spanned for VariableDeclarator<'_> {
10738 fn span(&self) -> ::treesitter_types::Span {
10739 self.span
10740 }
10741}
10742#[derive(Debug, Clone, PartialEq, Eq)]
10743pub struct WhileStatement<'tree> {
10744 pub span: ::treesitter_types::Span,
10745 pub body: Statement<'tree>,
10746 pub condition: ParenthesizedExpression<'tree>,
10747}
10748impl<'tree> ::treesitter_types::FromNode<'tree> for WhileStatement<'tree> {
10749 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
10750 fn from_node(
10751 node: ::treesitter_types::tree_sitter::Node<'tree>,
10752 src: &'tree [u8],
10753 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10754 debug_assert_eq!(node.kind(), "while_statement");
10755 Ok(Self {
10756 span: ::treesitter_types::Span::from(node),
10757 body: {
10758 let child = node
10759 .child_by_field_name("body")
10760 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
10761 ::treesitter_types::runtime::maybe_grow_stack(|| {
10762 <Statement as ::treesitter_types::FromNode>::from_node(child, src)
10763 })?
10764 },
10765 condition: {
10766 let child = node.child_by_field_name("condition").ok_or_else(|| {
10767 ::treesitter_types::ParseError::missing_field("condition", node)
10768 })?;
10769 ::treesitter_types::runtime::maybe_grow_stack(|| {
10770 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(child, src)
10771 })?
10772 },
10773 })
10774 }
10775}
10776impl ::treesitter_types::Spanned for WhileStatement<'_> {
10777 fn span(&self) -> ::treesitter_types::Span {
10778 self.span
10779 }
10780}
10781#[derive(Debug, Clone, PartialEq, Eq)]
10782pub struct WithStatement<'tree> {
10783 pub span: ::treesitter_types::Span,
10784 pub body: Statement<'tree>,
10785 pub object: ParenthesizedExpression<'tree>,
10786}
10787impl<'tree> ::treesitter_types::FromNode<'tree> for WithStatement<'tree> {
10788 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
10789 fn from_node(
10790 node: ::treesitter_types::tree_sitter::Node<'tree>,
10791 src: &'tree [u8],
10792 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10793 debug_assert_eq!(node.kind(), "with_statement");
10794 Ok(Self {
10795 span: ::treesitter_types::Span::from(node),
10796 body: {
10797 let child = node
10798 .child_by_field_name("body")
10799 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
10800 ::treesitter_types::runtime::maybe_grow_stack(|| {
10801 <Statement as ::treesitter_types::FromNode>::from_node(child, src)
10802 })?
10803 },
10804 object: {
10805 let child = node
10806 .child_by_field_name("object")
10807 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("object", node))?;
10808 ::treesitter_types::runtime::maybe_grow_stack(|| {
10809 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(child, src)
10810 })?
10811 },
10812 })
10813 }
10814}
10815impl ::treesitter_types::Spanned for WithStatement<'_> {
10816 fn span(&self) -> ::treesitter_types::Span {
10817 self.span
10818 }
10819}
10820#[derive(Debug, Clone, PartialEq, Eq)]
10821pub struct YieldExpression<'tree> {
10822 pub span: ::treesitter_types::Span,
10823 pub children: ::core::option::Option<Expression<'tree>>,
10824}
10825impl<'tree> ::treesitter_types::FromNode<'tree> for YieldExpression<'tree> {
10826 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
10827 fn from_node(
10828 node: ::treesitter_types::tree_sitter::Node<'tree>,
10829 src: &'tree [u8],
10830 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10831 debug_assert_eq!(node.kind(), "yield_expression");
10832 Ok(Self {
10833 span: ::treesitter_types::Span::from(node),
10834 children: {
10835 #[allow(clippy::suspicious_else_formatting)]
10836 let non_field_children = {
10837 let mut cursor = node.walk();
10838 let mut result = ::std::vec::Vec::new();
10839 if cursor.goto_first_child() {
10840 loop {
10841 if cursor.field_name().is_none()
10842 && cursor.node().is_named()
10843 && !cursor.node().is_extra()
10844 {
10845 result.push(cursor.node());
10846 }
10847 if !cursor.goto_next_sibling() {
10848 break;
10849 }
10850 }
10851 }
10852 result
10853 };
10854 match non_field_children.first() {
10855 Some(&child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
10856 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
10857 })?),
10858 None => None,
10859 }
10860 },
10861 })
10862 }
10863}
10864impl ::treesitter_types::Spanned for YieldExpression<'_> {
10865 fn span(&self) -> ::treesitter_types::Span {
10866 self.span
10867 }
10868}
10869#[derive(Debug, Clone, PartialEq, Eq)]
10870pub struct Comment<'tree> {
10871 pub span: ::treesitter_types::Span,
10872 text: &'tree str,
10873}
10874impl<'tree> ::treesitter_types::FromNode<'tree> for Comment<'tree> {
10875 fn from_node(
10876 node: ::treesitter_types::tree_sitter::Node<'tree>,
10877 src: &'tree [u8],
10878 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10879 debug_assert_eq!(node.kind(), "comment");
10880 Ok(Self {
10881 span: ::treesitter_types::Span::from(node),
10882 text: node.utf8_text(src)?,
10883 })
10884 }
10885}
10886impl<'tree> ::treesitter_types::LeafNode<'tree> for Comment<'tree> {
10887 fn text(&self) -> &'tree str {
10888 self.text
10889 }
10890}
10891impl ::treesitter_types::Spanned for Comment<'_> {
10892 fn span(&self) -> ::treesitter_types::Span {
10893 self.span
10894 }
10895}
10896#[derive(Debug, Clone, PartialEq, Eq)]
10897pub struct EscapeSequence<'tree> {
10898 pub span: ::treesitter_types::Span,
10899 text: &'tree str,
10900}
10901impl<'tree> ::treesitter_types::FromNode<'tree> for EscapeSequence<'tree> {
10902 fn from_node(
10903 node: ::treesitter_types::tree_sitter::Node<'tree>,
10904 src: &'tree [u8],
10905 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10906 debug_assert_eq!(node.kind(), "escape_sequence");
10907 Ok(Self {
10908 span: ::treesitter_types::Span::from(node),
10909 text: node.utf8_text(src)?,
10910 })
10911 }
10912}
10913impl<'tree> ::treesitter_types::LeafNode<'tree> for EscapeSequence<'tree> {
10914 fn text(&self) -> &'tree str {
10915 self.text
10916 }
10917}
10918impl ::treesitter_types::Spanned for EscapeSequence<'_> {
10919 fn span(&self) -> ::treesitter_types::Span {
10920 self.span
10921 }
10922}
10923#[derive(Debug, Clone, PartialEq, Eq)]
10924pub struct False<'tree> {
10925 pub span: ::treesitter_types::Span,
10926 text: &'tree str,
10927}
10928impl<'tree> ::treesitter_types::FromNode<'tree> for False<'tree> {
10929 fn from_node(
10930 node: ::treesitter_types::tree_sitter::Node<'tree>,
10931 src: &'tree [u8],
10932 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10933 debug_assert_eq!(node.kind(), "false");
10934 Ok(Self {
10935 span: ::treesitter_types::Span::from(node),
10936 text: node.utf8_text(src)?,
10937 })
10938 }
10939}
10940impl<'tree> ::treesitter_types::LeafNode<'tree> for False<'tree> {
10941 fn text(&self) -> &'tree str {
10942 self.text
10943 }
10944}
10945impl ::treesitter_types::Spanned for False<'_> {
10946 fn span(&self) -> ::treesitter_types::Span {
10947 self.span
10948 }
10949}
10950#[derive(Debug, Clone, PartialEq, Eq)]
10951pub struct HashBangLine<'tree> {
10952 pub span: ::treesitter_types::Span,
10953 text: &'tree str,
10954}
10955impl<'tree> ::treesitter_types::FromNode<'tree> for HashBangLine<'tree> {
10956 fn from_node(
10957 node: ::treesitter_types::tree_sitter::Node<'tree>,
10958 src: &'tree [u8],
10959 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10960 debug_assert_eq!(node.kind(), "hash_bang_line");
10961 Ok(Self {
10962 span: ::treesitter_types::Span::from(node),
10963 text: node.utf8_text(src)?,
10964 })
10965 }
10966}
10967impl<'tree> ::treesitter_types::LeafNode<'tree> for HashBangLine<'tree> {
10968 fn text(&self) -> &'tree str {
10969 self.text
10970 }
10971}
10972impl ::treesitter_types::Spanned for HashBangLine<'_> {
10973 fn span(&self) -> ::treesitter_types::Span {
10974 self.span
10975 }
10976}
10977#[derive(Debug, Clone, PartialEq, Eq)]
10978pub struct HtmlComment<'tree> {
10979 pub span: ::treesitter_types::Span,
10980 text: &'tree str,
10981}
10982impl<'tree> ::treesitter_types::FromNode<'tree> for HtmlComment<'tree> {
10983 fn from_node(
10984 node: ::treesitter_types::tree_sitter::Node<'tree>,
10985 src: &'tree [u8],
10986 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10987 debug_assert_eq!(node.kind(), "html_comment");
10988 Ok(Self {
10989 span: ::treesitter_types::Span::from(node),
10990 text: node.utf8_text(src)?,
10991 })
10992 }
10993}
10994impl<'tree> ::treesitter_types::LeafNode<'tree> for HtmlComment<'tree> {
10995 fn text(&self) -> &'tree str {
10996 self.text
10997 }
10998}
10999impl ::treesitter_types::Spanned for HtmlComment<'_> {
11000 fn span(&self) -> ::treesitter_types::Span {
11001 self.span
11002 }
11003}
11004#[derive(Debug, Clone, PartialEq, Eq)]
11005pub struct Null<'tree> {
11006 pub span: ::treesitter_types::Span,
11007 text: &'tree str,
11008}
11009impl<'tree> ::treesitter_types::FromNode<'tree> for Null<'tree> {
11010 fn from_node(
11011 node: ::treesitter_types::tree_sitter::Node<'tree>,
11012 src: &'tree [u8],
11013 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11014 debug_assert_eq!(node.kind(), "null");
11015 Ok(Self {
11016 span: ::treesitter_types::Span::from(node),
11017 text: node.utf8_text(src)?,
11018 })
11019 }
11020}
11021impl<'tree> ::treesitter_types::LeafNode<'tree> for Null<'tree> {
11022 fn text(&self) -> &'tree str {
11023 self.text
11024 }
11025}
11026impl ::treesitter_types::Spanned for Null<'_> {
11027 fn span(&self) -> ::treesitter_types::Span {
11028 self.span
11029 }
11030}
11031#[derive(Debug, Clone, PartialEq, Eq)]
11032pub struct Number<'tree> {
11033 pub span: ::treesitter_types::Span,
11034 text: &'tree str,
11035}
11036impl<'tree> ::treesitter_types::FromNode<'tree> for Number<'tree> {
11037 fn from_node(
11038 node: ::treesitter_types::tree_sitter::Node<'tree>,
11039 src: &'tree [u8],
11040 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11041 debug_assert_eq!(node.kind(), "number");
11042 Ok(Self {
11043 span: ::treesitter_types::Span::from(node),
11044 text: node.utf8_text(src)?,
11045 })
11046 }
11047}
11048impl<'tree> ::treesitter_types::LeafNode<'tree> for Number<'tree> {
11049 fn text(&self) -> &'tree str {
11050 self.text
11051 }
11052}
11053impl ::treesitter_types::Spanned for Number<'_> {
11054 fn span(&self) -> ::treesitter_types::Span {
11055 self.span
11056 }
11057}
11058#[derive(Debug, Clone, PartialEq, Eq)]
11059pub struct PrivatePropertyIdentifier<'tree> {
11060 pub span: ::treesitter_types::Span,
11061 text: &'tree str,
11062}
11063impl<'tree> ::treesitter_types::FromNode<'tree> for PrivatePropertyIdentifier<'tree> {
11064 fn from_node(
11065 node: ::treesitter_types::tree_sitter::Node<'tree>,
11066 src: &'tree [u8],
11067 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11068 debug_assert_eq!(node.kind(), "private_property_identifier");
11069 Ok(Self {
11070 span: ::treesitter_types::Span::from(node),
11071 text: node.utf8_text(src)?,
11072 })
11073 }
11074}
11075impl<'tree> ::treesitter_types::LeafNode<'tree> for PrivatePropertyIdentifier<'tree> {
11076 fn text(&self) -> &'tree str {
11077 self.text
11078 }
11079}
11080impl ::treesitter_types::Spanned for PrivatePropertyIdentifier<'_> {
11081 fn span(&self) -> ::treesitter_types::Span {
11082 self.span
11083 }
11084}
11085#[derive(Debug, Clone, PartialEq, Eq)]
11086pub struct PropertyIdentifier<'tree> {
11087 pub span: ::treesitter_types::Span,
11088 text: &'tree str,
11089}
11090impl<'tree> ::treesitter_types::FromNode<'tree> for PropertyIdentifier<'tree> {
11091 fn from_node(
11092 node: ::treesitter_types::tree_sitter::Node<'tree>,
11093 src: &'tree [u8],
11094 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11095 debug_assert_eq!(node.kind(), "property_identifier");
11096 Ok(Self {
11097 span: ::treesitter_types::Span::from(node),
11098 text: node.utf8_text(src)?,
11099 })
11100 }
11101}
11102impl<'tree> ::treesitter_types::LeafNode<'tree> for PropertyIdentifier<'tree> {
11103 fn text(&self) -> &'tree str {
11104 self.text
11105 }
11106}
11107impl ::treesitter_types::Spanned for PropertyIdentifier<'_> {
11108 fn span(&self) -> ::treesitter_types::Span {
11109 self.span
11110 }
11111}
11112#[derive(Debug, Clone, PartialEq, Eq)]
11113pub struct RegexFlags<'tree> {
11114 pub span: ::treesitter_types::Span,
11115 text: &'tree str,
11116}
11117impl<'tree> ::treesitter_types::FromNode<'tree> for RegexFlags<'tree> {
11118 fn from_node(
11119 node: ::treesitter_types::tree_sitter::Node<'tree>,
11120 src: &'tree [u8],
11121 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11122 debug_assert_eq!(node.kind(), "regex_flags");
11123 Ok(Self {
11124 span: ::treesitter_types::Span::from(node),
11125 text: node.utf8_text(src)?,
11126 })
11127 }
11128}
11129impl<'tree> ::treesitter_types::LeafNode<'tree> for RegexFlags<'tree> {
11130 fn text(&self) -> &'tree str {
11131 self.text
11132 }
11133}
11134impl ::treesitter_types::Spanned for RegexFlags<'_> {
11135 fn span(&self) -> ::treesitter_types::Span {
11136 self.span
11137 }
11138}
11139#[derive(Debug, Clone, PartialEq, Eq)]
11140pub struct RegexPattern<'tree> {
11141 pub span: ::treesitter_types::Span,
11142 text: &'tree str,
11143}
11144impl<'tree> ::treesitter_types::FromNode<'tree> for RegexPattern<'tree> {
11145 fn from_node(
11146 node: ::treesitter_types::tree_sitter::Node<'tree>,
11147 src: &'tree [u8],
11148 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11149 debug_assert_eq!(node.kind(), "regex_pattern");
11150 Ok(Self {
11151 span: ::treesitter_types::Span::from(node),
11152 text: node.utf8_text(src)?,
11153 })
11154 }
11155}
11156impl<'tree> ::treesitter_types::LeafNode<'tree> for RegexPattern<'tree> {
11157 fn text(&self) -> &'tree str {
11158 self.text
11159 }
11160}
11161impl ::treesitter_types::Spanned for RegexPattern<'_> {
11162 fn span(&self) -> ::treesitter_types::Span {
11163 self.span
11164 }
11165}
11166#[derive(Debug, Clone, PartialEq, Eq)]
11167pub struct ShorthandPropertyIdentifier<'tree> {
11168 pub span: ::treesitter_types::Span,
11169 text: &'tree str,
11170}
11171impl<'tree> ::treesitter_types::FromNode<'tree> for ShorthandPropertyIdentifier<'tree> {
11172 fn from_node(
11173 node: ::treesitter_types::tree_sitter::Node<'tree>,
11174 src: &'tree [u8],
11175 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11176 debug_assert_eq!(node.kind(), "shorthand_property_identifier");
11177 Ok(Self {
11178 span: ::treesitter_types::Span::from(node),
11179 text: node.utf8_text(src)?,
11180 })
11181 }
11182}
11183impl<'tree> ::treesitter_types::LeafNode<'tree> for ShorthandPropertyIdentifier<'tree> {
11184 fn text(&self) -> &'tree str {
11185 self.text
11186 }
11187}
11188impl ::treesitter_types::Spanned for ShorthandPropertyIdentifier<'_> {
11189 fn span(&self) -> ::treesitter_types::Span {
11190 self.span
11191 }
11192}
11193#[derive(Debug, Clone, PartialEq, Eq)]
11194pub struct ShorthandPropertyIdentifierPattern<'tree> {
11195 pub span: ::treesitter_types::Span,
11196 text: &'tree str,
11197}
11198impl<'tree> ::treesitter_types::FromNode<'tree> for ShorthandPropertyIdentifierPattern<'tree> {
11199 fn from_node(
11200 node: ::treesitter_types::tree_sitter::Node<'tree>,
11201 src: &'tree [u8],
11202 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11203 debug_assert_eq!(node.kind(), "shorthand_property_identifier_pattern");
11204 Ok(Self {
11205 span: ::treesitter_types::Span::from(node),
11206 text: node.utf8_text(src)?,
11207 })
11208 }
11209}
11210impl<'tree> ::treesitter_types::LeafNode<'tree> for ShorthandPropertyIdentifierPattern<'tree> {
11211 fn text(&self) -> &'tree str {
11212 self.text
11213 }
11214}
11215impl ::treesitter_types::Spanned for ShorthandPropertyIdentifierPattern<'_> {
11216 fn span(&self) -> ::treesitter_types::Span {
11217 self.span
11218 }
11219}
11220#[derive(Debug, Clone, PartialEq, Eq)]
11221pub struct StatementIdentifier<'tree> {
11222 pub span: ::treesitter_types::Span,
11223 text: &'tree str,
11224}
11225impl<'tree> ::treesitter_types::FromNode<'tree> for StatementIdentifier<'tree> {
11226 fn from_node(
11227 node: ::treesitter_types::tree_sitter::Node<'tree>,
11228 src: &'tree [u8],
11229 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11230 debug_assert_eq!(node.kind(), "statement_identifier");
11231 Ok(Self {
11232 span: ::treesitter_types::Span::from(node),
11233 text: node.utf8_text(src)?,
11234 })
11235 }
11236}
11237impl<'tree> ::treesitter_types::LeafNode<'tree> for StatementIdentifier<'tree> {
11238 fn text(&self) -> &'tree str {
11239 self.text
11240 }
11241}
11242impl ::treesitter_types::Spanned for StatementIdentifier<'_> {
11243 fn span(&self) -> ::treesitter_types::Span {
11244 self.span
11245 }
11246}
11247#[derive(Debug, Clone, PartialEq, Eq)]
11248pub struct StringFragment<'tree> {
11249 pub span: ::treesitter_types::Span,
11250 text: &'tree str,
11251}
11252impl<'tree> ::treesitter_types::FromNode<'tree> for StringFragment<'tree> {
11253 fn from_node(
11254 node: ::treesitter_types::tree_sitter::Node<'tree>,
11255 src: &'tree [u8],
11256 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11257 debug_assert_eq!(node.kind(), "string_fragment");
11258 Ok(Self {
11259 span: ::treesitter_types::Span::from(node),
11260 text: node.utf8_text(src)?,
11261 })
11262 }
11263}
11264impl<'tree> ::treesitter_types::LeafNode<'tree> for StringFragment<'tree> {
11265 fn text(&self) -> &'tree str {
11266 self.text
11267 }
11268}
11269impl ::treesitter_types::Spanned for StringFragment<'_> {
11270 fn span(&self) -> ::treesitter_types::Span {
11271 self.span
11272 }
11273}
11274#[derive(Debug, Clone, PartialEq, Eq)]
11275pub struct Super<'tree> {
11276 pub span: ::treesitter_types::Span,
11277 text: &'tree str,
11278}
11279impl<'tree> ::treesitter_types::FromNode<'tree> for Super<'tree> {
11280 fn from_node(
11281 node: ::treesitter_types::tree_sitter::Node<'tree>,
11282 src: &'tree [u8],
11283 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11284 debug_assert_eq!(node.kind(), "super");
11285 Ok(Self {
11286 span: ::treesitter_types::Span::from(node),
11287 text: node.utf8_text(src)?,
11288 })
11289 }
11290}
11291impl<'tree> ::treesitter_types::LeafNode<'tree> for Super<'tree> {
11292 fn text(&self) -> &'tree str {
11293 self.text
11294 }
11295}
11296impl ::treesitter_types::Spanned for Super<'_> {
11297 fn span(&self) -> ::treesitter_types::Span {
11298 self.span
11299 }
11300}
11301#[derive(Debug, Clone, PartialEq, Eq)]
11302pub struct This<'tree> {
11303 pub span: ::treesitter_types::Span,
11304 text: &'tree str,
11305}
11306impl<'tree> ::treesitter_types::FromNode<'tree> for This<'tree> {
11307 fn from_node(
11308 node: ::treesitter_types::tree_sitter::Node<'tree>,
11309 src: &'tree [u8],
11310 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11311 debug_assert_eq!(node.kind(), "this");
11312 Ok(Self {
11313 span: ::treesitter_types::Span::from(node),
11314 text: node.utf8_text(src)?,
11315 })
11316 }
11317}
11318impl<'tree> ::treesitter_types::LeafNode<'tree> for This<'tree> {
11319 fn text(&self) -> &'tree str {
11320 self.text
11321 }
11322}
11323impl ::treesitter_types::Spanned for This<'_> {
11324 fn span(&self) -> ::treesitter_types::Span {
11325 self.span
11326 }
11327}
11328#[derive(Debug, Clone, PartialEq, Eq)]
11329pub struct ThisType<'tree> {
11330 pub span: ::treesitter_types::Span,
11331 text: &'tree str,
11332}
11333impl<'tree> ::treesitter_types::FromNode<'tree> for ThisType<'tree> {
11334 fn from_node(
11335 node: ::treesitter_types::tree_sitter::Node<'tree>,
11336 src: &'tree [u8],
11337 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11338 debug_assert_eq!(node.kind(), "this_type");
11339 Ok(Self {
11340 span: ::treesitter_types::Span::from(node),
11341 text: node.utf8_text(src)?,
11342 })
11343 }
11344}
11345impl<'tree> ::treesitter_types::LeafNode<'tree> for ThisType<'tree> {
11346 fn text(&self) -> &'tree str {
11347 self.text
11348 }
11349}
11350impl ::treesitter_types::Spanned for ThisType<'_> {
11351 fn span(&self) -> ::treesitter_types::Span {
11352 self.span
11353 }
11354}
11355#[derive(Debug, Clone, PartialEq, Eq)]
11356pub struct True<'tree> {
11357 pub span: ::treesitter_types::Span,
11358 text: &'tree str,
11359}
11360impl<'tree> ::treesitter_types::FromNode<'tree> for True<'tree> {
11361 fn from_node(
11362 node: ::treesitter_types::tree_sitter::Node<'tree>,
11363 src: &'tree [u8],
11364 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11365 debug_assert_eq!(node.kind(), "true");
11366 Ok(Self {
11367 span: ::treesitter_types::Span::from(node),
11368 text: node.utf8_text(src)?,
11369 })
11370 }
11371}
11372impl<'tree> ::treesitter_types::LeafNode<'tree> for True<'tree> {
11373 fn text(&self) -> &'tree str {
11374 self.text
11375 }
11376}
11377impl ::treesitter_types::Spanned for True<'_> {
11378 fn span(&self) -> ::treesitter_types::Span {
11379 self.span
11380 }
11381}
11382#[derive(Debug, Clone, PartialEq, Eq)]
11383pub struct TypeIdentifier<'tree> {
11384 pub span: ::treesitter_types::Span,
11385 text: &'tree str,
11386}
11387impl<'tree> ::treesitter_types::FromNode<'tree> for TypeIdentifier<'tree> {
11388 fn from_node(
11389 node: ::treesitter_types::tree_sitter::Node<'tree>,
11390 src: &'tree [u8],
11391 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11392 debug_assert_eq!(node.kind(), "type_identifier");
11393 Ok(Self {
11394 span: ::treesitter_types::Span::from(node),
11395 text: node.utf8_text(src)?,
11396 })
11397 }
11398}
11399impl<'tree> ::treesitter_types::LeafNode<'tree> for TypeIdentifier<'tree> {
11400 fn text(&self) -> &'tree str {
11401 self.text
11402 }
11403}
11404impl ::treesitter_types::Spanned for TypeIdentifier<'_> {
11405 fn span(&self) -> ::treesitter_types::Span {
11406 self.span
11407 }
11408}
11409#[derive(Debug, Clone, PartialEq, Eq)]
11410pub struct Undefined<'tree> {
11411 pub span: ::treesitter_types::Span,
11412 text: &'tree str,
11413}
11414impl<'tree> ::treesitter_types::FromNode<'tree> for Undefined<'tree> {
11415 fn from_node(
11416 node: ::treesitter_types::tree_sitter::Node<'tree>,
11417 src: &'tree [u8],
11418 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11419 debug_assert_eq!(node.kind(), "undefined");
11420 Ok(Self {
11421 span: ::treesitter_types::Span::from(node),
11422 text: node.utf8_text(src)?,
11423 })
11424 }
11425}
11426impl<'tree> ::treesitter_types::LeafNode<'tree> for Undefined<'tree> {
11427 fn text(&self) -> &'tree str {
11428 self.text
11429 }
11430}
11431impl ::treesitter_types::Spanned for Undefined<'_> {
11432 fn span(&self) -> ::treesitter_types::Span {
11433 self.span
11434 }
11435}
11436#[derive(Debug, Clone, PartialEq, Eq)]
11437pub enum AbstractMethodSignatureName<'tree> {
11438 ComputedPropertyName(::std::boxed::Box<ComputedPropertyName<'tree>>),
11439 Number(::std::boxed::Box<Number<'tree>>),
11440 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
11441 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
11442 String(::std::boxed::Box<String<'tree>>),
11443}
11444impl<'tree> ::treesitter_types::FromNode<'tree> for AbstractMethodSignatureName<'tree> {
11445 #[allow(clippy::collapsible_else_if)]
11446 fn from_node(
11447 node: ::treesitter_types::tree_sitter::Node<'tree>,
11448 src: &'tree [u8],
11449 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11450 match node.kind() {
11451 "computed_property_name" => Ok(Self::ComputedPropertyName(::std::boxed::Box::new(
11452 ::treesitter_types::runtime::maybe_grow_stack(|| {
11453 <ComputedPropertyName as ::treesitter_types::FromNode>::from_node(node, src)
11454 })?,
11455 ))),
11456 "number" => Ok(Self::Number(::std::boxed::Box::new(
11457 ::treesitter_types::runtime::maybe_grow_stack(|| {
11458 <Number as ::treesitter_types::FromNode>::from_node(node, src)
11459 })?,
11460 ))),
11461 "private_property_identifier" => Ok(Self::PrivatePropertyIdentifier(
11462 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
11463 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
11464 node, src,
11465 )
11466 })?),
11467 )),
11468 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
11469 ::treesitter_types::runtime::maybe_grow_stack(|| {
11470 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
11471 })?,
11472 ))),
11473 "string" => Ok(Self::String(::std::boxed::Box::new(
11474 ::treesitter_types::runtime::maybe_grow_stack(|| {
11475 <String as ::treesitter_types::FromNode>::from_node(node, src)
11476 })?,
11477 ))),
11478 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11479 }
11480 }
11481}
11482impl ::treesitter_types::Spanned for AbstractMethodSignatureName<'_> {
11483 fn span(&self) -> ::treesitter_types::Span {
11484 match self {
11485 Self::ComputedPropertyName(inner) => inner.span(),
11486 Self::Number(inner) => inner.span(),
11487 Self::PrivatePropertyIdentifier(inner) => inner.span(),
11488 Self::PropertyIdentifier(inner) => inner.span(),
11489 Self::String(inner) => inner.span(),
11490 }
11491 }
11492}
11493#[derive(Debug, Clone, PartialEq, Eq)]
11494pub enum AbstractMethodSignatureReturnType<'tree> {
11495 AssertsAnnotation(::std::boxed::Box<AssertsAnnotation<'tree>>),
11496 TypeAnnotation(::std::boxed::Box<TypeAnnotation<'tree>>),
11497 TypePredicateAnnotation(::std::boxed::Box<TypePredicateAnnotation<'tree>>),
11498}
11499impl<'tree> ::treesitter_types::FromNode<'tree> for AbstractMethodSignatureReturnType<'tree> {
11500 #[allow(clippy::collapsible_else_if)]
11501 fn from_node(
11502 node: ::treesitter_types::tree_sitter::Node<'tree>,
11503 src: &'tree [u8],
11504 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11505 match node.kind() {
11506 "asserts_annotation" => Ok(Self::AssertsAnnotation(::std::boxed::Box::new(
11507 ::treesitter_types::runtime::maybe_grow_stack(|| {
11508 <AssertsAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
11509 })?,
11510 ))),
11511 "type_annotation" => Ok(Self::TypeAnnotation(::std::boxed::Box::new(
11512 ::treesitter_types::runtime::maybe_grow_stack(|| {
11513 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
11514 })?,
11515 ))),
11516 "type_predicate_annotation" => Ok(Self::TypePredicateAnnotation(
11517 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
11518 <TypePredicateAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
11519 })?),
11520 )),
11521 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11522 }
11523 }
11524}
11525impl ::treesitter_types::Spanned for AbstractMethodSignatureReturnType<'_> {
11526 fn span(&self) -> ::treesitter_types::Span {
11527 match self {
11528 Self::AssertsAnnotation(inner) => inner.span(),
11529 Self::TypeAnnotation(inner) => inner.span(),
11530 Self::TypePredicateAnnotation(inner) => inner.span(),
11531 }
11532 }
11533}
11534#[derive(Debug, Clone, PartialEq, Eq)]
11535pub enum AbstractMethodSignatureChildren<'tree> {
11536 AccessibilityModifier(::std::boxed::Box<AccessibilityModifier<'tree>>),
11537 OverrideModifier(::std::boxed::Box<OverrideModifier<'tree>>),
11538}
11539impl<'tree> ::treesitter_types::FromNode<'tree> for AbstractMethodSignatureChildren<'tree> {
11540 #[allow(clippy::collapsible_else_if)]
11541 fn from_node(
11542 node: ::treesitter_types::tree_sitter::Node<'tree>,
11543 src: &'tree [u8],
11544 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11545 match node.kind() {
11546 "accessibility_modifier" => Ok(Self::AccessibilityModifier(::std::boxed::Box::new(
11547 ::treesitter_types::runtime::maybe_grow_stack(|| {
11548 <AccessibilityModifier as ::treesitter_types::FromNode>::from_node(node, src)
11549 })?,
11550 ))),
11551 "override_modifier" => Ok(Self::OverrideModifier(::std::boxed::Box::new(
11552 ::treesitter_types::runtime::maybe_grow_stack(|| {
11553 <OverrideModifier as ::treesitter_types::FromNode>::from_node(node, src)
11554 })?,
11555 ))),
11556 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11557 }
11558 }
11559}
11560impl ::treesitter_types::Spanned for AbstractMethodSignatureChildren<'_> {
11561 fn span(&self) -> ::treesitter_types::Span {
11562 match self {
11563 Self::AccessibilityModifier(inner) => inner.span(),
11564 Self::OverrideModifier(inner) => inner.span(),
11565 }
11566 }
11567}
11568#[derive(Debug, Clone, PartialEq, Eq)]
11569pub enum AmbientDeclarationChildren<'tree> {
11570 Declaration(::std::boxed::Box<Declaration<'tree>>),
11571 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
11572 StatementBlock(::std::boxed::Box<StatementBlock<'tree>>),
11573 Type(::std::boxed::Box<Type<'tree>>),
11574}
11575impl<'tree> ::treesitter_types::FromNode<'tree> for AmbientDeclarationChildren<'tree> {
11576 #[allow(clippy::collapsible_else_if)]
11577 fn from_node(
11578 node: ::treesitter_types::tree_sitter::Node<'tree>,
11579 src: &'tree [u8],
11580 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11581 match node.kind() {
11582 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
11583 ::treesitter_types::runtime::maybe_grow_stack(|| {
11584 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
11585 })?,
11586 ))),
11587 "statement_block" => Ok(Self::StatementBlock(::std::boxed::Box::new(
11588 ::treesitter_types::runtime::maybe_grow_stack(|| {
11589 <StatementBlock as ::treesitter_types::FromNode>::from_node(node, src)
11590 })?,
11591 ))),
11592 _other => {
11593 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
11594 <Declaration as ::treesitter_types::FromNode>::from_node(node, src)
11595 }) {
11596 Ok(Self::Declaration(::std::boxed::Box::new(v)))
11597 } else {
11598 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
11599 <Type as ::treesitter_types::FromNode>::from_node(node, src)
11600 }) {
11601 Ok(Self::Type(::std::boxed::Box::new(v)))
11602 } else {
11603 Err(::treesitter_types::ParseError::unexpected_kind(
11604 _other, node,
11605 ))
11606 }
11607 }
11608 }
11609 }
11610 }
11611}
11612impl ::treesitter_types::Spanned for AmbientDeclarationChildren<'_> {
11613 fn span(&self) -> ::treesitter_types::Span {
11614 match self {
11615 Self::Declaration(inner) => inner.span(),
11616 Self::PropertyIdentifier(inner) => inner.span(),
11617 Self::StatementBlock(inner) => inner.span(),
11618 Self::Type(inner) => inner.span(),
11619 }
11620 }
11621}
11622#[derive(Debug, Clone, PartialEq, Eq)]
11623pub enum ArgumentsChildren<'tree> {
11624 Expression(::std::boxed::Box<Expression<'tree>>),
11625 SpreadElement(::std::boxed::Box<SpreadElement<'tree>>),
11626}
11627impl<'tree> ::treesitter_types::FromNode<'tree> for ArgumentsChildren<'tree> {
11628 #[allow(clippy::collapsible_else_if)]
11629 fn from_node(
11630 node: ::treesitter_types::tree_sitter::Node<'tree>,
11631 src: &'tree [u8],
11632 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11633 match node.kind() {
11634 "spread_element" => Ok(Self::SpreadElement(::std::boxed::Box::new(
11635 ::treesitter_types::runtime::maybe_grow_stack(|| {
11636 <SpreadElement as ::treesitter_types::FromNode>::from_node(node, src)
11637 })?,
11638 ))),
11639 _other => {
11640 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
11641 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
11642 }) {
11643 Ok(Self::Expression(::std::boxed::Box::new(v)))
11644 } else {
11645 Err(::treesitter_types::ParseError::unexpected_kind(
11646 _other, node,
11647 ))
11648 }
11649 }
11650 }
11651 }
11652}
11653impl ::treesitter_types::Spanned for ArgumentsChildren<'_> {
11654 fn span(&self) -> ::treesitter_types::Span {
11655 match self {
11656 Self::Expression(inner) => inner.span(),
11657 Self::SpreadElement(inner) => inner.span(),
11658 }
11659 }
11660}
11661#[derive(Debug, Clone, PartialEq, Eq)]
11662pub enum ArrayChildren<'tree> {
11663 Expression(::std::boxed::Box<Expression<'tree>>),
11664 SpreadElement(::std::boxed::Box<SpreadElement<'tree>>),
11665}
11666impl<'tree> ::treesitter_types::FromNode<'tree> for ArrayChildren<'tree> {
11667 #[allow(clippy::collapsible_else_if)]
11668 fn from_node(
11669 node: ::treesitter_types::tree_sitter::Node<'tree>,
11670 src: &'tree [u8],
11671 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11672 match node.kind() {
11673 "spread_element" => Ok(Self::SpreadElement(::std::boxed::Box::new(
11674 ::treesitter_types::runtime::maybe_grow_stack(|| {
11675 <SpreadElement as ::treesitter_types::FromNode>::from_node(node, src)
11676 })?,
11677 ))),
11678 _other => {
11679 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
11680 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
11681 }) {
11682 Ok(Self::Expression(::std::boxed::Box::new(v)))
11683 } else {
11684 Err(::treesitter_types::ParseError::unexpected_kind(
11685 _other, node,
11686 ))
11687 }
11688 }
11689 }
11690 }
11691}
11692impl ::treesitter_types::Spanned for ArrayChildren<'_> {
11693 fn span(&self) -> ::treesitter_types::Span {
11694 match self {
11695 Self::Expression(inner) => inner.span(),
11696 Self::SpreadElement(inner) => inner.span(),
11697 }
11698 }
11699}
11700#[derive(Debug, Clone, PartialEq, Eq)]
11701pub enum ArrayPatternChildren<'tree> {
11702 AssignmentPattern(::std::boxed::Box<AssignmentPattern<'tree>>),
11703 Pattern(::std::boxed::Box<Pattern<'tree>>),
11704}
11705impl<'tree> ::treesitter_types::FromNode<'tree> for ArrayPatternChildren<'tree> {
11706 #[allow(clippy::collapsible_else_if)]
11707 fn from_node(
11708 node: ::treesitter_types::tree_sitter::Node<'tree>,
11709 src: &'tree [u8],
11710 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11711 match node.kind() {
11712 "assignment_pattern" => Ok(Self::AssignmentPattern(::std::boxed::Box::new(
11713 ::treesitter_types::runtime::maybe_grow_stack(|| {
11714 <AssignmentPattern as ::treesitter_types::FromNode>::from_node(node, src)
11715 })?,
11716 ))),
11717 _other => {
11718 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
11719 <Pattern as ::treesitter_types::FromNode>::from_node(node, src)
11720 }) {
11721 Ok(Self::Pattern(::std::boxed::Box::new(v)))
11722 } else {
11723 Err(::treesitter_types::ParseError::unexpected_kind(
11724 _other, node,
11725 ))
11726 }
11727 }
11728 }
11729 }
11730}
11731impl ::treesitter_types::Spanned for ArrayPatternChildren<'_> {
11732 fn span(&self) -> ::treesitter_types::Span {
11733 match self {
11734 Self::AssignmentPattern(inner) => inner.span(),
11735 Self::Pattern(inner) => inner.span(),
11736 }
11737 }
11738}
11739#[derive(Debug, Clone, PartialEq, Eq)]
11740pub enum ArrowFunctionBody<'tree> {
11741 Expression(::std::boxed::Box<Expression<'tree>>),
11742 StatementBlock(::std::boxed::Box<StatementBlock<'tree>>),
11743}
11744impl<'tree> ::treesitter_types::FromNode<'tree> for ArrowFunctionBody<'tree> {
11745 #[allow(clippy::collapsible_else_if)]
11746 fn from_node(
11747 node: ::treesitter_types::tree_sitter::Node<'tree>,
11748 src: &'tree [u8],
11749 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11750 match node.kind() {
11751 "statement_block" => Ok(Self::StatementBlock(::std::boxed::Box::new(
11752 ::treesitter_types::runtime::maybe_grow_stack(|| {
11753 <StatementBlock as ::treesitter_types::FromNode>::from_node(node, src)
11754 })?,
11755 ))),
11756 _other => {
11757 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
11758 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
11759 }) {
11760 Ok(Self::Expression(::std::boxed::Box::new(v)))
11761 } else {
11762 Err(::treesitter_types::ParseError::unexpected_kind(
11763 _other, node,
11764 ))
11765 }
11766 }
11767 }
11768 }
11769}
11770impl ::treesitter_types::Spanned for ArrowFunctionBody<'_> {
11771 fn span(&self) -> ::treesitter_types::Span {
11772 match self {
11773 Self::Expression(inner) => inner.span(),
11774 Self::StatementBlock(inner) => inner.span(),
11775 }
11776 }
11777}
11778#[derive(Debug, Clone, PartialEq, Eq)]
11779pub enum ArrowFunctionReturnType<'tree> {
11780 AssertsAnnotation(::std::boxed::Box<AssertsAnnotation<'tree>>),
11781 TypeAnnotation(::std::boxed::Box<TypeAnnotation<'tree>>),
11782 TypePredicateAnnotation(::std::boxed::Box<TypePredicateAnnotation<'tree>>),
11783}
11784impl<'tree> ::treesitter_types::FromNode<'tree> for ArrowFunctionReturnType<'tree> {
11785 #[allow(clippy::collapsible_else_if)]
11786 fn from_node(
11787 node: ::treesitter_types::tree_sitter::Node<'tree>,
11788 src: &'tree [u8],
11789 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11790 match node.kind() {
11791 "asserts_annotation" => Ok(Self::AssertsAnnotation(::std::boxed::Box::new(
11792 ::treesitter_types::runtime::maybe_grow_stack(|| {
11793 <AssertsAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
11794 })?,
11795 ))),
11796 "type_annotation" => Ok(Self::TypeAnnotation(::std::boxed::Box::new(
11797 ::treesitter_types::runtime::maybe_grow_stack(|| {
11798 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
11799 })?,
11800 ))),
11801 "type_predicate_annotation" => Ok(Self::TypePredicateAnnotation(
11802 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
11803 <TypePredicateAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
11804 })?),
11805 )),
11806 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11807 }
11808 }
11809}
11810impl ::treesitter_types::Spanned for ArrowFunctionReturnType<'_> {
11811 fn span(&self) -> ::treesitter_types::Span {
11812 match self {
11813 Self::AssertsAnnotation(inner) => inner.span(),
11814 Self::TypeAnnotation(inner) => inner.span(),
11815 Self::TypePredicateAnnotation(inner) => inner.span(),
11816 }
11817 }
11818}
11819#[derive(Debug, Clone, PartialEq, Eq)]
11820pub enum AsExpressionChildren<'tree> {
11821 Expression(::std::boxed::Box<Expression<'tree>>),
11822 Type(::std::boxed::Box<Type<'tree>>),
11823}
11824impl<'tree> ::treesitter_types::FromNode<'tree> for AsExpressionChildren<'tree> {
11825 #[allow(clippy::collapsible_else_if)]
11826 fn from_node(
11827 node: ::treesitter_types::tree_sitter::Node<'tree>,
11828 src: &'tree [u8],
11829 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11830 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
11831 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
11832 }) {
11833 Ok(Self::Expression(::std::boxed::Box::new(v)))
11834 } else {
11835 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
11836 <Type as ::treesitter_types::FromNode>::from_node(node, src)
11837 }) {
11838 Ok(Self::Type(::std::boxed::Box::new(v)))
11839 } else {
11840 Err(::treesitter_types::ParseError::unexpected_kind(
11841 node.kind(),
11842 node,
11843 ))
11844 }
11845 }
11846 }
11847}
11848impl ::treesitter_types::Spanned for AsExpressionChildren<'_> {
11849 fn span(&self) -> ::treesitter_types::Span {
11850 match self {
11851 Self::Expression(inner) => inner.span(),
11852 Self::Type(inner) => inner.span(),
11853 }
11854 }
11855}
11856#[derive(Debug, Clone, PartialEq, Eq)]
11857pub enum AssertsChildren<'tree> {
11858 Identifier(::std::boxed::Box<Identifier<'tree>>),
11859 This(::std::boxed::Box<This<'tree>>),
11860 TypePredicate(::std::boxed::Box<TypePredicate<'tree>>),
11861}
11862impl<'tree> ::treesitter_types::FromNode<'tree> for AssertsChildren<'tree> {
11863 #[allow(clippy::collapsible_else_if)]
11864 fn from_node(
11865 node: ::treesitter_types::tree_sitter::Node<'tree>,
11866 src: &'tree [u8],
11867 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11868 match node.kind() {
11869 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
11870 ::treesitter_types::runtime::maybe_grow_stack(|| {
11871 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
11872 })?,
11873 ))),
11874 "this" => Ok(Self::This(::std::boxed::Box::new(
11875 ::treesitter_types::runtime::maybe_grow_stack(|| {
11876 <This as ::treesitter_types::FromNode>::from_node(node, src)
11877 })?,
11878 ))),
11879 "type_predicate" => Ok(Self::TypePredicate(::std::boxed::Box::new(
11880 ::treesitter_types::runtime::maybe_grow_stack(|| {
11881 <TypePredicate as ::treesitter_types::FromNode>::from_node(node, src)
11882 })?,
11883 ))),
11884 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11885 }
11886 }
11887}
11888impl ::treesitter_types::Spanned for AssertsChildren<'_> {
11889 fn span(&self) -> ::treesitter_types::Span {
11890 match self {
11891 Self::Identifier(inner) => inner.span(),
11892 Self::This(inner) => inner.span(),
11893 Self::TypePredicate(inner) => inner.span(),
11894 }
11895 }
11896}
11897#[derive(Debug, Clone, PartialEq, Eq)]
11898pub enum AssignmentExpressionLeft<'tree> {
11899 ArrayPattern(::std::boxed::Box<ArrayPattern<'tree>>),
11900 Identifier(::std::boxed::Box<Identifier<'tree>>),
11901 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
11902 NonNullExpression(::std::boxed::Box<NonNullExpression<'tree>>),
11903 ObjectPattern(::std::boxed::Box<ObjectPattern<'tree>>),
11904 ParenthesizedExpression(::std::boxed::Box<ParenthesizedExpression<'tree>>),
11905 SubscriptExpression(::std::boxed::Box<SubscriptExpression<'tree>>),
11906 Undefined(::std::boxed::Box<Undefined<'tree>>),
11907}
11908impl<'tree> ::treesitter_types::FromNode<'tree> for AssignmentExpressionLeft<'tree> {
11909 #[allow(clippy::collapsible_else_if)]
11910 fn from_node(
11911 node: ::treesitter_types::tree_sitter::Node<'tree>,
11912 src: &'tree [u8],
11913 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11914 match node.kind() {
11915 "array_pattern" => Ok(Self::ArrayPattern(::std::boxed::Box::new(
11916 ::treesitter_types::runtime::maybe_grow_stack(|| {
11917 <ArrayPattern as ::treesitter_types::FromNode>::from_node(node, src)
11918 })?,
11919 ))),
11920 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
11921 ::treesitter_types::runtime::maybe_grow_stack(|| {
11922 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
11923 })?,
11924 ))),
11925 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
11926 ::treesitter_types::runtime::maybe_grow_stack(|| {
11927 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)
11928 })?,
11929 ))),
11930 "non_null_expression" => Ok(Self::NonNullExpression(::std::boxed::Box::new(
11931 ::treesitter_types::runtime::maybe_grow_stack(|| {
11932 <NonNullExpression as ::treesitter_types::FromNode>::from_node(node, src)
11933 })?,
11934 ))),
11935 "object_pattern" => Ok(Self::ObjectPattern(::std::boxed::Box::new(
11936 ::treesitter_types::runtime::maybe_grow_stack(|| {
11937 <ObjectPattern as ::treesitter_types::FromNode>::from_node(node, src)
11938 })?,
11939 ))),
11940 "parenthesized_expression" => Ok(Self::ParenthesizedExpression(
11941 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
11942 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(node, src)
11943 })?),
11944 )),
11945 "subscript_expression" => Ok(Self::SubscriptExpression(::std::boxed::Box::new(
11946 ::treesitter_types::runtime::maybe_grow_stack(|| {
11947 <SubscriptExpression as ::treesitter_types::FromNode>::from_node(node, src)
11948 })?,
11949 ))),
11950 "undefined" => Ok(Self::Undefined(::std::boxed::Box::new(
11951 ::treesitter_types::runtime::maybe_grow_stack(|| {
11952 <Undefined as ::treesitter_types::FromNode>::from_node(node, src)
11953 })?,
11954 ))),
11955 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11956 }
11957 }
11958}
11959impl ::treesitter_types::Spanned for AssignmentExpressionLeft<'_> {
11960 fn span(&self) -> ::treesitter_types::Span {
11961 match self {
11962 Self::ArrayPattern(inner) => inner.span(),
11963 Self::Identifier(inner) => inner.span(),
11964 Self::MemberExpression(inner) => inner.span(),
11965 Self::NonNullExpression(inner) => inner.span(),
11966 Self::ObjectPattern(inner) => inner.span(),
11967 Self::ParenthesizedExpression(inner) => inner.span(),
11968 Self::SubscriptExpression(inner) => inner.span(),
11969 Self::Undefined(inner) => inner.span(),
11970 }
11971 }
11972}
11973#[derive(Debug, Clone, PartialEq, Eq)]
11974pub enum AugmentedAssignmentExpressionLeft<'tree> {
11975 Identifier(::std::boxed::Box<Identifier<'tree>>),
11976 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
11977 NonNullExpression(::std::boxed::Box<NonNullExpression<'tree>>),
11978 ParenthesizedExpression(::std::boxed::Box<ParenthesizedExpression<'tree>>),
11979 SubscriptExpression(::std::boxed::Box<SubscriptExpression<'tree>>),
11980}
11981impl<'tree> ::treesitter_types::FromNode<'tree> for AugmentedAssignmentExpressionLeft<'tree> {
11982 #[allow(clippy::collapsible_else_if)]
11983 fn from_node(
11984 node: ::treesitter_types::tree_sitter::Node<'tree>,
11985 src: &'tree [u8],
11986 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11987 match node.kind() {
11988 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
11989 ::treesitter_types::runtime::maybe_grow_stack(|| {
11990 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
11991 })?,
11992 ))),
11993 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
11994 ::treesitter_types::runtime::maybe_grow_stack(|| {
11995 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)
11996 })?,
11997 ))),
11998 "non_null_expression" => Ok(Self::NonNullExpression(::std::boxed::Box::new(
11999 ::treesitter_types::runtime::maybe_grow_stack(|| {
12000 <NonNullExpression as ::treesitter_types::FromNode>::from_node(node, src)
12001 })?,
12002 ))),
12003 "parenthesized_expression" => Ok(Self::ParenthesizedExpression(
12004 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
12005 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(node, src)
12006 })?),
12007 )),
12008 "subscript_expression" => Ok(Self::SubscriptExpression(::std::boxed::Box::new(
12009 ::treesitter_types::runtime::maybe_grow_stack(|| {
12010 <SubscriptExpression as ::treesitter_types::FromNode>::from_node(node, src)
12011 })?,
12012 ))),
12013 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12014 }
12015 }
12016}
12017impl ::treesitter_types::Spanned for AugmentedAssignmentExpressionLeft<'_> {
12018 fn span(&self) -> ::treesitter_types::Span {
12019 match self {
12020 Self::Identifier(inner) => inner.span(),
12021 Self::MemberExpression(inner) => inner.span(),
12022 Self::NonNullExpression(inner) => inner.span(),
12023 Self::ParenthesizedExpression(inner) => inner.span(),
12024 Self::SubscriptExpression(inner) => inner.span(),
12025 }
12026 }
12027}
12028#[derive(Debug, Clone, PartialEq, Eq)]
12029pub enum AugmentedAssignmentExpressionOperator {
12030 PercentEq(::treesitter_types::Span),
12031 AmpAmpEq(::treesitter_types::Span),
12032 AmpEq(::treesitter_types::Span),
12033 StarStarEq(::treesitter_types::Span),
12034 StarEq(::treesitter_types::Span),
12035 PlusEq(::treesitter_types::Span),
12036 MinusEq(::treesitter_types::Span),
12037 SlashEq(::treesitter_types::Span),
12038 ShlEq(::treesitter_types::Span),
12039 ShrEq(::treesitter_types::Span),
12040 GtGtGtEq(::treesitter_types::Span),
12041 QuestionQuestionEq(::treesitter_types::Span),
12042 CaretEq(::treesitter_types::Span),
12043 PipeEq(::treesitter_types::Span),
12044 PipePipeEq(::treesitter_types::Span),
12045}
12046impl<'tree> ::treesitter_types::FromNode<'tree> for AugmentedAssignmentExpressionOperator {
12047 #[allow(clippy::collapsible_else_if)]
12048 fn from_node(
12049 node: ::treesitter_types::tree_sitter::Node<'tree>,
12050 _src: &'tree [u8],
12051 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12052 match node.kind() {
12053 "%=" => Ok(Self::PercentEq(::treesitter_types::Span::from(node))),
12054 "&&=" => Ok(Self::AmpAmpEq(::treesitter_types::Span::from(node))),
12055 "&=" => Ok(Self::AmpEq(::treesitter_types::Span::from(node))),
12056 "**=" => Ok(Self::StarStarEq(::treesitter_types::Span::from(node))),
12057 "*=" => Ok(Self::StarEq(::treesitter_types::Span::from(node))),
12058 "+=" => Ok(Self::PlusEq(::treesitter_types::Span::from(node))),
12059 "-=" => Ok(Self::MinusEq(::treesitter_types::Span::from(node))),
12060 "/=" => Ok(Self::SlashEq(::treesitter_types::Span::from(node))),
12061 "<<=" => Ok(Self::ShlEq(::treesitter_types::Span::from(node))),
12062 ">>=" => Ok(Self::ShrEq(::treesitter_types::Span::from(node))),
12063 ">>>=" => Ok(Self::GtGtGtEq(::treesitter_types::Span::from(node))),
12064 "??=" => Ok(Self::QuestionQuestionEq(::treesitter_types::Span::from(
12065 node,
12066 ))),
12067 "^=" => Ok(Self::CaretEq(::treesitter_types::Span::from(node))),
12068 "|=" => Ok(Self::PipeEq(::treesitter_types::Span::from(node))),
12069 "||=" => Ok(Self::PipePipeEq(::treesitter_types::Span::from(node))),
12070 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12071 }
12072 }
12073}
12074impl ::treesitter_types::Spanned for AugmentedAssignmentExpressionOperator {
12075 fn span(&self) -> ::treesitter_types::Span {
12076 match self {
12077 Self::PercentEq(span) => *span,
12078 Self::AmpAmpEq(span) => *span,
12079 Self::AmpEq(span) => *span,
12080 Self::StarStarEq(span) => *span,
12081 Self::StarEq(span) => *span,
12082 Self::PlusEq(span) => *span,
12083 Self::MinusEq(span) => *span,
12084 Self::SlashEq(span) => *span,
12085 Self::ShlEq(span) => *span,
12086 Self::ShrEq(span) => *span,
12087 Self::GtGtGtEq(span) => *span,
12088 Self::QuestionQuestionEq(span) => *span,
12089 Self::CaretEq(span) => *span,
12090 Self::PipeEq(span) => *span,
12091 Self::PipePipeEq(span) => *span,
12092 }
12093 }
12094}
12095#[derive(Debug, Clone, PartialEq, Eq)]
12096pub enum BinaryExpressionLeft<'tree> {
12097 Expression(::std::boxed::Box<Expression<'tree>>),
12098 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
12099}
12100impl<'tree> ::treesitter_types::FromNode<'tree> for BinaryExpressionLeft<'tree> {
12101 #[allow(clippy::collapsible_else_if)]
12102 fn from_node(
12103 node: ::treesitter_types::tree_sitter::Node<'tree>,
12104 src: &'tree [u8],
12105 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12106 match node.kind() {
12107 "private_property_identifier" => Ok(Self::PrivatePropertyIdentifier(
12108 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
12109 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
12110 node, src,
12111 )
12112 })?),
12113 )),
12114 _other => {
12115 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
12116 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
12117 }) {
12118 Ok(Self::Expression(::std::boxed::Box::new(v)))
12119 } else {
12120 Err(::treesitter_types::ParseError::unexpected_kind(
12121 _other, node,
12122 ))
12123 }
12124 }
12125 }
12126 }
12127}
12128impl ::treesitter_types::Spanned for BinaryExpressionLeft<'_> {
12129 fn span(&self) -> ::treesitter_types::Span {
12130 match self {
12131 Self::Expression(inner) => inner.span(),
12132 Self::PrivatePropertyIdentifier(inner) => inner.span(),
12133 }
12134 }
12135}
12136#[derive(Debug, Clone, PartialEq, Eq)]
12137pub enum BinaryExpressionOperator {
12138 NotEq(::treesitter_types::Span),
12139 BangEqEq(::treesitter_types::Span),
12140 Percent(::treesitter_types::Span),
12141 Amp(::treesitter_types::Span),
12142 AmpAmp(::treesitter_types::Span),
12143 Star(::treesitter_types::Span),
12144 StarStar(::treesitter_types::Span),
12145 Plus(::treesitter_types::Span),
12146 Minus(::treesitter_types::Span),
12147 Slash(::treesitter_types::Span),
12148 Lt(::treesitter_types::Span),
12149 Shl(::treesitter_types::Span),
12150 LtEq(::treesitter_types::Span),
12151 EqEq(::treesitter_types::Span),
12152 EqEqEq(::treesitter_types::Span),
12153 Gt(::treesitter_types::Span),
12154 GtEq(::treesitter_types::Span),
12155 Shr(::treesitter_types::Span),
12156 GtGtGt(::treesitter_types::Span),
12157 QuestionQuestion(::treesitter_types::Span),
12158 Caret(::treesitter_types::Span),
12159 In(::treesitter_types::Span),
12160 Instanceof(::treesitter_types::Span),
12161 Pipe(::treesitter_types::Span),
12162 PipePipe(::treesitter_types::Span),
12163}
12164impl<'tree> ::treesitter_types::FromNode<'tree> for BinaryExpressionOperator {
12165 #[allow(clippy::collapsible_else_if)]
12166 fn from_node(
12167 node: ::treesitter_types::tree_sitter::Node<'tree>,
12168 _src: &'tree [u8],
12169 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12170 match node.kind() {
12171 "!=" => Ok(Self::NotEq(::treesitter_types::Span::from(node))),
12172 "!==" => Ok(Self::BangEqEq(::treesitter_types::Span::from(node))),
12173 "%" => Ok(Self::Percent(::treesitter_types::Span::from(node))),
12174 "&" => Ok(Self::Amp(::treesitter_types::Span::from(node))),
12175 "&&" => Ok(Self::AmpAmp(::treesitter_types::Span::from(node))),
12176 "*" => Ok(Self::Star(::treesitter_types::Span::from(node))),
12177 "**" => Ok(Self::StarStar(::treesitter_types::Span::from(node))),
12178 "+" => Ok(Self::Plus(::treesitter_types::Span::from(node))),
12179 "-" => Ok(Self::Minus(::treesitter_types::Span::from(node))),
12180 "/" => Ok(Self::Slash(::treesitter_types::Span::from(node))),
12181 "<" => Ok(Self::Lt(::treesitter_types::Span::from(node))),
12182 "<<" => Ok(Self::Shl(::treesitter_types::Span::from(node))),
12183 "<=" => Ok(Self::LtEq(::treesitter_types::Span::from(node))),
12184 "==" => Ok(Self::EqEq(::treesitter_types::Span::from(node))),
12185 "===" => Ok(Self::EqEqEq(::treesitter_types::Span::from(node))),
12186 ">" => Ok(Self::Gt(::treesitter_types::Span::from(node))),
12187 ">=" => Ok(Self::GtEq(::treesitter_types::Span::from(node))),
12188 ">>" => Ok(Self::Shr(::treesitter_types::Span::from(node))),
12189 ">>>" => Ok(Self::GtGtGt(::treesitter_types::Span::from(node))),
12190 "??" => Ok(Self::QuestionQuestion(::treesitter_types::Span::from(node))),
12191 "^" => Ok(Self::Caret(::treesitter_types::Span::from(node))),
12192 "in" => Ok(Self::In(::treesitter_types::Span::from(node))),
12193 "instanceof" => Ok(Self::Instanceof(::treesitter_types::Span::from(node))),
12194 "|" => Ok(Self::Pipe(::treesitter_types::Span::from(node))),
12195 "||" => Ok(Self::PipePipe(::treesitter_types::Span::from(node))),
12196 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12197 }
12198 }
12199}
12200impl ::treesitter_types::Spanned for BinaryExpressionOperator {
12201 fn span(&self) -> ::treesitter_types::Span {
12202 match self {
12203 Self::NotEq(span) => *span,
12204 Self::BangEqEq(span) => *span,
12205 Self::Percent(span) => *span,
12206 Self::Amp(span) => *span,
12207 Self::AmpAmp(span) => *span,
12208 Self::Star(span) => *span,
12209 Self::StarStar(span) => *span,
12210 Self::Plus(span) => *span,
12211 Self::Minus(span) => *span,
12212 Self::Slash(span) => *span,
12213 Self::Lt(span) => *span,
12214 Self::Shl(span) => *span,
12215 Self::LtEq(span) => *span,
12216 Self::EqEq(span) => *span,
12217 Self::EqEqEq(span) => *span,
12218 Self::Gt(span) => *span,
12219 Self::GtEq(span) => *span,
12220 Self::Shr(span) => *span,
12221 Self::GtGtGt(span) => *span,
12222 Self::QuestionQuestion(span) => *span,
12223 Self::Caret(span) => *span,
12224 Self::In(span) => *span,
12225 Self::Instanceof(span) => *span,
12226 Self::Pipe(span) => *span,
12227 Self::PipePipe(span) => *span,
12228 }
12229 }
12230}
12231#[derive(Debug, Clone, PartialEq, Eq)]
12232pub enum CallExpressionArguments<'tree> {
12233 Arguments(::std::boxed::Box<Arguments<'tree>>),
12234 TemplateString(::std::boxed::Box<TemplateString<'tree>>),
12235}
12236impl<'tree> ::treesitter_types::FromNode<'tree> for CallExpressionArguments<'tree> {
12237 #[allow(clippy::collapsible_else_if)]
12238 fn from_node(
12239 node: ::treesitter_types::tree_sitter::Node<'tree>,
12240 src: &'tree [u8],
12241 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12242 match node.kind() {
12243 "arguments" => Ok(Self::Arguments(::std::boxed::Box::new(
12244 ::treesitter_types::runtime::maybe_grow_stack(|| {
12245 <Arguments as ::treesitter_types::FromNode>::from_node(node, src)
12246 })?,
12247 ))),
12248 "template_string" => Ok(Self::TemplateString(::std::boxed::Box::new(
12249 ::treesitter_types::runtime::maybe_grow_stack(|| {
12250 <TemplateString as ::treesitter_types::FromNode>::from_node(node, src)
12251 })?,
12252 ))),
12253 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12254 }
12255 }
12256}
12257impl ::treesitter_types::Spanned for CallExpressionArguments<'_> {
12258 fn span(&self) -> ::treesitter_types::Span {
12259 match self {
12260 Self::Arguments(inner) => inner.span(),
12261 Self::TemplateString(inner) => inner.span(),
12262 }
12263 }
12264}
12265#[derive(Debug, Clone, PartialEq, Eq)]
12266pub enum CallExpressionFunction<'tree> {
12267 Expression(::std::boxed::Box<Expression<'tree>>),
12268 Import(::std::boxed::Box<Import<'tree>>),
12269}
12270impl<'tree> ::treesitter_types::FromNode<'tree> for CallExpressionFunction<'tree> {
12271 #[allow(clippy::collapsible_else_if)]
12272 fn from_node(
12273 node: ::treesitter_types::tree_sitter::Node<'tree>,
12274 src: &'tree [u8],
12275 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12276 match node.kind() {
12277 "import" => Ok(Self::Import(::std::boxed::Box::new(
12278 ::treesitter_types::runtime::maybe_grow_stack(|| {
12279 <Import as ::treesitter_types::FromNode>::from_node(node, src)
12280 })?,
12281 ))),
12282 _other => {
12283 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
12284 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
12285 }) {
12286 Ok(Self::Expression(::std::boxed::Box::new(v)))
12287 } else {
12288 Err(::treesitter_types::ParseError::unexpected_kind(
12289 _other, node,
12290 ))
12291 }
12292 }
12293 }
12294 }
12295}
12296impl ::treesitter_types::Spanned for CallExpressionFunction<'_> {
12297 fn span(&self) -> ::treesitter_types::Span {
12298 match self {
12299 Self::Expression(inner) => inner.span(),
12300 Self::Import(inner) => inner.span(),
12301 }
12302 }
12303}
12304#[derive(Debug, Clone, PartialEq, Eq)]
12305pub enum CallSignatureReturnType<'tree> {
12306 AssertsAnnotation(::std::boxed::Box<AssertsAnnotation<'tree>>),
12307 TypeAnnotation(::std::boxed::Box<TypeAnnotation<'tree>>),
12308 TypePredicateAnnotation(::std::boxed::Box<TypePredicateAnnotation<'tree>>),
12309}
12310impl<'tree> ::treesitter_types::FromNode<'tree> for CallSignatureReturnType<'tree> {
12311 #[allow(clippy::collapsible_else_if)]
12312 fn from_node(
12313 node: ::treesitter_types::tree_sitter::Node<'tree>,
12314 src: &'tree [u8],
12315 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12316 match node.kind() {
12317 "asserts_annotation" => Ok(Self::AssertsAnnotation(::std::boxed::Box::new(
12318 ::treesitter_types::runtime::maybe_grow_stack(|| {
12319 <AssertsAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
12320 })?,
12321 ))),
12322 "type_annotation" => Ok(Self::TypeAnnotation(::std::boxed::Box::new(
12323 ::treesitter_types::runtime::maybe_grow_stack(|| {
12324 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
12325 })?,
12326 ))),
12327 "type_predicate_annotation" => Ok(Self::TypePredicateAnnotation(
12328 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
12329 <TypePredicateAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
12330 })?),
12331 )),
12332 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12333 }
12334 }
12335}
12336impl ::treesitter_types::Spanned for CallSignatureReturnType<'_> {
12337 fn span(&self) -> ::treesitter_types::Span {
12338 match self {
12339 Self::AssertsAnnotation(inner) => inner.span(),
12340 Self::TypeAnnotation(inner) => inner.span(),
12341 Self::TypePredicateAnnotation(inner) => inner.span(),
12342 }
12343 }
12344}
12345#[derive(Debug, Clone, PartialEq, Eq)]
12346pub enum CatchClauseParameter<'tree> {
12347 ArrayPattern(::std::boxed::Box<ArrayPattern<'tree>>),
12348 Identifier(::std::boxed::Box<Identifier<'tree>>),
12349 ObjectPattern(::std::boxed::Box<ObjectPattern<'tree>>),
12350}
12351impl<'tree> ::treesitter_types::FromNode<'tree> for CatchClauseParameter<'tree> {
12352 #[allow(clippy::collapsible_else_if)]
12353 fn from_node(
12354 node: ::treesitter_types::tree_sitter::Node<'tree>,
12355 src: &'tree [u8],
12356 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12357 match node.kind() {
12358 "array_pattern" => Ok(Self::ArrayPattern(::std::boxed::Box::new(
12359 ::treesitter_types::runtime::maybe_grow_stack(|| {
12360 <ArrayPattern as ::treesitter_types::FromNode>::from_node(node, src)
12361 })?,
12362 ))),
12363 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
12364 ::treesitter_types::runtime::maybe_grow_stack(|| {
12365 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
12366 })?,
12367 ))),
12368 "object_pattern" => Ok(Self::ObjectPattern(::std::boxed::Box::new(
12369 ::treesitter_types::runtime::maybe_grow_stack(|| {
12370 <ObjectPattern as ::treesitter_types::FromNode>::from_node(node, src)
12371 })?,
12372 ))),
12373 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12374 }
12375 }
12376}
12377impl ::treesitter_types::Spanned for CatchClauseParameter<'_> {
12378 fn span(&self) -> ::treesitter_types::Span {
12379 match self {
12380 Self::ArrayPattern(inner) => inner.span(),
12381 Self::Identifier(inner) => inner.span(),
12382 Self::ObjectPattern(inner) => inner.span(),
12383 }
12384 }
12385}
12386#[derive(Debug, Clone, PartialEq, Eq)]
12387pub enum ClassBodyChildren<'tree> {
12388 AbstractMethodSignature(::std::boxed::Box<AbstractMethodSignature<'tree>>),
12389 ClassStaticBlock(::std::boxed::Box<ClassStaticBlock<'tree>>),
12390 IndexSignature(::std::boxed::Box<IndexSignature<'tree>>),
12391 MethodDefinition(::std::boxed::Box<MethodDefinition<'tree>>),
12392 MethodSignature(::std::boxed::Box<MethodSignature<'tree>>),
12393 PublicFieldDefinition(::std::boxed::Box<PublicFieldDefinition<'tree>>),
12394}
12395impl<'tree> ::treesitter_types::FromNode<'tree> for ClassBodyChildren<'tree> {
12396 #[allow(clippy::collapsible_else_if)]
12397 fn from_node(
12398 node: ::treesitter_types::tree_sitter::Node<'tree>,
12399 src: &'tree [u8],
12400 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12401 match node.kind() {
12402 "abstract_method_signature" => Ok(Self::AbstractMethodSignature(
12403 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
12404 <AbstractMethodSignature as ::treesitter_types::FromNode>::from_node(node, src)
12405 })?),
12406 )),
12407 "class_static_block" => Ok(Self::ClassStaticBlock(::std::boxed::Box::new(
12408 ::treesitter_types::runtime::maybe_grow_stack(|| {
12409 <ClassStaticBlock as ::treesitter_types::FromNode>::from_node(node, src)
12410 })?,
12411 ))),
12412 "index_signature" => Ok(Self::IndexSignature(::std::boxed::Box::new(
12413 ::treesitter_types::runtime::maybe_grow_stack(|| {
12414 <IndexSignature as ::treesitter_types::FromNode>::from_node(node, src)
12415 })?,
12416 ))),
12417 "method_definition" => Ok(Self::MethodDefinition(::std::boxed::Box::new(
12418 ::treesitter_types::runtime::maybe_grow_stack(|| {
12419 <MethodDefinition as ::treesitter_types::FromNode>::from_node(node, src)
12420 })?,
12421 ))),
12422 "method_signature" => Ok(Self::MethodSignature(::std::boxed::Box::new(
12423 ::treesitter_types::runtime::maybe_grow_stack(|| {
12424 <MethodSignature as ::treesitter_types::FromNode>::from_node(node, src)
12425 })?,
12426 ))),
12427 "public_field_definition" => Ok(Self::PublicFieldDefinition(::std::boxed::Box::new(
12428 ::treesitter_types::runtime::maybe_grow_stack(|| {
12429 <PublicFieldDefinition as ::treesitter_types::FromNode>::from_node(node, src)
12430 })?,
12431 ))),
12432 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12433 }
12434 }
12435}
12436impl ::treesitter_types::Spanned for ClassBodyChildren<'_> {
12437 fn span(&self) -> ::treesitter_types::Span {
12438 match self {
12439 Self::AbstractMethodSignature(inner) => inner.span(),
12440 Self::ClassStaticBlock(inner) => inner.span(),
12441 Self::IndexSignature(inner) => inner.span(),
12442 Self::MethodDefinition(inner) => inner.span(),
12443 Self::MethodSignature(inner) => inner.span(),
12444 Self::PublicFieldDefinition(inner) => inner.span(),
12445 }
12446 }
12447}
12448#[derive(Debug, Clone, PartialEq, Eq)]
12449pub enum ClassHeritageChildren<'tree> {
12450 ExtendsClause(::std::boxed::Box<ExtendsClause<'tree>>),
12451 ImplementsClause(::std::boxed::Box<ImplementsClause<'tree>>),
12452}
12453impl<'tree> ::treesitter_types::FromNode<'tree> for ClassHeritageChildren<'tree> {
12454 #[allow(clippy::collapsible_else_if)]
12455 fn from_node(
12456 node: ::treesitter_types::tree_sitter::Node<'tree>,
12457 src: &'tree [u8],
12458 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12459 match node.kind() {
12460 "extends_clause" => Ok(Self::ExtendsClause(::std::boxed::Box::new(
12461 ::treesitter_types::runtime::maybe_grow_stack(|| {
12462 <ExtendsClause as ::treesitter_types::FromNode>::from_node(node, src)
12463 })?,
12464 ))),
12465 "implements_clause" => Ok(Self::ImplementsClause(::std::boxed::Box::new(
12466 ::treesitter_types::runtime::maybe_grow_stack(|| {
12467 <ImplementsClause as ::treesitter_types::FromNode>::from_node(node, src)
12468 })?,
12469 ))),
12470 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12471 }
12472 }
12473}
12474impl ::treesitter_types::Spanned for ClassHeritageChildren<'_> {
12475 fn span(&self) -> ::treesitter_types::Span {
12476 match self {
12477 Self::ExtendsClause(inner) => inner.span(),
12478 Self::ImplementsClause(inner) => inner.span(),
12479 }
12480 }
12481}
12482#[derive(Debug, Clone, PartialEq, Eq)]
12483pub enum DecoratorChildren<'tree> {
12484 CallExpression(::std::boxed::Box<CallExpression<'tree>>),
12485 Identifier(::std::boxed::Box<Identifier<'tree>>),
12486 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
12487 ParenthesizedExpression(::std::boxed::Box<ParenthesizedExpression<'tree>>),
12488}
12489impl<'tree> ::treesitter_types::FromNode<'tree> for DecoratorChildren<'tree> {
12490 #[allow(clippy::collapsible_else_if)]
12491 fn from_node(
12492 node: ::treesitter_types::tree_sitter::Node<'tree>,
12493 src: &'tree [u8],
12494 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12495 match node.kind() {
12496 "call_expression" => Ok(Self::CallExpression(::std::boxed::Box::new(
12497 ::treesitter_types::runtime::maybe_grow_stack(|| {
12498 <CallExpression as ::treesitter_types::FromNode>::from_node(node, src)
12499 })?,
12500 ))),
12501 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
12502 ::treesitter_types::runtime::maybe_grow_stack(|| {
12503 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
12504 })?,
12505 ))),
12506 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
12507 ::treesitter_types::runtime::maybe_grow_stack(|| {
12508 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)
12509 })?,
12510 ))),
12511 "parenthesized_expression" => Ok(Self::ParenthesizedExpression(
12512 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
12513 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(node, src)
12514 })?),
12515 )),
12516 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12517 }
12518 }
12519}
12520impl ::treesitter_types::Spanned for DecoratorChildren<'_> {
12521 fn span(&self) -> ::treesitter_types::Span {
12522 match self {
12523 Self::CallExpression(inner) => inner.span(),
12524 Self::Identifier(inner) => inner.span(),
12525 Self::MemberExpression(inner) => inner.span(),
12526 Self::ParenthesizedExpression(inner) => inner.span(),
12527 }
12528 }
12529}
12530#[derive(Debug, Clone, PartialEq, Eq)]
12531pub enum EnumAssignmentName<'tree> {
12532 ComputedPropertyName(::std::boxed::Box<ComputedPropertyName<'tree>>),
12533 Number(::std::boxed::Box<Number<'tree>>),
12534 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
12535 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
12536 String(::std::boxed::Box<String<'tree>>),
12537}
12538impl<'tree> ::treesitter_types::FromNode<'tree> for EnumAssignmentName<'tree> {
12539 #[allow(clippy::collapsible_else_if)]
12540 fn from_node(
12541 node: ::treesitter_types::tree_sitter::Node<'tree>,
12542 src: &'tree [u8],
12543 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12544 match node.kind() {
12545 "computed_property_name" => Ok(Self::ComputedPropertyName(::std::boxed::Box::new(
12546 ::treesitter_types::runtime::maybe_grow_stack(|| {
12547 <ComputedPropertyName as ::treesitter_types::FromNode>::from_node(node, src)
12548 })?,
12549 ))),
12550 "number" => Ok(Self::Number(::std::boxed::Box::new(
12551 ::treesitter_types::runtime::maybe_grow_stack(|| {
12552 <Number as ::treesitter_types::FromNode>::from_node(node, src)
12553 })?,
12554 ))),
12555 "private_property_identifier" => Ok(Self::PrivatePropertyIdentifier(
12556 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
12557 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
12558 node, src,
12559 )
12560 })?),
12561 )),
12562 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
12563 ::treesitter_types::runtime::maybe_grow_stack(|| {
12564 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
12565 })?,
12566 ))),
12567 "string" => Ok(Self::String(::std::boxed::Box::new(
12568 ::treesitter_types::runtime::maybe_grow_stack(|| {
12569 <String as ::treesitter_types::FromNode>::from_node(node, src)
12570 })?,
12571 ))),
12572 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12573 }
12574 }
12575}
12576impl ::treesitter_types::Spanned for EnumAssignmentName<'_> {
12577 fn span(&self) -> ::treesitter_types::Span {
12578 match self {
12579 Self::ComputedPropertyName(inner) => inner.span(),
12580 Self::Number(inner) => inner.span(),
12581 Self::PrivatePropertyIdentifier(inner) => inner.span(),
12582 Self::PropertyIdentifier(inner) => inner.span(),
12583 Self::String(inner) => inner.span(),
12584 }
12585 }
12586}
12587#[derive(Debug, Clone, PartialEq, Eq)]
12588pub enum EnumBodyName<'tree> {
12589 ComputedPropertyName(::std::boxed::Box<ComputedPropertyName<'tree>>),
12590 Number(::std::boxed::Box<Number<'tree>>),
12591 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
12592 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
12593 String(::std::boxed::Box<String<'tree>>),
12594}
12595impl<'tree> ::treesitter_types::FromNode<'tree> for EnumBodyName<'tree> {
12596 #[allow(clippy::collapsible_else_if)]
12597 fn from_node(
12598 node: ::treesitter_types::tree_sitter::Node<'tree>,
12599 src: &'tree [u8],
12600 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12601 match node.kind() {
12602 "computed_property_name" => Ok(Self::ComputedPropertyName(::std::boxed::Box::new(
12603 ::treesitter_types::runtime::maybe_grow_stack(|| {
12604 <ComputedPropertyName as ::treesitter_types::FromNode>::from_node(node, src)
12605 })?,
12606 ))),
12607 "number" => Ok(Self::Number(::std::boxed::Box::new(
12608 ::treesitter_types::runtime::maybe_grow_stack(|| {
12609 <Number as ::treesitter_types::FromNode>::from_node(node, src)
12610 })?,
12611 ))),
12612 "private_property_identifier" => Ok(Self::PrivatePropertyIdentifier(
12613 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
12614 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
12615 node, src,
12616 )
12617 })?),
12618 )),
12619 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
12620 ::treesitter_types::runtime::maybe_grow_stack(|| {
12621 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
12622 })?,
12623 ))),
12624 "string" => Ok(Self::String(::std::boxed::Box::new(
12625 ::treesitter_types::runtime::maybe_grow_stack(|| {
12626 <String as ::treesitter_types::FromNode>::from_node(node, src)
12627 })?,
12628 ))),
12629 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12630 }
12631 }
12632}
12633impl ::treesitter_types::Spanned for EnumBodyName<'_> {
12634 fn span(&self) -> ::treesitter_types::Span {
12635 match self {
12636 Self::ComputedPropertyName(inner) => inner.span(),
12637 Self::Number(inner) => inner.span(),
12638 Self::PrivatePropertyIdentifier(inner) => inner.span(),
12639 Self::PropertyIdentifier(inner) => inner.span(),
12640 Self::String(inner) => inner.span(),
12641 }
12642 }
12643}
12644#[derive(Debug, Clone, PartialEq, Eq)]
12645pub enum ExportSpecifierAlias<'tree> {
12646 Identifier(::std::boxed::Box<Identifier<'tree>>),
12647 String(::std::boxed::Box<String<'tree>>),
12648}
12649impl<'tree> ::treesitter_types::FromNode<'tree> for ExportSpecifierAlias<'tree> {
12650 #[allow(clippy::collapsible_else_if)]
12651 fn from_node(
12652 node: ::treesitter_types::tree_sitter::Node<'tree>,
12653 src: &'tree [u8],
12654 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12655 match node.kind() {
12656 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
12657 ::treesitter_types::runtime::maybe_grow_stack(|| {
12658 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
12659 })?,
12660 ))),
12661 "string" => Ok(Self::String(::std::boxed::Box::new(
12662 ::treesitter_types::runtime::maybe_grow_stack(|| {
12663 <String as ::treesitter_types::FromNode>::from_node(node, src)
12664 })?,
12665 ))),
12666 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12667 }
12668 }
12669}
12670impl ::treesitter_types::Spanned for ExportSpecifierAlias<'_> {
12671 fn span(&self) -> ::treesitter_types::Span {
12672 match self {
12673 Self::Identifier(inner) => inner.span(),
12674 Self::String(inner) => inner.span(),
12675 }
12676 }
12677}
12678#[derive(Debug, Clone, PartialEq, Eq)]
12679pub enum ExportSpecifierName<'tree> {
12680 Identifier(::std::boxed::Box<Identifier<'tree>>),
12681 String(::std::boxed::Box<String<'tree>>),
12682}
12683impl<'tree> ::treesitter_types::FromNode<'tree> for ExportSpecifierName<'tree> {
12684 #[allow(clippy::collapsible_else_if)]
12685 fn from_node(
12686 node: ::treesitter_types::tree_sitter::Node<'tree>,
12687 src: &'tree [u8],
12688 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12689 match node.kind() {
12690 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
12691 ::treesitter_types::runtime::maybe_grow_stack(|| {
12692 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
12693 })?,
12694 ))),
12695 "string" => Ok(Self::String(::std::boxed::Box::new(
12696 ::treesitter_types::runtime::maybe_grow_stack(|| {
12697 <String as ::treesitter_types::FromNode>::from_node(node, src)
12698 })?,
12699 ))),
12700 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12701 }
12702 }
12703}
12704impl ::treesitter_types::Spanned for ExportSpecifierName<'_> {
12705 fn span(&self) -> ::treesitter_types::Span {
12706 match self {
12707 Self::Identifier(inner) => inner.span(),
12708 Self::String(inner) => inner.span(),
12709 }
12710 }
12711}
12712#[derive(Debug, Clone, PartialEq, Eq)]
12713pub enum ExportStatementChildren<'tree> {
12714 ExportClause(::std::boxed::Box<ExportClause<'tree>>),
12715 Expression(::std::boxed::Box<Expression<'tree>>),
12716 Identifier(::std::boxed::Box<Identifier<'tree>>),
12717 NamespaceExport(::std::boxed::Box<NamespaceExport<'tree>>),
12718}
12719impl<'tree> ::treesitter_types::FromNode<'tree> for ExportStatementChildren<'tree> {
12720 #[allow(clippy::collapsible_else_if)]
12721 fn from_node(
12722 node: ::treesitter_types::tree_sitter::Node<'tree>,
12723 src: &'tree [u8],
12724 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12725 match node.kind() {
12726 "export_clause" => Ok(Self::ExportClause(::std::boxed::Box::new(
12727 ::treesitter_types::runtime::maybe_grow_stack(|| {
12728 <ExportClause as ::treesitter_types::FromNode>::from_node(node, src)
12729 })?,
12730 ))),
12731 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
12732 ::treesitter_types::runtime::maybe_grow_stack(|| {
12733 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
12734 })?,
12735 ))),
12736 "namespace_export" => Ok(Self::NamespaceExport(::std::boxed::Box::new(
12737 ::treesitter_types::runtime::maybe_grow_stack(|| {
12738 <NamespaceExport as ::treesitter_types::FromNode>::from_node(node, src)
12739 })?,
12740 ))),
12741 _other => {
12742 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
12743 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
12744 }) {
12745 Ok(Self::Expression(::std::boxed::Box::new(v)))
12746 } else {
12747 Err(::treesitter_types::ParseError::unexpected_kind(
12748 _other, node,
12749 ))
12750 }
12751 }
12752 }
12753 }
12754}
12755impl ::treesitter_types::Spanned for ExportStatementChildren<'_> {
12756 fn span(&self) -> ::treesitter_types::Span {
12757 match self {
12758 Self::ExportClause(inner) => inner.span(),
12759 Self::Expression(inner) => inner.span(),
12760 Self::Identifier(inner) => inner.span(),
12761 Self::NamespaceExport(inner) => inner.span(),
12762 }
12763 }
12764}
12765#[derive(Debug, Clone, PartialEq, Eq)]
12766pub enum ExpressionStatementChildren<'tree> {
12767 Expression(::std::boxed::Box<Expression<'tree>>),
12768 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
12769}
12770impl<'tree> ::treesitter_types::FromNode<'tree> for ExpressionStatementChildren<'tree> {
12771 #[allow(clippy::collapsible_else_if)]
12772 fn from_node(
12773 node: ::treesitter_types::tree_sitter::Node<'tree>,
12774 src: &'tree [u8],
12775 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12776 match node.kind() {
12777 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
12778 ::treesitter_types::runtime::maybe_grow_stack(|| {
12779 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)
12780 })?,
12781 ))),
12782 _other => {
12783 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
12784 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
12785 }) {
12786 Ok(Self::Expression(::std::boxed::Box::new(v)))
12787 } else {
12788 Err(::treesitter_types::ParseError::unexpected_kind(
12789 _other, node,
12790 ))
12791 }
12792 }
12793 }
12794 }
12795}
12796impl ::treesitter_types::Spanned for ExpressionStatementChildren<'_> {
12797 fn span(&self) -> ::treesitter_types::Span {
12798 match self {
12799 Self::Expression(inner) => inner.span(),
12800 Self::SequenceExpression(inner) => inner.span(),
12801 }
12802 }
12803}
12804#[derive(Debug, Clone, PartialEq, Eq)]
12805pub enum ExtendsTypeClauseType<'tree> {
12806 GenericType(::std::boxed::Box<GenericType<'tree>>),
12807 NestedTypeIdentifier(::std::boxed::Box<NestedTypeIdentifier<'tree>>),
12808 TypeIdentifier(::std::boxed::Box<TypeIdentifier<'tree>>),
12809}
12810impl<'tree> ::treesitter_types::FromNode<'tree> for ExtendsTypeClauseType<'tree> {
12811 #[allow(clippy::collapsible_else_if)]
12812 fn from_node(
12813 node: ::treesitter_types::tree_sitter::Node<'tree>,
12814 src: &'tree [u8],
12815 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12816 match node.kind() {
12817 "generic_type" => Ok(Self::GenericType(::std::boxed::Box::new(
12818 ::treesitter_types::runtime::maybe_grow_stack(|| {
12819 <GenericType as ::treesitter_types::FromNode>::from_node(node, src)
12820 })?,
12821 ))),
12822 "nested_type_identifier" => Ok(Self::NestedTypeIdentifier(::std::boxed::Box::new(
12823 ::treesitter_types::runtime::maybe_grow_stack(|| {
12824 <NestedTypeIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
12825 })?,
12826 ))),
12827 "type_identifier" => Ok(Self::TypeIdentifier(::std::boxed::Box::new(
12828 ::treesitter_types::runtime::maybe_grow_stack(|| {
12829 <TypeIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
12830 })?,
12831 ))),
12832 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12833 }
12834 }
12835}
12836impl ::treesitter_types::Spanned for ExtendsTypeClauseType<'_> {
12837 fn span(&self) -> ::treesitter_types::Span {
12838 match self {
12839 Self::GenericType(inner) => inner.span(),
12840 Self::NestedTypeIdentifier(inner) => inner.span(),
12841 Self::TypeIdentifier(inner) => inner.span(),
12842 }
12843 }
12844}
12845#[derive(Debug, Clone, PartialEq, Eq)]
12846pub enum ForInStatementKind {
12847 Const(::treesitter_types::Span),
12848 Let(::treesitter_types::Span),
12849 Var(::treesitter_types::Span),
12850}
12851impl<'tree> ::treesitter_types::FromNode<'tree> for ForInStatementKind {
12852 #[allow(clippy::collapsible_else_if)]
12853 fn from_node(
12854 node: ::treesitter_types::tree_sitter::Node<'tree>,
12855 _src: &'tree [u8],
12856 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12857 match node.kind() {
12858 "const" => Ok(Self::Const(::treesitter_types::Span::from(node))),
12859 "let" => Ok(Self::Let(::treesitter_types::Span::from(node))),
12860 "var" => Ok(Self::Var(::treesitter_types::Span::from(node))),
12861 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12862 }
12863 }
12864}
12865impl ::treesitter_types::Spanned for ForInStatementKind {
12866 fn span(&self) -> ::treesitter_types::Span {
12867 match self {
12868 Self::Const(span) => *span,
12869 Self::Let(span) => *span,
12870 Self::Var(span) => *span,
12871 }
12872 }
12873}
12874#[derive(Debug, Clone, PartialEq, Eq)]
12875pub enum ForInStatementLeft<'tree> {
12876 ArrayPattern(::std::boxed::Box<ArrayPattern<'tree>>),
12877 Identifier(::std::boxed::Box<Identifier<'tree>>),
12878 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
12879 NonNullExpression(::std::boxed::Box<NonNullExpression<'tree>>),
12880 ObjectPattern(::std::boxed::Box<ObjectPattern<'tree>>),
12881 ParenthesizedExpression(::std::boxed::Box<ParenthesizedExpression<'tree>>),
12882 SubscriptExpression(::std::boxed::Box<SubscriptExpression<'tree>>),
12883 Undefined(::std::boxed::Box<Undefined<'tree>>),
12884}
12885impl<'tree> ::treesitter_types::FromNode<'tree> for ForInStatementLeft<'tree> {
12886 #[allow(clippy::collapsible_else_if)]
12887 fn from_node(
12888 node: ::treesitter_types::tree_sitter::Node<'tree>,
12889 src: &'tree [u8],
12890 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12891 match node.kind() {
12892 "array_pattern" => Ok(Self::ArrayPattern(::std::boxed::Box::new(
12893 ::treesitter_types::runtime::maybe_grow_stack(|| {
12894 <ArrayPattern as ::treesitter_types::FromNode>::from_node(node, src)
12895 })?,
12896 ))),
12897 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
12898 ::treesitter_types::runtime::maybe_grow_stack(|| {
12899 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
12900 })?,
12901 ))),
12902 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
12903 ::treesitter_types::runtime::maybe_grow_stack(|| {
12904 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)
12905 })?,
12906 ))),
12907 "non_null_expression" => Ok(Self::NonNullExpression(::std::boxed::Box::new(
12908 ::treesitter_types::runtime::maybe_grow_stack(|| {
12909 <NonNullExpression as ::treesitter_types::FromNode>::from_node(node, src)
12910 })?,
12911 ))),
12912 "object_pattern" => Ok(Self::ObjectPattern(::std::boxed::Box::new(
12913 ::treesitter_types::runtime::maybe_grow_stack(|| {
12914 <ObjectPattern as ::treesitter_types::FromNode>::from_node(node, src)
12915 })?,
12916 ))),
12917 "parenthesized_expression" => Ok(Self::ParenthesizedExpression(
12918 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
12919 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(node, src)
12920 })?),
12921 )),
12922 "subscript_expression" => Ok(Self::SubscriptExpression(::std::boxed::Box::new(
12923 ::treesitter_types::runtime::maybe_grow_stack(|| {
12924 <SubscriptExpression as ::treesitter_types::FromNode>::from_node(node, src)
12925 })?,
12926 ))),
12927 "undefined" => Ok(Self::Undefined(::std::boxed::Box::new(
12928 ::treesitter_types::runtime::maybe_grow_stack(|| {
12929 <Undefined as ::treesitter_types::FromNode>::from_node(node, src)
12930 })?,
12931 ))),
12932 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12933 }
12934 }
12935}
12936impl ::treesitter_types::Spanned for ForInStatementLeft<'_> {
12937 fn span(&self) -> ::treesitter_types::Span {
12938 match self {
12939 Self::ArrayPattern(inner) => inner.span(),
12940 Self::Identifier(inner) => inner.span(),
12941 Self::MemberExpression(inner) => inner.span(),
12942 Self::NonNullExpression(inner) => inner.span(),
12943 Self::ObjectPattern(inner) => inner.span(),
12944 Self::ParenthesizedExpression(inner) => inner.span(),
12945 Self::SubscriptExpression(inner) => inner.span(),
12946 Self::Undefined(inner) => inner.span(),
12947 }
12948 }
12949}
12950#[derive(Debug, Clone, PartialEq, Eq)]
12951pub enum ForInStatementOperator {
12952 In(::treesitter_types::Span),
12953 Of(::treesitter_types::Span),
12954}
12955impl<'tree> ::treesitter_types::FromNode<'tree> for ForInStatementOperator {
12956 #[allow(clippy::collapsible_else_if)]
12957 fn from_node(
12958 node: ::treesitter_types::tree_sitter::Node<'tree>,
12959 _src: &'tree [u8],
12960 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12961 match node.kind() {
12962 "in" => Ok(Self::In(::treesitter_types::Span::from(node))),
12963 "of" => Ok(Self::Of(::treesitter_types::Span::from(node))),
12964 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12965 }
12966 }
12967}
12968impl ::treesitter_types::Spanned for ForInStatementOperator {
12969 fn span(&self) -> ::treesitter_types::Span {
12970 match self {
12971 Self::In(span) => *span,
12972 Self::Of(span) => *span,
12973 }
12974 }
12975}
12976#[derive(Debug, Clone, PartialEq, Eq)]
12977pub enum ForInStatementRight<'tree> {
12978 Expression(::std::boxed::Box<Expression<'tree>>),
12979 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
12980}
12981impl<'tree> ::treesitter_types::FromNode<'tree> for ForInStatementRight<'tree> {
12982 #[allow(clippy::collapsible_else_if)]
12983 fn from_node(
12984 node: ::treesitter_types::tree_sitter::Node<'tree>,
12985 src: &'tree [u8],
12986 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12987 match node.kind() {
12988 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
12989 ::treesitter_types::runtime::maybe_grow_stack(|| {
12990 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)
12991 })?,
12992 ))),
12993 _other => {
12994 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
12995 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
12996 }) {
12997 Ok(Self::Expression(::std::boxed::Box::new(v)))
12998 } else {
12999 Err(::treesitter_types::ParseError::unexpected_kind(
13000 _other, node,
13001 ))
13002 }
13003 }
13004 }
13005 }
13006}
13007impl ::treesitter_types::Spanned for ForInStatementRight<'_> {
13008 fn span(&self) -> ::treesitter_types::Span {
13009 match self {
13010 Self::Expression(inner) => inner.span(),
13011 Self::SequenceExpression(inner) => inner.span(),
13012 }
13013 }
13014}
13015#[derive(Debug, Clone, PartialEq, Eq)]
13016pub enum ForStatementCondition<'tree> {
13017 Semicolon(::treesitter_types::Span),
13018 EmptyStatement(::std::boxed::Box<EmptyStatement<'tree>>),
13019 Expression(::std::boxed::Box<Expression<'tree>>),
13020 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
13021}
13022impl<'tree> ::treesitter_types::FromNode<'tree> for ForStatementCondition<'tree> {
13023 #[allow(clippy::collapsible_else_if)]
13024 fn from_node(
13025 node: ::treesitter_types::tree_sitter::Node<'tree>,
13026 src: &'tree [u8],
13027 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13028 match node.kind() {
13029 ";" => Ok(Self::Semicolon(::treesitter_types::Span::from(node))),
13030 "empty_statement" => Ok(Self::EmptyStatement(::std::boxed::Box::new(
13031 ::treesitter_types::runtime::maybe_grow_stack(|| {
13032 <EmptyStatement as ::treesitter_types::FromNode>::from_node(node, src)
13033 })?,
13034 ))),
13035 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
13036 ::treesitter_types::runtime::maybe_grow_stack(|| {
13037 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)
13038 })?,
13039 ))),
13040 _other => {
13041 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
13042 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
13043 }) {
13044 Ok(Self::Expression(::std::boxed::Box::new(v)))
13045 } else {
13046 Err(::treesitter_types::ParseError::unexpected_kind(
13047 _other, node,
13048 ))
13049 }
13050 }
13051 }
13052 }
13053}
13054impl ::treesitter_types::Spanned for ForStatementCondition<'_> {
13055 fn span(&self) -> ::treesitter_types::Span {
13056 match self {
13057 Self::Semicolon(span) => *span,
13058 Self::EmptyStatement(inner) => inner.span(),
13059 Self::Expression(inner) => inner.span(),
13060 Self::SequenceExpression(inner) => inner.span(),
13061 }
13062 }
13063}
13064#[derive(Debug, Clone, PartialEq, Eq)]
13065pub enum ForStatementIncrement<'tree> {
13066 Expression(::std::boxed::Box<Expression<'tree>>),
13067 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
13068}
13069impl<'tree> ::treesitter_types::FromNode<'tree> for ForStatementIncrement<'tree> {
13070 #[allow(clippy::collapsible_else_if)]
13071 fn from_node(
13072 node: ::treesitter_types::tree_sitter::Node<'tree>,
13073 src: &'tree [u8],
13074 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13075 match node.kind() {
13076 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
13077 ::treesitter_types::runtime::maybe_grow_stack(|| {
13078 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)
13079 })?,
13080 ))),
13081 _other => {
13082 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
13083 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
13084 }) {
13085 Ok(Self::Expression(::std::boxed::Box::new(v)))
13086 } else {
13087 Err(::treesitter_types::ParseError::unexpected_kind(
13088 _other, node,
13089 ))
13090 }
13091 }
13092 }
13093 }
13094}
13095impl ::treesitter_types::Spanned for ForStatementIncrement<'_> {
13096 fn span(&self) -> ::treesitter_types::Span {
13097 match self {
13098 Self::Expression(inner) => inner.span(),
13099 Self::SequenceExpression(inner) => inner.span(),
13100 }
13101 }
13102}
13103#[derive(Debug, Clone, PartialEq, Eq)]
13104pub enum ForStatementInitializer<'tree> {
13105 EmptyStatement(::std::boxed::Box<EmptyStatement<'tree>>),
13106 Expression(::std::boxed::Box<Expression<'tree>>),
13107 LexicalDeclaration(::std::boxed::Box<LexicalDeclaration<'tree>>),
13108 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
13109 VariableDeclaration(::std::boxed::Box<VariableDeclaration<'tree>>),
13110}
13111impl<'tree> ::treesitter_types::FromNode<'tree> for ForStatementInitializer<'tree> {
13112 #[allow(clippy::collapsible_else_if)]
13113 fn from_node(
13114 node: ::treesitter_types::tree_sitter::Node<'tree>,
13115 src: &'tree [u8],
13116 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13117 match node.kind() {
13118 "empty_statement" => Ok(Self::EmptyStatement(::std::boxed::Box::new(
13119 ::treesitter_types::runtime::maybe_grow_stack(|| {
13120 <EmptyStatement as ::treesitter_types::FromNode>::from_node(node, src)
13121 })?,
13122 ))),
13123 "lexical_declaration" => Ok(Self::LexicalDeclaration(::std::boxed::Box::new(
13124 ::treesitter_types::runtime::maybe_grow_stack(|| {
13125 <LexicalDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
13126 })?,
13127 ))),
13128 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
13129 ::treesitter_types::runtime::maybe_grow_stack(|| {
13130 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)
13131 })?,
13132 ))),
13133 "variable_declaration" => Ok(Self::VariableDeclaration(::std::boxed::Box::new(
13134 ::treesitter_types::runtime::maybe_grow_stack(|| {
13135 <VariableDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
13136 })?,
13137 ))),
13138 _other => {
13139 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
13140 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
13141 }) {
13142 Ok(Self::Expression(::std::boxed::Box::new(v)))
13143 } else {
13144 Err(::treesitter_types::ParseError::unexpected_kind(
13145 _other, node,
13146 ))
13147 }
13148 }
13149 }
13150 }
13151}
13152impl ::treesitter_types::Spanned for ForStatementInitializer<'_> {
13153 fn span(&self) -> ::treesitter_types::Span {
13154 match self {
13155 Self::EmptyStatement(inner) => inner.span(),
13156 Self::Expression(inner) => inner.span(),
13157 Self::LexicalDeclaration(inner) => inner.span(),
13158 Self::SequenceExpression(inner) => inner.span(),
13159 Self::VariableDeclaration(inner) => inner.span(),
13160 }
13161 }
13162}
13163#[derive(Debug, Clone, PartialEq, Eq)]
13164pub enum FormalParametersChildren<'tree> {
13165 OptionalParameter(::std::boxed::Box<OptionalParameter<'tree>>),
13166 RequiredParameter(::std::boxed::Box<RequiredParameter<'tree>>),
13167}
13168impl<'tree> ::treesitter_types::FromNode<'tree> for FormalParametersChildren<'tree> {
13169 #[allow(clippy::collapsible_else_if)]
13170 fn from_node(
13171 node: ::treesitter_types::tree_sitter::Node<'tree>,
13172 src: &'tree [u8],
13173 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13174 match node.kind() {
13175 "optional_parameter" => Ok(Self::OptionalParameter(::std::boxed::Box::new(
13176 ::treesitter_types::runtime::maybe_grow_stack(|| {
13177 <OptionalParameter as ::treesitter_types::FromNode>::from_node(node, src)
13178 })?,
13179 ))),
13180 "required_parameter" => Ok(Self::RequiredParameter(::std::boxed::Box::new(
13181 ::treesitter_types::runtime::maybe_grow_stack(|| {
13182 <RequiredParameter as ::treesitter_types::FromNode>::from_node(node, src)
13183 })?,
13184 ))),
13185 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13186 }
13187 }
13188}
13189impl ::treesitter_types::Spanned for FormalParametersChildren<'_> {
13190 fn span(&self) -> ::treesitter_types::Span {
13191 match self {
13192 Self::OptionalParameter(inner) => inner.span(),
13193 Self::RequiredParameter(inner) => inner.span(),
13194 }
13195 }
13196}
13197#[derive(Debug, Clone, PartialEq, Eq)]
13198pub enum FunctionDeclarationReturnType<'tree> {
13199 AssertsAnnotation(::std::boxed::Box<AssertsAnnotation<'tree>>),
13200 TypeAnnotation(::std::boxed::Box<TypeAnnotation<'tree>>),
13201 TypePredicateAnnotation(::std::boxed::Box<TypePredicateAnnotation<'tree>>),
13202}
13203impl<'tree> ::treesitter_types::FromNode<'tree> for FunctionDeclarationReturnType<'tree> {
13204 #[allow(clippy::collapsible_else_if)]
13205 fn from_node(
13206 node: ::treesitter_types::tree_sitter::Node<'tree>,
13207 src: &'tree [u8],
13208 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13209 match node.kind() {
13210 "asserts_annotation" => Ok(Self::AssertsAnnotation(::std::boxed::Box::new(
13211 ::treesitter_types::runtime::maybe_grow_stack(|| {
13212 <AssertsAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
13213 })?,
13214 ))),
13215 "type_annotation" => Ok(Self::TypeAnnotation(::std::boxed::Box::new(
13216 ::treesitter_types::runtime::maybe_grow_stack(|| {
13217 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
13218 })?,
13219 ))),
13220 "type_predicate_annotation" => Ok(Self::TypePredicateAnnotation(
13221 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
13222 <TypePredicateAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
13223 })?),
13224 )),
13225 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13226 }
13227 }
13228}
13229impl ::treesitter_types::Spanned for FunctionDeclarationReturnType<'_> {
13230 fn span(&self) -> ::treesitter_types::Span {
13231 match self {
13232 Self::AssertsAnnotation(inner) => inner.span(),
13233 Self::TypeAnnotation(inner) => inner.span(),
13234 Self::TypePredicateAnnotation(inner) => inner.span(),
13235 }
13236 }
13237}
13238#[derive(Debug, Clone, PartialEq, Eq)]
13239pub enum FunctionExpressionReturnType<'tree> {
13240 AssertsAnnotation(::std::boxed::Box<AssertsAnnotation<'tree>>),
13241 TypeAnnotation(::std::boxed::Box<TypeAnnotation<'tree>>),
13242 TypePredicateAnnotation(::std::boxed::Box<TypePredicateAnnotation<'tree>>),
13243}
13244impl<'tree> ::treesitter_types::FromNode<'tree> for FunctionExpressionReturnType<'tree> {
13245 #[allow(clippy::collapsible_else_if)]
13246 fn from_node(
13247 node: ::treesitter_types::tree_sitter::Node<'tree>,
13248 src: &'tree [u8],
13249 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13250 match node.kind() {
13251 "asserts_annotation" => Ok(Self::AssertsAnnotation(::std::boxed::Box::new(
13252 ::treesitter_types::runtime::maybe_grow_stack(|| {
13253 <AssertsAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
13254 })?,
13255 ))),
13256 "type_annotation" => Ok(Self::TypeAnnotation(::std::boxed::Box::new(
13257 ::treesitter_types::runtime::maybe_grow_stack(|| {
13258 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
13259 })?,
13260 ))),
13261 "type_predicate_annotation" => Ok(Self::TypePredicateAnnotation(
13262 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
13263 <TypePredicateAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
13264 })?),
13265 )),
13266 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13267 }
13268 }
13269}
13270impl ::treesitter_types::Spanned for FunctionExpressionReturnType<'_> {
13271 fn span(&self) -> ::treesitter_types::Span {
13272 match self {
13273 Self::AssertsAnnotation(inner) => inner.span(),
13274 Self::TypeAnnotation(inner) => inner.span(),
13275 Self::TypePredicateAnnotation(inner) => inner.span(),
13276 }
13277 }
13278}
13279#[derive(Debug, Clone, PartialEq, Eq)]
13280pub enum FunctionSignatureReturnType<'tree> {
13281 AssertsAnnotation(::std::boxed::Box<AssertsAnnotation<'tree>>),
13282 TypeAnnotation(::std::boxed::Box<TypeAnnotation<'tree>>),
13283 TypePredicateAnnotation(::std::boxed::Box<TypePredicateAnnotation<'tree>>),
13284}
13285impl<'tree> ::treesitter_types::FromNode<'tree> for FunctionSignatureReturnType<'tree> {
13286 #[allow(clippy::collapsible_else_if)]
13287 fn from_node(
13288 node: ::treesitter_types::tree_sitter::Node<'tree>,
13289 src: &'tree [u8],
13290 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13291 match node.kind() {
13292 "asserts_annotation" => Ok(Self::AssertsAnnotation(::std::boxed::Box::new(
13293 ::treesitter_types::runtime::maybe_grow_stack(|| {
13294 <AssertsAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
13295 })?,
13296 ))),
13297 "type_annotation" => Ok(Self::TypeAnnotation(::std::boxed::Box::new(
13298 ::treesitter_types::runtime::maybe_grow_stack(|| {
13299 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
13300 })?,
13301 ))),
13302 "type_predicate_annotation" => Ok(Self::TypePredicateAnnotation(
13303 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
13304 <TypePredicateAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
13305 })?),
13306 )),
13307 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13308 }
13309 }
13310}
13311impl ::treesitter_types::Spanned for FunctionSignatureReturnType<'_> {
13312 fn span(&self) -> ::treesitter_types::Span {
13313 match self {
13314 Self::AssertsAnnotation(inner) => inner.span(),
13315 Self::TypeAnnotation(inner) => inner.span(),
13316 Self::TypePredicateAnnotation(inner) => inner.span(),
13317 }
13318 }
13319}
13320#[derive(Debug, Clone, PartialEq, Eq)]
13321pub enum FunctionTypeReturnType<'tree> {
13322 Asserts(::std::boxed::Box<Asserts<'tree>>),
13323 Type(::std::boxed::Box<Type<'tree>>),
13324 TypePredicate(::std::boxed::Box<TypePredicate<'tree>>),
13325}
13326impl<'tree> ::treesitter_types::FromNode<'tree> for FunctionTypeReturnType<'tree> {
13327 #[allow(clippy::collapsible_else_if)]
13328 fn from_node(
13329 node: ::treesitter_types::tree_sitter::Node<'tree>,
13330 src: &'tree [u8],
13331 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13332 match node.kind() {
13333 "asserts" => Ok(Self::Asserts(::std::boxed::Box::new(
13334 ::treesitter_types::runtime::maybe_grow_stack(|| {
13335 <Asserts as ::treesitter_types::FromNode>::from_node(node, src)
13336 })?,
13337 ))),
13338 "type_predicate" => Ok(Self::TypePredicate(::std::boxed::Box::new(
13339 ::treesitter_types::runtime::maybe_grow_stack(|| {
13340 <TypePredicate as ::treesitter_types::FromNode>::from_node(node, src)
13341 })?,
13342 ))),
13343 _other => {
13344 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
13345 <Type as ::treesitter_types::FromNode>::from_node(node, src)
13346 }) {
13347 Ok(Self::Type(::std::boxed::Box::new(v)))
13348 } else {
13349 Err(::treesitter_types::ParseError::unexpected_kind(
13350 _other, node,
13351 ))
13352 }
13353 }
13354 }
13355 }
13356}
13357impl ::treesitter_types::Spanned for FunctionTypeReturnType<'_> {
13358 fn span(&self) -> ::treesitter_types::Span {
13359 match self {
13360 Self::Asserts(inner) => inner.span(),
13361 Self::Type(inner) => inner.span(),
13362 Self::TypePredicate(inner) => inner.span(),
13363 }
13364 }
13365}
13366#[derive(Debug, Clone, PartialEq, Eq)]
13367pub enum GeneratorFunctionReturnType<'tree> {
13368 AssertsAnnotation(::std::boxed::Box<AssertsAnnotation<'tree>>),
13369 TypeAnnotation(::std::boxed::Box<TypeAnnotation<'tree>>),
13370 TypePredicateAnnotation(::std::boxed::Box<TypePredicateAnnotation<'tree>>),
13371}
13372impl<'tree> ::treesitter_types::FromNode<'tree> for GeneratorFunctionReturnType<'tree> {
13373 #[allow(clippy::collapsible_else_if)]
13374 fn from_node(
13375 node: ::treesitter_types::tree_sitter::Node<'tree>,
13376 src: &'tree [u8],
13377 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13378 match node.kind() {
13379 "asserts_annotation" => Ok(Self::AssertsAnnotation(::std::boxed::Box::new(
13380 ::treesitter_types::runtime::maybe_grow_stack(|| {
13381 <AssertsAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
13382 })?,
13383 ))),
13384 "type_annotation" => Ok(Self::TypeAnnotation(::std::boxed::Box::new(
13385 ::treesitter_types::runtime::maybe_grow_stack(|| {
13386 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
13387 })?,
13388 ))),
13389 "type_predicate_annotation" => Ok(Self::TypePredicateAnnotation(
13390 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
13391 <TypePredicateAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
13392 })?),
13393 )),
13394 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13395 }
13396 }
13397}
13398impl ::treesitter_types::Spanned for GeneratorFunctionReturnType<'_> {
13399 fn span(&self) -> ::treesitter_types::Span {
13400 match self {
13401 Self::AssertsAnnotation(inner) => inner.span(),
13402 Self::TypeAnnotation(inner) => inner.span(),
13403 Self::TypePredicateAnnotation(inner) => inner.span(),
13404 }
13405 }
13406}
13407#[derive(Debug, Clone, PartialEq, Eq)]
13408pub enum GeneratorFunctionDeclarationReturnType<'tree> {
13409 AssertsAnnotation(::std::boxed::Box<AssertsAnnotation<'tree>>),
13410 TypeAnnotation(::std::boxed::Box<TypeAnnotation<'tree>>),
13411 TypePredicateAnnotation(::std::boxed::Box<TypePredicateAnnotation<'tree>>),
13412}
13413impl<'tree> ::treesitter_types::FromNode<'tree> for GeneratorFunctionDeclarationReturnType<'tree> {
13414 #[allow(clippy::collapsible_else_if)]
13415 fn from_node(
13416 node: ::treesitter_types::tree_sitter::Node<'tree>,
13417 src: &'tree [u8],
13418 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13419 match node.kind() {
13420 "asserts_annotation" => Ok(Self::AssertsAnnotation(::std::boxed::Box::new(
13421 ::treesitter_types::runtime::maybe_grow_stack(|| {
13422 <AssertsAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
13423 })?,
13424 ))),
13425 "type_annotation" => Ok(Self::TypeAnnotation(::std::boxed::Box::new(
13426 ::treesitter_types::runtime::maybe_grow_stack(|| {
13427 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
13428 })?,
13429 ))),
13430 "type_predicate_annotation" => Ok(Self::TypePredicateAnnotation(
13431 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
13432 <TypePredicateAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
13433 })?),
13434 )),
13435 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13436 }
13437 }
13438}
13439impl ::treesitter_types::Spanned for GeneratorFunctionDeclarationReturnType<'_> {
13440 fn span(&self) -> ::treesitter_types::Span {
13441 match self {
13442 Self::AssertsAnnotation(inner) => inner.span(),
13443 Self::TypeAnnotation(inner) => inner.span(),
13444 Self::TypePredicateAnnotation(inner) => inner.span(),
13445 }
13446 }
13447}
13448#[derive(Debug, Clone, PartialEq, Eq)]
13449pub enum GenericTypeName<'tree> {
13450 NestedTypeIdentifier(::std::boxed::Box<NestedTypeIdentifier<'tree>>),
13451 TypeIdentifier(::std::boxed::Box<TypeIdentifier<'tree>>),
13452}
13453impl<'tree> ::treesitter_types::FromNode<'tree> for GenericTypeName<'tree> {
13454 #[allow(clippy::collapsible_else_if)]
13455 fn from_node(
13456 node: ::treesitter_types::tree_sitter::Node<'tree>,
13457 src: &'tree [u8],
13458 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13459 match node.kind() {
13460 "nested_type_identifier" => Ok(Self::NestedTypeIdentifier(::std::boxed::Box::new(
13461 ::treesitter_types::runtime::maybe_grow_stack(|| {
13462 <NestedTypeIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
13463 })?,
13464 ))),
13465 "type_identifier" => Ok(Self::TypeIdentifier(::std::boxed::Box::new(
13466 ::treesitter_types::runtime::maybe_grow_stack(|| {
13467 <TypeIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
13468 })?,
13469 ))),
13470 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13471 }
13472 }
13473}
13474impl ::treesitter_types::Spanned for GenericTypeName<'_> {
13475 fn span(&self) -> ::treesitter_types::Span {
13476 match self {
13477 Self::NestedTypeIdentifier(inner) => inner.span(),
13478 Self::TypeIdentifier(inner) => inner.span(),
13479 }
13480 }
13481}
13482#[derive(Debug, Clone, PartialEq, Eq)]
13483pub enum ImportAliasChildren<'tree> {
13484 Identifier(::std::boxed::Box<Identifier<'tree>>),
13485 NestedIdentifier(::std::boxed::Box<NestedIdentifier<'tree>>),
13486}
13487impl<'tree> ::treesitter_types::FromNode<'tree> for ImportAliasChildren<'tree> {
13488 #[allow(clippy::collapsible_else_if)]
13489 fn from_node(
13490 node: ::treesitter_types::tree_sitter::Node<'tree>,
13491 src: &'tree [u8],
13492 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13493 match node.kind() {
13494 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
13495 ::treesitter_types::runtime::maybe_grow_stack(|| {
13496 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
13497 })?,
13498 ))),
13499 "nested_identifier" => Ok(Self::NestedIdentifier(::std::boxed::Box::new(
13500 ::treesitter_types::runtime::maybe_grow_stack(|| {
13501 <NestedIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
13502 })?,
13503 ))),
13504 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13505 }
13506 }
13507}
13508impl ::treesitter_types::Spanned for ImportAliasChildren<'_> {
13509 fn span(&self) -> ::treesitter_types::Span {
13510 match self {
13511 Self::Identifier(inner) => inner.span(),
13512 Self::NestedIdentifier(inner) => inner.span(),
13513 }
13514 }
13515}
13516#[derive(Debug, Clone, PartialEq, Eq)]
13517pub enum ImportClauseChildren<'tree> {
13518 Identifier(::std::boxed::Box<Identifier<'tree>>),
13519 NamedImports(::std::boxed::Box<NamedImports<'tree>>),
13520 NamespaceImport(::std::boxed::Box<NamespaceImport<'tree>>),
13521}
13522impl<'tree> ::treesitter_types::FromNode<'tree> for ImportClauseChildren<'tree> {
13523 #[allow(clippy::collapsible_else_if)]
13524 fn from_node(
13525 node: ::treesitter_types::tree_sitter::Node<'tree>,
13526 src: &'tree [u8],
13527 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13528 match node.kind() {
13529 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
13530 ::treesitter_types::runtime::maybe_grow_stack(|| {
13531 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
13532 })?,
13533 ))),
13534 "named_imports" => Ok(Self::NamedImports(::std::boxed::Box::new(
13535 ::treesitter_types::runtime::maybe_grow_stack(|| {
13536 <NamedImports as ::treesitter_types::FromNode>::from_node(node, src)
13537 })?,
13538 ))),
13539 "namespace_import" => Ok(Self::NamespaceImport(::std::boxed::Box::new(
13540 ::treesitter_types::runtime::maybe_grow_stack(|| {
13541 <NamespaceImport as ::treesitter_types::FromNode>::from_node(node, src)
13542 })?,
13543 ))),
13544 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13545 }
13546 }
13547}
13548impl ::treesitter_types::Spanned for ImportClauseChildren<'_> {
13549 fn span(&self) -> ::treesitter_types::Span {
13550 match self {
13551 Self::Identifier(inner) => inner.span(),
13552 Self::NamedImports(inner) => inner.span(),
13553 Self::NamespaceImport(inner) => inner.span(),
13554 }
13555 }
13556}
13557#[derive(Debug, Clone, PartialEq, Eq)]
13558pub enum ImportSpecifierName<'tree> {
13559 Identifier(::std::boxed::Box<Identifier<'tree>>),
13560 String(::std::boxed::Box<String<'tree>>),
13561}
13562impl<'tree> ::treesitter_types::FromNode<'tree> for ImportSpecifierName<'tree> {
13563 #[allow(clippy::collapsible_else_if)]
13564 fn from_node(
13565 node: ::treesitter_types::tree_sitter::Node<'tree>,
13566 src: &'tree [u8],
13567 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13568 match node.kind() {
13569 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
13570 ::treesitter_types::runtime::maybe_grow_stack(|| {
13571 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
13572 })?,
13573 ))),
13574 "string" => Ok(Self::String(::std::boxed::Box::new(
13575 ::treesitter_types::runtime::maybe_grow_stack(|| {
13576 <String as ::treesitter_types::FromNode>::from_node(node, src)
13577 })?,
13578 ))),
13579 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13580 }
13581 }
13582}
13583impl ::treesitter_types::Spanned for ImportSpecifierName<'_> {
13584 fn span(&self) -> ::treesitter_types::Span {
13585 match self {
13586 Self::Identifier(inner) => inner.span(),
13587 Self::String(inner) => inner.span(),
13588 }
13589 }
13590}
13591#[derive(Debug, Clone, PartialEq, Eq)]
13592pub enum ImportStatementChildren<'tree> {
13593 ImportAttribute(::std::boxed::Box<ImportAttribute<'tree>>),
13594 ImportClause(::std::boxed::Box<ImportClause<'tree>>),
13595 ImportRequireClause(::std::boxed::Box<ImportRequireClause<'tree>>),
13596}
13597impl<'tree> ::treesitter_types::FromNode<'tree> for ImportStatementChildren<'tree> {
13598 #[allow(clippy::collapsible_else_if)]
13599 fn from_node(
13600 node: ::treesitter_types::tree_sitter::Node<'tree>,
13601 src: &'tree [u8],
13602 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13603 match node.kind() {
13604 "import_attribute" => Ok(Self::ImportAttribute(::std::boxed::Box::new(
13605 ::treesitter_types::runtime::maybe_grow_stack(|| {
13606 <ImportAttribute as ::treesitter_types::FromNode>::from_node(node, src)
13607 })?,
13608 ))),
13609 "import_clause" => Ok(Self::ImportClause(::std::boxed::Box::new(
13610 ::treesitter_types::runtime::maybe_grow_stack(|| {
13611 <ImportClause as ::treesitter_types::FromNode>::from_node(node, src)
13612 })?,
13613 ))),
13614 "import_require_clause" => Ok(Self::ImportRequireClause(::std::boxed::Box::new(
13615 ::treesitter_types::runtime::maybe_grow_stack(|| {
13616 <ImportRequireClause as ::treesitter_types::FromNode>::from_node(node, src)
13617 })?,
13618 ))),
13619 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13620 }
13621 }
13622}
13623impl ::treesitter_types::Spanned for ImportStatementChildren<'_> {
13624 fn span(&self) -> ::treesitter_types::Span {
13625 match self {
13626 Self::ImportAttribute(inner) => inner.span(),
13627 Self::ImportClause(inner) => inner.span(),
13628 Self::ImportRequireClause(inner) => inner.span(),
13629 }
13630 }
13631}
13632#[derive(Debug, Clone, PartialEq, Eq)]
13633pub enum IndexSignatureSign {
13634 Plus(::treesitter_types::Span),
13635 Minus(::treesitter_types::Span),
13636}
13637impl<'tree> ::treesitter_types::FromNode<'tree> for IndexSignatureSign {
13638 #[allow(clippy::collapsible_else_if)]
13639 fn from_node(
13640 node: ::treesitter_types::tree_sitter::Node<'tree>,
13641 _src: &'tree [u8],
13642 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13643 match node.kind() {
13644 "+" => Ok(Self::Plus(::treesitter_types::Span::from(node))),
13645 "-" => Ok(Self::Minus(::treesitter_types::Span::from(node))),
13646 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13647 }
13648 }
13649}
13650impl ::treesitter_types::Spanned for IndexSignatureSign {
13651 fn span(&self) -> ::treesitter_types::Span {
13652 match self {
13653 Self::Plus(span) => *span,
13654 Self::Minus(span) => *span,
13655 }
13656 }
13657}
13658#[derive(Debug, Clone, PartialEq, Eq)]
13659pub enum IndexSignatureType<'tree> {
13660 AddingTypeAnnotation(::std::boxed::Box<AddingTypeAnnotation<'tree>>),
13661 OmittingTypeAnnotation(::std::boxed::Box<OmittingTypeAnnotation<'tree>>),
13662 OptingTypeAnnotation(::std::boxed::Box<OptingTypeAnnotation<'tree>>),
13663 TypeAnnotation(::std::boxed::Box<TypeAnnotation<'tree>>),
13664}
13665impl<'tree> ::treesitter_types::FromNode<'tree> for IndexSignatureType<'tree> {
13666 #[allow(clippy::collapsible_else_if)]
13667 fn from_node(
13668 node: ::treesitter_types::tree_sitter::Node<'tree>,
13669 src: &'tree [u8],
13670 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13671 match node.kind() {
13672 "adding_type_annotation" => Ok(Self::AddingTypeAnnotation(::std::boxed::Box::new(
13673 ::treesitter_types::runtime::maybe_grow_stack(|| {
13674 <AddingTypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
13675 })?,
13676 ))),
13677 "omitting_type_annotation" => Ok(Self::OmittingTypeAnnotation(::std::boxed::Box::new(
13678 ::treesitter_types::runtime::maybe_grow_stack(|| {
13679 <OmittingTypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
13680 })?,
13681 ))),
13682 "opting_type_annotation" => Ok(Self::OptingTypeAnnotation(::std::boxed::Box::new(
13683 ::treesitter_types::runtime::maybe_grow_stack(|| {
13684 <OptingTypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
13685 })?,
13686 ))),
13687 "type_annotation" => Ok(Self::TypeAnnotation(::std::boxed::Box::new(
13688 ::treesitter_types::runtime::maybe_grow_stack(|| {
13689 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
13690 })?,
13691 ))),
13692 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13693 }
13694 }
13695}
13696impl ::treesitter_types::Spanned for IndexSignatureType<'_> {
13697 fn span(&self) -> ::treesitter_types::Span {
13698 match self {
13699 Self::AddingTypeAnnotation(inner) => inner.span(),
13700 Self::OmittingTypeAnnotation(inner) => inner.span(),
13701 Self::OptingTypeAnnotation(inner) => inner.span(),
13702 Self::TypeAnnotation(inner) => inner.span(),
13703 }
13704 }
13705}
13706#[derive(Debug, Clone, PartialEq, Eq)]
13707pub enum InferTypeChildren<'tree> {
13708 Type(::std::boxed::Box<Type<'tree>>),
13709 TypeIdentifier(::std::boxed::Box<TypeIdentifier<'tree>>),
13710}
13711impl<'tree> ::treesitter_types::FromNode<'tree> for InferTypeChildren<'tree> {
13712 #[allow(clippy::collapsible_else_if)]
13713 fn from_node(
13714 node: ::treesitter_types::tree_sitter::Node<'tree>,
13715 src: &'tree [u8],
13716 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13717 match node.kind() {
13718 "type_identifier" => Ok(Self::TypeIdentifier(::std::boxed::Box::new(
13719 ::treesitter_types::runtime::maybe_grow_stack(|| {
13720 <TypeIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
13721 })?,
13722 ))),
13723 _other => {
13724 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
13725 <Type as ::treesitter_types::FromNode>::from_node(node, src)
13726 }) {
13727 Ok(Self::Type(::std::boxed::Box::new(v)))
13728 } else {
13729 Err(::treesitter_types::ParseError::unexpected_kind(
13730 _other, node,
13731 ))
13732 }
13733 }
13734 }
13735 }
13736}
13737impl ::treesitter_types::Spanned for InferTypeChildren<'_> {
13738 fn span(&self) -> ::treesitter_types::Span {
13739 match self {
13740 Self::Type(inner) => inner.span(),
13741 Self::TypeIdentifier(inner) => inner.span(),
13742 }
13743 }
13744}
13745#[derive(Debug, Clone, PartialEq, Eq)]
13746pub enum InstantiationExpressionFunction<'tree> {
13747 Identifier(::std::boxed::Box<Identifier<'tree>>),
13748 Import(::std::boxed::Box<Import<'tree>>),
13749 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
13750 SubscriptExpression(::std::boxed::Box<SubscriptExpression<'tree>>),
13751}
13752impl<'tree> ::treesitter_types::FromNode<'tree> for InstantiationExpressionFunction<'tree> {
13753 #[allow(clippy::collapsible_else_if)]
13754 fn from_node(
13755 node: ::treesitter_types::tree_sitter::Node<'tree>,
13756 src: &'tree [u8],
13757 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13758 match node.kind() {
13759 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
13760 ::treesitter_types::runtime::maybe_grow_stack(|| {
13761 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
13762 })?,
13763 ))),
13764 "import" => Ok(Self::Import(::std::boxed::Box::new(
13765 ::treesitter_types::runtime::maybe_grow_stack(|| {
13766 <Import as ::treesitter_types::FromNode>::from_node(node, src)
13767 })?,
13768 ))),
13769 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
13770 ::treesitter_types::runtime::maybe_grow_stack(|| {
13771 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)
13772 })?,
13773 ))),
13774 "subscript_expression" => Ok(Self::SubscriptExpression(::std::boxed::Box::new(
13775 ::treesitter_types::runtime::maybe_grow_stack(|| {
13776 <SubscriptExpression as ::treesitter_types::FromNode>::from_node(node, src)
13777 })?,
13778 ))),
13779 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13780 }
13781 }
13782}
13783impl ::treesitter_types::Spanned for InstantiationExpressionFunction<'_> {
13784 fn span(&self) -> ::treesitter_types::Span {
13785 match self {
13786 Self::Identifier(inner) => inner.span(),
13787 Self::Import(inner) => inner.span(),
13788 Self::MemberExpression(inner) => inner.span(),
13789 Self::SubscriptExpression(inner) => inner.span(),
13790 }
13791 }
13792}
13793#[derive(Debug, Clone, PartialEq, Eq)]
13794pub enum InterfaceBodyChildren<'tree> {
13795 CallSignature(::std::boxed::Box<CallSignature<'tree>>),
13796 ConstructSignature(::std::boxed::Box<ConstructSignature<'tree>>),
13797 ExportStatement(::std::boxed::Box<ExportStatement<'tree>>),
13798 IndexSignature(::std::boxed::Box<IndexSignature<'tree>>),
13799 MethodSignature(::std::boxed::Box<MethodSignature<'tree>>),
13800 PropertySignature(::std::boxed::Box<PropertySignature<'tree>>),
13801}
13802impl<'tree> ::treesitter_types::FromNode<'tree> for InterfaceBodyChildren<'tree> {
13803 #[allow(clippy::collapsible_else_if)]
13804 fn from_node(
13805 node: ::treesitter_types::tree_sitter::Node<'tree>,
13806 src: &'tree [u8],
13807 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13808 match node.kind() {
13809 "call_signature" => Ok(Self::CallSignature(::std::boxed::Box::new(
13810 ::treesitter_types::runtime::maybe_grow_stack(|| {
13811 <CallSignature as ::treesitter_types::FromNode>::from_node(node, src)
13812 })?,
13813 ))),
13814 "construct_signature" => Ok(Self::ConstructSignature(::std::boxed::Box::new(
13815 ::treesitter_types::runtime::maybe_grow_stack(|| {
13816 <ConstructSignature as ::treesitter_types::FromNode>::from_node(node, src)
13817 })?,
13818 ))),
13819 "export_statement" => Ok(Self::ExportStatement(::std::boxed::Box::new(
13820 ::treesitter_types::runtime::maybe_grow_stack(|| {
13821 <ExportStatement as ::treesitter_types::FromNode>::from_node(node, src)
13822 })?,
13823 ))),
13824 "index_signature" => Ok(Self::IndexSignature(::std::boxed::Box::new(
13825 ::treesitter_types::runtime::maybe_grow_stack(|| {
13826 <IndexSignature as ::treesitter_types::FromNode>::from_node(node, src)
13827 })?,
13828 ))),
13829 "method_signature" => Ok(Self::MethodSignature(::std::boxed::Box::new(
13830 ::treesitter_types::runtime::maybe_grow_stack(|| {
13831 <MethodSignature as ::treesitter_types::FromNode>::from_node(node, src)
13832 })?,
13833 ))),
13834 "property_signature" => Ok(Self::PropertySignature(::std::boxed::Box::new(
13835 ::treesitter_types::runtime::maybe_grow_stack(|| {
13836 <PropertySignature as ::treesitter_types::FromNode>::from_node(node, src)
13837 })?,
13838 ))),
13839 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13840 }
13841 }
13842}
13843impl ::treesitter_types::Spanned for InterfaceBodyChildren<'_> {
13844 fn span(&self) -> ::treesitter_types::Span {
13845 match self {
13846 Self::CallSignature(inner) => inner.span(),
13847 Self::ConstructSignature(inner) => inner.span(),
13848 Self::ExportStatement(inner) => inner.span(),
13849 Self::IndexSignature(inner) => inner.span(),
13850 Self::MethodSignature(inner) => inner.span(),
13851 Self::PropertySignature(inner) => inner.span(),
13852 }
13853 }
13854}
13855#[derive(Debug, Clone, PartialEq, Eq)]
13856pub enum InternalModuleName<'tree> {
13857 Identifier(::std::boxed::Box<Identifier<'tree>>),
13858 NestedIdentifier(::std::boxed::Box<NestedIdentifier<'tree>>),
13859 String(::std::boxed::Box<String<'tree>>),
13860}
13861impl<'tree> ::treesitter_types::FromNode<'tree> for InternalModuleName<'tree> {
13862 #[allow(clippy::collapsible_else_if)]
13863 fn from_node(
13864 node: ::treesitter_types::tree_sitter::Node<'tree>,
13865 src: &'tree [u8],
13866 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13867 match node.kind() {
13868 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
13869 ::treesitter_types::runtime::maybe_grow_stack(|| {
13870 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
13871 })?,
13872 ))),
13873 "nested_identifier" => Ok(Self::NestedIdentifier(::std::boxed::Box::new(
13874 ::treesitter_types::runtime::maybe_grow_stack(|| {
13875 <NestedIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
13876 })?,
13877 ))),
13878 "string" => Ok(Self::String(::std::boxed::Box::new(
13879 ::treesitter_types::runtime::maybe_grow_stack(|| {
13880 <String as ::treesitter_types::FromNode>::from_node(node, src)
13881 })?,
13882 ))),
13883 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13884 }
13885 }
13886}
13887impl ::treesitter_types::Spanned for InternalModuleName<'_> {
13888 fn span(&self) -> ::treesitter_types::Span {
13889 match self {
13890 Self::Identifier(inner) => inner.span(),
13891 Self::NestedIdentifier(inner) => inner.span(),
13892 Self::String(inner) => inner.span(),
13893 }
13894 }
13895}
13896#[derive(Debug, Clone, PartialEq, Eq)]
13897pub enum LexicalDeclarationKind {
13898 Const(::treesitter_types::Span),
13899 Let(::treesitter_types::Span),
13900}
13901impl<'tree> ::treesitter_types::FromNode<'tree> for LexicalDeclarationKind {
13902 #[allow(clippy::collapsible_else_if)]
13903 fn from_node(
13904 node: ::treesitter_types::tree_sitter::Node<'tree>,
13905 _src: &'tree [u8],
13906 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13907 match node.kind() {
13908 "const" => Ok(Self::Const(::treesitter_types::Span::from(node))),
13909 "let" => Ok(Self::Let(::treesitter_types::Span::from(node))),
13910 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13911 }
13912 }
13913}
13914impl ::treesitter_types::Spanned for LexicalDeclarationKind {
13915 fn span(&self) -> ::treesitter_types::Span {
13916 match self {
13917 Self::Const(span) => *span,
13918 Self::Let(span) => *span,
13919 }
13920 }
13921}
13922#[derive(Debug, Clone, PartialEq, Eq)]
13923pub enum LiteralTypeChildren<'tree> {
13924 False(::std::boxed::Box<False<'tree>>),
13925 Null(::std::boxed::Box<Null<'tree>>),
13926 Number(::std::boxed::Box<Number<'tree>>),
13927 String(::std::boxed::Box<String<'tree>>),
13928 True(::std::boxed::Box<True<'tree>>),
13929 UnaryExpression(::std::boxed::Box<UnaryExpression<'tree>>),
13930 Undefined(::std::boxed::Box<Undefined<'tree>>),
13931}
13932impl<'tree> ::treesitter_types::FromNode<'tree> for LiteralTypeChildren<'tree> {
13933 #[allow(clippy::collapsible_else_if)]
13934 fn from_node(
13935 node: ::treesitter_types::tree_sitter::Node<'tree>,
13936 src: &'tree [u8],
13937 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13938 match node.kind() {
13939 "false" => Ok(Self::False(::std::boxed::Box::new(
13940 ::treesitter_types::runtime::maybe_grow_stack(|| {
13941 <False as ::treesitter_types::FromNode>::from_node(node, src)
13942 })?,
13943 ))),
13944 "null" => Ok(Self::Null(::std::boxed::Box::new(
13945 ::treesitter_types::runtime::maybe_grow_stack(|| {
13946 <Null as ::treesitter_types::FromNode>::from_node(node, src)
13947 })?,
13948 ))),
13949 "number" => Ok(Self::Number(::std::boxed::Box::new(
13950 ::treesitter_types::runtime::maybe_grow_stack(|| {
13951 <Number as ::treesitter_types::FromNode>::from_node(node, src)
13952 })?,
13953 ))),
13954 "string" => Ok(Self::String(::std::boxed::Box::new(
13955 ::treesitter_types::runtime::maybe_grow_stack(|| {
13956 <String as ::treesitter_types::FromNode>::from_node(node, src)
13957 })?,
13958 ))),
13959 "true" => Ok(Self::True(::std::boxed::Box::new(
13960 ::treesitter_types::runtime::maybe_grow_stack(|| {
13961 <True as ::treesitter_types::FromNode>::from_node(node, src)
13962 })?,
13963 ))),
13964 "unary_expression" => Ok(Self::UnaryExpression(::std::boxed::Box::new(
13965 ::treesitter_types::runtime::maybe_grow_stack(|| {
13966 <UnaryExpression as ::treesitter_types::FromNode>::from_node(node, src)
13967 })?,
13968 ))),
13969 "undefined" => Ok(Self::Undefined(::std::boxed::Box::new(
13970 ::treesitter_types::runtime::maybe_grow_stack(|| {
13971 <Undefined as ::treesitter_types::FromNode>::from_node(node, src)
13972 })?,
13973 ))),
13974 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13975 }
13976 }
13977}
13978impl ::treesitter_types::Spanned for LiteralTypeChildren<'_> {
13979 fn span(&self) -> ::treesitter_types::Span {
13980 match self {
13981 Self::False(inner) => inner.span(),
13982 Self::Null(inner) => inner.span(),
13983 Self::Number(inner) => inner.span(),
13984 Self::String(inner) => inner.span(),
13985 Self::True(inner) => inner.span(),
13986 Self::UnaryExpression(inner) => inner.span(),
13987 Self::Undefined(inner) => inner.span(),
13988 }
13989 }
13990}
13991#[derive(Debug, Clone, PartialEq, Eq)]
13992pub enum MemberExpressionObject<'tree> {
13993 Expression(::std::boxed::Box<Expression<'tree>>),
13994 Import(::std::boxed::Box<Import<'tree>>),
13995}
13996impl<'tree> ::treesitter_types::FromNode<'tree> for MemberExpressionObject<'tree> {
13997 #[allow(clippy::collapsible_else_if)]
13998 fn from_node(
13999 node: ::treesitter_types::tree_sitter::Node<'tree>,
14000 src: &'tree [u8],
14001 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14002 match node.kind() {
14003 "import" => Ok(Self::Import(::std::boxed::Box::new(
14004 ::treesitter_types::runtime::maybe_grow_stack(|| {
14005 <Import as ::treesitter_types::FromNode>::from_node(node, src)
14006 })?,
14007 ))),
14008 _other => {
14009 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
14010 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
14011 }) {
14012 Ok(Self::Expression(::std::boxed::Box::new(v)))
14013 } else {
14014 Err(::treesitter_types::ParseError::unexpected_kind(
14015 _other, node,
14016 ))
14017 }
14018 }
14019 }
14020 }
14021}
14022impl ::treesitter_types::Spanned for MemberExpressionObject<'_> {
14023 fn span(&self) -> ::treesitter_types::Span {
14024 match self {
14025 Self::Expression(inner) => inner.span(),
14026 Self::Import(inner) => inner.span(),
14027 }
14028 }
14029}
14030#[derive(Debug, Clone, PartialEq, Eq)]
14031pub enum MemberExpressionProperty<'tree> {
14032 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
14033 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
14034}
14035impl<'tree> ::treesitter_types::FromNode<'tree> for MemberExpressionProperty<'tree> {
14036 #[allow(clippy::collapsible_else_if)]
14037 fn from_node(
14038 node: ::treesitter_types::tree_sitter::Node<'tree>,
14039 src: &'tree [u8],
14040 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14041 match node.kind() {
14042 "private_property_identifier" => Ok(Self::PrivatePropertyIdentifier(
14043 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
14044 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
14045 node, src,
14046 )
14047 })?),
14048 )),
14049 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
14050 ::treesitter_types::runtime::maybe_grow_stack(|| {
14051 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
14052 })?,
14053 ))),
14054 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14055 }
14056 }
14057}
14058impl ::treesitter_types::Spanned for MemberExpressionProperty<'_> {
14059 fn span(&self) -> ::treesitter_types::Span {
14060 match self {
14061 Self::PrivatePropertyIdentifier(inner) => inner.span(),
14062 Self::PropertyIdentifier(inner) => inner.span(),
14063 }
14064 }
14065}
14066#[derive(Debug, Clone, PartialEq, Eq)]
14067pub enum MethodDefinitionName<'tree> {
14068 ComputedPropertyName(::std::boxed::Box<ComputedPropertyName<'tree>>),
14069 Number(::std::boxed::Box<Number<'tree>>),
14070 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
14071 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
14072 String(::std::boxed::Box<String<'tree>>),
14073}
14074impl<'tree> ::treesitter_types::FromNode<'tree> for MethodDefinitionName<'tree> {
14075 #[allow(clippy::collapsible_else_if)]
14076 fn from_node(
14077 node: ::treesitter_types::tree_sitter::Node<'tree>,
14078 src: &'tree [u8],
14079 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14080 match node.kind() {
14081 "computed_property_name" => Ok(Self::ComputedPropertyName(::std::boxed::Box::new(
14082 ::treesitter_types::runtime::maybe_grow_stack(|| {
14083 <ComputedPropertyName as ::treesitter_types::FromNode>::from_node(node, src)
14084 })?,
14085 ))),
14086 "number" => Ok(Self::Number(::std::boxed::Box::new(
14087 ::treesitter_types::runtime::maybe_grow_stack(|| {
14088 <Number as ::treesitter_types::FromNode>::from_node(node, src)
14089 })?,
14090 ))),
14091 "private_property_identifier" => Ok(Self::PrivatePropertyIdentifier(
14092 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
14093 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
14094 node, src,
14095 )
14096 })?),
14097 )),
14098 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
14099 ::treesitter_types::runtime::maybe_grow_stack(|| {
14100 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
14101 })?,
14102 ))),
14103 "string" => Ok(Self::String(::std::boxed::Box::new(
14104 ::treesitter_types::runtime::maybe_grow_stack(|| {
14105 <String as ::treesitter_types::FromNode>::from_node(node, src)
14106 })?,
14107 ))),
14108 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14109 }
14110 }
14111}
14112impl ::treesitter_types::Spanned for MethodDefinitionName<'_> {
14113 fn span(&self) -> ::treesitter_types::Span {
14114 match self {
14115 Self::ComputedPropertyName(inner) => inner.span(),
14116 Self::Number(inner) => inner.span(),
14117 Self::PrivatePropertyIdentifier(inner) => inner.span(),
14118 Self::PropertyIdentifier(inner) => inner.span(),
14119 Self::String(inner) => inner.span(),
14120 }
14121 }
14122}
14123#[derive(Debug, Clone, PartialEq, Eq)]
14124pub enum MethodDefinitionReturnType<'tree> {
14125 AssertsAnnotation(::std::boxed::Box<AssertsAnnotation<'tree>>),
14126 TypeAnnotation(::std::boxed::Box<TypeAnnotation<'tree>>),
14127 TypePredicateAnnotation(::std::boxed::Box<TypePredicateAnnotation<'tree>>),
14128}
14129impl<'tree> ::treesitter_types::FromNode<'tree> for MethodDefinitionReturnType<'tree> {
14130 #[allow(clippy::collapsible_else_if)]
14131 fn from_node(
14132 node: ::treesitter_types::tree_sitter::Node<'tree>,
14133 src: &'tree [u8],
14134 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14135 match node.kind() {
14136 "asserts_annotation" => Ok(Self::AssertsAnnotation(::std::boxed::Box::new(
14137 ::treesitter_types::runtime::maybe_grow_stack(|| {
14138 <AssertsAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
14139 })?,
14140 ))),
14141 "type_annotation" => Ok(Self::TypeAnnotation(::std::boxed::Box::new(
14142 ::treesitter_types::runtime::maybe_grow_stack(|| {
14143 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
14144 })?,
14145 ))),
14146 "type_predicate_annotation" => Ok(Self::TypePredicateAnnotation(
14147 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
14148 <TypePredicateAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
14149 })?),
14150 )),
14151 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14152 }
14153 }
14154}
14155impl ::treesitter_types::Spanned for MethodDefinitionReturnType<'_> {
14156 fn span(&self) -> ::treesitter_types::Span {
14157 match self {
14158 Self::AssertsAnnotation(inner) => inner.span(),
14159 Self::TypeAnnotation(inner) => inner.span(),
14160 Self::TypePredicateAnnotation(inner) => inner.span(),
14161 }
14162 }
14163}
14164#[derive(Debug, Clone, PartialEq, Eq)]
14165pub enum MethodDefinitionChildren<'tree> {
14166 AccessibilityModifier(::std::boxed::Box<AccessibilityModifier<'tree>>),
14167 OverrideModifier(::std::boxed::Box<OverrideModifier<'tree>>),
14168}
14169impl<'tree> ::treesitter_types::FromNode<'tree> for MethodDefinitionChildren<'tree> {
14170 #[allow(clippy::collapsible_else_if)]
14171 fn from_node(
14172 node: ::treesitter_types::tree_sitter::Node<'tree>,
14173 src: &'tree [u8],
14174 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14175 match node.kind() {
14176 "accessibility_modifier" => Ok(Self::AccessibilityModifier(::std::boxed::Box::new(
14177 ::treesitter_types::runtime::maybe_grow_stack(|| {
14178 <AccessibilityModifier as ::treesitter_types::FromNode>::from_node(node, src)
14179 })?,
14180 ))),
14181 "override_modifier" => Ok(Self::OverrideModifier(::std::boxed::Box::new(
14182 ::treesitter_types::runtime::maybe_grow_stack(|| {
14183 <OverrideModifier as ::treesitter_types::FromNode>::from_node(node, src)
14184 })?,
14185 ))),
14186 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14187 }
14188 }
14189}
14190impl ::treesitter_types::Spanned for MethodDefinitionChildren<'_> {
14191 fn span(&self) -> ::treesitter_types::Span {
14192 match self {
14193 Self::AccessibilityModifier(inner) => inner.span(),
14194 Self::OverrideModifier(inner) => inner.span(),
14195 }
14196 }
14197}
14198#[derive(Debug, Clone, PartialEq, Eq)]
14199pub enum MethodSignatureName<'tree> {
14200 ComputedPropertyName(::std::boxed::Box<ComputedPropertyName<'tree>>),
14201 Number(::std::boxed::Box<Number<'tree>>),
14202 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
14203 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
14204 String(::std::boxed::Box<String<'tree>>),
14205}
14206impl<'tree> ::treesitter_types::FromNode<'tree> for MethodSignatureName<'tree> {
14207 #[allow(clippy::collapsible_else_if)]
14208 fn from_node(
14209 node: ::treesitter_types::tree_sitter::Node<'tree>,
14210 src: &'tree [u8],
14211 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14212 match node.kind() {
14213 "computed_property_name" => Ok(Self::ComputedPropertyName(::std::boxed::Box::new(
14214 ::treesitter_types::runtime::maybe_grow_stack(|| {
14215 <ComputedPropertyName as ::treesitter_types::FromNode>::from_node(node, src)
14216 })?,
14217 ))),
14218 "number" => Ok(Self::Number(::std::boxed::Box::new(
14219 ::treesitter_types::runtime::maybe_grow_stack(|| {
14220 <Number as ::treesitter_types::FromNode>::from_node(node, src)
14221 })?,
14222 ))),
14223 "private_property_identifier" => Ok(Self::PrivatePropertyIdentifier(
14224 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
14225 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
14226 node, src,
14227 )
14228 })?),
14229 )),
14230 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
14231 ::treesitter_types::runtime::maybe_grow_stack(|| {
14232 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
14233 })?,
14234 ))),
14235 "string" => Ok(Self::String(::std::boxed::Box::new(
14236 ::treesitter_types::runtime::maybe_grow_stack(|| {
14237 <String as ::treesitter_types::FromNode>::from_node(node, src)
14238 })?,
14239 ))),
14240 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14241 }
14242 }
14243}
14244impl ::treesitter_types::Spanned for MethodSignatureName<'_> {
14245 fn span(&self) -> ::treesitter_types::Span {
14246 match self {
14247 Self::ComputedPropertyName(inner) => inner.span(),
14248 Self::Number(inner) => inner.span(),
14249 Self::PrivatePropertyIdentifier(inner) => inner.span(),
14250 Self::PropertyIdentifier(inner) => inner.span(),
14251 Self::String(inner) => inner.span(),
14252 }
14253 }
14254}
14255#[derive(Debug, Clone, PartialEq, Eq)]
14256pub enum MethodSignatureReturnType<'tree> {
14257 AssertsAnnotation(::std::boxed::Box<AssertsAnnotation<'tree>>),
14258 TypeAnnotation(::std::boxed::Box<TypeAnnotation<'tree>>),
14259 TypePredicateAnnotation(::std::boxed::Box<TypePredicateAnnotation<'tree>>),
14260}
14261impl<'tree> ::treesitter_types::FromNode<'tree> for MethodSignatureReturnType<'tree> {
14262 #[allow(clippy::collapsible_else_if)]
14263 fn from_node(
14264 node: ::treesitter_types::tree_sitter::Node<'tree>,
14265 src: &'tree [u8],
14266 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14267 match node.kind() {
14268 "asserts_annotation" => Ok(Self::AssertsAnnotation(::std::boxed::Box::new(
14269 ::treesitter_types::runtime::maybe_grow_stack(|| {
14270 <AssertsAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
14271 })?,
14272 ))),
14273 "type_annotation" => Ok(Self::TypeAnnotation(::std::boxed::Box::new(
14274 ::treesitter_types::runtime::maybe_grow_stack(|| {
14275 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
14276 })?,
14277 ))),
14278 "type_predicate_annotation" => Ok(Self::TypePredicateAnnotation(
14279 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
14280 <TypePredicateAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
14281 })?),
14282 )),
14283 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14284 }
14285 }
14286}
14287impl ::treesitter_types::Spanned for MethodSignatureReturnType<'_> {
14288 fn span(&self) -> ::treesitter_types::Span {
14289 match self {
14290 Self::AssertsAnnotation(inner) => inner.span(),
14291 Self::TypeAnnotation(inner) => inner.span(),
14292 Self::TypePredicateAnnotation(inner) => inner.span(),
14293 }
14294 }
14295}
14296#[derive(Debug, Clone, PartialEq, Eq)]
14297pub enum MethodSignatureChildren<'tree> {
14298 AccessibilityModifier(::std::boxed::Box<AccessibilityModifier<'tree>>),
14299 OverrideModifier(::std::boxed::Box<OverrideModifier<'tree>>),
14300}
14301impl<'tree> ::treesitter_types::FromNode<'tree> for MethodSignatureChildren<'tree> {
14302 #[allow(clippy::collapsible_else_if)]
14303 fn from_node(
14304 node: ::treesitter_types::tree_sitter::Node<'tree>,
14305 src: &'tree [u8],
14306 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14307 match node.kind() {
14308 "accessibility_modifier" => Ok(Self::AccessibilityModifier(::std::boxed::Box::new(
14309 ::treesitter_types::runtime::maybe_grow_stack(|| {
14310 <AccessibilityModifier as ::treesitter_types::FromNode>::from_node(node, src)
14311 })?,
14312 ))),
14313 "override_modifier" => Ok(Self::OverrideModifier(::std::boxed::Box::new(
14314 ::treesitter_types::runtime::maybe_grow_stack(|| {
14315 <OverrideModifier as ::treesitter_types::FromNode>::from_node(node, src)
14316 })?,
14317 ))),
14318 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14319 }
14320 }
14321}
14322impl ::treesitter_types::Spanned for MethodSignatureChildren<'_> {
14323 fn span(&self) -> ::treesitter_types::Span {
14324 match self {
14325 Self::AccessibilityModifier(inner) => inner.span(),
14326 Self::OverrideModifier(inner) => inner.span(),
14327 }
14328 }
14329}
14330#[derive(Debug, Clone, PartialEq, Eq)]
14331pub enum ModuleName<'tree> {
14332 Identifier(::std::boxed::Box<Identifier<'tree>>),
14333 NestedIdentifier(::std::boxed::Box<NestedIdentifier<'tree>>),
14334 String(::std::boxed::Box<String<'tree>>),
14335}
14336impl<'tree> ::treesitter_types::FromNode<'tree> for ModuleName<'tree> {
14337 #[allow(clippy::collapsible_else_if)]
14338 fn from_node(
14339 node: ::treesitter_types::tree_sitter::Node<'tree>,
14340 src: &'tree [u8],
14341 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14342 match node.kind() {
14343 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
14344 ::treesitter_types::runtime::maybe_grow_stack(|| {
14345 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
14346 })?,
14347 ))),
14348 "nested_identifier" => Ok(Self::NestedIdentifier(::std::boxed::Box::new(
14349 ::treesitter_types::runtime::maybe_grow_stack(|| {
14350 <NestedIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
14351 })?,
14352 ))),
14353 "string" => Ok(Self::String(::std::boxed::Box::new(
14354 ::treesitter_types::runtime::maybe_grow_stack(|| {
14355 <String as ::treesitter_types::FromNode>::from_node(node, src)
14356 })?,
14357 ))),
14358 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14359 }
14360 }
14361}
14362impl ::treesitter_types::Spanned for ModuleName<'_> {
14363 fn span(&self) -> ::treesitter_types::Span {
14364 match self {
14365 Self::Identifier(inner) => inner.span(),
14366 Self::NestedIdentifier(inner) => inner.span(),
14367 Self::String(inner) => inner.span(),
14368 }
14369 }
14370}
14371#[derive(Debug, Clone, PartialEq, Eq)]
14372pub enum NamespaceExportChildren<'tree> {
14373 Identifier(::std::boxed::Box<Identifier<'tree>>),
14374 String(::std::boxed::Box<String<'tree>>),
14375}
14376impl<'tree> ::treesitter_types::FromNode<'tree> for NamespaceExportChildren<'tree> {
14377 #[allow(clippy::collapsible_else_if)]
14378 fn from_node(
14379 node: ::treesitter_types::tree_sitter::Node<'tree>,
14380 src: &'tree [u8],
14381 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14382 match node.kind() {
14383 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
14384 ::treesitter_types::runtime::maybe_grow_stack(|| {
14385 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
14386 })?,
14387 ))),
14388 "string" => Ok(Self::String(::std::boxed::Box::new(
14389 ::treesitter_types::runtime::maybe_grow_stack(|| {
14390 <String as ::treesitter_types::FromNode>::from_node(node, src)
14391 })?,
14392 ))),
14393 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14394 }
14395 }
14396}
14397impl ::treesitter_types::Spanned for NamespaceExportChildren<'_> {
14398 fn span(&self) -> ::treesitter_types::Span {
14399 match self {
14400 Self::Identifier(inner) => inner.span(),
14401 Self::String(inner) => inner.span(),
14402 }
14403 }
14404}
14405#[derive(Debug, Clone, PartialEq, Eq)]
14406pub enum NestedIdentifierObject<'tree> {
14407 Identifier(::std::boxed::Box<Identifier<'tree>>),
14408 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
14409}
14410impl<'tree> ::treesitter_types::FromNode<'tree> for NestedIdentifierObject<'tree> {
14411 #[allow(clippy::collapsible_else_if)]
14412 fn from_node(
14413 node: ::treesitter_types::tree_sitter::Node<'tree>,
14414 src: &'tree [u8],
14415 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14416 match node.kind() {
14417 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
14418 ::treesitter_types::runtime::maybe_grow_stack(|| {
14419 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
14420 })?,
14421 ))),
14422 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
14423 ::treesitter_types::runtime::maybe_grow_stack(|| {
14424 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)
14425 })?,
14426 ))),
14427 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14428 }
14429 }
14430}
14431impl ::treesitter_types::Spanned for NestedIdentifierObject<'_> {
14432 fn span(&self) -> ::treesitter_types::Span {
14433 match self {
14434 Self::Identifier(inner) => inner.span(),
14435 Self::MemberExpression(inner) => inner.span(),
14436 }
14437 }
14438}
14439#[derive(Debug, Clone, PartialEq, Eq)]
14440pub enum NestedTypeIdentifierModule<'tree> {
14441 Identifier(::std::boxed::Box<Identifier<'tree>>),
14442 NestedIdentifier(::std::boxed::Box<NestedIdentifier<'tree>>),
14443}
14444impl<'tree> ::treesitter_types::FromNode<'tree> for NestedTypeIdentifierModule<'tree> {
14445 #[allow(clippy::collapsible_else_if)]
14446 fn from_node(
14447 node: ::treesitter_types::tree_sitter::Node<'tree>,
14448 src: &'tree [u8],
14449 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14450 match node.kind() {
14451 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
14452 ::treesitter_types::runtime::maybe_grow_stack(|| {
14453 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
14454 })?,
14455 ))),
14456 "nested_identifier" => Ok(Self::NestedIdentifier(::std::boxed::Box::new(
14457 ::treesitter_types::runtime::maybe_grow_stack(|| {
14458 <NestedIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
14459 })?,
14460 ))),
14461 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14462 }
14463 }
14464}
14465impl ::treesitter_types::Spanned for NestedTypeIdentifierModule<'_> {
14466 fn span(&self) -> ::treesitter_types::Span {
14467 match self {
14468 Self::Identifier(inner) => inner.span(),
14469 Self::NestedIdentifier(inner) => inner.span(),
14470 }
14471 }
14472}
14473#[derive(Debug, Clone, PartialEq, Eq)]
14474pub enum ObjectChildren<'tree> {
14475 MethodDefinition(::std::boxed::Box<MethodDefinition<'tree>>),
14476 Pair(::std::boxed::Box<Pair<'tree>>),
14477 ShorthandPropertyIdentifier(::std::boxed::Box<ShorthandPropertyIdentifier<'tree>>),
14478 SpreadElement(::std::boxed::Box<SpreadElement<'tree>>),
14479}
14480impl<'tree> ::treesitter_types::FromNode<'tree> for ObjectChildren<'tree> {
14481 #[allow(clippy::collapsible_else_if)]
14482 fn from_node(
14483 node: ::treesitter_types::tree_sitter::Node<'tree>,
14484 src: &'tree [u8],
14485 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14486 match node.kind() {
14487 "method_definition" => Ok(Self::MethodDefinition(::std::boxed::Box::new(
14488 ::treesitter_types::runtime::maybe_grow_stack(|| {
14489 <MethodDefinition as ::treesitter_types::FromNode>::from_node(node, src)
14490 })?,
14491 ))),
14492 "pair" => Ok(Self::Pair(::std::boxed::Box::new(
14493 ::treesitter_types::runtime::maybe_grow_stack(|| {
14494 <Pair as ::treesitter_types::FromNode>::from_node(node, src)
14495 })?,
14496 ))),
14497 "shorthand_property_identifier" => Ok(Self::ShorthandPropertyIdentifier(
14498 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
14499 <ShorthandPropertyIdentifier as ::treesitter_types::FromNode>::from_node(
14500 node, src,
14501 )
14502 })?),
14503 )),
14504 "spread_element" => Ok(Self::SpreadElement(::std::boxed::Box::new(
14505 ::treesitter_types::runtime::maybe_grow_stack(|| {
14506 <SpreadElement as ::treesitter_types::FromNode>::from_node(node, src)
14507 })?,
14508 ))),
14509 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14510 }
14511 }
14512}
14513impl ::treesitter_types::Spanned for ObjectChildren<'_> {
14514 fn span(&self) -> ::treesitter_types::Span {
14515 match self {
14516 Self::MethodDefinition(inner) => inner.span(),
14517 Self::Pair(inner) => inner.span(),
14518 Self::ShorthandPropertyIdentifier(inner) => inner.span(),
14519 Self::SpreadElement(inner) => inner.span(),
14520 }
14521 }
14522}
14523#[derive(Debug, Clone, PartialEq, Eq)]
14524pub enum ObjectAssignmentPatternLeft<'tree> {
14525 ArrayPattern(::std::boxed::Box<ArrayPattern<'tree>>),
14526 ObjectPattern(::std::boxed::Box<ObjectPattern<'tree>>),
14527 ShorthandPropertyIdentifierPattern(
14528 ::std::boxed::Box<ShorthandPropertyIdentifierPattern<'tree>>,
14529 ),
14530}
14531impl<'tree> ::treesitter_types::FromNode<'tree> for ObjectAssignmentPatternLeft<'tree> {
14532 #[allow(clippy::collapsible_else_if)]
14533 fn from_node(
14534 node: ::treesitter_types::tree_sitter::Node<'tree>,
14535 src: &'tree [u8],
14536 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14537 match node.kind() {
14538 "array_pattern" => Ok(Self::ArrayPattern(::std::boxed::Box::new(
14539 ::treesitter_types::runtime::maybe_grow_stack(|| {
14540 <ArrayPattern as ::treesitter_types::FromNode>::from_node(node, src)
14541 })?,
14542 ))),
14543 "object_pattern" => Ok(Self::ObjectPattern(::std::boxed::Box::new(
14544 ::treesitter_types::runtime::maybe_grow_stack(|| {
14545 <ObjectPattern as ::treesitter_types::FromNode>::from_node(node, src)
14546 })?,
14547 ))),
14548 "shorthand_property_identifier_pattern" => {
14549 Ok(Self::ShorthandPropertyIdentifierPattern(
14550 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
14551 <ShorthandPropertyIdentifierPattern as ::treesitter_types::FromNode>::from_node(
14552 node,
14553 src,
14554 )
14555 })?),
14556 ))
14557 }
14558 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14559 }
14560 }
14561}
14562impl ::treesitter_types::Spanned for ObjectAssignmentPatternLeft<'_> {
14563 fn span(&self) -> ::treesitter_types::Span {
14564 match self {
14565 Self::ArrayPattern(inner) => inner.span(),
14566 Self::ObjectPattern(inner) => inner.span(),
14567 Self::ShorthandPropertyIdentifierPattern(inner) => inner.span(),
14568 }
14569 }
14570}
14571#[derive(Debug, Clone, PartialEq, Eq)]
14572pub enum ObjectPatternChildren<'tree> {
14573 ObjectAssignmentPattern(::std::boxed::Box<ObjectAssignmentPattern<'tree>>),
14574 PairPattern(::std::boxed::Box<PairPattern<'tree>>),
14575 RestPattern(::std::boxed::Box<RestPattern<'tree>>),
14576 ShorthandPropertyIdentifierPattern(
14577 ::std::boxed::Box<ShorthandPropertyIdentifierPattern<'tree>>,
14578 ),
14579}
14580impl<'tree> ::treesitter_types::FromNode<'tree> for ObjectPatternChildren<'tree> {
14581 #[allow(clippy::collapsible_else_if)]
14582 fn from_node(
14583 node: ::treesitter_types::tree_sitter::Node<'tree>,
14584 src: &'tree [u8],
14585 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14586 match node.kind() {
14587 "object_assignment_pattern" => Ok(Self::ObjectAssignmentPattern(
14588 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
14589 <ObjectAssignmentPattern as ::treesitter_types::FromNode>::from_node(node, src)
14590 })?),
14591 )),
14592 "pair_pattern" => Ok(Self::PairPattern(::std::boxed::Box::new(
14593 ::treesitter_types::runtime::maybe_grow_stack(|| {
14594 <PairPattern as ::treesitter_types::FromNode>::from_node(node, src)
14595 })?,
14596 ))),
14597 "rest_pattern" => Ok(Self::RestPattern(::std::boxed::Box::new(
14598 ::treesitter_types::runtime::maybe_grow_stack(|| {
14599 <RestPattern as ::treesitter_types::FromNode>::from_node(node, src)
14600 })?,
14601 ))),
14602 "shorthand_property_identifier_pattern" => {
14603 Ok(Self::ShorthandPropertyIdentifierPattern(
14604 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
14605 <ShorthandPropertyIdentifierPattern as ::treesitter_types::FromNode>::from_node(
14606 node,
14607 src,
14608 )
14609 })?),
14610 ))
14611 }
14612 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14613 }
14614 }
14615}
14616impl ::treesitter_types::Spanned for ObjectPatternChildren<'_> {
14617 fn span(&self) -> ::treesitter_types::Span {
14618 match self {
14619 Self::ObjectAssignmentPattern(inner) => inner.span(),
14620 Self::PairPattern(inner) => inner.span(),
14621 Self::RestPattern(inner) => inner.span(),
14622 Self::ShorthandPropertyIdentifierPattern(inner) => inner.span(),
14623 }
14624 }
14625}
14626#[derive(Debug, Clone, PartialEq, Eq)]
14627pub enum ObjectTypeChildren<'tree> {
14628 CallSignature(::std::boxed::Box<CallSignature<'tree>>),
14629 ConstructSignature(::std::boxed::Box<ConstructSignature<'tree>>),
14630 ExportStatement(::std::boxed::Box<ExportStatement<'tree>>),
14631 IndexSignature(::std::boxed::Box<IndexSignature<'tree>>),
14632 MethodSignature(::std::boxed::Box<MethodSignature<'tree>>),
14633 PropertySignature(::std::boxed::Box<PropertySignature<'tree>>),
14634}
14635impl<'tree> ::treesitter_types::FromNode<'tree> for ObjectTypeChildren<'tree> {
14636 #[allow(clippy::collapsible_else_if)]
14637 fn from_node(
14638 node: ::treesitter_types::tree_sitter::Node<'tree>,
14639 src: &'tree [u8],
14640 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14641 match node.kind() {
14642 "call_signature" => Ok(Self::CallSignature(::std::boxed::Box::new(
14643 ::treesitter_types::runtime::maybe_grow_stack(|| {
14644 <CallSignature as ::treesitter_types::FromNode>::from_node(node, src)
14645 })?,
14646 ))),
14647 "construct_signature" => Ok(Self::ConstructSignature(::std::boxed::Box::new(
14648 ::treesitter_types::runtime::maybe_grow_stack(|| {
14649 <ConstructSignature as ::treesitter_types::FromNode>::from_node(node, src)
14650 })?,
14651 ))),
14652 "export_statement" => Ok(Self::ExportStatement(::std::boxed::Box::new(
14653 ::treesitter_types::runtime::maybe_grow_stack(|| {
14654 <ExportStatement as ::treesitter_types::FromNode>::from_node(node, src)
14655 })?,
14656 ))),
14657 "index_signature" => Ok(Self::IndexSignature(::std::boxed::Box::new(
14658 ::treesitter_types::runtime::maybe_grow_stack(|| {
14659 <IndexSignature as ::treesitter_types::FromNode>::from_node(node, src)
14660 })?,
14661 ))),
14662 "method_signature" => Ok(Self::MethodSignature(::std::boxed::Box::new(
14663 ::treesitter_types::runtime::maybe_grow_stack(|| {
14664 <MethodSignature as ::treesitter_types::FromNode>::from_node(node, src)
14665 })?,
14666 ))),
14667 "property_signature" => Ok(Self::PropertySignature(::std::boxed::Box::new(
14668 ::treesitter_types::runtime::maybe_grow_stack(|| {
14669 <PropertySignature as ::treesitter_types::FromNode>::from_node(node, src)
14670 })?,
14671 ))),
14672 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14673 }
14674 }
14675}
14676impl ::treesitter_types::Spanned for ObjectTypeChildren<'_> {
14677 fn span(&self) -> ::treesitter_types::Span {
14678 match self {
14679 Self::CallSignature(inner) => inner.span(),
14680 Self::ConstructSignature(inner) => inner.span(),
14681 Self::ExportStatement(inner) => inner.span(),
14682 Self::IndexSignature(inner) => inner.span(),
14683 Self::MethodSignature(inner) => inner.span(),
14684 Self::PropertySignature(inner) => inner.span(),
14685 }
14686 }
14687}
14688#[derive(Debug, Clone, PartialEq, Eq)]
14689pub enum OptionalParameterPattern<'tree> {
14690 Pattern(::std::boxed::Box<Pattern<'tree>>),
14691 This(::std::boxed::Box<This<'tree>>),
14692}
14693impl<'tree> ::treesitter_types::FromNode<'tree> for OptionalParameterPattern<'tree> {
14694 #[allow(clippy::collapsible_else_if)]
14695 fn from_node(
14696 node: ::treesitter_types::tree_sitter::Node<'tree>,
14697 src: &'tree [u8],
14698 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14699 match node.kind() {
14700 "this" => Ok(Self::This(::std::boxed::Box::new(
14701 ::treesitter_types::runtime::maybe_grow_stack(|| {
14702 <This as ::treesitter_types::FromNode>::from_node(node, src)
14703 })?,
14704 ))),
14705 _other => {
14706 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
14707 <Pattern as ::treesitter_types::FromNode>::from_node(node, src)
14708 }) {
14709 Ok(Self::Pattern(::std::boxed::Box::new(v)))
14710 } else {
14711 Err(::treesitter_types::ParseError::unexpected_kind(
14712 _other, node,
14713 ))
14714 }
14715 }
14716 }
14717 }
14718}
14719impl ::treesitter_types::Spanned for OptionalParameterPattern<'_> {
14720 fn span(&self) -> ::treesitter_types::Span {
14721 match self {
14722 Self::Pattern(inner) => inner.span(),
14723 Self::This(inner) => inner.span(),
14724 }
14725 }
14726}
14727#[derive(Debug, Clone, PartialEq, Eq)]
14728pub enum OptionalParameterChildren<'tree> {
14729 AccessibilityModifier(::std::boxed::Box<AccessibilityModifier<'tree>>),
14730 OverrideModifier(::std::boxed::Box<OverrideModifier<'tree>>),
14731}
14732impl<'tree> ::treesitter_types::FromNode<'tree> for OptionalParameterChildren<'tree> {
14733 #[allow(clippy::collapsible_else_if)]
14734 fn from_node(
14735 node: ::treesitter_types::tree_sitter::Node<'tree>,
14736 src: &'tree [u8],
14737 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14738 match node.kind() {
14739 "accessibility_modifier" => Ok(Self::AccessibilityModifier(::std::boxed::Box::new(
14740 ::treesitter_types::runtime::maybe_grow_stack(|| {
14741 <AccessibilityModifier as ::treesitter_types::FromNode>::from_node(node, src)
14742 })?,
14743 ))),
14744 "override_modifier" => Ok(Self::OverrideModifier(::std::boxed::Box::new(
14745 ::treesitter_types::runtime::maybe_grow_stack(|| {
14746 <OverrideModifier as ::treesitter_types::FromNode>::from_node(node, src)
14747 })?,
14748 ))),
14749 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14750 }
14751 }
14752}
14753impl ::treesitter_types::Spanned for OptionalParameterChildren<'_> {
14754 fn span(&self) -> ::treesitter_types::Span {
14755 match self {
14756 Self::AccessibilityModifier(inner) => inner.span(),
14757 Self::OverrideModifier(inner) => inner.span(),
14758 }
14759 }
14760}
14761#[derive(Debug, Clone, PartialEq, Eq)]
14762pub enum PairKey<'tree> {
14763 ComputedPropertyName(::std::boxed::Box<ComputedPropertyName<'tree>>),
14764 Number(::std::boxed::Box<Number<'tree>>),
14765 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
14766 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
14767 String(::std::boxed::Box<String<'tree>>),
14768}
14769impl<'tree> ::treesitter_types::FromNode<'tree> for PairKey<'tree> {
14770 #[allow(clippy::collapsible_else_if)]
14771 fn from_node(
14772 node: ::treesitter_types::tree_sitter::Node<'tree>,
14773 src: &'tree [u8],
14774 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14775 match node.kind() {
14776 "computed_property_name" => Ok(Self::ComputedPropertyName(::std::boxed::Box::new(
14777 ::treesitter_types::runtime::maybe_grow_stack(|| {
14778 <ComputedPropertyName as ::treesitter_types::FromNode>::from_node(node, src)
14779 })?,
14780 ))),
14781 "number" => Ok(Self::Number(::std::boxed::Box::new(
14782 ::treesitter_types::runtime::maybe_grow_stack(|| {
14783 <Number as ::treesitter_types::FromNode>::from_node(node, src)
14784 })?,
14785 ))),
14786 "private_property_identifier" => Ok(Self::PrivatePropertyIdentifier(
14787 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
14788 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
14789 node, src,
14790 )
14791 })?),
14792 )),
14793 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
14794 ::treesitter_types::runtime::maybe_grow_stack(|| {
14795 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
14796 })?,
14797 ))),
14798 "string" => Ok(Self::String(::std::boxed::Box::new(
14799 ::treesitter_types::runtime::maybe_grow_stack(|| {
14800 <String as ::treesitter_types::FromNode>::from_node(node, src)
14801 })?,
14802 ))),
14803 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14804 }
14805 }
14806}
14807impl ::treesitter_types::Spanned for PairKey<'_> {
14808 fn span(&self) -> ::treesitter_types::Span {
14809 match self {
14810 Self::ComputedPropertyName(inner) => inner.span(),
14811 Self::Number(inner) => inner.span(),
14812 Self::PrivatePropertyIdentifier(inner) => inner.span(),
14813 Self::PropertyIdentifier(inner) => inner.span(),
14814 Self::String(inner) => inner.span(),
14815 }
14816 }
14817}
14818#[derive(Debug, Clone, PartialEq, Eq)]
14819pub enum PairPatternKey<'tree> {
14820 ComputedPropertyName(::std::boxed::Box<ComputedPropertyName<'tree>>),
14821 Number(::std::boxed::Box<Number<'tree>>),
14822 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
14823 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
14824 String(::std::boxed::Box<String<'tree>>),
14825}
14826impl<'tree> ::treesitter_types::FromNode<'tree> for PairPatternKey<'tree> {
14827 #[allow(clippy::collapsible_else_if)]
14828 fn from_node(
14829 node: ::treesitter_types::tree_sitter::Node<'tree>,
14830 src: &'tree [u8],
14831 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14832 match node.kind() {
14833 "computed_property_name" => Ok(Self::ComputedPropertyName(::std::boxed::Box::new(
14834 ::treesitter_types::runtime::maybe_grow_stack(|| {
14835 <ComputedPropertyName as ::treesitter_types::FromNode>::from_node(node, src)
14836 })?,
14837 ))),
14838 "number" => Ok(Self::Number(::std::boxed::Box::new(
14839 ::treesitter_types::runtime::maybe_grow_stack(|| {
14840 <Number as ::treesitter_types::FromNode>::from_node(node, src)
14841 })?,
14842 ))),
14843 "private_property_identifier" => Ok(Self::PrivatePropertyIdentifier(
14844 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
14845 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
14846 node, src,
14847 )
14848 })?),
14849 )),
14850 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
14851 ::treesitter_types::runtime::maybe_grow_stack(|| {
14852 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
14853 })?,
14854 ))),
14855 "string" => Ok(Self::String(::std::boxed::Box::new(
14856 ::treesitter_types::runtime::maybe_grow_stack(|| {
14857 <String as ::treesitter_types::FromNode>::from_node(node, src)
14858 })?,
14859 ))),
14860 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14861 }
14862 }
14863}
14864impl ::treesitter_types::Spanned for PairPatternKey<'_> {
14865 fn span(&self) -> ::treesitter_types::Span {
14866 match self {
14867 Self::ComputedPropertyName(inner) => inner.span(),
14868 Self::Number(inner) => inner.span(),
14869 Self::PrivatePropertyIdentifier(inner) => inner.span(),
14870 Self::PropertyIdentifier(inner) => inner.span(),
14871 Self::String(inner) => inner.span(),
14872 }
14873 }
14874}
14875#[derive(Debug, Clone, PartialEq, Eq)]
14876pub enum PairPatternValue<'tree> {
14877 AssignmentPattern(::std::boxed::Box<AssignmentPattern<'tree>>),
14878 Pattern(::std::boxed::Box<Pattern<'tree>>),
14879}
14880impl<'tree> ::treesitter_types::FromNode<'tree> for PairPatternValue<'tree> {
14881 #[allow(clippy::collapsible_else_if)]
14882 fn from_node(
14883 node: ::treesitter_types::tree_sitter::Node<'tree>,
14884 src: &'tree [u8],
14885 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14886 match node.kind() {
14887 "assignment_pattern" => Ok(Self::AssignmentPattern(::std::boxed::Box::new(
14888 ::treesitter_types::runtime::maybe_grow_stack(|| {
14889 <AssignmentPattern as ::treesitter_types::FromNode>::from_node(node, src)
14890 })?,
14891 ))),
14892 _other => {
14893 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
14894 <Pattern as ::treesitter_types::FromNode>::from_node(node, src)
14895 }) {
14896 Ok(Self::Pattern(::std::boxed::Box::new(v)))
14897 } else {
14898 Err(::treesitter_types::ParseError::unexpected_kind(
14899 _other, node,
14900 ))
14901 }
14902 }
14903 }
14904 }
14905}
14906impl ::treesitter_types::Spanned for PairPatternValue<'_> {
14907 fn span(&self) -> ::treesitter_types::Span {
14908 match self {
14909 Self::AssignmentPattern(inner) => inner.span(),
14910 Self::Pattern(inner) => inner.span(),
14911 }
14912 }
14913}
14914#[derive(Debug, Clone, PartialEq, Eq)]
14915pub enum ParenthesizedExpressionChildren<'tree> {
14916 CallExpression(::std::boxed::Box<CallExpression<'tree>>),
14917 Expression(::std::boxed::Box<Expression<'tree>>),
14918 Identifier(::std::boxed::Box<Identifier<'tree>>),
14919 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
14920 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
14921}
14922impl<'tree> ::treesitter_types::FromNode<'tree> for ParenthesizedExpressionChildren<'tree> {
14923 #[allow(clippy::collapsible_else_if)]
14924 fn from_node(
14925 node: ::treesitter_types::tree_sitter::Node<'tree>,
14926 src: &'tree [u8],
14927 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14928 match node.kind() {
14929 "call_expression" => Ok(Self::CallExpression(::std::boxed::Box::new(
14930 ::treesitter_types::runtime::maybe_grow_stack(|| {
14931 <CallExpression as ::treesitter_types::FromNode>::from_node(node, src)
14932 })?,
14933 ))),
14934 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
14935 ::treesitter_types::runtime::maybe_grow_stack(|| {
14936 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
14937 })?,
14938 ))),
14939 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
14940 ::treesitter_types::runtime::maybe_grow_stack(|| {
14941 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)
14942 })?,
14943 ))),
14944 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
14945 ::treesitter_types::runtime::maybe_grow_stack(|| {
14946 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)
14947 })?,
14948 ))),
14949 _other => {
14950 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
14951 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
14952 }) {
14953 Ok(Self::Expression(::std::boxed::Box::new(v)))
14954 } else {
14955 Err(::treesitter_types::ParseError::unexpected_kind(
14956 _other, node,
14957 ))
14958 }
14959 }
14960 }
14961 }
14962}
14963impl ::treesitter_types::Spanned for ParenthesizedExpressionChildren<'_> {
14964 fn span(&self) -> ::treesitter_types::Span {
14965 match self {
14966 Self::CallExpression(inner) => inner.span(),
14967 Self::Expression(inner) => inner.span(),
14968 Self::Identifier(inner) => inner.span(),
14969 Self::MemberExpression(inner) => inner.span(),
14970 Self::SequenceExpression(inner) => inner.span(),
14971 }
14972 }
14973}
14974#[derive(Debug, Clone, PartialEq, Eq)]
14975pub enum ProgramChildren<'tree> {
14976 HashBangLine(::std::boxed::Box<HashBangLine<'tree>>),
14977 Statement(::std::boxed::Box<Statement<'tree>>),
14978}
14979impl<'tree> ::treesitter_types::FromNode<'tree> for ProgramChildren<'tree> {
14980 #[allow(clippy::collapsible_else_if)]
14981 fn from_node(
14982 node: ::treesitter_types::tree_sitter::Node<'tree>,
14983 src: &'tree [u8],
14984 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14985 match node.kind() {
14986 "hash_bang_line" => Ok(Self::HashBangLine(::std::boxed::Box::new(
14987 ::treesitter_types::runtime::maybe_grow_stack(|| {
14988 <HashBangLine as ::treesitter_types::FromNode>::from_node(node, src)
14989 })?,
14990 ))),
14991 _other => {
14992 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
14993 <Statement as ::treesitter_types::FromNode>::from_node(node, src)
14994 }) {
14995 Ok(Self::Statement(::std::boxed::Box::new(v)))
14996 } else {
14997 Err(::treesitter_types::ParseError::unexpected_kind(
14998 _other, node,
14999 ))
15000 }
15001 }
15002 }
15003 }
15004}
15005impl ::treesitter_types::Spanned for ProgramChildren<'_> {
15006 fn span(&self) -> ::treesitter_types::Span {
15007 match self {
15008 Self::HashBangLine(inner) => inner.span(),
15009 Self::Statement(inner) => inner.span(),
15010 }
15011 }
15012}
15013#[derive(Debug, Clone, PartialEq, Eq)]
15014pub enum PropertySignatureName<'tree> {
15015 ComputedPropertyName(::std::boxed::Box<ComputedPropertyName<'tree>>),
15016 Number(::std::boxed::Box<Number<'tree>>),
15017 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
15018 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
15019 String(::std::boxed::Box<String<'tree>>),
15020}
15021impl<'tree> ::treesitter_types::FromNode<'tree> for PropertySignatureName<'tree> {
15022 #[allow(clippy::collapsible_else_if)]
15023 fn from_node(
15024 node: ::treesitter_types::tree_sitter::Node<'tree>,
15025 src: &'tree [u8],
15026 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15027 match node.kind() {
15028 "computed_property_name" => Ok(Self::ComputedPropertyName(::std::boxed::Box::new(
15029 ::treesitter_types::runtime::maybe_grow_stack(|| {
15030 <ComputedPropertyName as ::treesitter_types::FromNode>::from_node(node, src)
15031 })?,
15032 ))),
15033 "number" => Ok(Self::Number(::std::boxed::Box::new(
15034 ::treesitter_types::runtime::maybe_grow_stack(|| {
15035 <Number as ::treesitter_types::FromNode>::from_node(node, src)
15036 })?,
15037 ))),
15038 "private_property_identifier" => Ok(Self::PrivatePropertyIdentifier(
15039 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
15040 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
15041 node, src,
15042 )
15043 })?),
15044 )),
15045 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
15046 ::treesitter_types::runtime::maybe_grow_stack(|| {
15047 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
15048 })?,
15049 ))),
15050 "string" => Ok(Self::String(::std::boxed::Box::new(
15051 ::treesitter_types::runtime::maybe_grow_stack(|| {
15052 <String as ::treesitter_types::FromNode>::from_node(node, src)
15053 })?,
15054 ))),
15055 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
15056 }
15057 }
15058}
15059impl ::treesitter_types::Spanned for PropertySignatureName<'_> {
15060 fn span(&self) -> ::treesitter_types::Span {
15061 match self {
15062 Self::ComputedPropertyName(inner) => inner.span(),
15063 Self::Number(inner) => inner.span(),
15064 Self::PrivatePropertyIdentifier(inner) => inner.span(),
15065 Self::PropertyIdentifier(inner) => inner.span(),
15066 Self::String(inner) => inner.span(),
15067 }
15068 }
15069}
15070#[derive(Debug, Clone, PartialEq, Eq)]
15071pub enum PropertySignatureChildren<'tree> {
15072 AccessibilityModifier(::std::boxed::Box<AccessibilityModifier<'tree>>),
15073 OverrideModifier(::std::boxed::Box<OverrideModifier<'tree>>),
15074}
15075impl<'tree> ::treesitter_types::FromNode<'tree> for PropertySignatureChildren<'tree> {
15076 #[allow(clippy::collapsible_else_if)]
15077 fn from_node(
15078 node: ::treesitter_types::tree_sitter::Node<'tree>,
15079 src: &'tree [u8],
15080 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15081 match node.kind() {
15082 "accessibility_modifier" => Ok(Self::AccessibilityModifier(::std::boxed::Box::new(
15083 ::treesitter_types::runtime::maybe_grow_stack(|| {
15084 <AccessibilityModifier as ::treesitter_types::FromNode>::from_node(node, src)
15085 })?,
15086 ))),
15087 "override_modifier" => Ok(Self::OverrideModifier(::std::boxed::Box::new(
15088 ::treesitter_types::runtime::maybe_grow_stack(|| {
15089 <OverrideModifier as ::treesitter_types::FromNode>::from_node(node, src)
15090 })?,
15091 ))),
15092 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
15093 }
15094 }
15095}
15096impl ::treesitter_types::Spanned for PropertySignatureChildren<'_> {
15097 fn span(&self) -> ::treesitter_types::Span {
15098 match self {
15099 Self::AccessibilityModifier(inner) => inner.span(),
15100 Self::OverrideModifier(inner) => inner.span(),
15101 }
15102 }
15103}
15104#[derive(Debug, Clone, PartialEq, Eq)]
15105pub enum PublicFieldDefinitionName<'tree> {
15106 ComputedPropertyName(::std::boxed::Box<ComputedPropertyName<'tree>>),
15107 Number(::std::boxed::Box<Number<'tree>>),
15108 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
15109 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
15110 String(::std::boxed::Box<String<'tree>>),
15111}
15112impl<'tree> ::treesitter_types::FromNode<'tree> for PublicFieldDefinitionName<'tree> {
15113 #[allow(clippy::collapsible_else_if)]
15114 fn from_node(
15115 node: ::treesitter_types::tree_sitter::Node<'tree>,
15116 src: &'tree [u8],
15117 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15118 match node.kind() {
15119 "computed_property_name" => Ok(Self::ComputedPropertyName(::std::boxed::Box::new(
15120 ::treesitter_types::runtime::maybe_grow_stack(|| {
15121 <ComputedPropertyName as ::treesitter_types::FromNode>::from_node(node, src)
15122 })?,
15123 ))),
15124 "number" => Ok(Self::Number(::std::boxed::Box::new(
15125 ::treesitter_types::runtime::maybe_grow_stack(|| {
15126 <Number as ::treesitter_types::FromNode>::from_node(node, src)
15127 })?,
15128 ))),
15129 "private_property_identifier" => Ok(Self::PrivatePropertyIdentifier(
15130 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
15131 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
15132 node, src,
15133 )
15134 })?),
15135 )),
15136 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
15137 ::treesitter_types::runtime::maybe_grow_stack(|| {
15138 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
15139 })?,
15140 ))),
15141 "string" => Ok(Self::String(::std::boxed::Box::new(
15142 ::treesitter_types::runtime::maybe_grow_stack(|| {
15143 <String as ::treesitter_types::FromNode>::from_node(node, src)
15144 })?,
15145 ))),
15146 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
15147 }
15148 }
15149}
15150impl ::treesitter_types::Spanned for PublicFieldDefinitionName<'_> {
15151 fn span(&self) -> ::treesitter_types::Span {
15152 match self {
15153 Self::ComputedPropertyName(inner) => inner.span(),
15154 Self::Number(inner) => inner.span(),
15155 Self::PrivatePropertyIdentifier(inner) => inner.span(),
15156 Self::PropertyIdentifier(inner) => inner.span(),
15157 Self::String(inner) => inner.span(),
15158 }
15159 }
15160}
15161#[derive(Debug, Clone, PartialEq, Eq)]
15162pub enum PublicFieldDefinitionChildren<'tree> {
15163 AccessibilityModifier(::std::boxed::Box<AccessibilityModifier<'tree>>),
15164 OverrideModifier(::std::boxed::Box<OverrideModifier<'tree>>),
15165}
15166impl<'tree> ::treesitter_types::FromNode<'tree> for PublicFieldDefinitionChildren<'tree> {
15167 #[allow(clippy::collapsible_else_if)]
15168 fn from_node(
15169 node: ::treesitter_types::tree_sitter::Node<'tree>,
15170 src: &'tree [u8],
15171 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15172 match node.kind() {
15173 "accessibility_modifier" => Ok(Self::AccessibilityModifier(::std::boxed::Box::new(
15174 ::treesitter_types::runtime::maybe_grow_stack(|| {
15175 <AccessibilityModifier as ::treesitter_types::FromNode>::from_node(node, src)
15176 })?,
15177 ))),
15178 "override_modifier" => Ok(Self::OverrideModifier(::std::boxed::Box::new(
15179 ::treesitter_types::runtime::maybe_grow_stack(|| {
15180 <OverrideModifier as ::treesitter_types::FromNode>::from_node(node, src)
15181 })?,
15182 ))),
15183 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
15184 }
15185 }
15186}
15187impl ::treesitter_types::Spanned for PublicFieldDefinitionChildren<'_> {
15188 fn span(&self) -> ::treesitter_types::Span {
15189 match self {
15190 Self::AccessibilityModifier(inner) => inner.span(),
15191 Self::OverrideModifier(inner) => inner.span(),
15192 }
15193 }
15194}
15195#[derive(Debug, Clone, PartialEq, Eq)]
15196pub enum RequiredParameterName<'tree> {
15197 Identifier(::std::boxed::Box<Identifier<'tree>>),
15198 RestPattern(::std::boxed::Box<RestPattern<'tree>>),
15199}
15200impl<'tree> ::treesitter_types::FromNode<'tree> for RequiredParameterName<'tree> {
15201 #[allow(clippy::collapsible_else_if)]
15202 fn from_node(
15203 node: ::treesitter_types::tree_sitter::Node<'tree>,
15204 src: &'tree [u8],
15205 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15206 match node.kind() {
15207 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
15208 ::treesitter_types::runtime::maybe_grow_stack(|| {
15209 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
15210 })?,
15211 ))),
15212 "rest_pattern" => Ok(Self::RestPattern(::std::boxed::Box::new(
15213 ::treesitter_types::runtime::maybe_grow_stack(|| {
15214 <RestPattern as ::treesitter_types::FromNode>::from_node(node, src)
15215 })?,
15216 ))),
15217 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
15218 }
15219 }
15220}
15221impl ::treesitter_types::Spanned for RequiredParameterName<'_> {
15222 fn span(&self) -> ::treesitter_types::Span {
15223 match self {
15224 Self::Identifier(inner) => inner.span(),
15225 Self::RestPattern(inner) => inner.span(),
15226 }
15227 }
15228}
15229#[derive(Debug, Clone, PartialEq, Eq)]
15230pub enum RequiredParameterPattern<'tree> {
15231 Pattern(::std::boxed::Box<Pattern<'tree>>),
15232 This(::std::boxed::Box<This<'tree>>),
15233}
15234impl<'tree> ::treesitter_types::FromNode<'tree> for RequiredParameterPattern<'tree> {
15235 #[allow(clippy::collapsible_else_if)]
15236 fn from_node(
15237 node: ::treesitter_types::tree_sitter::Node<'tree>,
15238 src: &'tree [u8],
15239 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15240 match node.kind() {
15241 "this" => Ok(Self::This(::std::boxed::Box::new(
15242 ::treesitter_types::runtime::maybe_grow_stack(|| {
15243 <This as ::treesitter_types::FromNode>::from_node(node, src)
15244 })?,
15245 ))),
15246 _other => {
15247 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
15248 <Pattern as ::treesitter_types::FromNode>::from_node(node, src)
15249 }) {
15250 Ok(Self::Pattern(::std::boxed::Box::new(v)))
15251 } else {
15252 Err(::treesitter_types::ParseError::unexpected_kind(
15253 _other, node,
15254 ))
15255 }
15256 }
15257 }
15258 }
15259}
15260impl ::treesitter_types::Spanned for RequiredParameterPattern<'_> {
15261 fn span(&self) -> ::treesitter_types::Span {
15262 match self {
15263 Self::Pattern(inner) => inner.span(),
15264 Self::This(inner) => inner.span(),
15265 }
15266 }
15267}
15268#[derive(Debug, Clone, PartialEq, Eq)]
15269pub enum RequiredParameterChildren<'tree> {
15270 AccessibilityModifier(::std::boxed::Box<AccessibilityModifier<'tree>>),
15271 OverrideModifier(::std::boxed::Box<OverrideModifier<'tree>>),
15272}
15273impl<'tree> ::treesitter_types::FromNode<'tree> for RequiredParameterChildren<'tree> {
15274 #[allow(clippy::collapsible_else_if)]
15275 fn from_node(
15276 node: ::treesitter_types::tree_sitter::Node<'tree>,
15277 src: &'tree [u8],
15278 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15279 match node.kind() {
15280 "accessibility_modifier" => Ok(Self::AccessibilityModifier(::std::boxed::Box::new(
15281 ::treesitter_types::runtime::maybe_grow_stack(|| {
15282 <AccessibilityModifier as ::treesitter_types::FromNode>::from_node(node, src)
15283 })?,
15284 ))),
15285 "override_modifier" => Ok(Self::OverrideModifier(::std::boxed::Box::new(
15286 ::treesitter_types::runtime::maybe_grow_stack(|| {
15287 <OverrideModifier as ::treesitter_types::FromNode>::from_node(node, src)
15288 })?,
15289 ))),
15290 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
15291 }
15292 }
15293}
15294impl ::treesitter_types::Spanned for RequiredParameterChildren<'_> {
15295 fn span(&self) -> ::treesitter_types::Span {
15296 match self {
15297 Self::AccessibilityModifier(inner) => inner.span(),
15298 Self::OverrideModifier(inner) => inner.span(),
15299 }
15300 }
15301}
15302#[derive(Debug, Clone, PartialEq, Eq)]
15303pub enum RestPatternChildren<'tree> {
15304 ArrayPattern(::std::boxed::Box<ArrayPattern<'tree>>),
15305 Identifier(::std::boxed::Box<Identifier<'tree>>),
15306 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
15307 NonNullExpression(::std::boxed::Box<NonNullExpression<'tree>>),
15308 ObjectPattern(::std::boxed::Box<ObjectPattern<'tree>>),
15309 SubscriptExpression(::std::boxed::Box<SubscriptExpression<'tree>>),
15310 Undefined(::std::boxed::Box<Undefined<'tree>>),
15311}
15312impl<'tree> ::treesitter_types::FromNode<'tree> for RestPatternChildren<'tree> {
15313 #[allow(clippy::collapsible_else_if)]
15314 fn from_node(
15315 node: ::treesitter_types::tree_sitter::Node<'tree>,
15316 src: &'tree [u8],
15317 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15318 match node.kind() {
15319 "array_pattern" => Ok(Self::ArrayPattern(::std::boxed::Box::new(
15320 ::treesitter_types::runtime::maybe_grow_stack(|| {
15321 <ArrayPattern as ::treesitter_types::FromNode>::from_node(node, src)
15322 })?,
15323 ))),
15324 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
15325 ::treesitter_types::runtime::maybe_grow_stack(|| {
15326 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
15327 })?,
15328 ))),
15329 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
15330 ::treesitter_types::runtime::maybe_grow_stack(|| {
15331 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)
15332 })?,
15333 ))),
15334 "non_null_expression" => Ok(Self::NonNullExpression(::std::boxed::Box::new(
15335 ::treesitter_types::runtime::maybe_grow_stack(|| {
15336 <NonNullExpression as ::treesitter_types::FromNode>::from_node(node, src)
15337 })?,
15338 ))),
15339 "object_pattern" => Ok(Self::ObjectPattern(::std::boxed::Box::new(
15340 ::treesitter_types::runtime::maybe_grow_stack(|| {
15341 <ObjectPattern as ::treesitter_types::FromNode>::from_node(node, src)
15342 })?,
15343 ))),
15344 "subscript_expression" => Ok(Self::SubscriptExpression(::std::boxed::Box::new(
15345 ::treesitter_types::runtime::maybe_grow_stack(|| {
15346 <SubscriptExpression as ::treesitter_types::FromNode>::from_node(node, src)
15347 })?,
15348 ))),
15349 "undefined" => Ok(Self::Undefined(::std::boxed::Box::new(
15350 ::treesitter_types::runtime::maybe_grow_stack(|| {
15351 <Undefined as ::treesitter_types::FromNode>::from_node(node, src)
15352 })?,
15353 ))),
15354 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
15355 }
15356 }
15357}
15358impl ::treesitter_types::Spanned for RestPatternChildren<'_> {
15359 fn span(&self) -> ::treesitter_types::Span {
15360 match self {
15361 Self::ArrayPattern(inner) => inner.span(),
15362 Self::Identifier(inner) => inner.span(),
15363 Self::MemberExpression(inner) => inner.span(),
15364 Self::NonNullExpression(inner) => inner.span(),
15365 Self::ObjectPattern(inner) => inner.span(),
15366 Self::SubscriptExpression(inner) => inner.span(),
15367 Self::Undefined(inner) => inner.span(),
15368 }
15369 }
15370}
15371#[derive(Debug, Clone, PartialEq, Eq)]
15372pub enum ReturnStatementChildren<'tree> {
15373 Expression(::std::boxed::Box<Expression<'tree>>),
15374 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
15375}
15376impl<'tree> ::treesitter_types::FromNode<'tree> for ReturnStatementChildren<'tree> {
15377 #[allow(clippy::collapsible_else_if)]
15378 fn from_node(
15379 node: ::treesitter_types::tree_sitter::Node<'tree>,
15380 src: &'tree [u8],
15381 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15382 match node.kind() {
15383 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
15384 ::treesitter_types::runtime::maybe_grow_stack(|| {
15385 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)
15386 })?,
15387 ))),
15388 _other => {
15389 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
15390 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
15391 }) {
15392 Ok(Self::Expression(::std::boxed::Box::new(v)))
15393 } else {
15394 Err(::treesitter_types::ParseError::unexpected_kind(
15395 _other, node,
15396 ))
15397 }
15398 }
15399 }
15400 }
15401}
15402impl ::treesitter_types::Spanned for ReturnStatementChildren<'_> {
15403 fn span(&self) -> ::treesitter_types::Span {
15404 match self {
15405 Self::Expression(inner) => inner.span(),
15406 Self::SequenceExpression(inner) => inner.span(),
15407 }
15408 }
15409}
15410#[derive(Debug, Clone, PartialEq, Eq)]
15411pub enum SatisfiesExpressionChildren<'tree> {
15412 Expression(::std::boxed::Box<Expression<'tree>>),
15413 Type(::std::boxed::Box<Type<'tree>>),
15414}
15415impl<'tree> ::treesitter_types::FromNode<'tree> for SatisfiesExpressionChildren<'tree> {
15416 #[allow(clippy::collapsible_else_if)]
15417 fn from_node(
15418 node: ::treesitter_types::tree_sitter::Node<'tree>,
15419 src: &'tree [u8],
15420 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15421 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
15422 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
15423 }) {
15424 Ok(Self::Expression(::std::boxed::Box::new(v)))
15425 } else {
15426 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
15427 <Type as ::treesitter_types::FromNode>::from_node(node, src)
15428 }) {
15429 Ok(Self::Type(::std::boxed::Box::new(v)))
15430 } else {
15431 Err(::treesitter_types::ParseError::unexpected_kind(
15432 node.kind(),
15433 node,
15434 ))
15435 }
15436 }
15437 }
15438}
15439impl ::treesitter_types::Spanned for SatisfiesExpressionChildren<'_> {
15440 fn span(&self) -> ::treesitter_types::Span {
15441 match self {
15442 Self::Expression(inner) => inner.span(),
15443 Self::Type(inner) => inner.span(),
15444 }
15445 }
15446}
15447#[derive(Debug, Clone, PartialEq, Eq)]
15448pub enum StringChildren<'tree> {
15449 EscapeSequence(::std::boxed::Box<EscapeSequence<'tree>>),
15450 StringFragment(::std::boxed::Box<StringFragment<'tree>>),
15451}
15452impl<'tree> ::treesitter_types::FromNode<'tree> for StringChildren<'tree> {
15453 #[allow(clippy::collapsible_else_if)]
15454 fn from_node(
15455 node: ::treesitter_types::tree_sitter::Node<'tree>,
15456 src: &'tree [u8],
15457 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15458 match node.kind() {
15459 "escape_sequence" => Ok(Self::EscapeSequence(::std::boxed::Box::new(
15460 ::treesitter_types::runtime::maybe_grow_stack(|| {
15461 <EscapeSequence as ::treesitter_types::FromNode>::from_node(node, src)
15462 })?,
15463 ))),
15464 "string_fragment" => Ok(Self::StringFragment(::std::boxed::Box::new(
15465 ::treesitter_types::runtime::maybe_grow_stack(|| {
15466 <StringFragment as ::treesitter_types::FromNode>::from_node(node, src)
15467 })?,
15468 ))),
15469 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
15470 }
15471 }
15472}
15473impl ::treesitter_types::Spanned for StringChildren<'_> {
15474 fn span(&self) -> ::treesitter_types::Span {
15475 match self {
15476 Self::EscapeSequence(inner) => inner.span(),
15477 Self::StringFragment(inner) => inner.span(),
15478 }
15479 }
15480}
15481#[derive(Debug, Clone, PartialEq, Eq)]
15482pub enum SubscriptExpressionIndex<'tree> {
15483 Expression(::std::boxed::Box<Expression<'tree>>),
15484 Number(::std::boxed::Box<Number<'tree>>),
15485 PredefinedType(::std::boxed::Box<PredefinedType<'tree>>),
15486 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
15487 String(::std::boxed::Box<String<'tree>>),
15488}
15489impl<'tree> ::treesitter_types::FromNode<'tree> for SubscriptExpressionIndex<'tree> {
15490 #[allow(clippy::collapsible_else_if)]
15491 fn from_node(
15492 node: ::treesitter_types::tree_sitter::Node<'tree>,
15493 src: &'tree [u8],
15494 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15495 match node.kind() {
15496 "number" => Ok(Self::Number(::std::boxed::Box::new(
15497 ::treesitter_types::runtime::maybe_grow_stack(|| {
15498 <Number as ::treesitter_types::FromNode>::from_node(node, src)
15499 })?,
15500 ))),
15501 "predefined_type" => Ok(Self::PredefinedType(::std::boxed::Box::new(
15502 ::treesitter_types::runtime::maybe_grow_stack(|| {
15503 <PredefinedType as ::treesitter_types::FromNode>::from_node(node, src)
15504 })?,
15505 ))),
15506 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
15507 ::treesitter_types::runtime::maybe_grow_stack(|| {
15508 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)
15509 })?,
15510 ))),
15511 "string" => Ok(Self::String(::std::boxed::Box::new(
15512 ::treesitter_types::runtime::maybe_grow_stack(|| {
15513 <String as ::treesitter_types::FromNode>::from_node(node, src)
15514 })?,
15515 ))),
15516 _other => {
15517 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
15518 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
15519 }) {
15520 Ok(Self::Expression(::std::boxed::Box::new(v)))
15521 } else {
15522 Err(::treesitter_types::ParseError::unexpected_kind(
15523 _other, node,
15524 ))
15525 }
15526 }
15527 }
15528 }
15529}
15530impl ::treesitter_types::Spanned for SubscriptExpressionIndex<'_> {
15531 fn span(&self) -> ::treesitter_types::Span {
15532 match self {
15533 Self::Expression(inner) => inner.span(),
15534 Self::Number(inner) => inner.span(),
15535 Self::PredefinedType(inner) => inner.span(),
15536 Self::SequenceExpression(inner) => inner.span(),
15537 Self::String(inner) => inner.span(),
15538 }
15539 }
15540}
15541#[derive(Debug, Clone, PartialEq, Eq)]
15542pub enum SwitchBodyChildren<'tree> {
15543 SwitchCase(::std::boxed::Box<SwitchCase<'tree>>),
15544 SwitchDefault(::std::boxed::Box<SwitchDefault<'tree>>),
15545}
15546impl<'tree> ::treesitter_types::FromNode<'tree> for SwitchBodyChildren<'tree> {
15547 #[allow(clippy::collapsible_else_if)]
15548 fn from_node(
15549 node: ::treesitter_types::tree_sitter::Node<'tree>,
15550 src: &'tree [u8],
15551 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15552 match node.kind() {
15553 "switch_case" => Ok(Self::SwitchCase(::std::boxed::Box::new(
15554 ::treesitter_types::runtime::maybe_grow_stack(|| {
15555 <SwitchCase as ::treesitter_types::FromNode>::from_node(node, src)
15556 })?,
15557 ))),
15558 "switch_default" => Ok(Self::SwitchDefault(::std::boxed::Box::new(
15559 ::treesitter_types::runtime::maybe_grow_stack(|| {
15560 <SwitchDefault as ::treesitter_types::FromNode>::from_node(node, src)
15561 })?,
15562 ))),
15563 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
15564 }
15565 }
15566}
15567impl ::treesitter_types::Spanned for SwitchBodyChildren<'_> {
15568 fn span(&self) -> ::treesitter_types::Span {
15569 match self {
15570 Self::SwitchCase(inner) => inner.span(),
15571 Self::SwitchDefault(inner) => inner.span(),
15572 }
15573 }
15574}
15575#[derive(Debug, Clone, PartialEq, Eq)]
15576pub enum SwitchCaseValue<'tree> {
15577 Expression(::std::boxed::Box<Expression<'tree>>),
15578 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
15579}
15580impl<'tree> ::treesitter_types::FromNode<'tree> for SwitchCaseValue<'tree> {
15581 #[allow(clippy::collapsible_else_if)]
15582 fn from_node(
15583 node: ::treesitter_types::tree_sitter::Node<'tree>,
15584 src: &'tree [u8],
15585 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15586 match node.kind() {
15587 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
15588 ::treesitter_types::runtime::maybe_grow_stack(|| {
15589 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)
15590 })?,
15591 ))),
15592 _other => {
15593 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
15594 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
15595 }) {
15596 Ok(Self::Expression(::std::boxed::Box::new(v)))
15597 } else {
15598 Err(::treesitter_types::ParseError::unexpected_kind(
15599 _other, node,
15600 ))
15601 }
15602 }
15603 }
15604 }
15605}
15606impl ::treesitter_types::Spanned for SwitchCaseValue<'_> {
15607 fn span(&self) -> ::treesitter_types::Span {
15608 match self {
15609 Self::Expression(inner) => inner.span(),
15610 Self::SequenceExpression(inner) => inner.span(),
15611 }
15612 }
15613}
15614#[derive(Debug, Clone, PartialEq, Eq)]
15615pub enum TemplateLiteralTypeChildren<'tree> {
15616 StringFragment(::std::boxed::Box<StringFragment<'tree>>),
15617 TemplateType(::std::boxed::Box<TemplateType<'tree>>),
15618}
15619impl<'tree> ::treesitter_types::FromNode<'tree> for TemplateLiteralTypeChildren<'tree> {
15620 #[allow(clippy::collapsible_else_if)]
15621 fn from_node(
15622 node: ::treesitter_types::tree_sitter::Node<'tree>,
15623 src: &'tree [u8],
15624 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15625 match node.kind() {
15626 "string_fragment" => Ok(Self::StringFragment(::std::boxed::Box::new(
15627 ::treesitter_types::runtime::maybe_grow_stack(|| {
15628 <StringFragment as ::treesitter_types::FromNode>::from_node(node, src)
15629 })?,
15630 ))),
15631 "template_type" => Ok(Self::TemplateType(::std::boxed::Box::new(
15632 ::treesitter_types::runtime::maybe_grow_stack(|| {
15633 <TemplateType as ::treesitter_types::FromNode>::from_node(node, src)
15634 })?,
15635 ))),
15636 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
15637 }
15638 }
15639}
15640impl ::treesitter_types::Spanned for TemplateLiteralTypeChildren<'_> {
15641 fn span(&self) -> ::treesitter_types::Span {
15642 match self {
15643 Self::StringFragment(inner) => inner.span(),
15644 Self::TemplateType(inner) => inner.span(),
15645 }
15646 }
15647}
15648#[derive(Debug, Clone, PartialEq, Eq)]
15649pub enum TemplateStringChildren<'tree> {
15650 EscapeSequence(::std::boxed::Box<EscapeSequence<'tree>>),
15651 StringFragment(::std::boxed::Box<StringFragment<'tree>>),
15652 TemplateSubstitution(::std::boxed::Box<TemplateSubstitution<'tree>>),
15653}
15654impl<'tree> ::treesitter_types::FromNode<'tree> for TemplateStringChildren<'tree> {
15655 #[allow(clippy::collapsible_else_if)]
15656 fn from_node(
15657 node: ::treesitter_types::tree_sitter::Node<'tree>,
15658 src: &'tree [u8],
15659 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15660 match node.kind() {
15661 "escape_sequence" => Ok(Self::EscapeSequence(::std::boxed::Box::new(
15662 ::treesitter_types::runtime::maybe_grow_stack(|| {
15663 <EscapeSequence as ::treesitter_types::FromNode>::from_node(node, src)
15664 })?,
15665 ))),
15666 "string_fragment" => Ok(Self::StringFragment(::std::boxed::Box::new(
15667 ::treesitter_types::runtime::maybe_grow_stack(|| {
15668 <StringFragment as ::treesitter_types::FromNode>::from_node(node, src)
15669 })?,
15670 ))),
15671 "template_substitution" => Ok(Self::TemplateSubstitution(::std::boxed::Box::new(
15672 ::treesitter_types::runtime::maybe_grow_stack(|| {
15673 <TemplateSubstitution as ::treesitter_types::FromNode>::from_node(node, src)
15674 })?,
15675 ))),
15676 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
15677 }
15678 }
15679}
15680impl ::treesitter_types::Spanned for TemplateStringChildren<'_> {
15681 fn span(&self) -> ::treesitter_types::Span {
15682 match self {
15683 Self::EscapeSequence(inner) => inner.span(),
15684 Self::StringFragment(inner) => inner.span(),
15685 Self::TemplateSubstitution(inner) => inner.span(),
15686 }
15687 }
15688}
15689#[derive(Debug, Clone, PartialEq, Eq)]
15690pub enum TemplateSubstitutionChildren<'tree> {
15691 Expression(::std::boxed::Box<Expression<'tree>>),
15692 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
15693}
15694impl<'tree> ::treesitter_types::FromNode<'tree> for TemplateSubstitutionChildren<'tree> {
15695 #[allow(clippy::collapsible_else_if)]
15696 fn from_node(
15697 node: ::treesitter_types::tree_sitter::Node<'tree>,
15698 src: &'tree [u8],
15699 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15700 match node.kind() {
15701 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
15702 ::treesitter_types::runtime::maybe_grow_stack(|| {
15703 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)
15704 })?,
15705 ))),
15706 _other => {
15707 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
15708 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
15709 }) {
15710 Ok(Self::Expression(::std::boxed::Box::new(v)))
15711 } else {
15712 Err(::treesitter_types::ParseError::unexpected_kind(
15713 _other, node,
15714 ))
15715 }
15716 }
15717 }
15718 }
15719}
15720impl ::treesitter_types::Spanned for TemplateSubstitutionChildren<'_> {
15721 fn span(&self) -> ::treesitter_types::Span {
15722 match self {
15723 Self::Expression(inner) => inner.span(),
15724 Self::SequenceExpression(inner) => inner.span(),
15725 }
15726 }
15727}
15728#[derive(Debug, Clone, PartialEq, Eq)]
15729pub enum TemplateTypeChildren<'tree> {
15730 InferType(::std::boxed::Box<InferType<'tree>>),
15731 PrimaryType(::std::boxed::Box<PrimaryType<'tree>>),
15732}
15733impl<'tree> ::treesitter_types::FromNode<'tree> for TemplateTypeChildren<'tree> {
15734 #[allow(clippy::collapsible_else_if)]
15735 fn from_node(
15736 node: ::treesitter_types::tree_sitter::Node<'tree>,
15737 src: &'tree [u8],
15738 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15739 match node.kind() {
15740 "infer_type" => Ok(Self::InferType(::std::boxed::Box::new(
15741 ::treesitter_types::runtime::maybe_grow_stack(|| {
15742 <InferType as ::treesitter_types::FromNode>::from_node(node, src)
15743 })?,
15744 ))),
15745 _other => {
15746 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
15747 <PrimaryType as ::treesitter_types::FromNode>::from_node(node, src)
15748 }) {
15749 Ok(Self::PrimaryType(::std::boxed::Box::new(v)))
15750 } else {
15751 Err(::treesitter_types::ParseError::unexpected_kind(
15752 _other, node,
15753 ))
15754 }
15755 }
15756 }
15757 }
15758}
15759impl ::treesitter_types::Spanned for TemplateTypeChildren<'_> {
15760 fn span(&self) -> ::treesitter_types::Span {
15761 match self {
15762 Self::InferType(inner) => inner.span(),
15763 Self::PrimaryType(inner) => inner.span(),
15764 }
15765 }
15766}
15767#[derive(Debug, Clone, PartialEq, Eq)]
15768pub enum ThrowStatementChildren<'tree> {
15769 Expression(::std::boxed::Box<Expression<'tree>>),
15770 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
15771}
15772impl<'tree> ::treesitter_types::FromNode<'tree> for ThrowStatementChildren<'tree> {
15773 #[allow(clippy::collapsible_else_if)]
15774 fn from_node(
15775 node: ::treesitter_types::tree_sitter::Node<'tree>,
15776 src: &'tree [u8],
15777 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15778 match node.kind() {
15779 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
15780 ::treesitter_types::runtime::maybe_grow_stack(|| {
15781 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)
15782 })?,
15783 ))),
15784 _other => {
15785 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
15786 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
15787 }) {
15788 Ok(Self::Expression(::std::boxed::Box::new(v)))
15789 } else {
15790 Err(::treesitter_types::ParseError::unexpected_kind(
15791 _other, node,
15792 ))
15793 }
15794 }
15795 }
15796 }
15797}
15798impl ::treesitter_types::Spanned for ThrowStatementChildren<'_> {
15799 fn span(&self) -> ::treesitter_types::Span {
15800 match self {
15801 Self::Expression(inner) => inner.span(),
15802 Self::SequenceExpression(inner) => inner.span(),
15803 }
15804 }
15805}
15806#[derive(Debug, Clone, PartialEq, Eq)]
15807pub enum TupleTypeChildren<'tree> {
15808 OptionalParameter(::std::boxed::Box<OptionalParameter<'tree>>),
15809 OptionalType(::std::boxed::Box<OptionalType<'tree>>),
15810 RequiredParameter(::std::boxed::Box<RequiredParameter<'tree>>),
15811 RestType(::std::boxed::Box<RestType<'tree>>),
15812 Type(::std::boxed::Box<Type<'tree>>),
15813}
15814impl<'tree> ::treesitter_types::FromNode<'tree> for TupleTypeChildren<'tree> {
15815 #[allow(clippy::collapsible_else_if)]
15816 fn from_node(
15817 node: ::treesitter_types::tree_sitter::Node<'tree>,
15818 src: &'tree [u8],
15819 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15820 match node.kind() {
15821 "optional_parameter" => Ok(Self::OptionalParameter(::std::boxed::Box::new(
15822 ::treesitter_types::runtime::maybe_grow_stack(|| {
15823 <OptionalParameter as ::treesitter_types::FromNode>::from_node(node, src)
15824 })?,
15825 ))),
15826 "optional_type" => Ok(Self::OptionalType(::std::boxed::Box::new(
15827 ::treesitter_types::runtime::maybe_grow_stack(|| {
15828 <OptionalType as ::treesitter_types::FromNode>::from_node(node, src)
15829 })?,
15830 ))),
15831 "required_parameter" => Ok(Self::RequiredParameter(::std::boxed::Box::new(
15832 ::treesitter_types::runtime::maybe_grow_stack(|| {
15833 <RequiredParameter as ::treesitter_types::FromNode>::from_node(node, src)
15834 })?,
15835 ))),
15836 "rest_type" => Ok(Self::RestType(::std::boxed::Box::new(
15837 ::treesitter_types::runtime::maybe_grow_stack(|| {
15838 <RestType as ::treesitter_types::FromNode>::from_node(node, src)
15839 })?,
15840 ))),
15841 _other => {
15842 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
15843 <Type as ::treesitter_types::FromNode>::from_node(node, src)
15844 }) {
15845 Ok(Self::Type(::std::boxed::Box::new(v)))
15846 } else {
15847 Err(::treesitter_types::ParseError::unexpected_kind(
15848 _other, node,
15849 ))
15850 }
15851 }
15852 }
15853 }
15854}
15855impl ::treesitter_types::Spanned for TupleTypeChildren<'_> {
15856 fn span(&self) -> ::treesitter_types::Span {
15857 match self {
15858 Self::OptionalParameter(inner) => inner.span(),
15859 Self::OptionalType(inner) => inner.span(),
15860 Self::RequiredParameter(inner) => inner.span(),
15861 Self::RestType(inner) => inner.span(),
15862 Self::Type(inner) => inner.span(),
15863 }
15864 }
15865}
15866#[derive(Debug, Clone, PartialEq, Eq)]
15867pub enum TypeAssertionChildren<'tree> {
15868 Expression(::std::boxed::Box<Expression<'tree>>),
15869 TypeArguments(::std::boxed::Box<TypeArguments<'tree>>),
15870}
15871impl<'tree> ::treesitter_types::FromNode<'tree> for TypeAssertionChildren<'tree> {
15872 #[allow(clippy::collapsible_else_if)]
15873 fn from_node(
15874 node: ::treesitter_types::tree_sitter::Node<'tree>,
15875 src: &'tree [u8],
15876 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15877 match node.kind() {
15878 "type_arguments" => Ok(Self::TypeArguments(::std::boxed::Box::new(
15879 ::treesitter_types::runtime::maybe_grow_stack(|| {
15880 <TypeArguments as ::treesitter_types::FromNode>::from_node(node, src)
15881 })?,
15882 ))),
15883 _other => {
15884 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
15885 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
15886 }) {
15887 Ok(Self::Expression(::std::boxed::Box::new(v)))
15888 } else {
15889 Err(::treesitter_types::ParseError::unexpected_kind(
15890 _other, node,
15891 ))
15892 }
15893 }
15894 }
15895 }
15896}
15897impl ::treesitter_types::Spanned for TypeAssertionChildren<'_> {
15898 fn span(&self) -> ::treesitter_types::Span {
15899 match self {
15900 Self::Expression(inner) => inner.span(),
15901 Self::TypeArguments(inner) => inner.span(),
15902 }
15903 }
15904}
15905#[derive(Debug, Clone, PartialEq, Eq)]
15906pub enum TypePredicateName<'tree> {
15907 Identifier(::std::boxed::Box<Identifier<'tree>>),
15908 This(::std::boxed::Box<This<'tree>>),
15909}
15910impl<'tree> ::treesitter_types::FromNode<'tree> for TypePredicateName<'tree> {
15911 #[allow(clippy::collapsible_else_if)]
15912 fn from_node(
15913 node: ::treesitter_types::tree_sitter::Node<'tree>,
15914 src: &'tree [u8],
15915 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15916 match node.kind() {
15917 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
15918 ::treesitter_types::runtime::maybe_grow_stack(|| {
15919 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
15920 })?,
15921 ))),
15922 "this" => Ok(Self::This(::std::boxed::Box::new(
15923 ::treesitter_types::runtime::maybe_grow_stack(|| {
15924 <This as ::treesitter_types::FromNode>::from_node(node, src)
15925 })?,
15926 ))),
15927 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
15928 }
15929 }
15930}
15931impl ::treesitter_types::Spanned for TypePredicateName<'_> {
15932 fn span(&self) -> ::treesitter_types::Span {
15933 match self {
15934 Self::Identifier(inner) => inner.span(),
15935 Self::This(inner) => inner.span(),
15936 }
15937 }
15938}
15939#[derive(Debug, Clone, PartialEq, Eq)]
15940pub enum TypeQueryChildren<'tree> {
15941 CallExpression(::std::boxed::Box<CallExpression<'tree>>),
15942 Identifier(::std::boxed::Box<Identifier<'tree>>),
15943 InstantiationExpression(::std::boxed::Box<InstantiationExpression<'tree>>),
15944 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
15945 SubscriptExpression(::std::boxed::Box<SubscriptExpression<'tree>>),
15946 This(::std::boxed::Box<This<'tree>>),
15947}
15948impl<'tree> ::treesitter_types::FromNode<'tree> for TypeQueryChildren<'tree> {
15949 #[allow(clippy::collapsible_else_if)]
15950 fn from_node(
15951 node: ::treesitter_types::tree_sitter::Node<'tree>,
15952 src: &'tree [u8],
15953 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15954 match node.kind() {
15955 "call_expression" => Ok(Self::CallExpression(::std::boxed::Box::new(
15956 ::treesitter_types::runtime::maybe_grow_stack(|| {
15957 <CallExpression as ::treesitter_types::FromNode>::from_node(node, src)
15958 })?,
15959 ))),
15960 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
15961 ::treesitter_types::runtime::maybe_grow_stack(|| {
15962 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
15963 })?,
15964 ))),
15965 "instantiation_expression" => Ok(Self::InstantiationExpression(
15966 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
15967 <InstantiationExpression as ::treesitter_types::FromNode>::from_node(node, src)
15968 })?),
15969 )),
15970 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
15971 ::treesitter_types::runtime::maybe_grow_stack(|| {
15972 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)
15973 })?,
15974 ))),
15975 "subscript_expression" => Ok(Self::SubscriptExpression(::std::boxed::Box::new(
15976 ::treesitter_types::runtime::maybe_grow_stack(|| {
15977 <SubscriptExpression as ::treesitter_types::FromNode>::from_node(node, src)
15978 })?,
15979 ))),
15980 "this" => Ok(Self::This(::std::boxed::Box::new(
15981 ::treesitter_types::runtime::maybe_grow_stack(|| {
15982 <This as ::treesitter_types::FromNode>::from_node(node, src)
15983 })?,
15984 ))),
15985 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
15986 }
15987 }
15988}
15989impl ::treesitter_types::Spanned for TypeQueryChildren<'_> {
15990 fn span(&self) -> ::treesitter_types::Span {
15991 match self {
15992 Self::CallExpression(inner) => inner.span(),
15993 Self::Identifier(inner) => inner.span(),
15994 Self::InstantiationExpression(inner) => inner.span(),
15995 Self::MemberExpression(inner) => inner.span(),
15996 Self::SubscriptExpression(inner) => inner.span(),
15997 Self::This(inner) => inner.span(),
15998 }
15999 }
16000}
16001#[derive(Debug, Clone, PartialEq, Eq)]
16002pub enum UnaryExpressionArgument<'tree> {
16003 Expression(::std::boxed::Box<Expression<'tree>>),
16004 Number(::std::boxed::Box<Number<'tree>>),
16005}
16006impl<'tree> ::treesitter_types::FromNode<'tree> for UnaryExpressionArgument<'tree> {
16007 #[allow(clippy::collapsible_else_if)]
16008 fn from_node(
16009 node: ::treesitter_types::tree_sitter::Node<'tree>,
16010 src: &'tree [u8],
16011 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
16012 match node.kind() {
16013 "number" => Ok(Self::Number(::std::boxed::Box::new(
16014 ::treesitter_types::runtime::maybe_grow_stack(|| {
16015 <Number as ::treesitter_types::FromNode>::from_node(node, src)
16016 })?,
16017 ))),
16018 _other => {
16019 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
16020 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
16021 }) {
16022 Ok(Self::Expression(::std::boxed::Box::new(v)))
16023 } else {
16024 Err(::treesitter_types::ParseError::unexpected_kind(
16025 _other, node,
16026 ))
16027 }
16028 }
16029 }
16030 }
16031}
16032impl ::treesitter_types::Spanned for UnaryExpressionArgument<'_> {
16033 fn span(&self) -> ::treesitter_types::Span {
16034 match self {
16035 Self::Expression(inner) => inner.span(),
16036 Self::Number(inner) => inner.span(),
16037 }
16038 }
16039}
16040#[derive(Debug, Clone, PartialEq, Eq)]
16041pub enum UnaryExpressionOperator {
16042 Bang(::treesitter_types::Span),
16043 Plus(::treesitter_types::Span),
16044 Minus(::treesitter_types::Span),
16045 Delete(::treesitter_types::Span),
16046 Typeof(::treesitter_types::Span),
16047 Void(::treesitter_types::Span),
16048 Tilde(::treesitter_types::Span),
16049}
16050impl<'tree> ::treesitter_types::FromNode<'tree> for UnaryExpressionOperator {
16051 #[allow(clippy::collapsible_else_if)]
16052 fn from_node(
16053 node: ::treesitter_types::tree_sitter::Node<'tree>,
16054 _src: &'tree [u8],
16055 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
16056 match node.kind() {
16057 "!" => Ok(Self::Bang(::treesitter_types::Span::from(node))),
16058 "+" => Ok(Self::Plus(::treesitter_types::Span::from(node))),
16059 "-" => Ok(Self::Minus(::treesitter_types::Span::from(node))),
16060 "delete" => Ok(Self::Delete(::treesitter_types::Span::from(node))),
16061 "typeof" => Ok(Self::Typeof(::treesitter_types::Span::from(node))),
16062 "void" => Ok(Self::Void(::treesitter_types::Span::from(node))),
16063 "~" => Ok(Self::Tilde(::treesitter_types::Span::from(node))),
16064 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
16065 }
16066 }
16067}
16068impl ::treesitter_types::Spanned for UnaryExpressionOperator {
16069 fn span(&self) -> ::treesitter_types::Span {
16070 match self {
16071 Self::Bang(span) => *span,
16072 Self::Plus(span) => *span,
16073 Self::Minus(span) => *span,
16074 Self::Delete(span) => *span,
16075 Self::Typeof(span) => *span,
16076 Self::Void(span) => *span,
16077 Self::Tilde(span) => *span,
16078 }
16079 }
16080}
16081#[derive(Debug, Clone, PartialEq, Eq)]
16082pub enum UpdateExpressionOperator {
16083 PlusPlus(::treesitter_types::Span),
16084 MinusMinus(::treesitter_types::Span),
16085}
16086impl<'tree> ::treesitter_types::FromNode<'tree> for UpdateExpressionOperator {
16087 #[allow(clippy::collapsible_else_if)]
16088 fn from_node(
16089 node: ::treesitter_types::tree_sitter::Node<'tree>,
16090 _src: &'tree [u8],
16091 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
16092 match node.kind() {
16093 "++" => Ok(Self::PlusPlus(::treesitter_types::Span::from(node))),
16094 "--" => Ok(Self::MinusMinus(::treesitter_types::Span::from(node))),
16095 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
16096 }
16097 }
16098}
16099impl ::treesitter_types::Spanned for UpdateExpressionOperator {
16100 fn span(&self) -> ::treesitter_types::Span {
16101 match self {
16102 Self::PlusPlus(span) => *span,
16103 Self::MinusMinus(span) => *span,
16104 }
16105 }
16106}
16107#[derive(Debug, Clone, PartialEq, Eq)]
16108pub enum VariableDeclaratorName<'tree> {
16109 ArrayPattern(::std::boxed::Box<ArrayPattern<'tree>>),
16110 Identifier(::std::boxed::Box<Identifier<'tree>>),
16111 ObjectPattern(::std::boxed::Box<ObjectPattern<'tree>>),
16112}
16113impl<'tree> ::treesitter_types::FromNode<'tree> for VariableDeclaratorName<'tree> {
16114 #[allow(clippy::collapsible_else_if)]
16115 fn from_node(
16116 node: ::treesitter_types::tree_sitter::Node<'tree>,
16117 src: &'tree [u8],
16118 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
16119 match node.kind() {
16120 "array_pattern" => Ok(Self::ArrayPattern(::std::boxed::Box::new(
16121 ::treesitter_types::runtime::maybe_grow_stack(|| {
16122 <ArrayPattern as ::treesitter_types::FromNode>::from_node(node, src)
16123 })?,
16124 ))),
16125 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
16126 ::treesitter_types::runtime::maybe_grow_stack(|| {
16127 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
16128 })?,
16129 ))),
16130 "object_pattern" => Ok(Self::ObjectPattern(::std::boxed::Box::new(
16131 ::treesitter_types::runtime::maybe_grow_stack(|| {
16132 <ObjectPattern as ::treesitter_types::FromNode>::from_node(node, src)
16133 })?,
16134 ))),
16135 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
16136 }
16137 }
16138}
16139impl ::treesitter_types::Spanned for VariableDeclaratorName<'_> {
16140 fn span(&self) -> ::treesitter_types::Span {
16141 match self {
16142 Self::ArrayPattern(inner) => inner.span(),
16143 Self::Identifier(inner) => inner.span(),
16144 Self::ObjectPattern(inner) => inner.span(),
16145 }
16146 }
16147}
16148#[derive(Debug, Clone, PartialEq, Eq)]
16149pub enum AnyNode<'tree> {
16150 Declaration(Declaration<'tree>),
16151 Expression(Expression<'tree>),
16152 Pattern(Pattern<'tree>),
16153 PrimaryExpression(PrimaryExpression<'tree>),
16154 PrimaryType(PrimaryType<'tree>),
16155 Statement(Statement<'tree>),
16156 Type(Type<'tree>),
16157 AbstractClassDeclaration(AbstractClassDeclaration<'tree>),
16158 AbstractMethodSignature(AbstractMethodSignature<'tree>),
16159 AccessibilityModifier(AccessibilityModifier<'tree>),
16160 AddingTypeAnnotation(AddingTypeAnnotation<'tree>),
16161 AmbientDeclaration(AmbientDeclaration<'tree>),
16162 Arguments(Arguments<'tree>),
16163 Array(Array<'tree>),
16164 ArrayPattern(ArrayPattern<'tree>),
16165 ArrayType(ArrayType<'tree>),
16166 ArrowFunction(ArrowFunction<'tree>),
16167 AsExpression(AsExpression<'tree>),
16168 Asserts(Asserts<'tree>),
16169 AssertsAnnotation(AssertsAnnotation<'tree>),
16170 AssignmentExpression(AssignmentExpression<'tree>),
16171 AssignmentPattern(AssignmentPattern<'tree>),
16172 AugmentedAssignmentExpression(AugmentedAssignmentExpression<'tree>),
16173 AwaitExpression(AwaitExpression<'tree>),
16174 BinaryExpression(BinaryExpression<'tree>),
16175 BreakStatement(BreakStatement<'tree>),
16176 CallExpression(CallExpression<'tree>),
16177 CallSignature(CallSignature<'tree>),
16178 CatchClause(CatchClause<'tree>),
16179 Class(Class<'tree>),
16180 ClassBody(ClassBody<'tree>),
16181 ClassDeclaration(ClassDeclaration<'tree>),
16182 ClassHeritage(ClassHeritage<'tree>),
16183 ClassStaticBlock(ClassStaticBlock<'tree>),
16184 ComputedPropertyName(ComputedPropertyName<'tree>),
16185 ConditionalType(ConditionalType<'tree>),
16186 Constraint(Constraint<'tree>),
16187 ConstructSignature(ConstructSignature<'tree>),
16188 ConstructorType(ConstructorType<'tree>),
16189 ContinueStatement(ContinueStatement<'tree>),
16190 DebuggerStatement(DebuggerStatement<'tree>),
16191 Decorator(Decorator<'tree>),
16192 DefaultType(DefaultType<'tree>),
16193 DoStatement(DoStatement<'tree>),
16194 ElseClause(ElseClause<'tree>),
16195 EmptyStatement(EmptyStatement<'tree>),
16196 EnumAssignment(EnumAssignment<'tree>),
16197 EnumBody(EnumBody<'tree>),
16198 EnumDeclaration(EnumDeclaration<'tree>),
16199 ExistentialType(ExistentialType<'tree>),
16200 ExportClause(ExportClause<'tree>),
16201 ExportSpecifier(ExportSpecifier<'tree>),
16202 ExportStatement(ExportStatement<'tree>),
16203 ExpressionStatement(ExpressionStatement<'tree>),
16204 ExtendsClause(ExtendsClause<'tree>),
16205 ExtendsTypeClause(ExtendsTypeClause<'tree>),
16206 FinallyClause(FinallyClause<'tree>),
16207 FlowMaybeType(FlowMaybeType<'tree>),
16208 ForInStatement(ForInStatement<'tree>),
16209 ForStatement(ForStatement<'tree>),
16210 FormalParameters(FormalParameters<'tree>),
16211 FunctionDeclaration(FunctionDeclaration<'tree>),
16212 FunctionExpression(FunctionExpression<'tree>),
16213 FunctionSignature(FunctionSignature<'tree>),
16214 FunctionType(FunctionType<'tree>),
16215 GeneratorFunction(GeneratorFunction<'tree>),
16216 GeneratorFunctionDeclaration(GeneratorFunctionDeclaration<'tree>),
16217 GenericType(GenericType<'tree>),
16218 Identifier(Identifier<'tree>),
16219 IfStatement(IfStatement<'tree>),
16220 ImplementsClause(ImplementsClause<'tree>),
16221 Import(Import<'tree>),
16222 ImportAlias(ImportAlias<'tree>),
16223 ImportAttribute(ImportAttribute<'tree>),
16224 ImportClause(ImportClause<'tree>),
16225 ImportRequireClause(ImportRequireClause<'tree>),
16226 ImportSpecifier(ImportSpecifier<'tree>),
16227 ImportStatement(ImportStatement<'tree>),
16228 IndexSignature(IndexSignature<'tree>),
16229 IndexTypeQuery(IndexTypeQuery<'tree>),
16230 InferType(InferType<'tree>),
16231 InstantiationExpression(InstantiationExpression<'tree>),
16232 InterfaceBody(InterfaceBody<'tree>),
16233 InterfaceDeclaration(InterfaceDeclaration<'tree>),
16234 InternalModule(InternalModule<'tree>),
16235 IntersectionType(IntersectionType<'tree>),
16236 LabeledStatement(LabeledStatement<'tree>),
16237 LexicalDeclaration(LexicalDeclaration<'tree>),
16238 LiteralType(LiteralType<'tree>),
16239 LookupType(LookupType<'tree>),
16240 MappedTypeClause(MappedTypeClause<'tree>),
16241 MemberExpression(MemberExpression<'tree>),
16242 MetaProperty(MetaProperty<'tree>),
16243 MethodDefinition(MethodDefinition<'tree>),
16244 MethodSignature(MethodSignature<'tree>),
16245 Module(Module<'tree>),
16246 NamedImports(NamedImports<'tree>),
16247 NamespaceExport(NamespaceExport<'tree>),
16248 NamespaceImport(NamespaceImport<'tree>),
16249 NestedIdentifier(NestedIdentifier<'tree>),
16250 NestedTypeIdentifier(NestedTypeIdentifier<'tree>),
16251 NewExpression(NewExpression<'tree>),
16252 NonNullExpression(NonNullExpression<'tree>),
16253 Object(Object<'tree>),
16254 ObjectAssignmentPattern(ObjectAssignmentPattern<'tree>),
16255 ObjectPattern(ObjectPattern<'tree>),
16256 ObjectType(ObjectType<'tree>),
16257 OmittingTypeAnnotation(OmittingTypeAnnotation<'tree>),
16258 OptingTypeAnnotation(OptingTypeAnnotation<'tree>),
16259 OptionalChain(OptionalChain<'tree>),
16260 OptionalParameter(OptionalParameter<'tree>),
16261 OptionalType(OptionalType<'tree>),
16262 OverrideModifier(OverrideModifier<'tree>),
16263 Pair(Pair<'tree>),
16264 PairPattern(PairPattern<'tree>),
16265 ParenthesizedExpression(ParenthesizedExpression<'tree>),
16266 ParenthesizedType(ParenthesizedType<'tree>),
16267 PredefinedType(PredefinedType<'tree>),
16268 Program(Program<'tree>),
16269 PropertySignature(PropertySignature<'tree>),
16270 PublicFieldDefinition(PublicFieldDefinition<'tree>),
16271 ReadonlyType(ReadonlyType<'tree>),
16272 Regex(Regex<'tree>),
16273 RequiredParameter(RequiredParameter<'tree>),
16274 RestPattern(RestPattern<'tree>),
16275 RestType(RestType<'tree>),
16276 ReturnStatement(ReturnStatement<'tree>),
16277 SatisfiesExpression(SatisfiesExpression<'tree>),
16278 SequenceExpression(SequenceExpression<'tree>),
16279 SpreadElement(SpreadElement<'tree>),
16280 StatementBlock(StatementBlock<'tree>),
16281 String(String<'tree>),
16282 SubscriptExpression(SubscriptExpression<'tree>),
16283 SwitchBody(SwitchBody<'tree>),
16284 SwitchCase(SwitchCase<'tree>),
16285 SwitchDefault(SwitchDefault<'tree>),
16286 SwitchStatement(SwitchStatement<'tree>),
16287 TemplateLiteralType(TemplateLiteralType<'tree>),
16288 TemplateString(TemplateString<'tree>),
16289 TemplateSubstitution(TemplateSubstitution<'tree>),
16290 TemplateType(TemplateType<'tree>),
16291 TernaryExpression(TernaryExpression<'tree>),
16292 ThrowStatement(ThrowStatement<'tree>),
16293 TryStatement(TryStatement<'tree>),
16294 TupleType(TupleType<'tree>),
16295 TypeAliasDeclaration(TypeAliasDeclaration<'tree>),
16296 TypeAnnotation(TypeAnnotation<'tree>),
16297 TypeArguments(TypeArguments<'tree>),
16298 TypeAssertion(TypeAssertion<'tree>),
16299 TypeParameter(TypeParameter<'tree>),
16300 TypeParameters(TypeParameters<'tree>),
16301 TypePredicate(TypePredicate<'tree>),
16302 TypePredicateAnnotation(TypePredicateAnnotation<'tree>),
16303 TypeQuery(TypeQuery<'tree>),
16304 UnaryExpression(UnaryExpression<'tree>),
16305 UnionType(UnionType<'tree>),
16306 UpdateExpression(UpdateExpression<'tree>),
16307 VariableDeclaration(VariableDeclaration<'tree>),
16308 VariableDeclarator(VariableDeclarator<'tree>),
16309 WhileStatement(WhileStatement<'tree>),
16310 WithStatement(WithStatement<'tree>),
16311 YieldExpression(YieldExpression<'tree>),
16312 Comment(Comment<'tree>),
16313 EscapeSequence(EscapeSequence<'tree>),
16314 False(False<'tree>),
16315 HashBangLine(HashBangLine<'tree>),
16316 HtmlComment(HtmlComment<'tree>),
16317 Null(Null<'tree>),
16318 Number(Number<'tree>),
16319 PrivatePropertyIdentifier(PrivatePropertyIdentifier<'tree>),
16320 PropertyIdentifier(PropertyIdentifier<'tree>),
16321 RegexFlags(RegexFlags<'tree>),
16322 RegexPattern(RegexPattern<'tree>),
16323 ShorthandPropertyIdentifier(ShorthandPropertyIdentifier<'tree>),
16324 ShorthandPropertyIdentifierPattern(ShorthandPropertyIdentifierPattern<'tree>),
16325 StatementIdentifier(StatementIdentifier<'tree>),
16326 StringFragment(StringFragment<'tree>),
16327 Super(Super<'tree>),
16328 This(This<'tree>),
16329 ThisType(ThisType<'tree>),
16330 True(True<'tree>),
16331 TypeIdentifier(TypeIdentifier<'tree>),
16332 Undefined(Undefined<'tree>),
16333 Unknown(::treesitter_types::tree_sitter::Node<'tree>),
16334}
16335impl<'tree> AnyNode<'tree> {
16336 pub fn from_node(node: ::treesitter_types::tree_sitter::Node<'tree>, src: &'tree [u8]) -> Self {
16337 match node.kind() {
16338 "declaration" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16339 <Declaration as ::treesitter_types::FromNode>::from_node(node, src)
16340 })
16341 .map(Self::Declaration)
16342 .unwrap_or(Self::Unknown(node)),
16343 "expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16344 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
16345 })
16346 .map(Self::Expression)
16347 .unwrap_or(Self::Unknown(node)),
16348 "pattern" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16349 <Pattern as ::treesitter_types::FromNode>::from_node(node, src)
16350 })
16351 .map(Self::Pattern)
16352 .unwrap_or(Self::Unknown(node)),
16353 "primary_expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16354 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(node, src)
16355 })
16356 .map(Self::PrimaryExpression)
16357 .unwrap_or(Self::Unknown(node)),
16358 "primary_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16359 <PrimaryType as ::treesitter_types::FromNode>::from_node(node, src)
16360 })
16361 .map(Self::PrimaryType)
16362 .unwrap_or(Self::Unknown(node)),
16363 "statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16364 <Statement as ::treesitter_types::FromNode>::from_node(node, src)
16365 })
16366 .map(Self::Statement)
16367 .unwrap_or(Self::Unknown(node)),
16368 "type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16369 <Type as ::treesitter_types::FromNode>::from_node(node, src)
16370 })
16371 .map(Self::Type)
16372 .unwrap_or(Self::Unknown(node)),
16373 "abstract_class_declaration" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16374 <AbstractClassDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
16375 })
16376 .map(Self::AbstractClassDeclaration)
16377 .unwrap_or(Self::Unknown(node)),
16378 "abstract_method_signature" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16379 <AbstractMethodSignature as ::treesitter_types::FromNode>::from_node(node, src)
16380 })
16381 .map(Self::AbstractMethodSignature)
16382 .unwrap_or(Self::Unknown(node)),
16383 "accessibility_modifier" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16384 <AccessibilityModifier as ::treesitter_types::FromNode>::from_node(node, src)
16385 })
16386 .map(Self::AccessibilityModifier)
16387 .unwrap_or(Self::Unknown(node)),
16388 "adding_type_annotation" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16389 <AddingTypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
16390 })
16391 .map(Self::AddingTypeAnnotation)
16392 .unwrap_or(Self::Unknown(node)),
16393 "ambient_declaration" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16394 <AmbientDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
16395 })
16396 .map(Self::AmbientDeclaration)
16397 .unwrap_or(Self::Unknown(node)),
16398 "arguments" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16399 <Arguments as ::treesitter_types::FromNode>::from_node(node, src)
16400 })
16401 .map(Self::Arguments)
16402 .unwrap_or(Self::Unknown(node)),
16403 "array" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16404 <Array as ::treesitter_types::FromNode>::from_node(node, src)
16405 })
16406 .map(Self::Array)
16407 .unwrap_or(Self::Unknown(node)),
16408 "array_pattern" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16409 <ArrayPattern as ::treesitter_types::FromNode>::from_node(node, src)
16410 })
16411 .map(Self::ArrayPattern)
16412 .unwrap_or(Self::Unknown(node)),
16413 "array_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16414 <ArrayType as ::treesitter_types::FromNode>::from_node(node, src)
16415 })
16416 .map(Self::ArrayType)
16417 .unwrap_or(Self::Unknown(node)),
16418 "arrow_function" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16419 <ArrowFunction as ::treesitter_types::FromNode>::from_node(node, src)
16420 })
16421 .map(Self::ArrowFunction)
16422 .unwrap_or(Self::Unknown(node)),
16423 "as_expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16424 <AsExpression as ::treesitter_types::FromNode>::from_node(node, src)
16425 })
16426 .map(Self::AsExpression)
16427 .unwrap_or(Self::Unknown(node)),
16428 "asserts" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16429 <Asserts as ::treesitter_types::FromNode>::from_node(node, src)
16430 })
16431 .map(Self::Asserts)
16432 .unwrap_or(Self::Unknown(node)),
16433 "asserts_annotation" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16434 <AssertsAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
16435 })
16436 .map(Self::AssertsAnnotation)
16437 .unwrap_or(Self::Unknown(node)),
16438 "assignment_expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16439 <AssignmentExpression as ::treesitter_types::FromNode>::from_node(node, src)
16440 })
16441 .map(Self::AssignmentExpression)
16442 .unwrap_or(Self::Unknown(node)),
16443 "assignment_pattern" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16444 <AssignmentPattern as ::treesitter_types::FromNode>::from_node(node, src)
16445 })
16446 .map(Self::AssignmentPattern)
16447 .unwrap_or(Self::Unknown(node)),
16448 "augmented_assignment_expression" => {
16449 ::treesitter_types::runtime::maybe_grow_stack(|| {
16450 <AugmentedAssignmentExpression as ::treesitter_types::FromNode>::from_node(
16451 node, src,
16452 )
16453 })
16454 .map(Self::AugmentedAssignmentExpression)
16455 .unwrap_or(Self::Unknown(node))
16456 }
16457 "await_expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16458 <AwaitExpression as ::treesitter_types::FromNode>::from_node(node, src)
16459 })
16460 .map(Self::AwaitExpression)
16461 .unwrap_or(Self::Unknown(node)),
16462 "binary_expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16463 <BinaryExpression as ::treesitter_types::FromNode>::from_node(node, src)
16464 })
16465 .map(Self::BinaryExpression)
16466 .unwrap_or(Self::Unknown(node)),
16467 "break_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16468 <BreakStatement as ::treesitter_types::FromNode>::from_node(node, src)
16469 })
16470 .map(Self::BreakStatement)
16471 .unwrap_or(Self::Unknown(node)),
16472 "call_expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16473 <CallExpression as ::treesitter_types::FromNode>::from_node(node, src)
16474 })
16475 .map(Self::CallExpression)
16476 .unwrap_or(Self::Unknown(node)),
16477 "call_signature" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16478 <CallSignature as ::treesitter_types::FromNode>::from_node(node, src)
16479 })
16480 .map(Self::CallSignature)
16481 .unwrap_or(Self::Unknown(node)),
16482 "catch_clause" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16483 <CatchClause as ::treesitter_types::FromNode>::from_node(node, src)
16484 })
16485 .map(Self::CatchClause)
16486 .unwrap_or(Self::Unknown(node)),
16487 "class" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16488 <Class as ::treesitter_types::FromNode>::from_node(node, src)
16489 })
16490 .map(Self::Class)
16491 .unwrap_or(Self::Unknown(node)),
16492 "class_body" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16493 <ClassBody as ::treesitter_types::FromNode>::from_node(node, src)
16494 })
16495 .map(Self::ClassBody)
16496 .unwrap_or(Self::Unknown(node)),
16497 "class_declaration" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16498 <ClassDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
16499 })
16500 .map(Self::ClassDeclaration)
16501 .unwrap_or(Self::Unknown(node)),
16502 "class_heritage" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16503 <ClassHeritage as ::treesitter_types::FromNode>::from_node(node, src)
16504 })
16505 .map(Self::ClassHeritage)
16506 .unwrap_or(Self::Unknown(node)),
16507 "class_static_block" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16508 <ClassStaticBlock as ::treesitter_types::FromNode>::from_node(node, src)
16509 })
16510 .map(Self::ClassStaticBlock)
16511 .unwrap_or(Self::Unknown(node)),
16512 "computed_property_name" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16513 <ComputedPropertyName as ::treesitter_types::FromNode>::from_node(node, src)
16514 })
16515 .map(Self::ComputedPropertyName)
16516 .unwrap_or(Self::Unknown(node)),
16517 "conditional_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16518 <ConditionalType as ::treesitter_types::FromNode>::from_node(node, src)
16519 })
16520 .map(Self::ConditionalType)
16521 .unwrap_or(Self::Unknown(node)),
16522 "constraint" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16523 <Constraint as ::treesitter_types::FromNode>::from_node(node, src)
16524 })
16525 .map(Self::Constraint)
16526 .unwrap_or(Self::Unknown(node)),
16527 "construct_signature" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16528 <ConstructSignature as ::treesitter_types::FromNode>::from_node(node, src)
16529 })
16530 .map(Self::ConstructSignature)
16531 .unwrap_or(Self::Unknown(node)),
16532 "constructor_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16533 <ConstructorType as ::treesitter_types::FromNode>::from_node(node, src)
16534 })
16535 .map(Self::ConstructorType)
16536 .unwrap_or(Self::Unknown(node)),
16537 "continue_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16538 <ContinueStatement as ::treesitter_types::FromNode>::from_node(node, src)
16539 })
16540 .map(Self::ContinueStatement)
16541 .unwrap_or(Self::Unknown(node)),
16542 "debugger_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16543 <DebuggerStatement as ::treesitter_types::FromNode>::from_node(node, src)
16544 })
16545 .map(Self::DebuggerStatement)
16546 .unwrap_or(Self::Unknown(node)),
16547 "decorator" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16548 <Decorator as ::treesitter_types::FromNode>::from_node(node, src)
16549 })
16550 .map(Self::Decorator)
16551 .unwrap_or(Self::Unknown(node)),
16552 "default_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16553 <DefaultType as ::treesitter_types::FromNode>::from_node(node, src)
16554 })
16555 .map(Self::DefaultType)
16556 .unwrap_or(Self::Unknown(node)),
16557 "do_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16558 <DoStatement as ::treesitter_types::FromNode>::from_node(node, src)
16559 })
16560 .map(Self::DoStatement)
16561 .unwrap_or(Self::Unknown(node)),
16562 "else_clause" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16563 <ElseClause as ::treesitter_types::FromNode>::from_node(node, src)
16564 })
16565 .map(Self::ElseClause)
16566 .unwrap_or(Self::Unknown(node)),
16567 "empty_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16568 <EmptyStatement as ::treesitter_types::FromNode>::from_node(node, src)
16569 })
16570 .map(Self::EmptyStatement)
16571 .unwrap_or(Self::Unknown(node)),
16572 "enum_assignment" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16573 <EnumAssignment as ::treesitter_types::FromNode>::from_node(node, src)
16574 })
16575 .map(Self::EnumAssignment)
16576 .unwrap_or(Self::Unknown(node)),
16577 "enum_body" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16578 <EnumBody as ::treesitter_types::FromNode>::from_node(node, src)
16579 })
16580 .map(Self::EnumBody)
16581 .unwrap_or(Self::Unknown(node)),
16582 "enum_declaration" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16583 <EnumDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
16584 })
16585 .map(Self::EnumDeclaration)
16586 .unwrap_or(Self::Unknown(node)),
16587 "existential_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16588 <ExistentialType as ::treesitter_types::FromNode>::from_node(node, src)
16589 })
16590 .map(Self::ExistentialType)
16591 .unwrap_or(Self::Unknown(node)),
16592 "export_clause" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16593 <ExportClause as ::treesitter_types::FromNode>::from_node(node, src)
16594 })
16595 .map(Self::ExportClause)
16596 .unwrap_or(Self::Unknown(node)),
16597 "export_specifier" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16598 <ExportSpecifier as ::treesitter_types::FromNode>::from_node(node, src)
16599 })
16600 .map(Self::ExportSpecifier)
16601 .unwrap_or(Self::Unknown(node)),
16602 "export_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16603 <ExportStatement as ::treesitter_types::FromNode>::from_node(node, src)
16604 })
16605 .map(Self::ExportStatement)
16606 .unwrap_or(Self::Unknown(node)),
16607 "expression_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16608 <ExpressionStatement as ::treesitter_types::FromNode>::from_node(node, src)
16609 })
16610 .map(Self::ExpressionStatement)
16611 .unwrap_or(Self::Unknown(node)),
16612 "extends_clause" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16613 <ExtendsClause as ::treesitter_types::FromNode>::from_node(node, src)
16614 })
16615 .map(Self::ExtendsClause)
16616 .unwrap_or(Self::Unknown(node)),
16617 "extends_type_clause" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16618 <ExtendsTypeClause as ::treesitter_types::FromNode>::from_node(node, src)
16619 })
16620 .map(Self::ExtendsTypeClause)
16621 .unwrap_or(Self::Unknown(node)),
16622 "finally_clause" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16623 <FinallyClause as ::treesitter_types::FromNode>::from_node(node, src)
16624 })
16625 .map(Self::FinallyClause)
16626 .unwrap_or(Self::Unknown(node)),
16627 "flow_maybe_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16628 <FlowMaybeType as ::treesitter_types::FromNode>::from_node(node, src)
16629 })
16630 .map(Self::FlowMaybeType)
16631 .unwrap_or(Self::Unknown(node)),
16632 "for_in_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16633 <ForInStatement as ::treesitter_types::FromNode>::from_node(node, src)
16634 })
16635 .map(Self::ForInStatement)
16636 .unwrap_or(Self::Unknown(node)),
16637 "for_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16638 <ForStatement as ::treesitter_types::FromNode>::from_node(node, src)
16639 })
16640 .map(Self::ForStatement)
16641 .unwrap_or(Self::Unknown(node)),
16642 "formal_parameters" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16643 <FormalParameters as ::treesitter_types::FromNode>::from_node(node, src)
16644 })
16645 .map(Self::FormalParameters)
16646 .unwrap_or(Self::Unknown(node)),
16647 "function_declaration" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16648 <FunctionDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
16649 })
16650 .map(Self::FunctionDeclaration)
16651 .unwrap_or(Self::Unknown(node)),
16652 "function_expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16653 <FunctionExpression as ::treesitter_types::FromNode>::from_node(node, src)
16654 })
16655 .map(Self::FunctionExpression)
16656 .unwrap_or(Self::Unknown(node)),
16657 "function_signature" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16658 <FunctionSignature as ::treesitter_types::FromNode>::from_node(node, src)
16659 })
16660 .map(Self::FunctionSignature)
16661 .unwrap_or(Self::Unknown(node)),
16662 "function_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16663 <FunctionType as ::treesitter_types::FromNode>::from_node(node, src)
16664 })
16665 .map(Self::FunctionType)
16666 .unwrap_or(Self::Unknown(node)),
16667 "generator_function" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16668 <GeneratorFunction as ::treesitter_types::FromNode>::from_node(node, src)
16669 })
16670 .map(Self::GeneratorFunction)
16671 .unwrap_or(Self::Unknown(node)),
16672 "generator_function_declaration" => {
16673 ::treesitter_types::runtime::maybe_grow_stack(|| {
16674 <GeneratorFunctionDeclaration as ::treesitter_types::FromNode>::from_node(
16675 node, src,
16676 )
16677 })
16678 .map(Self::GeneratorFunctionDeclaration)
16679 .unwrap_or(Self::Unknown(node))
16680 }
16681 "generic_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16682 <GenericType as ::treesitter_types::FromNode>::from_node(node, src)
16683 })
16684 .map(Self::GenericType)
16685 .unwrap_or(Self::Unknown(node)),
16686 "identifier" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16687 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
16688 })
16689 .map(Self::Identifier)
16690 .unwrap_or(Self::Unknown(node)),
16691 "if_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16692 <IfStatement as ::treesitter_types::FromNode>::from_node(node, src)
16693 })
16694 .map(Self::IfStatement)
16695 .unwrap_or(Self::Unknown(node)),
16696 "implements_clause" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16697 <ImplementsClause as ::treesitter_types::FromNode>::from_node(node, src)
16698 })
16699 .map(Self::ImplementsClause)
16700 .unwrap_or(Self::Unknown(node)),
16701 "import" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16702 <Import as ::treesitter_types::FromNode>::from_node(node, src)
16703 })
16704 .map(Self::Import)
16705 .unwrap_or(Self::Unknown(node)),
16706 "import_alias" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16707 <ImportAlias as ::treesitter_types::FromNode>::from_node(node, src)
16708 })
16709 .map(Self::ImportAlias)
16710 .unwrap_or(Self::Unknown(node)),
16711 "import_attribute" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16712 <ImportAttribute as ::treesitter_types::FromNode>::from_node(node, src)
16713 })
16714 .map(Self::ImportAttribute)
16715 .unwrap_or(Self::Unknown(node)),
16716 "import_clause" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16717 <ImportClause as ::treesitter_types::FromNode>::from_node(node, src)
16718 })
16719 .map(Self::ImportClause)
16720 .unwrap_or(Self::Unknown(node)),
16721 "import_require_clause" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16722 <ImportRequireClause as ::treesitter_types::FromNode>::from_node(node, src)
16723 })
16724 .map(Self::ImportRequireClause)
16725 .unwrap_or(Self::Unknown(node)),
16726 "import_specifier" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16727 <ImportSpecifier as ::treesitter_types::FromNode>::from_node(node, src)
16728 })
16729 .map(Self::ImportSpecifier)
16730 .unwrap_or(Self::Unknown(node)),
16731 "import_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16732 <ImportStatement as ::treesitter_types::FromNode>::from_node(node, src)
16733 })
16734 .map(Self::ImportStatement)
16735 .unwrap_or(Self::Unknown(node)),
16736 "index_signature" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16737 <IndexSignature as ::treesitter_types::FromNode>::from_node(node, src)
16738 })
16739 .map(Self::IndexSignature)
16740 .unwrap_or(Self::Unknown(node)),
16741 "index_type_query" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16742 <IndexTypeQuery as ::treesitter_types::FromNode>::from_node(node, src)
16743 })
16744 .map(Self::IndexTypeQuery)
16745 .unwrap_or(Self::Unknown(node)),
16746 "infer_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16747 <InferType as ::treesitter_types::FromNode>::from_node(node, src)
16748 })
16749 .map(Self::InferType)
16750 .unwrap_or(Self::Unknown(node)),
16751 "instantiation_expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16752 <InstantiationExpression as ::treesitter_types::FromNode>::from_node(node, src)
16753 })
16754 .map(Self::InstantiationExpression)
16755 .unwrap_or(Self::Unknown(node)),
16756 "interface_body" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16757 <InterfaceBody as ::treesitter_types::FromNode>::from_node(node, src)
16758 })
16759 .map(Self::InterfaceBody)
16760 .unwrap_or(Self::Unknown(node)),
16761 "interface_declaration" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16762 <InterfaceDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
16763 })
16764 .map(Self::InterfaceDeclaration)
16765 .unwrap_or(Self::Unknown(node)),
16766 "internal_module" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16767 <InternalModule as ::treesitter_types::FromNode>::from_node(node, src)
16768 })
16769 .map(Self::InternalModule)
16770 .unwrap_or(Self::Unknown(node)),
16771 "intersection_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16772 <IntersectionType as ::treesitter_types::FromNode>::from_node(node, src)
16773 })
16774 .map(Self::IntersectionType)
16775 .unwrap_or(Self::Unknown(node)),
16776 "labeled_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16777 <LabeledStatement as ::treesitter_types::FromNode>::from_node(node, src)
16778 })
16779 .map(Self::LabeledStatement)
16780 .unwrap_or(Self::Unknown(node)),
16781 "lexical_declaration" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16782 <LexicalDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
16783 })
16784 .map(Self::LexicalDeclaration)
16785 .unwrap_or(Self::Unknown(node)),
16786 "literal_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16787 <LiteralType as ::treesitter_types::FromNode>::from_node(node, src)
16788 })
16789 .map(Self::LiteralType)
16790 .unwrap_or(Self::Unknown(node)),
16791 "lookup_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16792 <LookupType as ::treesitter_types::FromNode>::from_node(node, src)
16793 })
16794 .map(Self::LookupType)
16795 .unwrap_or(Self::Unknown(node)),
16796 "mapped_type_clause" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16797 <MappedTypeClause as ::treesitter_types::FromNode>::from_node(node, src)
16798 })
16799 .map(Self::MappedTypeClause)
16800 .unwrap_or(Self::Unknown(node)),
16801 "member_expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16802 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)
16803 })
16804 .map(Self::MemberExpression)
16805 .unwrap_or(Self::Unknown(node)),
16806 "meta_property" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16807 <MetaProperty as ::treesitter_types::FromNode>::from_node(node, src)
16808 })
16809 .map(Self::MetaProperty)
16810 .unwrap_or(Self::Unknown(node)),
16811 "method_definition" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16812 <MethodDefinition as ::treesitter_types::FromNode>::from_node(node, src)
16813 })
16814 .map(Self::MethodDefinition)
16815 .unwrap_or(Self::Unknown(node)),
16816 "method_signature" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16817 <MethodSignature as ::treesitter_types::FromNode>::from_node(node, src)
16818 })
16819 .map(Self::MethodSignature)
16820 .unwrap_or(Self::Unknown(node)),
16821 "module" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16822 <Module as ::treesitter_types::FromNode>::from_node(node, src)
16823 })
16824 .map(Self::Module)
16825 .unwrap_or(Self::Unknown(node)),
16826 "named_imports" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16827 <NamedImports as ::treesitter_types::FromNode>::from_node(node, src)
16828 })
16829 .map(Self::NamedImports)
16830 .unwrap_or(Self::Unknown(node)),
16831 "namespace_export" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16832 <NamespaceExport as ::treesitter_types::FromNode>::from_node(node, src)
16833 })
16834 .map(Self::NamespaceExport)
16835 .unwrap_or(Self::Unknown(node)),
16836 "namespace_import" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16837 <NamespaceImport as ::treesitter_types::FromNode>::from_node(node, src)
16838 })
16839 .map(Self::NamespaceImport)
16840 .unwrap_or(Self::Unknown(node)),
16841 "nested_identifier" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16842 <NestedIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
16843 })
16844 .map(Self::NestedIdentifier)
16845 .unwrap_or(Self::Unknown(node)),
16846 "nested_type_identifier" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16847 <NestedTypeIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
16848 })
16849 .map(Self::NestedTypeIdentifier)
16850 .unwrap_or(Self::Unknown(node)),
16851 "new_expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16852 <NewExpression as ::treesitter_types::FromNode>::from_node(node, src)
16853 })
16854 .map(Self::NewExpression)
16855 .unwrap_or(Self::Unknown(node)),
16856 "non_null_expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16857 <NonNullExpression as ::treesitter_types::FromNode>::from_node(node, src)
16858 })
16859 .map(Self::NonNullExpression)
16860 .unwrap_or(Self::Unknown(node)),
16861 "object" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16862 <Object as ::treesitter_types::FromNode>::from_node(node, src)
16863 })
16864 .map(Self::Object)
16865 .unwrap_or(Self::Unknown(node)),
16866 "object_assignment_pattern" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16867 <ObjectAssignmentPattern as ::treesitter_types::FromNode>::from_node(node, src)
16868 })
16869 .map(Self::ObjectAssignmentPattern)
16870 .unwrap_or(Self::Unknown(node)),
16871 "object_pattern" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16872 <ObjectPattern as ::treesitter_types::FromNode>::from_node(node, src)
16873 })
16874 .map(Self::ObjectPattern)
16875 .unwrap_or(Self::Unknown(node)),
16876 "object_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16877 <ObjectType as ::treesitter_types::FromNode>::from_node(node, src)
16878 })
16879 .map(Self::ObjectType)
16880 .unwrap_or(Self::Unknown(node)),
16881 "omitting_type_annotation" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16882 <OmittingTypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
16883 })
16884 .map(Self::OmittingTypeAnnotation)
16885 .unwrap_or(Self::Unknown(node)),
16886 "opting_type_annotation" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16887 <OptingTypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
16888 })
16889 .map(Self::OptingTypeAnnotation)
16890 .unwrap_or(Self::Unknown(node)),
16891 "optional_chain" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16892 <OptionalChain as ::treesitter_types::FromNode>::from_node(node, src)
16893 })
16894 .map(Self::OptionalChain)
16895 .unwrap_or(Self::Unknown(node)),
16896 "optional_parameter" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16897 <OptionalParameter as ::treesitter_types::FromNode>::from_node(node, src)
16898 })
16899 .map(Self::OptionalParameter)
16900 .unwrap_or(Self::Unknown(node)),
16901 "optional_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16902 <OptionalType as ::treesitter_types::FromNode>::from_node(node, src)
16903 })
16904 .map(Self::OptionalType)
16905 .unwrap_or(Self::Unknown(node)),
16906 "override_modifier" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16907 <OverrideModifier as ::treesitter_types::FromNode>::from_node(node, src)
16908 })
16909 .map(Self::OverrideModifier)
16910 .unwrap_or(Self::Unknown(node)),
16911 "pair" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16912 <Pair as ::treesitter_types::FromNode>::from_node(node, src)
16913 })
16914 .map(Self::Pair)
16915 .unwrap_or(Self::Unknown(node)),
16916 "pair_pattern" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16917 <PairPattern as ::treesitter_types::FromNode>::from_node(node, src)
16918 })
16919 .map(Self::PairPattern)
16920 .unwrap_or(Self::Unknown(node)),
16921 "parenthesized_expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16922 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(node, src)
16923 })
16924 .map(Self::ParenthesizedExpression)
16925 .unwrap_or(Self::Unknown(node)),
16926 "parenthesized_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16927 <ParenthesizedType as ::treesitter_types::FromNode>::from_node(node, src)
16928 })
16929 .map(Self::ParenthesizedType)
16930 .unwrap_or(Self::Unknown(node)),
16931 "predefined_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16932 <PredefinedType as ::treesitter_types::FromNode>::from_node(node, src)
16933 })
16934 .map(Self::PredefinedType)
16935 .unwrap_or(Self::Unknown(node)),
16936 "program" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16937 <Program as ::treesitter_types::FromNode>::from_node(node, src)
16938 })
16939 .map(Self::Program)
16940 .unwrap_or(Self::Unknown(node)),
16941 "property_signature" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16942 <PropertySignature as ::treesitter_types::FromNode>::from_node(node, src)
16943 })
16944 .map(Self::PropertySignature)
16945 .unwrap_or(Self::Unknown(node)),
16946 "public_field_definition" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16947 <PublicFieldDefinition as ::treesitter_types::FromNode>::from_node(node, src)
16948 })
16949 .map(Self::PublicFieldDefinition)
16950 .unwrap_or(Self::Unknown(node)),
16951 "readonly_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16952 <ReadonlyType as ::treesitter_types::FromNode>::from_node(node, src)
16953 })
16954 .map(Self::ReadonlyType)
16955 .unwrap_or(Self::Unknown(node)),
16956 "regex" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16957 <Regex as ::treesitter_types::FromNode>::from_node(node, src)
16958 })
16959 .map(Self::Regex)
16960 .unwrap_or(Self::Unknown(node)),
16961 "required_parameter" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16962 <RequiredParameter as ::treesitter_types::FromNode>::from_node(node, src)
16963 })
16964 .map(Self::RequiredParameter)
16965 .unwrap_or(Self::Unknown(node)),
16966 "rest_pattern" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16967 <RestPattern as ::treesitter_types::FromNode>::from_node(node, src)
16968 })
16969 .map(Self::RestPattern)
16970 .unwrap_or(Self::Unknown(node)),
16971 "rest_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16972 <RestType as ::treesitter_types::FromNode>::from_node(node, src)
16973 })
16974 .map(Self::RestType)
16975 .unwrap_or(Self::Unknown(node)),
16976 "return_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16977 <ReturnStatement as ::treesitter_types::FromNode>::from_node(node, src)
16978 })
16979 .map(Self::ReturnStatement)
16980 .unwrap_or(Self::Unknown(node)),
16981 "satisfies_expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16982 <SatisfiesExpression as ::treesitter_types::FromNode>::from_node(node, src)
16983 })
16984 .map(Self::SatisfiesExpression)
16985 .unwrap_or(Self::Unknown(node)),
16986 "sequence_expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16987 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)
16988 })
16989 .map(Self::SequenceExpression)
16990 .unwrap_or(Self::Unknown(node)),
16991 "spread_element" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16992 <SpreadElement as ::treesitter_types::FromNode>::from_node(node, src)
16993 })
16994 .map(Self::SpreadElement)
16995 .unwrap_or(Self::Unknown(node)),
16996 "statement_block" => ::treesitter_types::runtime::maybe_grow_stack(|| {
16997 <StatementBlock as ::treesitter_types::FromNode>::from_node(node, src)
16998 })
16999 .map(Self::StatementBlock)
17000 .unwrap_or(Self::Unknown(node)),
17001 "string" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17002 <String as ::treesitter_types::FromNode>::from_node(node, src)
17003 })
17004 .map(Self::String)
17005 .unwrap_or(Self::Unknown(node)),
17006 "subscript_expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17007 <SubscriptExpression as ::treesitter_types::FromNode>::from_node(node, src)
17008 })
17009 .map(Self::SubscriptExpression)
17010 .unwrap_or(Self::Unknown(node)),
17011 "switch_body" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17012 <SwitchBody as ::treesitter_types::FromNode>::from_node(node, src)
17013 })
17014 .map(Self::SwitchBody)
17015 .unwrap_or(Self::Unknown(node)),
17016 "switch_case" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17017 <SwitchCase as ::treesitter_types::FromNode>::from_node(node, src)
17018 })
17019 .map(Self::SwitchCase)
17020 .unwrap_or(Self::Unknown(node)),
17021 "switch_default" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17022 <SwitchDefault as ::treesitter_types::FromNode>::from_node(node, src)
17023 })
17024 .map(Self::SwitchDefault)
17025 .unwrap_or(Self::Unknown(node)),
17026 "switch_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17027 <SwitchStatement as ::treesitter_types::FromNode>::from_node(node, src)
17028 })
17029 .map(Self::SwitchStatement)
17030 .unwrap_or(Self::Unknown(node)),
17031 "template_literal_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17032 <TemplateLiteralType as ::treesitter_types::FromNode>::from_node(node, src)
17033 })
17034 .map(Self::TemplateLiteralType)
17035 .unwrap_or(Self::Unknown(node)),
17036 "template_string" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17037 <TemplateString as ::treesitter_types::FromNode>::from_node(node, src)
17038 })
17039 .map(Self::TemplateString)
17040 .unwrap_or(Self::Unknown(node)),
17041 "template_substitution" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17042 <TemplateSubstitution as ::treesitter_types::FromNode>::from_node(node, src)
17043 })
17044 .map(Self::TemplateSubstitution)
17045 .unwrap_or(Self::Unknown(node)),
17046 "template_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17047 <TemplateType as ::treesitter_types::FromNode>::from_node(node, src)
17048 })
17049 .map(Self::TemplateType)
17050 .unwrap_or(Self::Unknown(node)),
17051 "ternary_expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17052 <TernaryExpression as ::treesitter_types::FromNode>::from_node(node, src)
17053 })
17054 .map(Self::TernaryExpression)
17055 .unwrap_or(Self::Unknown(node)),
17056 "throw_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17057 <ThrowStatement as ::treesitter_types::FromNode>::from_node(node, src)
17058 })
17059 .map(Self::ThrowStatement)
17060 .unwrap_or(Self::Unknown(node)),
17061 "try_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17062 <TryStatement as ::treesitter_types::FromNode>::from_node(node, src)
17063 })
17064 .map(Self::TryStatement)
17065 .unwrap_or(Self::Unknown(node)),
17066 "tuple_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17067 <TupleType as ::treesitter_types::FromNode>::from_node(node, src)
17068 })
17069 .map(Self::TupleType)
17070 .unwrap_or(Self::Unknown(node)),
17071 "type_alias_declaration" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17072 <TypeAliasDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
17073 })
17074 .map(Self::TypeAliasDeclaration)
17075 .unwrap_or(Self::Unknown(node)),
17076 "type_annotation" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17077 <TypeAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
17078 })
17079 .map(Self::TypeAnnotation)
17080 .unwrap_or(Self::Unknown(node)),
17081 "type_arguments" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17082 <TypeArguments as ::treesitter_types::FromNode>::from_node(node, src)
17083 })
17084 .map(Self::TypeArguments)
17085 .unwrap_or(Self::Unknown(node)),
17086 "type_assertion" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17087 <TypeAssertion as ::treesitter_types::FromNode>::from_node(node, src)
17088 })
17089 .map(Self::TypeAssertion)
17090 .unwrap_or(Self::Unknown(node)),
17091 "type_parameter" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17092 <TypeParameter as ::treesitter_types::FromNode>::from_node(node, src)
17093 })
17094 .map(Self::TypeParameter)
17095 .unwrap_or(Self::Unknown(node)),
17096 "type_parameters" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17097 <TypeParameters as ::treesitter_types::FromNode>::from_node(node, src)
17098 })
17099 .map(Self::TypeParameters)
17100 .unwrap_or(Self::Unknown(node)),
17101 "type_predicate" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17102 <TypePredicate as ::treesitter_types::FromNode>::from_node(node, src)
17103 })
17104 .map(Self::TypePredicate)
17105 .unwrap_or(Self::Unknown(node)),
17106 "type_predicate_annotation" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17107 <TypePredicateAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
17108 })
17109 .map(Self::TypePredicateAnnotation)
17110 .unwrap_or(Self::Unknown(node)),
17111 "type_query" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17112 <TypeQuery as ::treesitter_types::FromNode>::from_node(node, src)
17113 })
17114 .map(Self::TypeQuery)
17115 .unwrap_or(Self::Unknown(node)),
17116 "unary_expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17117 <UnaryExpression as ::treesitter_types::FromNode>::from_node(node, src)
17118 })
17119 .map(Self::UnaryExpression)
17120 .unwrap_or(Self::Unknown(node)),
17121 "union_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17122 <UnionType as ::treesitter_types::FromNode>::from_node(node, src)
17123 })
17124 .map(Self::UnionType)
17125 .unwrap_or(Self::Unknown(node)),
17126 "update_expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17127 <UpdateExpression as ::treesitter_types::FromNode>::from_node(node, src)
17128 })
17129 .map(Self::UpdateExpression)
17130 .unwrap_or(Self::Unknown(node)),
17131 "variable_declaration" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17132 <VariableDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
17133 })
17134 .map(Self::VariableDeclaration)
17135 .unwrap_or(Self::Unknown(node)),
17136 "variable_declarator" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17137 <VariableDeclarator as ::treesitter_types::FromNode>::from_node(node, src)
17138 })
17139 .map(Self::VariableDeclarator)
17140 .unwrap_or(Self::Unknown(node)),
17141 "while_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17142 <WhileStatement as ::treesitter_types::FromNode>::from_node(node, src)
17143 })
17144 .map(Self::WhileStatement)
17145 .unwrap_or(Self::Unknown(node)),
17146 "with_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17147 <WithStatement as ::treesitter_types::FromNode>::from_node(node, src)
17148 })
17149 .map(Self::WithStatement)
17150 .unwrap_or(Self::Unknown(node)),
17151 "yield_expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17152 <YieldExpression as ::treesitter_types::FromNode>::from_node(node, src)
17153 })
17154 .map(Self::YieldExpression)
17155 .unwrap_or(Self::Unknown(node)),
17156 "comment" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17157 <Comment as ::treesitter_types::FromNode>::from_node(node, src)
17158 })
17159 .map(Self::Comment)
17160 .unwrap_or(Self::Unknown(node)),
17161 "escape_sequence" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17162 <EscapeSequence as ::treesitter_types::FromNode>::from_node(node, src)
17163 })
17164 .map(Self::EscapeSequence)
17165 .unwrap_or(Self::Unknown(node)),
17166 "false" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17167 <False as ::treesitter_types::FromNode>::from_node(node, src)
17168 })
17169 .map(Self::False)
17170 .unwrap_or(Self::Unknown(node)),
17171 "hash_bang_line" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17172 <HashBangLine as ::treesitter_types::FromNode>::from_node(node, src)
17173 })
17174 .map(Self::HashBangLine)
17175 .unwrap_or(Self::Unknown(node)),
17176 "html_comment" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17177 <HtmlComment as ::treesitter_types::FromNode>::from_node(node, src)
17178 })
17179 .map(Self::HtmlComment)
17180 .unwrap_or(Self::Unknown(node)),
17181 "null" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17182 <Null as ::treesitter_types::FromNode>::from_node(node, src)
17183 })
17184 .map(Self::Null)
17185 .unwrap_or(Self::Unknown(node)),
17186 "number" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17187 <Number as ::treesitter_types::FromNode>::from_node(node, src)
17188 })
17189 .map(Self::Number)
17190 .unwrap_or(Self::Unknown(node)),
17191 "private_property_identifier" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17192 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
17193 })
17194 .map(Self::PrivatePropertyIdentifier)
17195 .unwrap_or(Self::Unknown(node)),
17196 "property_identifier" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17197 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
17198 })
17199 .map(Self::PropertyIdentifier)
17200 .unwrap_or(Self::Unknown(node)),
17201 "regex_flags" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17202 <RegexFlags as ::treesitter_types::FromNode>::from_node(node, src)
17203 })
17204 .map(Self::RegexFlags)
17205 .unwrap_or(Self::Unknown(node)),
17206 "regex_pattern" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17207 <RegexPattern as ::treesitter_types::FromNode>::from_node(node, src)
17208 })
17209 .map(Self::RegexPattern)
17210 .unwrap_or(Self::Unknown(node)),
17211 "shorthand_property_identifier" => {
17212 ::treesitter_types::runtime::maybe_grow_stack(|| {
17213 <ShorthandPropertyIdentifier as ::treesitter_types::FromNode>::from_node(
17214 node, src,
17215 )
17216 })
17217 .map(Self::ShorthandPropertyIdentifier)
17218 .unwrap_or(Self::Unknown(node))
17219 }
17220 "shorthand_property_identifier_pattern" => {
17221 ::treesitter_types::runtime::maybe_grow_stack(|| {
17222 <ShorthandPropertyIdentifierPattern as ::treesitter_types::FromNode>::from_node(
17223 node, src,
17224 )
17225 })
17226 .map(Self::ShorthandPropertyIdentifierPattern)
17227 .unwrap_or(Self::Unknown(node))
17228 }
17229 "statement_identifier" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17230 <StatementIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
17231 })
17232 .map(Self::StatementIdentifier)
17233 .unwrap_or(Self::Unknown(node)),
17234 "string_fragment" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17235 <StringFragment as ::treesitter_types::FromNode>::from_node(node, src)
17236 })
17237 .map(Self::StringFragment)
17238 .unwrap_or(Self::Unknown(node)),
17239 "super" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17240 <Super as ::treesitter_types::FromNode>::from_node(node, src)
17241 })
17242 .map(Self::Super)
17243 .unwrap_or(Self::Unknown(node)),
17244 "this" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17245 <This as ::treesitter_types::FromNode>::from_node(node, src)
17246 })
17247 .map(Self::This)
17248 .unwrap_or(Self::Unknown(node)),
17249 "this_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17250 <ThisType as ::treesitter_types::FromNode>::from_node(node, src)
17251 })
17252 .map(Self::ThisType)
17253 .unwrap_or(Self::Unknown(node)),
17254 "true" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17255 <True as ::treesitter_types::FromNode>::from_node(node, src)
17256 })
17257 .map(Self::True)
17258 .unwrap_or(Self::Unknown(node)),
17259 "type_identifier" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17260 <TypeIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
17261 })
17262 .map(Self::TypeIdentifier)
17263 .unwrap_or(Self::Unknown(node)),
17264 "undefined" => ::treesitter_types::runtime::maybe_grow_stack(|| {
17265 <Undefined as ::treesitter_types::FromNode>::from_node(node, src)
17266 })
17267 .map(Self::Undefined)
17268 .unwrap_or(Self::Unknown(node)),
17269 _ => Self::Unknown(node),
17270 }
17271 }
17272}
17273impl ::treesitter_types::Spanned for AnyNode<'_> {
17274 fn span(&self) -> ::treesitter_types::Span {
17275 match self {
17276 Self::Declaration(inner) => inner.span(),
17277 Self::Expression(inner) => inner.span(),
17278 Self::Pattern(inner) => inner.span(),
17279 Self::PrimaryExpression(inner) => inner.span(),
17280 Self::PrimaryType(inner) => inner.span(),
17281 Self::Statement(inner) => inner.span(),
17282 Self::Type(inner) => inner.span(),
17283 Self::AbstractClassDeclaration(inner) => inner.span(),
17284 Self::AbstractMethodSignature(inner) => inner.span(),
17285 Self::AccessibilityModifier(inner) => inner.span(),
17286 Self::AddingTypeAnnotation(inner) => inner.span(),
17287 Self::AmbientDeclaration(inner) => inner.span(),
17288 Self::Arguments(inner) => inner.span(),
17289 Self::Array(inner) => inner.span(),
17290 Self::ArrayPattern(inner) => inner.span(),
17291 Self::ArrayType(inner) => inner.span(),
17292 Self::ArrowFunction(inner) => inner.span(),
17293 Self::AsExpression(inner) => inner.span(),
17294 Self::Asserts(inner) => inner.span(),
17295 Self::AssertsAnnotation(inner) => inner.span(),
17296 Self::AssignmentExpression(inner) => inner.span(),
17297 Self::AssignmentPattern(inner) => inner.span(),
17298 Self::AugmentedAssignmentExpression(inner) => inner.span(),
17299 Self::AwaitExpression(inner) => inner.span(),
17300 Self::BinaryExpression(inner) => inner.span(),
17301 Self::BreakStatement(inner) => inner.span(),
17302 Self::CallExpression(inner) => inner.span(),
17303 Self::CallSignature(inner) => inner.span(),
17304 Self::CatchClause(inner) => inner.span(),
17305 Self::Class(inner) => inner.span(),
17306 Self::ClassBody(inner) => inner.span(),
17307 Self::ClassDeclaration(inner) => inner.span(),
17308 Self::ClassHeritage(inner) => inner.span(),
17309 Self::ClassStaticBlock(inner) => inner.span(),
17310 Self::ComputedPropertyName(inner) => inner.span(),
17311 Self::ConditionalType(inner) => inner.span(),
17312 Self::Constraint(inner) => inner.span(),
17313 Self::ConstructSignature(inner) => inner.span(),
17314 Self::ConstructorType(inner) => inner.span(),
17315 Self::ContinueStatement(inner) => inner.span(),
17316 Self::DebuggerStatement(inner) => inner.span(),
17317 Self::Decorator(inner) => inner.span(),
17318 Self::DefaultType(inner) => inner.span(),
17319 Self::DoStatement(inner) => inner.span(),
17320 Self::ElseClause(inner) => inner.span(),
17321 Self::EmptyStatement(inner) => inner.span(),
17322 Self::EnumAssignment(inner) => inner.span(),
17323 Self::EnumBody(inner) => inner.span(),
17324 Self::EnumDeclaration(inner) => inner.span(),
17325 Self::ExistentialType(inner) => inner.span(),
17326 Self::ExportClause(inner) => inner.span(),
17327 Self::ExportSpecifier(inner) => inner.span(),
17328 Self::ExportStatement(inner) => inner.span(),
17329 Self::ExpressionStatement(inner) => inner.span(),
17330 Self::ExtendsClause(inner) => inner.span(),
17331 Self::ExtendsTypeClause(inner) => inner.span(),
17332 Self::FinallyClause(inner) => inner.span(),
17333 Self::FlowMaybeType(inner) => inner.span(),
17334 Self::ForInStatement(inner) => inner.span(),
17335 Self::ForStatement(inner) => inner.span(),
17336 Self::FormalParameters(inner) => inner.span(),
17337 Self::FunctionDeclaration(inner) => inner.span(),
17338 Self::FunctionExpression(inner) => inner.span(),
17339 Self::FunctionSignature(inner) => inner.span(),
17340 Self::FunctionType(inner) => inner.span(),
17341 Self::GeneratorFunction(inner) => inner.span(),
17342 Self::GeneratorFunctionDeclaration(inner) => inner.span(),
17343 Self::GenericType(inner) => inner.span(),
17344 Self::Identifier(inner) => inner.span(),
17345 Self::IfStatement(inner) => inner.span(),
17346 Self::ImplementsClause(inner) => inner.span(),
17347 Self::Import(inner) => inner.span(),
17348 Self::ImportAlias(inner) => inner.span(),
17349 Self::ImportAttribute(inner) => inner.span(),
17350 Self::ImportClause(inner) => inner.span(),
17351 Self::ImportRequireClause(inner) => inner.span(),
17352 Self::ImportSpecifier(inner) => inner.span(),
17353 Self::ImportStatement(inner) => inner.span(),
17354 Self::IndexSignature(inner) => inner.span(),
17355 Self::IndexTypeQuery(inner) => inner.span(),
17356 Self::InferType(inner) => inner.span(),
17357 Self::InstantiationExpression(inner) => inner.span(),
17358 Self::InterfaceBody(inner) => inner.span(),
17359 Self::InterfaceDeclaration(inner) => inner.span(),
17360 Self::InternalModule(inner) => inner.span(),
17361 Self::IntersectionType(inner) => inner.span(),
17362 Self::LabeledStatement(inner) => inner.span(),
17363 Self::LexicalDeclaration(inner) => inner.span(),
17364 Self::LiteralType(inner) => inner.span(),
17365 Self::LookupType(inner) => inner.span(),
17366 Self::MappedTypeClause(inner) => inner.span(),
17367 Self::MemberExpression(inner) => inner.span(),
17368 Self::MetaProperty(inner) => inner.span(),
17369 Self::MethodDefinition(inner) => inner.span(),
17370 Self::MethodSignature(inner) => inner.span(),
17371 Self::Module(inner) => inner.span(),
17372 Self::NamedImports(inner) => inner.span(),
17373 Self::NamespaceExport(inner) => inner.span(),
17374 Self::NamespaceImport(inner) => inner.span(),
17375 Self::NestedIdentifier(inner) => inner.span(),
17376 Self::NestedTypeIdentifier(inner) => inner.span(),
17377 Self::NewExpression(inner) => inner.span(),
17378 Self::NonNullExpression(inner) => inner.span(),
17379 Self::Object(inner) => inner.span(),
17380 Self::ObjectAssignmentPattern(inner) => inner.span(),
17381 Self::ObjectPattern(inner) => inner.span(),
17382 Self::ObjectType(inner) => inner.span(),
17383 Self::OmittingTypeAnnotation(inner) => inner.span(),
17384 Self::OptingTypeAnnotation(inner) => inner.span(),
17385 Self::OptionalChain(inner) => inner.span(),
17386 Self::OptionalParameter(inner) => inner.span(),
17387 Self::OptionalType(inner) => inner.span(),
17388 Self::OverrideModifier(inner) => inner.span(),
17389 Self::Pair(inner) => inner.span(),
17390 Self::PairPattern(inner) => inner.span(),
17391 Self::ParenthesizedExpression(inner) => inner.span(),
17392 Self::ParenthesizedType(inner) => inner.span(),
17393 Self::PredefinedType(inner) => inner.span(),
17394 Self::Program(inner) => inner.span(),
17395 Self::PropertySignature(inner) => inner.span(),
17396 Self::PublicFieldDefinition(inner) => inner.span(),
17397 Self::ReadonlyType(inner) => inner.span(),
17398 Self::Regex(inner) => inner.span(),
17399 Self::RequiredParameter(inner) => inner.span(),
17400 Self::RestPattern(inner) => inner.span(),
17401 Self::RestType(inner) => inner.span(),
17402 Self::ReturnStatement(inner) => inner.span(),
17403 Self::SatisfiesExpression(inner) => inner.span(),
17404 Self::SequenceExpression(inner) => inner.span(),
17405 Self::SpreadElement(inner) => inner.span(),
17406 Self::StatementBlock(inner) => inner.span(),
17407 Self::String(inner) => inner.span(),
17408 Self::SubscriptExpression(inner) => inner.span(),
17409 Self::SwitchBody(inner) => inner.span(),
17410 Self::SwitchCase(inner) => inner.span(),
17411 Self::SwitchDefault(inner) => inner.span(),
17412 Self::SwitchStatement(inner) => inner.span(),
17413 Self::TemplateLiteralType(inner) => inner.span(),
17414 Self::TemplateString(inner) => inner.span(),
17415 Self::TemplateSubstitution(inner) => inner.span(),
17416 Self::TemplateType(inner) => inner.span(),
17417 Self::TernaryExpression(inner) => inner.span(),
17418 Self::ThrowStatement(inner) => inner.span(),
17419 Self::TryStatement(inner) => inner.span(),
17420 Self::TupleType(inner) => inner.span(),
17421 Self::TypeAliasDeclaration(inner) => inner.span(),
17422 Self::TypeAnnotation(inner) => inner.span(),
17423 Self::TypeArguments(inner) => inner.span(),
17424 Self::TypeAssertion(inner) => inner.span(),
17425 Self::TypeParameter(inner) => inner.span(),
17426 Self::TypeParameters(inner) => inner.span(),
17427 Self::TypePredicate(inner) => inner.span(),
17428 Self::TypePredicateAnnotation(inner) => inner.span(),
17429 Self::TypeQuery(inner) => inner.span(),
17430 Self::UnaryExpression(inner) => inner.span(),
17431 Self::UnionType(inner) => inner.span(),
17432 Self::UpdateExpression(inner) => inner.span(),
17433 Self::VariableDeclaration(inner) => inner.span(),
17434 Self::VariableDeclarator(inner) => inner.span(),
17435 Self::WhileStatement(inner) => inner.span(),
17436 Self::WithStatement(inner) => inner.span(),
17437 Self::YieldExpression(inner) => inner.span(),
17438 Self::Comment(inner) => inner.span(),
17439 Self::EscapeSequence(inner) => inner.span(),
17440 Self::False(inner) => inner.span(),
17441 Self::HashBangLine(inner) => inner.span(),
17442 Self::HtmlComment(inner) => inner.span(),
17443 Self::Null(inner) => inner.span(),
17444 Self::Number(inner) => inner.span(),
17445 Self::PrivatePropertyIdentifier(inner) => inner.span(),
17446 Self::PropertyIdentifier(inner) => inner.span(),
17447 Self::RegexFlags(inner) => inner.span(),
17448 Self::RegexPattern(inner) => inner.span(),
17449 Self::ShorthandPropertyIdentifier(inner) => inner.span(),
17450 Self::ShorthandPropertyIdentifierPattern(inner) => inner.span(),
17451 Self::StatementIdentifier(inner) => inner.span(),
17452 Self::StringFragment(inner) => inner.span(),
17453 Self::Super(inner) => inner.span(),
17454 Self::This(inner) => inner.span(),
17455 Self::ThisType(inner) => inner.span(),
17456 Self::True(inner) => inner.span(),
17457 Self::TypeIdentifier(inner) => inner.span(),
17458 Self::Undefined(inner) => inner.span(),
17459 Self::Unknown(node) => ::treesitter_types::Span::from(*node),
17460 }
17461 }
17462}