1#[derive(Debug, Clone, PartialEq, Eq)]
2pub enum CompoundStatement<'tree> {
3 ClassDefinition(::std::boxed::Box<ClassDefinition<'tree>>),
4 DecoratedDefinition(::std::boxed::Box<DecoratedDefinition<'tree>>),
5 ForStatement(::std::boxed::Box<ForStatement<'tree>>),
6 FunctionDefinition(::std::boxed::Box<FunctionDefinition<'tree>>),
7 IfStatement(::std::boxed::Box<IfStatement<'tree>>),
8 MatchStatement(::std::boxed::Box<MatchStatement<'tree>>),
9 TryStatement(::std::boxed::Box<TryStatement<'tree>>),
10 WhileStatement(::std::boxed::Box<WhileStatement<'tree>>),
11 WithStatement(::std::boxed::Box<WithStatement<'tree>>),
12}
13impl<'tree> ::treesitter_types::FromNode<'tree> for CompoundStatement<'tree> {
14 #[allow(clippy::collapsible_else_if)]
15 fn from_node(
16 node: ::treesitter_types::tree_sitter::Node<'tree>,
17 src: &'tree [u8],
18 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
19 match node.kind() {
20 "class_definition" => Ok(Self::ClassDefinition(::std::boxed::Box::new(
21 ::treesitter_types::runtime::maybe_grow_stack(|| {
22 <ClassDefinition as ::treesitter_types::FromNode>::from_node(node, src)
23 })?,
24 ))),
25 "decorated_definition" => Ok(Self::DecoratedDefinition(::std::boxed::Box::new(
26 ::treesitter_types::runtime::maybe_grow_stack(|| {
27 <DecoratedDefinition as ::treesitter_types::FromNode>::from_node(node, src)
28 })?,
29 ))),
30 "for_statement" => Ok(Self::ForStatement(::std::boxed::Box::new(
31 ::treesitter_types::runtime::maybe_grow_stack(|| {
32 <ForStatement as ::treesitter_types::FromNode>::from_node(node, src)
33 })?,
34 ))),
35 "function_definition" => Ok(Self::FunctionDefinition(::std::boxed::Box::new(
36 ::treesitter_types::runtime::maybe_grow_stack(|| {
37 <FunctionDefinition as ::treesitter_types::FromNode>::from_node(node, src)
38 })?,
39 ))),
40 "if_statement" => Ok(Self::IfStatement(::std::boxed::Box::new(
41 ::treesitter_types::runtime::maybe_grow_stack(|| {
42 <IfStatement as ::treesitter_types::FromNode>::from_node(node, src)
43 })?,
44 ))),
45 "match_statement" => Ok(Self::MatchStatement(::std::boxed::Box::new(
46 ::treesitter_types::runtime::maybe_grow_stack(|| {
47 <MatchStatement as ::treesitter_types::FromNode>::from_node(node, src)
48 })?,
49 ))),
50 "try_statement" => Ok(Self::TryStatement(::std::boxed::Box::new(
51 ::treesitter_types::runtime::maybe_grow_stack(|| {
52 <TryStatement as ::treesitter_types::FromNode>::from_node(node, src)
53 })?,
54 ))),
55 "while_statement" => Ok(Self::WhileStatement(::std::boxed::Box::new(
56 ::treesitter_types::runtime::maybe_grow_stack(|| {
57 <WhileStatement as ::treesitter_types::FromNode>::from_node(node, src)
58 })?,
59 ))),
60 "with_statement" => Ok(Self::WithStatement(::std::boxed::Box::new(
61 ::treesitter_types::runtime::maybe_grow_stack(|| {
62 <WithStatement as ::treesitter_types::FromNode>::from_node(node, src)
63 })?,
64 ))),
65 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
66 }
67 }
68}
69impl ::treesitter_types::Spanned for CompoundStatement<'_> {
70 fn span(&self) -> ::treesitter_types::Span {
71 match self {
72 Self::ClassDefinition(inner) => inner.span(),
73 Self::DecoratedDefinition(inner) => inner.span(),
74 Self::ForStatement(inner) => inner.span(),
75 Self::FunctionDefinition(inner) => inner.span(),
76 Self::IfStatement(inner) => inner.span(),
77 Self::MatchStatement(inner) => inner.span(),
78 Self::TryStatement(inner) => inner.span(),
79 Self::WhileStatement(inner) => inner.span(),
80 Self::WithStatement(inner) => inner.span(),
81 }
82 }
83}
84#[derive(Debug, Clone, PartialEq, Eq)]
85pub enum SimpleStatement<'tree> {
86 AssertStatement(::std::boxed::Box<AssertStatement<'tree>>),
87 BreakStatement(::std::boxed::Box<BreakStatement<'tree>>),
88 ContinueStatement(::std::boxed::Box<ContinueStatement<'tree>>),
89 DeleteStatement(::std::boxed::Box<DeleteStatement<'tree>>),
90 ExecStatement(::std::boxed::Box<ExecStatement<'tree>>),
91 ExpressionStatement(::std::boxed::Box<ExpressionStatement<'tree>>),
92 FutureImportStatement(::std::boxed::Box<FutureImportStatement<'tree>>),
93 GlobalStatement(::std::boxed::Box<GlobalStatement<'tree>>),
94 ImportFromStatement(::std::boxed::Box<ImportFromStatement<'tree>>),
95 ImportStatement(::std::boxed::Box<ImportStatement<'tree>>),
96 NonlocalStatement(::std::boxed::Box<NonlocalStatement<'tree>>),
97 PassStatement(::std::boxed::Box<PassStatement<'tree>>),
98 PrintStatement(::std::boxed::Box<PrintStatement<'tree>>),
99 RaiseStatement(::std::boxed::Box<RaiseStatement<'tree>>),
100 ReturnStatement(::std::boxed::Box<ReturnStatement<'tree>>),
101 TypeAliasStatement(::std::boxed::Box<TypeAliasStatement<'tree>>),
102}
103impl<'tree> ::treesitter_types::FromNode<'tree> for SimpleStatement<'tree> {
104 #[allow(clippy::collapsible_else_if)]
105 fn from_node(
106 node: ::treesitter_types::tree_sitter::Node<'tree>,
107 src: &'tree [u8],
108 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
109 match node.kind() {
110 "assert_statement" => Ok(Self::AssertStatement(::std::boxed::Box::new(
111 ::treesitter_types::runtime::maybe_grow_stack(|| {
112 <AssertStatement as ::treesitter_types::FromNode>::from_node(node, src)
113 })?,
114 ))),
115 "break_statement" => Ok(Self::BreakStatement(::std::boxed::Box::new(
116 ::treesitter_types::runtime::maybe_grow_stack(|| {
117 <BreakStatement as ::treesitter_types::FromNode>::from_node(node, src)
118 })?,
119 ))),
120 "continue_statement" => Ok(Self::ContinueStatement(::std::boxed::Box::new(
121 ::treesitter_types::runtime::maybe_grow_stack(|| {
122 <ContinueStatement as ::treesitter_types::FromNode>::from_node(node, src)
123 })?,
124 ))),
125 "delete_statement" => Ok(Self::DeleteStatement(::std::boxed::Box::new(
126 ::treesitter_types::runtime::maybe_grow_stack(|| {
127 <DeleteStatement as ::treesitter_types::FromNode>::from_node(node, src)
128 })?,
129 ))),
130 "exec_statement" => Ok(Self::ExecStatement(::std::boxed::Box::new(
131 ::treesitter_types::runtime::maybe_grow_stack(|| {
132 <ExecStatement as ::treesitter_types::FromNode>::from_node(node, src)
133 })?,
134 ))),
135 "expression_statement" => Ok(Self::ExpressionStatement(::std::boxed::Box::new(
136 ::treesitter_types::runtime::maybe_grow_stack(|| {
137 <ExpressionStatement as ::treesitter_types::FromNode>::from_node(node, src)
138 })?,
139 ))),
140 "future_import_statement" => Ok(Self::FutureImportStatement(::std::boxed::Box::new(
141 ::treesitter_types::runtime::maybe_grow_stack(|| {
142 <FutureImportStatement as ::treesitter_types::FromNode>::from_node(node, src)
143 })?,
144 ))),
145 "global_statement" => Ok(Self::GlobalStatement(::std::boxed::Box::new(
146 ::treesitter_types::runtime::maybe_grow_stack(|| {
147 <GlobalStatement as ::treesitter_types::FromNode>::from_node(node, src)
148 })?,
149 ))),
150 "import_from_statement" => Ok(Self::ImportFromStatement(::std::boxed::Box::new(
151 ::treesitter_types::runtime::maybe_grow_stack(|| {
152 <ImportFromStatement as ::treesitter_types::FromNode>::from_node(node, src)
153 })?,
154 ))),
155 "import_statement" => Ok(Self::ImportStatement(::std::boxed::Box::new(
156 ::treesitter_types::runtime::maybe_grow_stack(|| {
157 <ImportStatement as ::treesitter_types::FromNode>::from_node(node, src)
158 })?,
159 ))),
160 "nonlocal_statement" => Ok(Self::NonlocalStatement(::std::boxed::Box::new(
161 ::treesitter_types::runtime::maybe_grow_stack(|| {
162 <NonlocalStatement as ::treesitter_types::FromNode>::from_node(node, src)
163 })?,
164 ))),
165 "pass_statement" => Ok(Self::PassStatement(::std::boxed::Box::new(
166 ::treesitter_types::runtime::maybe_grow_stack(|| {
167 <PassStatement as ::treesitter_types::FromNode>::from_node(node, src)
168 })?,
169 ))),
170 "print_statement" => Ok(Self::PrintStatement(::std::boxed::Box::new(
171 ::treesitter_types::runtime::maybe_grow_stack(|| {
172 <PrintStatement as ::treesitter_types::FromNode>::from_node(node, src)
173 })?,
174 ))),
175 "raise_statement" => Ok(Self::RaiseStatement(::std::boxed::Box::new(
176 ::treesitter_types::runtime::maybe_grow_stack(|| {
177 <RaiseStatement as ::treesitter_types::FromNode>::from_node(node, src)
178 })?,
179 ))),
180 "return_statement" => Ok(Self::ReturnStatement(::std::boxed::Box::new(
181 ::treesitter_types::runtime::maybe_grow_stack(|| {
182 <ReturnStatement as ::treesitter_types::FromNode>::from_node(node, src)
183 })?,
184 ))),
185 "type_alias_statement" => Ok(Self::TypeAliasStatement(::std::boxed::Box::new(
186 ::treesitter_types::runtime::maybe_grow_stack(|| {
187 <TypeAliasStatement as ::treesitter_types::FromNode>::from_node(node, src)
188 })?,
189 ))),
190 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
191 }
192 }
193}
194impl ::treesitter_types::Spanned for SimpleStatement<'_> {
195 fn span(&self) -> ::treesitter_types::Span {
196 match self {
197 Self::AssertStatement(inner) => inner.span(),
198 Self::BreakStatement(inner) => inner.span(),
199 Self::ContinueStatement(inner) => inner.span(),
200 Self::DeleteStatement(inner) => inner.span(),
201 Self::ExecStatement(inner) => inner.span(),
202 Self::ExpressionStatement(inner) => inner.span(),
203 Self::FutureImportStatement(inner) => inner.span(),
204 Self::GlobalStatement(inner) => inner.span(),
205 Self::ImportFromStatement(inner) => inner.span(),
206 Self::ImportStatement(inner) => inner.span(),
207 Self::NonlocalStatement(inner) => inner.span(),
208 Self::PassStatement(inner) => inner.span(),
209 Self::PrintStatement(inner) => inner.span(),
210 Self::RaiseStatement(inner) => inner.span(),
211 Self::ReturnStatement(inner) => inner.span(),
212 Self::TypeAliasStatement(inner) => inner.span(),
213 }
214 }
215}
216#[derive(Debug, Clone, PartialEq, Eq)]
217pub enum Expression<'tree> {
218 AsPattern(::std::boxed::Box<AsPattern<'tree>>),
219 BooleanOperator(::std::boxed::Box<BooleanOperator<'tree>>),
220 ComparisonOperator(::std::boxed::Box<ComparisonOperator<'tree>>),
221 ConditionalExpression(::std::boxed::Box<ConditionalExpression<'tree>>),
222 Lambda(::std::boxed::Box<Lambda<'tree>>),
223 NamedExpression(::std::boxed::Box<NamedExpression<'tree>>),
224 NotOperator(::std::boxed::Box<NotOperator<'tree>>),
225 PrimaryExpression(::std::boxed::Box<PrimaryExpression<'tree>>),
226}
227impl<'tree> ::treesitter_types::FromNode<'tree> for Expression<'tree> {
228 #[allow(clippy::collapsible_else_if)]
229 fn from_node(
230 node: ::treesitter_types::tree_sitter::Node<'tree>,
231 src: &'tree [u8],
232 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
233 match node.kind() {
234 "as_pattern" => Ok(Self::AsPattern(::std::boxed::Box::new(
235 ::treesitter_types::runtime::maybe_grow_stack(|| {
236 <AsPattern as ::treesitter_types::FromNode>::from_node(node, src)
237 })?,
238 ))),
239 "boolean_operator" => Ok(Self::BooleanOperator(::std::boxed::Box::new(
240 ::treesitter_types::runtime::maybe_grow_stack(|| {
241 <BooleanOperator as ::treesitter_types::FromNode>::from_node(node, src)
242 })?,
243 ))),
244 "comparison_operator" => Ok(Self::ComparisonOperator(::std::boxed::Box::new(
245 ::treesitter_types::runtime::maybe_grow_stack(|| {
246 <ComparisonOperator as ::treesitter_types::FromNode>::from_node(node, src)
247 })?,
248 ))),
249 "conditional_expression" => Ok(Self::ConditionalExpression(::std::boxed::Box::new(
250 ::treesitter_types::runtime::maybe_grow_stack(|| {
251 <ConditionalExpression as ::treesitter_types::FromNode>::from_node(node, src)
252 })?,
253 ))),
254 "lambda" => Ok(Self::Lambda(::std::boxed::Box::new(
255 ::treesitter_types::runtime::maybe_grow_stack(|| {
256 <Lambda as ::treesitter_types::FromNode>::from_node(node, src)
257 })?,
258 ))),
259 "named_expression" => Ok(Self::NamedExpression(::std::boxed::Box::new(
260 ::treesitter_types::runtime::maybe_grow_stack(|| {
261 <NamedExpression as ::treesitter_types::FromNode>::from_node(node, src)
262 })?,
263 ))),
264 "not_operator" => Ok(Self::NotOperator(::std::boxed::Box::new(
265 ::treesitter_types::runtime::maybe_grow_stack(|| {
266 <NotOperator as ::treesitter_types::FromNode>::from_node(node, src)
267 })?,
268 ))),
269 _other => {
270 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
271 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(node, src)
272 }) {
273 Ok(Self::PrimaryExpression(::std::boxed::Box::new(v)))
274 } else {
275 Err(::treesitter_types::ParseError::unexpected_kind(
276 _other, node,
277 ))
278 }
279 }
280 }
281 }
282}
283impl ::treesitter_types::Spanned for Expression<'_> {
284 fn span(&self) -> ::treesitter_types::Span {
285 match self {
286 Self::AsPattern(inner) => inner.span(),
287 Self::BooleanOperator(inner) => inner.span(),
288 Self::ComparisonOperator(inner) => inner.span(),
289 Self::ConditionalExpression(inner) => inner.span(),
290 Self::Lambda(inner) => inner.span(),
291 Self::NamedExpression(inner) => inner.span(),
292 Self::NotOperator(inner) => inner.span(),
293 Self::PrimaryExpression(inner) => inner.span(),
294 }
295 }
296}
297#[derive(Debug, Clone, PartialEq, Eq)]
298pub enum Parameter<'tree> {
299 DefaultParameter(::std::boxed::Box<DefaultParameter<'tree>>),
300 DictionarySplatPattern(::std::boxed::Box<DictionarySplatPattern<'tree>>),
301 Identifier(::std::boxed::Box<Identifier<'tree>>),
302 KeywordSeparator(::std::boxed::Box<KeywordSeparator<'tree>>),
303 ListSplatPattern(::std::boxed::Box<ListSplatPattern<'tree>>),
304 PositionalSeparator(::std::boxed::Box<PositionalSeparator<'tree>>),
305 TuplePattern(::std::boxed::Box<TuplePattern<'tree>>),
306 TypedDefaultParameter(::std::boxed::Box<TypedDefaultParameter<'tree>>),
307 TypedParameter(::std::boxed::Box<TypedParameter<'tree>>),
308}
309impl<'tree> ::treesitter_types::FromNode<'tree> for Parameter<'tree> {
310 #[allow(clippy::collapsible_else_if)]
311 fn from_node(
312 node: ::treesitter_types::tree_sitter::Node<'tree>,
313 src: &'tree [u8],
314 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
315 match node.kind() {
316 "default_parameter" => Ok(Self::DefaultParameter(::std::boxed::Box::new(
317 ::treesitter_types::runtime::maybe_grow_stack(|| {
318 <DefaultParameter as ::treesitter_types::FromNode>::from_node(node, src)
319 })?,
320 ))),
321 "dictionary_splat_pattern" => Ok(Self::DictionarySplatPattern(::std::boxed::Box::new(
322 ::treesitter_types::runtime::maybe_grow_stack(|| {
323 <DictionarySplatPattern as ::treesitter_types::FromNode>::from_node(node, src)
324 })?,
325 ))),
326 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
327 ::treesitter_types::runtime::maybe_grow_stack(|| {
328 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
329 })?,
330 ))),
331 "keyword_separator" => Ok(Self::KeywordSeparator(::std::boxed::Box::new(
332 ::treesitter_types::runtime::maybe_grow_stack(|| {
333 <KeywordSeparator as ::treesitter_types::FromNode>::from_node(node, src)
334 })?,
335 ))),
336 "list_splat_pattern" => Ok(Self::ListSplatPattern(::std::boxed::Box::new(
337 ::treesitter_types::runtime::maybe_grow_stack(|| {
338 <ListSplatPattern as ::treesitter_types::FromNode>::from_node(node, src)
339 })?,
340 ))),
341 "positional_separator" => Ok(Self::PositionalSeparator(::std::boxed::Box::new(
342 ::treesitter_types::runtime::maybe_grow_stack(|| {
343 <PositionalSeparator as ::treesitter_types::FromNode>::from_node(node, src)
344 })?,
345 ))),
346 "tuple_pattern" => Ok(Self::TuplePattern(::std::boxed::Box::new(
347 ::treesitter_types::runtime::maybe_grow_stack(|| {
348 <TuplePattern as ::treesitter_types::FromNode>::from_node(node, src)
349 })?,
350 ))),
351 "typed_default_parameter" => Ok(Self::TypedDefaultParameter(::std::boxed::Box::new(
352 ::treesitter_types::runtime::maybe_grow_stack(|| {
353 <TypedDefaultParameter as ::treesitter_types::FromNode>::from_node(node, src)
354 })?,
355 ))),
356 "typed_parameter" => Ok(Self::TypedParameter(::std::boxed::Box::new(
357 ::treesitter_types::runtime::maybe_grow_stack(|| {
358 <TypedParameter as ::treesitter_types::FromNode>::from_node(node, src)
359 })?,
360 ))),
361 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
362 }
363 }
364}
365impl ::treesitter_types::Spanned for Parameter<'_> {
366 fn span(&self) -> ::treesitter_types::Span {
367 match self {
368 Self::DefaultParameter(inner) => inner.span(),
369 Self::DictionarySplatPattern(inner) => inner.span(),
370 Self::Identifier(inner) => inner.span(),
371 Self::KeywordSeparator(inner) => inner.span(),
372 Self::ListSplatPattern(inner) => inner.span(),
373 Self::PositionalSeparator(inner) => inner.span(),
374 Self::TuplePattern(inner) => inner.span(),
375 Self::TypedDefaultParameter(inner) => inner.span(),
376 Self::TypedParameter(inner) => inner.span(),
377 }
378 }
379}
380#[derive(Debug, Clone, PartialEq, Eq)]
381pub enum Pattern<'tree> {
382 Attribute(::std::boxed::Box<Attribute<'tree>>),
383 Identifier(::std::boxed::Box<Identifier<'tree>>),
384 ListPattern(::std::boxed::Box<ListPattern<'tree>>),
385 ListSplatPattern(::std::boxed::Box<ListSplatPattern<'tree>>),
386 Subscript(::std::boxed::Box<Subscript<'tree>>),
387 TuplePattern(::std::boxed::Box<TuplePattern<'tree>>),
388}
389impl<'tree> ::treesitter_types::FromNode<'tree> for Pattern<'tree> {
390 #[allow(clippy::collapsible_else_if)]
391 fn from_node(
392 node: ::treesitter_types::tree_sitter::Node<'tree>,
393 src: &'tree [u8],
394 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
395 match node.kind() {
396 "attribute" => Ok(Self::Attribute(::std::boxed::Box::new(
397 ::treesitter_types::runtime::maybe_grow_stack(|| {
398 <Attribute as ::treesitter_types::FromNode>::from_node(node, src)
399 })?,
400 ))),
401 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
402 ::treesitter_types::runtime::maybe_grow_stack(|| {
403 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
404 })?,
405 ))),
406 "list_pattern" => Ok(Self::ListPattern(::std::boxed::Box::new(
407 ::treesitter_types::runtime::maybe_grow_stack(|| {
408 <ListPattern as ::treesitter_types::FromNode>::from_node(node, src)
409 })?,
410 ))),
411 "list_splat_pattern" => Ok(Self::ListSplatPattern(::std::boxed::Box::new(
412 ::treesitter_types::runtime::maybe_grow_stack(|| {
413 <ListSplatPattern as ::treesitter_types::FromNode>::from_node(node, src)
414 })?,
415 ))),
416 "subscript" => Ok(Self::Subscript(::std::boxed::Box::new(
417 ::treesitter_types::runtime::maybe_grow_stack(|| {
418 <Subscript as ::treesitter_types::FromNode>::from_node(node, src)
419 })?,
420 ))),
421 "tuple_pattern" => Ok(Self::TuplePattern(::std::boxed::Box::new(
422 ::treesitter_types::runtime::maybe_grow_stack(|| {
423 <TuplePattern as ::treesitter_types::FromNode>::from_node(node, src)
424 })?,
425 ))),
426 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
427 }
428 }
429}
430impl ::treesitter_types::Spanned for Pattern<'_> {
431 fn span(&self) -> ::treesitter_types::Span {
432 match self {
433 Self::Attribute(inner) => inner.span(),
434 Self::Identifier(inner) => inner.span(),
435 Self::ListPattern(inner) => inner.span(),
436 Self::ListSplatPattern(inner) => inner.span(),
437 Self::Subscript(inner) => inner.span(),
438 Self::TuplePattern(inner) => inner.span(),
439 }
440 }
441}
442#[derive(Debug, Clone, PartialEq, Eq)]
443pub enum PrimaryExpression<'tree> {
444 Attribute(::std::boxed::Box<Attribute<'tree>>),
445 Await(::std::boxed::Box<Await<'tree>>),
446 BinaryOperator(::std::boxed::Box<BinaryOperator<'tree>>),
447 Call(::std::boxed::Box<Call<'tree>>),
448 ConcatenatedString(::std::boxed::Box<ConcatenatedString<'tree>>),
449 Dictionary(::std::boxed::Box<Dictionary<'tree>>),
450 DictionaryComprehension(::std::boxed::Box<DictionaryComprehension<'tree>>),
451 Ellipsis(::std::boxed::Box<Ellipsis<'tree>>),
452 False(::std::boxed::Box<False<'tree>>),
453 Float(::std::boxed::Box<Float<'tree>>),
454 GeneratorExpression(::std::boxed::Box<GeneratorExpression<'tree>>),
455 Identifier(::std::boxed::Box<Identifier<'tree>>),
456 Integer(::std::boxed::Box<Integer<'tree>>),
457 List(::std::boxed::Box<List<'tree>>),
458 ListComprehension(::std::boxed::Box<ListComprehension<'tree>>),
459 ListSplat(::std::boxed::Box<ListSplat<'tree>>),
460 None(::std::boxed::Box<None<'tree>>),
461 ParenthesizedExpression(::std::boxed::Box<ParenthesizedExpression<'tree>>),
462 Set(::std::boxed::Box<Set<'tree>>),
463 SetComprehension(::std::boxed::Box<SetComprehension<'tree>>),
464 String(::std::boxed::Box<String<'tree>>),
465 Subscript(::std::boxed::Box<Subscript<'tree>>),
466 True(::std::boxed::Box<True<'tree>>),
467 Tuple(::std::boxed::Box<Tuple<'tree>>),
468 UnaryOperator(::std::boxed::Box<UnaryOperator<'tree>>),
469}
470impl<'tree> ::treesitter_types::FromNode<'tree> for PrimaryExpression<'tree> {
471 #[allow(clippy::collapsible_else_if)]
472 fn from_node(
473 node: ::treesitter_types::tree_sitter::Node<'tree>,
474 src: &'tree [u8],
475 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
476 match node.kind() {
477 "attribute" => Ok(Self::Attribute(::std::boxed::Box::new(
478 ::treesitter_types::runtime::maybe_grow_stack(|| {
479 <Attribute as ::treesitter_types::FromNode>::from_node(node, src)
480 })?,
481 ))),
482 "await" => Ok(Self::Await(::std::boxed::Box::new(
483 ::treesitter_types::runtime::maybe_grow_stack(|| {
484 <Await as ::treesitter_types::FromNode>::from_node(node, src)
485 })?,
486 ))),
487 "binary_operator" => Ok(Self::BinaryOperator(::std::boxed::Box::new(
488 ::treesitter_types::runtime::maybe_grow_stack(|| {
489 <BinaryOperator as ::treesitter_types::FromNode>::from_node(node, src)
490 })?,
491 ))),
492 "call" => Ok(Self::Call(::std::boxed::Box::new(
493 ::treesitter_types::runtime::maybe_grow_stack(|| {
494 <Call as ::treesitter_types::FromNode>::from_node(node, src)
495 })?,
496 ))),
497 "concatenated_string" => Ok(Self::ConcatenatedString(::std::boxed::Box::new(
498 ::treesitter_types::runtime::maybe_grow_stack(|| {
499 <ConcatenatedString as ::treesitter_types::FromNode>::from_node(node, src)
500 })?,
501 ))),
502 "dictionary" => Ok(Self::Dictionary(::std::boxed::Box::new(
503 ::treesitter_types::runtime::maybe_grow_stack(|| {
504 <Dictionary as ::treesitter_types::FromNode>::from_node(node, src)
505 })?,
506 ))),
507 "dictionary_comprehension" => Ok(Self::DictionaryComprehension(
508 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
509 <DictionaryComprehension as ::treesitter_types::FromNode>::from_node(node, src)
510 })?),
511 )),
512 "ellipsis" => Ok(Self::Ellipsis(::std::boxed::Box::new(
513 ::treesitter_types::runtime::maybe_grow_stack(|| {
514 <Ellipsis as ::treesitter_types::FromNode>::from_node(node, src)
515 })?,
516 ))),
517 "false" => Ok(Self::False(::std::boxed::Box::new(
518 ::treesitter_types::runtime::maybe_grow_stack(|| {
519 <False as ::treesitter_types::FromNode>::from_node(node, src)
520 })?,
521 ))),
522 "float" => Ok(Self::Float(::std::boxed::Box::new(
523 ::treesitter_types::runtime::maybe_grow_stack(|| {
524 <Float as ::treesitter_types::FromNode>::from_node(node, src)
525 })?,
526 ))),
527 "generator_expression" => Ok(Self::GeneratorExpression(::std::boxed::Box::new(
528 ::treesitter_types::runtime::maybe_grow_stack(|| {
529 <GeneratorExpression as ::treesitter_types::FromNode>::from_node(node, src)
530 })?,
531 ))),
532 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
533 ::treesitter_types::runtime::maybe_grow_stack(|| {
534 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
535 })?,
536 ))),
537 "integer" => Ok(Self::Integer(::std::boxed::Box::new(
538 ::treesitter_types::runtime::maybe_grow_stack(|| {
539 <Integer as ::treesitter_types::FromNode>::from_node(node, src)
540 })?,
541 ))),
542 "list" => Ok(Self::List(::std::boxed::Box::new(
543 ::treesitter_types::runtime::maybe_grow_stack(|| {
544 <List as ::treesitter_types::FromNode>::from_node(node, src)
545 })?,
546 ))),
547 "list_comprehension" => Ok(Self::ListComprehension(::std::boxed::Box::new(
548 ::treesitter_types::runtime::maybe_grow_stack(|| {
549 <ListComprehension as ::treesitter_types::FromNode>::from_node(node, src)
550 })?,
551 ))),
552 "list_splat" => Ok(Self::ListSplat(::std::boxed::Box::new(
553 ::treesitter_types::runtime::maybe_grow_stack(|| {
554 <ListSplat as ::treesitter_types::FromNode>::from_node(node, src)
555 })?,
556 ))),
557 "none" => Ok(Self::None(::std::boxed::Box::new(
558 ::treesitter_types::runtime::maybe_grow_stack(|| {
559 <None as ::treesitter_types::FromNode>::from_node(node, src)
560 })?,
561 ))),
562 "parenthesized_expression" => Ok(Self::ParenthesizedExpression(
563 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
564 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(node, src)
565 })?),
566 )),
567 "set" => Ok(Self::Set(::std::boxed::Box::new(
568 ::treesitter_types::runtime::maybe_grow_stack(|| {
569 <Set as ::treesitter_types::FromNode>::from_node(node, src)
570 })?,
571 ))),
572 "set_comprehension" => Ok(Self::SetComprehension(::std::boxed::Box::new(
573 ::treesitter_types::runtime::maybe_grow_stack(|| {
574 <SetComprehension as ::treesitter_types::FromNode>::from_node(node, src)
575 })?,
576 ))),
577 "string" => Ok(Self::String(::std::boxed::Box::new(
578 ::treesitter_types::runtime::maybe_grow_stack(|| {
579 <String as ::treesitter_types::FromNode>::from_node(node, src)
580 })?,
581 ))),
582 "subscript" => Ok(Self::Subscript(::std::boxed::Box::new(
583 ::treesitter_types::runtime::maybe_grow_stack(|| {
584 <Subscript as ::treesitter_types::FromNode>::from_node(node, src)
585 })?,
586 ))),
587 "true" => Ok(Self::True(::std::boxed::Box::new(
588 ::treesitter_types::runtime::maybe_grow_stack(|| {
589 <True as ::treesitter_types::FromNode>::from_node(node, src)
590 })?,
591 ))),
592 "tuple" => Ok(Self::Tuple(::std::boxed::Box::new(
593 ::treesitter_types::runtime::maybe_grow_stack(|| {
594 <Tuple as ::treesitter_types::FromNode>::from_node(node, src)
595 })?,
596 ))),
597 "unary_operator" => Ok(Self::UnaryOperator(::std::boxed::Box::new(
598 ::treesitter_types::runtime::maybe_grow_stack(|| {
599 <UnaryOperator as ::treesitter_types::FromNode>::from_node(node, src)
600 })?,
601 ))),
602 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
603 }
604 }
605}
606impl ::treesitter_types::Spanned for PrimaryExpression<'_> {
607 fn span(&self) -> ::treesitter_types::Span {
608 match self {
609 Self::Attribute(inner) => inner.span(),
610 Self::Await(inner) => inner.span(),
611 Self::BinaryOperator(inner) => inner.span(),
612 Self::Call(inner) => inner.span(),
613 Self::ConcatenatedString(inner) => inner.span(),
614 Self::Dictionary(inner) => inner.span(),
615 Self::DictionaryComprehension(inner) => inner.span(),
616 Self::Ellipsis(inner) => inner.span(),
617 Self::False(inner) => inner.span(),
618 Self::Float(inner) => inner.span(),
619 Self::GeneratorExpression(inner) => inner.span(),
620 Self::Identifier(inner) => inner.span(),
621 Self::Integer(inner) => inner.span(),
622 Self::List(inner) => inner.span(),
623 Self::ListComprehension(inner) => inner.span(),
624 Self::ListSplat(inner) => inner.span(),
625 Self::None(inner) => inner.span(),
626 Self::ParenthesizedExpression(inner) => inner.span(),
627 Self::Set(inner) => inner.span(),
628 Self::SetComprehension(inner) => inner.span(),
629 Self::String(inner) => inner.span(),
630 Self::Subscript(inner) => inner.span(),
631 Self::True(inner) => inner.span(),
632 Self::Tuple(inner) => inner.span(),
633 Self::UnaryOperator(inner) => inner.span(),
634 }
635 }
636}
637#[derive(Debug, Clone, PartialEq, Eq)]
638pub struct AliasedImport<'tree> {
639 pub span: ::treesitter_types::Span,
640 pub alias: Identifier<'tree>,
641 pub name: DottedName<'tree>,
642}
643impl<'tree> ::treesitter_types::FromNode<'tree> for AliasedImport<'tree> {
644 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
645 fn from_node(
646 node: ::treesitter_types::tree_sitter::Node<'tree>,
647 src: &'tree [u8],
648 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
649 debug_assert_eq!(node.kind(), "aliased_import");
650 Ok(Self {
651 span: ::treesitter_types::Span::from(node),
652 alias: {
653 let child = node
654 .child_by_field_name("alias")
655 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("alias", node))?;
656 ::treesitter_types::runtime::maybe_grow_stack(|| {
657 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)
658 })?
659 },
660 name: {
661 let child = node
662 .child_by_field_name("name")
663 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
664 ::treesitter_types::runtime::maybe_grow_stack(|| {
665 <DottedName as ::treesitter_types::FromNode>::from_node(child, src)
666 })?
667 },
668 })
669 }
670}
671impl ::treesitter_types::Spanned for AliasedImport<'_> {
672 fn span(&self) -> ::treesitter_types::Span {
673 self.span
674 }
675}
676#[derive(Debug, Clone, PartialEq, Eq)]
677pub struct ArgumentList<'tree> {
678 pub span: ::treesitter_types::Span,
679 pub children: ::std::vec::Vec<ArgumentListChildren<'tree>>,
680}
681impl<'tree> ::treesitter_types::FromNode<'tree> for ArgumentList<'tree> {
682 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
683 fn from_node(
684 node: ::treesitter_types::tree_sitter::Node<'tree>,
685 src: &'tree [u8],
686 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
687 debug_assert_eq!(node.kind(), "argument_list");
688 Ok(Self {
689 span: ::treesitter_types::Span::from(node),
690 children: {
691 #[allow(clippy::suspicious_else_formatting)]
692 let non_field_children = {
693 let mut cursor = node.walk();
694 let mut result = ::std::vec::Vec::new();
695 if cursor.goto_first_child() {
696 loop {
697 if cursor.field_name().is_none()
698 && cursor.node().is_named()
699 && !cursor.node().is_extra()
700 {
701 result.push(cursor.node());
702 }
703 if !cursor.goto_next_sibling() {
704 break;
705 }
706 }
707 }
708 result
709 };
710 let mut items = ::std::vec::Vec::new();
711 for child in non_field_children {
712 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
713 <ArgumentListChildren as ::treesitter_types::FromNode>::from_node(
714 child, src,
715 )
716 })?);
717 }
718 items
719 },
720 })
721 }
722}
723impl ::treesitter_types::Spanned for ArgumentList<'_> {
724 fn span(&self) -> ::treesitter_types::Span {
725 self.span
726 }
727}
728#[derive(Debug, Clone, PartialEq, Eq)]
729pub struct AsPattern<'tree> {
730 pub span: ::treesitter_types::Span,
731 pub alias: ::core::option::Option<AsPatternTarget<'tree>>,
732 pub children: ::std::vec::Vec<AsPatternChildren<'tree>>,
733}
734impl<'tree> ::treesitter_types::FromNode<'tree> for AsPattern<'tree> {
735 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
736 fn from_node(
737 node: ::treesitter_types::tree_sitter::Node<'tree>,
738 src: &'tree [u8],
739 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
740 debug_assert_eq!(node.kind(), "as_pattern");
741 Ok(Self {
742 span: ::treesitter_types::Span::from(node),
743 alias: match node.child_by_field_name("alias") {
744 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
745 <AsPatternTarget as ::treesitter_types::FromNode>::from_node(child, src)
746 })?),
747 None => None,
748 },
749 children: {
750 #[allow(clippy::suspicious_else_formatting)]
751 let non_field_children = {
752 let mut cursor = node.walk();
753 let mut result = ::std::vec::Vec::new();
754 if cursor.goto_first_child() {
755 loop {
756 if cursor.field_name().is_none()
757 && cursor.node().is_named()
758 && !cursor.node().is_extra()
759 {
760 result.push(cursor.node());
761 }
762 if !cursor.goto_next_sibling() {
763 break;
764 }
765 }
766 }
767 result
768 };
769 let mut items = ::std::vec::Vec::new();
770 for child in non_field_children {
771 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
772 <AsPatternChildren as ::treesitter_types::FromNode>::from_node(child, src)
773 })?);
774 }
775 items
776 },
777 })
778 }
779}
780impl ::treesitter_types::Spanned for AsPattern<'_> {
781 fn span(&self) -> ::treesitter_types::Span {
782 self.span
783 }
784}
785#[derive(Debug, Clone, PartialEq, Eq)]
786pub struct AssertStatement<'tree> {
787 pub span: ::treesitter_types::Span,
788 pub children: ::std::vec::Vec<Expression<'tree>>,
789}
790impl<'tree> ::treesitter_types::FromNode<'tree> for AssertStatement<'tree> {
791 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
792 fn from_node(
793 node: ::treesitter_types::tree_sitter::Node<'tree>,
794 src: &'tree [u8],
795 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
796 debug_assert_eq!(node.kind(), "assert_statement");
797 Ok(Self {
798 span: ::treesitter_types::Span::from(node),
799 children: {
800 #[allow(clippy::suspicious_else_formatting)]
801 let non_field_children = {
802 let mut cursor = node.walk();
803 let mut result = ::std::vec::Vec::new();
804 if cursor.goto_first_child() {
805 loop {
806 if cursor.field_name().is_none()
807 && cursor.node().is_named()
808 && !cursor.node().is_extra()
809 {
810 result.push(cursor.node());
811 }
812 if !cursor.goto_next_sibling() {
813 break;
814 }
815 }
816 }
817 result
818 };
819 let mut items = ::std::vec::Vec::new();
820 for child in non_field_children {
821 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
822 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
823 })?);
824 }
825 items
826 },
827 })
828 }
829}
830impl ::treesitter_types::Spanned for AssertStatement<'_> {
831 fn span(&self) -> ::treesitter_types::Span {
832 self.span
833 }
834}
835#[derive(Debug, Clone, PartialEq, Eq)]
836pub struct Assignment<'tree> {
837 pub span: ::treesitter_types::Span,
838 pub left: AssignmentLeft<'tree>,
839 pub right: ::core::option::Option<AssignmentRight<'tree>>,
840 pub r#type: ::core::option::Option<Type<'tree>>,
841}
842impl<'tree> ::treesitter_types::FromNode<'tree> for Assignment<'tree> {
843 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
844 fn from_node(
845 node: ::treesitter_types::tree_sitter::Node<'tree>,
846 src: &'tree [u8],
847 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
848 debug_assert_eq!(node.kind(), "assignment");
849 Ok(Self {
850 span: ::treesitter_types::Span::from(node),
851 left: {
852 let child = node
853 .child_by_field_name("left")
854 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
855 ::treesitter_types::runtime::maybe_grow_stack(|| {
856 <AssignmentLeft as ::treesitter_types::FromNode>::from_node(child, src)
857 })?
858 },
859 right: match node.child_by_field_name("right") {
860 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
861 <AssignmentRight as ::treesitter_types::FromNode>::from_node(child, src)
862 })?),
863 None => None,
864 },
865 r#type: match node.child_by_field_name("type") {
866 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
867 <Type as ::treesitter_types::FromNode>::from_node(child, src)
868 })?),
869 None => None,
870 },
871 })
872 }
873}
874impl ::treesitter_types::Spanned for Assignment<'_> {
875 fn span(&self) -> ::treesitter_types::Span {
876 self.span
877 }
878}
879#[derive(Debug, Clone, PartialEq, Eq)]
880pub struct Attribute<'tree> {
881 pub span: ::treesitter_types::Span,
882 pub attribute: Identifier<'tree>,
883 pub object: PrimaryExpression<'tree>,
884}
885impl<'tree> ::treesitter_types::FromNode<'tree> for Attribute<'tree> {
886 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
887 fn from_node(
888 node: ::treesitter_types::tree_sitter::Node<'tree>,
889 src: &'tree [u8],
890 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
891 debug_assert_eq!(node.kind(), "attribute");
892 Ok(Self {
893 span: ::treesitter_types::Span::from(node),
894 attribute: {
895 let child = node.child_by_field_name("attribute").ok_or_else(|| {
896 ::treesitter_types::ParseError::missing_field("attribute", node)
897 })?;
898 ::treesitter_types::runtime::maybe_grow_stack(|| {
899 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)
900 })?
901 },
902 object: {
903 let child = node
904 .child_by_field_name("object")
905 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("object", node))?;
906 ::treesitter_types::runtime::maybe_grow_stack(|| {
907 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(child, src)
908 })?
909 },
910 })
911 }
912}
913impl ::treesitter_types::Spanned for Attribute<'_> {
914 fn span(&self) -> ::treesitter_types::Span {
915 self.span
916 }
917}
918#[derive(Debug, Clone, PartialEq, Eq)]
919pub struct AugmentedAssignment<'tree> {
920 pub span: ::treesitter_types::Span,
921 pub left: AugmentedAssignmentLeft<'tree>,
922 pub operator: AugmentedAssignmentOperator,
923 pub right: AugmentedAssignmentRight<'tree>,
924}
925impl<'tree> ::treesitter_types::FromNode<'tree> for AugmentedAssignment<'tree> {
926 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
927 fn from_node(
928 node: ::treesitter_types::tree_sitter::Node<'tree>,
929 src: &'tree [u8],
930 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
931 debug_assert_eq!(node.kind(), "augmented_assignment");
932 Ok(Self {
933 span: ::treesitter_types::Span::from(node),
934 left: {
935 let child = node
936 .child_by_field_name("left")
937 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
938 ::treesitter_types::runtime::maybe_grow_stack(|| {
939 <AugmentedAssignmentLeft as ::treesitter_types::FromNode>::from_node(child, src)
940 })?
941 },
942 operator: {
943 let child = node.child_by_field_name("operator").ok_or_else(|| {
944 ::treesitter_types::ParseError::missing_field("operator", node)
945 })?;
946 ::treesitter_types::runtime::maybe_grow_stack(|| {
947 <AugmentedAssignmentOperator as ::treesitter_types::FromNode>::from_node(
948 child, src,
949 )
950 })?
951 },
952 right: {
953 let child = node
954 .child_by_field_name("right")
955 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
956 ::treesitter_types::runtime::maybe_grow_stack(|| {
957 <AugmentedAssignmentRight as ::treesitter_types::FromNode>::from_node(
958 child, src,
959 )
960 })?
961 },
962 })
963 }
964}
965impl ::treesitter_types::Spanned for AugmentedAssignment<'_> {
966 fn span(&self) -> ::treesitter_types::Span {
967 self.span
968 }
969}
970#[derive(Debug, Clone, PartialEq, Eq)]
971pub struct Await<'tree> {
972 pub span: ::treesitter_types::Span,
973 pub children: PrimaryExpression<'tree>,
974}
975impl<'tree> ::treesitter_types::FromNode<'tree> for Await<'tree> {
976 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
977 fn from_node(
978 node: ::treesitter_types::tree_sitter::Node<'tree>,
979 src: &'tree [u8],
980 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
981 debug_assert_eq!(node.kind(), "await");
982 Ok(Self {
983 span: ::treesitter_types::Span::from(node),
984 children: {
985 #[allow(clippy::suspicious_else_formatting)]
986 let non_field_children = {
987 let mut cursor = node.walk();
988 let mut result = ::std::vec::Vec::new();
989 if cursor.goto_first_child() {
990 loop {
991 if cursor.field_name().is_none()
992 && cursor.node().is_named()
993 && !cursor.node().is_extra()
994 {
995 result.push(cursor.node());
996 }
997 if !cursor.goto_next_sibling() {
998 break;
999 }
1000 }
1001 }
1002 result
1003 };
1004 let child = if let Some(&c) = non_field_children.first() {
1005 c
1006 } else {
1007 let mut fallback_cursor = node.walk();
1008 let mut fallback_child = None;
1009 if fallback_cursor.goto_first_child() {
1010 loop {
1011 if fallback_cursor.field_name().is_none()
1012 && !fallback_cursor.node().is_extra()
1013 {
1014 let candidate = fallback_cursor.node();
1015 #[allow(clippy::needless_question_mark)]
1016 if (|| -> ::core::result::Result<
1017 _,
1018 ::treesitter_types::ParseError,
1019 > {
1020 let child = candidate;
1021 Ok(
1022 ::treesitter_types::runtime::maybe_grow_stack(|| <PrimaryExpression as ::treesitter_types::FromNode>::from_node(
1023 child,
1024 src,
1025 ))?,
1026 )
1027 })()
1028 .is_ok()
1029 {
1030 fallback_child = Some(candidate);
1031 break;
1032 }
1033 }
1034 if !fallback_cursor.goto_next_sibling() {
1035 break;
1036 }
1037 }
1038 }
1039 if fallback_child.is_none() {
1040 let mut cursor2 = node.walk();
1041 if cursor2.goto_first_child() {
1042 loop {
1043 if cursor2.node().is_named() && !cursor2.node().is_extra() {
1044 let candidate = cursor2.node();
1045 #[allow(clippy::needless_question_mark)]
1046 if (|| -> ::core::result::Result<
1047 _,
1048 ::treesitter_types::ParseError,
1049 > {
1050 let child = candidate;
1051 Ok(
1052 ::treesitter_types::runtime::maybe_grow_stack(|| <PrimaryExpression as ::treesitter_types::FromNode>::from_node(
1053 child,
1054 src,
1055 ))?,
1056 )
1057 })()
1058 .is_ok()
1059 {
1060 fallback_child = Some(candidate);
1061 break;
1062 }
1063 }
1064 if !cursor2.goto_next_sibling() {
1065 break;
1066 }
1067 }
1068 }
1069 }
1070 fallback_child.ok_or_else(|| {
1071 ::treesitter_types::ParseError::missing_field("children", node)
1072 })?
1073 };
1074 ::treesitter_types::runtime::maybe_grow_stack(|| {
1075 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(child, src)
1076 })?
1077 },
1078 })
1079 }
1080}
1081impl ::treesitter_types::Spanned for Await<'_> {
1082 fn span(&self) -> ::treesitter_types::Span {
1083 self.span
1084 }
1085}
1086#[derive(Debug, Clone, PartialEq, Eq)]
1087pub struct BinaryOperator<'tree> {
1088 pub span: ::treesitter_types::Span,
1089 pub left: PrimaryExpression<'tree>,
1090 pub operator: BinaryOperatorOperator,
1091 pub right: PrimaryExpression<'tree>,
1092}
1093impl<'tree> ::treesitter_types::FromNode<'tree> for BinaryOperator<'tree> {
1094 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1095 fn from_node(
1096 node: ::treesitter_types::tree_sitter::Node<'tree>,
1097 src: &'tree [u8],
1098 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1099 debug_assert_eq!(node.kind(), "binary_operator");
1100 Ok(Self {
1101 span: ::treesitter_types::Span::from(node),
1102 left: {
1103 let child = node
1104 .child_by_field_name("left")
1105 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
1106 ::treesitter_types::runtime::maybe_grow_stack(|| {
1107 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(child, src)
1108 })?
1109 },
1110 operator: {
1111 let child = node.child_by_field_name("operator").ok_or_else(|| {
1112 ::treesitter_types::ParseError::missing_field("operator", node)
1113 })?;
1114 ::treesitter_types::runtime::maybe_grow_stack(|| {
1115 <BinaryOperatorOperator as ::treesitter_types::FromNode>::from_node(child, src)
1116 })?
1117 },
1118 right: {
1119 let child = node
1120 .child_by_field_name("right")
1121 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
1122 ::treesitter_types::runtime::maybe_grow_stack(|| {
1123 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(child, src)
1124 })?
1125 },
1126 })
1127 }
1128}
1129impl ::treesitter_types::Spanned for BinaryOperator<'_> {
1130 fn span(&self) -> ::treesitter_types::Span {
1131 self.span
1132 }
1133}
1134#[derive(Debug, Clone, PartialEq, Eq)]
1135pub struct Block<'tree> {
1136 pub span: ::treesitter_types::Span,
1137 pub alternative: ::std::vec::Vec<CaseClause<'tree>>,
1138 pub children: ::std::vec::Vec<BlockChildren<'tree>>,
1139}
1140impl<'tree> ::treesitter_types::FromNode<'tree> for Block<'tree> {
1141 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1142 fn from_node(
1143 node: ::treesitter_types::tree_sitter::Node<'tree>,
1144 src: &'tree [u8],
1145 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1146 debug_assert_eq!(node.kind(), "block");
1147 Ok(Self {
1148 span: ::treesitter_types::Span::from(node),
1149 alternative: {
1150 let mut cursor = node.walk();
1151 let mut items = ::std::vec::Vec::new();
1152 for child in node.children_by_field_name("alternative", &mut cursor) {
1153 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
1154 <CaseClause as ::treesitter_types::FromNode>::from_node(child, src)
1155 })?);
1156 }
1157 items
1158 },
1159 children: {
1160 #[allow(clippy::suspicious_else_formatting)]
1161 let non_field_children = {
1162 let mut cursor = node.walk();
1163 let mut result = ::std::vec::Vec::new();
1164 if cursor.goto_first_child() {
1165 loop {
1166 if cursor.field_name().is_none()
1167 && cursor.node().is_named()
1168 && !cursor.node().is_extra()
1169 {
1170 result.push(cursor.node());
1171 }
1172 if !cursor.goto_next_sibling() {
1173 break;
1174 }
1175 }
1176 }
1177 result
1178 };
1179 let mut items = ::std::vec::Vec::new();
1180 for child in non_field_children {
1181 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
1182 <BlockChildren as ::treesitter_types::FromNode>::from_node(child, src)
1183 })?);
1184 }
1185 items
1186 },
1187 })
1188 }
1189}
1190impl ::treesitter_types::Spanned for Block<'_> {
1191 fn span(&self) -> ::treesitter_types::Span {
1192 self.span
1193 }
1194}
1195#[derive(Debug, Clone, PartialEq, Eq)]
1196pub struct BooleanOperator<'tree> {
1197 pub span: ::treesitter_types::Span,
1198 pub left: Expression<'tree>,
1199 pub operator: BooleanOperatorOperator,
1200 pub right: Expression<'tree>,
1201}
1202impl<'tree> ::treesitter_types::FromNode<'tree> for BooleanOperator<'tree> {
1203 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1204 fn from_node(
1205 node: ::treesitter_types::tree_sitter::Node<'tree>,
1206 src: &'tree [u8],
1207 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1208 debug_assert_eq!(node.kind(), "boolean_operator");
1209 Ok(Self {
1210 span: ::treesitter_types::Span::from(node),
1211 left: {
1212 let child = node
1213 .child_by_field_name("left")
1214 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
1215 ::treesitter_types::runtime::maybe_grow_stack(|| {
1216 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
1217 })?
1218 },
1219 operator: {
1220 let child = node.child_by_field_name("operator").ok_or_else(|| {
1221 ::treesitter_types::ParseError::missing_field("operator", node)
1222 })?;
1223 ::treesitter_types::runtime::maybe_grow_stack(|| {
1224 <BooleanOperatorOperator as ::treesitter_types::FromNode>::from_node(child, src)
1225 })?
1226 },
1227 right: {
1228 let child = node
1229 .child_by_field_name("right")
1230 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
1231 ::treesitter_types::runtime::maybe_grow_stack(|| {
1232 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
1233 })?
1234 },
1235 })
1236 }
1237}
1238impl ::treesitter_types::Spanned for BooleanOperator<'_> {
1239 fn span(&self) -> ::treesitter_types::Span {
1240 self.span
1241 }
1242}
1243#[derive(Debug, Clone, PartialEq, Eq)]
1244pub struct BreakStatement<'tree> {
1245 pub span: ::treesitter_types::Span,
1246 text: &'tree str,
1247}
1248impl<'tree> ::treesitter_types::FromNode<'tree> for BreakStatement<'tree> {
1249 fn from_node(
1250 node: ::treesitter_types::tree_sitter::Node<'tree>,
1251 src: &'tree [u8],
1252 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1253 debug_assert_eq!(node.kind(), "break_statement");
1254 Ok(Self {
1255 span: ::treesitter_types::Span::from(node),
1256 text: node.utf8_text(src)?,
1257 })
1258 }
1259}
1260impl<'tree> ::treesitter_types::LeafNode<'tree> for BreakStatement<'tree> {
1261 fn text(&self) -> &'tree str {
1262 self.text
1263 }
1264}
1265impl ::treesitter_types::Spanned for BreakStatement<'_> {
1266 fn span(&self) -> ::treesitter_types::Span {
1267 self.span
1268 }
1269}
1270#[derive(Debug, Clone, PartialEq, Eq)]
1271pub struct Call<'tree> {
1272 pub span: ::treesitter_types::Span,
1273 pub arguments: CallArguments<'tree>,
1274 pub function: PrimaryExpression<'tree>,
1275}
1276impl<'tree> ::treesitter_types::FromNode<'tree> for Call<'tree> {
1277 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1278 fn from_node(
1279 node: ::treesitter_types::tree_sitter::Node<'tree>,
1280 src: &'tree [u8],
1281 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1282 debug_assert_eq!(node.kind(), "call");
1283 Ok(Self {
1284 span: ::treesitter_types::Span::from(node),
1285 arguments: {
1286 let child = node.child_by_field_name("arguments").ok_or_else(|| {
1287 ::treesitter_types::ParseError::missing_field("arguments", node)
1288 })?;
1289 ::treesitter_types::runtime::maybe_grow_stack(|| {
1290 <CallArguments as ::treesitter_types::FromNode>::from_node(child, src)
1291 })?
1292 },
1293 function: {
1294 let child = node.child_by_field_name("function").ok_or_else(|| {
1295 ::treesitter_types::ParseError::missing_field("function", node)
1296 })?;
1297 ::treesitter_types::runtime::maybe_grow_stack(|| {
1298 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(child, src)
1299 })?
1300 },
1301 })
1302 }
1303}
1304impl ::treesitter_types::Spanned for Call<'_> {
1305 fn span(&self) -> ::treesitter_types::Span {
1306 self.span
1307 }
1308}
1309#[derive(Debug, Clone, PartialEq, Eq)]
1310pub struct CaseClause<'tree> {
1311 pub span: ::treesitter_types::Span,
1312 pub consequence: Block<'tree>,
1313 pub guard: ::core::option::Option<IfClause<'tree>>,
1314 pub children: ::std::vec::Vec<CasePattern<'tree>>,
1315}
1316impl<'tree> ::treesitter_types::FromNode<'tree> for CaseClause<'tree> {
1317 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1318 fn from_node(
1319 node: ::treesitter_types::tree_sitter::Node<'tree>,
1320 src: &'tree [u8],
1321 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1322 debug_assert_eq!(node.kind(), "case_clause");
1323 Ok(Self {
1324 span: ::treesitter_types::Span::from(node),
1325 consequence: {
1326 let child = node.child_by_field_name("consequence").ok_or_else(|| {
1327 ::treesitter_types::ParseError::missing_field("consequence", node)
1328 })?;
1329 ::treesitter_types::runtime::maybe_grow_stack(|| {
1330 <Block as ::treesitter_types::FromNode>::from_node(child, src)
1331 })?
1332 },
1333 guard: match node.child_by_field_name("guard") {
1334 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
1335 <IfClause as ::treesitter_types::FromNode>::from_node(child, src)
1336 })?),
1337 None => None,
1338 },
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 <CasePattern as ::treesitter_types::FromNode>::from_node(child, src)
1363 })?);
1364 }
1365 items
1366 },
1367 })
1368 }
1369}
1370impl ::treesitter_types::Spanned for CaseClause<'_> {
1371 fn span(&self) -> ::treesitter_types::Span {
1372 self.span
1373 }
1374}
1375#[derive(Debug, Clone, PartialEq, Eq)]
1376pub struct CasePattern<'tree> {
1377 pub span: ::treesitter_types::Span,
1378 pub children: ::core::option::Option<CasePatternChildren<'tree>>,
1379}
1380impl<'tree> ::treesitter_types::FromNode<'tree> for CasePattern<'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(), "case_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 match non_field_children.first() {
1410 Some(&child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
1411 <CasePatternChildren as ::treesitter_types::FromNode>::from_node(child, src)
1412 })?),
1413 None => None,
1414 }
1415 },
1416 })
1417 }
1418}
1419impl ::treesitter_types::Spanned for CasePattern<'_> {
1420 fn span(&self) -> ::treesitter_types::Span {
1421 self.span
1422 }
1423}
1424#[derive(Debug, Clone, PartialEq, Eq)]
1425pub struct Chevron<'tree> {
1426 pub span: ::treesitter_types::Span,
1427 pub children: Expression<'tree>,
1428}
1429impl<'tree> ::treesitter_types::FromNode<'tree> for Chevron<'tree> {
1430 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1431 fn from_node(
1432 node: ::treesitter_types::tree_sitter::Node<'tree>,
1433 src: &'tree [u8],
1434 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1435 debug_assert_eq!(node.kind(), "chevron");
1436 Ok(Self {
1437 span: ::treesitter_types::Span::from(node),
1438 children: {
1439 #[allow(clippy::suspicious_else_formatting)]
1440 let non_field_children = {
1441 let mut cursor = node.walk();
1442 let mut result = ::std::vec::Vec::new();
1443 if cursor.goto_first_child() {
1444 loop {
1445 if cursor.field_name().is_none()
1446 && cursor.node().is_named()
1447 && !cursor.node().is_extra()
1448 {
1449 result.push(cursor.node());
1450 }
1451 if !cursor.goto_next_sibling() {
1452 break;
1453 }
1454 }
1455 }
1456 result
1457 };
1458 let child = if let Some(&c) = non_field_children.first() {
1459 c
1460 } else {
1461 let mut fallback_cursor = node.walk();
1462 let mut fallback_child = None;
1463 if fallback_cursor.goto_first_child() {
1464 loop {
1465 if fallback_cursor.field_name().is_none()
1466 && !fallback_cursor.node().is_extra()
1467 {
1468 let candidate = fallback_cursor.node();
1469 #[allow(clippy::needless_question_mark)]
1470 if (|| -> ::core::result::Result<
1471 _,
1472 ::treesitter_types::ParseError,
1473 > {
1474 let child = candidate;
1475 Ok(
1476 ::treesitter_types::runtime::maybe_grow_stack(|| <Expression as ::treesitter_types::FromNode>::from_node(
1477 child,
1478 src,
1479 ))?,
1480 )
1481 })()
1482 .is_ok()
1483 {
1484 fallback_child = Some(candidate);
1485 break;
1486 }
1487 }
1488 if !fallback_cursor.goto_next_sibling() {
1489 break;
1490 }
1491 }
1492 }
1493 if fallback_child.is_none() {
1494 let mut cursor2 = node.walk();
1495 if cursor2.goto_first_child() {
1496 loop {
1497 if cursor2.node().is_named() && !cursor2.node().is_extra() {
1498 let candidate = cursor2.node();
1499 #[allow(clippy::needless_question_mark)]
1500 if (|| -> ::core::result::Result<
1501 _,
1502 ::treesitter_types::ParseError,
1503 > {
1504 let child = candidate;
1505 Ok(
1506 ::treesitter_types::runtime::maybe_grow_stack(|| <Expression as ::treesitter_types::FromNode>::from_node(
1507 child,
1508 src,
1509 ))?,
1510 )
1511 })()
1512 .is_ok()
1513 {
1514 fallback_child = Some(candidate);
1515 break;
1516 }
1517 }
1518 if !cursor2.goto_next_sibling() {
1519 break;
1520 }
1521 }
1522 }
1523 }
1524 fallback_child.ok_or_else(|| {
1525 ::treesitter_types::ParseError::missing_field("children", node)
1526 })?
1527 };
1528 ::treesitter_types::runtime::maybe_grow_stack(|| {
1529 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
1530 })?
1531 },
1532 })
1533 }
1534}
1535impl ::treesitter_types::Spanned for Chevron<'_> {
1536 fn span(&self) -> ::treesitter_types::Span {
1537 self.span
1538 }
1539}
1540#[derive(Debug, Clone, PartialEq, Eq)]
1541pub struct ClassDefinition<'tree> {
1542 pub span: ::treesitter_types::Span,
1543 pub body: Block<'tree>,
1544 pub name: Identifier<'tree>,
1545 pub superclasses: ::core::option::Option<ArgumentList<'tree>>,
1546 pub type_parameters: ::core::option::Option<TypeParameter<'tree>>,
1547}
1548impl<'tree> ::treesitter_types::FromNode<'tree> for ClassDefinition<'tree> {
1549 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1550 fn from_node(
1551 node: ::treesitter_types::tree_sitter::Node<'tree>,
1552 src: &'tree [u8],
1553 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1554 debug_assert_eq!(node.kind(), "class_definition");
1555 Ok(Self {
1556 span: ::treesitter_types::Span::from(node),
1557 body: {
1558 let child = node
1559 .child_by_field_name("body")
1560 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
1561 ::treesitter_types::runtime::maybe_grow_stack(|| {
1562 <Block as ::treesitter_types::FromNode>::from_node(child, src)
1563 })?
1564 },
1565 name: {
1566 let child = node
1567 .child_by_field_name("name")
1568 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
1569 ::treesitter_types::runtime::maybe_grow_stack(|| {
1570 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)
1571 })?
1572 },
1573 superclasses: match node.child_by_field_name("superclasses") {
1574 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
1575 <ArgumentList as ::treesitter_types::FromNode>::from_node(child, src)
1576 })?),
1577 None => None,
1578 },
1579 type_parameters: match node.child_by_field_name("type_parameters") {
1580 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
1581 <TypeParameter as ::treesitter_types::FromNode>::from_node(child, src)
1582 })?),
1583 None => None,
1584 },
1585 })
1586 }
1587}
1588impl ::treesitter_types::Spanned for ClassDefinition<'_> {
1589 fn span(&self) -> ::treesitter_types::Span {
1590 self.span
1591 }
1592}
1593#[derive(Debug, Clone, PartialEq, Eq)]
1594pub struct ClassPattern<'tree> {
1595 pub span: ::treesitter_types::Span,
1596 pub children: ::std::vec::Vec<ClassPatternChildren<'tree>>,
1597}
1598impl<'tree> ::treesitter_types::FromNode<'tree> for ClassPattern<'tree> {
1599 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1600 fn from_node(
1601 node: ::treesitter_types::tree_sitter::Node<'tree>,
1602 src: &'tree [u8],
1603 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1604 debug_assert_eq!(node.kind(), "class_pattern");
1605 Ok(Self {
1606 span: ::treesitter_types::Span::from(node),
1607 children: {
1608 #[allow(clippy::suspicious_else_formatting)]
1609 let non_field_children = {
1610 let mut cursor = node.walk();
1611 let mut result = ::std::vec::Vec::new();
1612 if cursor.goto_first_child() {
1613 loop {
1614 if cursor.field_name().is_none()
1615 && cursor.node().is_named()
1616 && !cursor.node().is_extra()
1617 {
1618 result.push(cursor.node());
1619 }
1620 if !cursor.goto_next_sibling() {
1621 break;
1622 }
1623 }
1624 }
1625 result
1626 };
1627 let mut items = ::std::vec::Vec::new();
1628 for child in non_field_children {
1629 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
1630 <ClassPatternChildren as ::treesitter_types::FromNode>::from_node(
1631 child, src,
1632 )
1633 })?);
1634 }
1635 items
1636 },
1637 })
1638 }
1639}
1640impl ::treesitter_types::Spanned for ClassPattern<'_> {
1641 fn span(&self) -> ::treesitter_types::Span {
1642 self.span
1643 }
1644}
1645#[derive(Debug, Clone, PartialEq, Eq)]
1646pub struct ComparisonOperator<'tree> {
1647 pub span: ::treesitter_types::Span,
1648 pub operators: ::std::vec::Vec<ComparisonOperatorOperators>,
1649 pub children: ::std::vec::Vec<PrimaryExpression<'tree>>,
1650}
1651impl<'tree> ::treesitter_types::FromNode<'tree> for ComparisonOperator<'tree> {
1652 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1653 fn from_node(
1654 node: ::treesitter_types::tree_sitter::Node<'tree>,
1655 src: &'tree [u8],
1656 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1657 debug_assert_eq!(node.kind(), "comparison_operator");
1658 Ok(Self {
1659 span: ::treesitter_types::Span::from(node),
1660 operators: {
1661 let mut cursor = node.walk();
1662 let mut items = ::std::vec::Vec::new();
1663 for child in node.children_by_field_name("operators", &mut cursor) {
1664 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
1665 <ComparisonOperatorOperators as ::treesitter_types::FromNode>::from_node(
1666 child, src,
1667 )
1668 })?);
1669 }
1670 items
1671 },
1672 children: {
1673 #[allow(clippy::suspicious_else_formatting)]
1674 let non_field_children = {
1675 let mut cursor = node.walk();
1676 let mut result = ::std::vec::Vec::new();
1677 if cursor.goto_first_child() {
1678 loop {
1679 if cursor.field_name().is_none()
1680 && cursor.node().is_named()
1681 && !cursor.node().is_extra()
1682 {
1683 result.push(cursor.node());
1684 }
1685 if !cursor.goto_next_sibling() {
1686 break;
1687 }
1688 }
1689 }
1690 result
1691 };
1692 let mut items = ::std::vec::Vec::new();
1693 for child in non_field_children {
1694 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
1695 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(child, src)
1696 })?);
1697 }
1698 items
1699 },
1700 })
1701 }
1702}
1703impl ::treesitter_types::Spanned for ComparisonOperator<'_> {
1704 fn span(&self) -> ::treesitter_types::Span {
1705 self.span
1706 }
1707}
1708#[derive(Debug, Clone, PartialEq, Eq)]
1709pub struct ComplexPattern<'tree> {
1710 pub span: ::treesitter_types::Span,
1711 pub children: ::std::vec::Vec<ComplexPatternChildren<'tree>>,
1712}
1713impl<'tree> ::treesitter_types::FromNode<'tree> for ComplexPattern<'tree> {
1714 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1715 fn from_node(
1716 node: ::treesitter_types::tree_sitter::Node<'tree>,
1717 src: &'tree [u8],
1718 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1719 debug_assert_eq!(node.kind(), "complex_pattern");
1720 Ok(Self {
1721 span: ::treesitter_types::Span::from(node),
1722 children: {
1723 #[allow(clippy::suspicious_else_formatting)]
1724 let non_field_children = {
1725 let mut cursor = node.walk();
1726 let mut result = ::std::vec::Vec::new();
1727 if cursor.goto_first_child() {
1728 loop {
1729 if cursor.field_name().is_none()
1730 && cursor.node().is_named()
1731 && !cursor.node().is_extra()
1732 {
1733 result.push(cursor.node());
1734 }
1735 if !cursor.goto_next_sibling() {
1736 break;
1737 }
1738 }
1739 }
1740 result
1741 };
1742 let mut items = ::std::vec::Vec::new();
1743 for child in non_field_children {
1744 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
1745 <ComplexPatternChildren as ::treesitter_types::FromNode>::from_node(
1746 child, src,
1747 )
1748 })?);
1749 }
1750 items
1751 },
1752 })
1753 }
1754}
1755impl ::treesitter_types::Spanned for ComplexPattern<'_> {
1756 fn span(&self) -> ::treesitter_types::Span {
1757 self.span
1758 }
1759}
1760#[derive(Debug, Clone, PartialEq, Eq)]
1761pub struct ConcatenatedString<'tree> {
1762 pub span: ::treesitter_types::Span,
1763 pub children: ::std::vec::Vec<String<'tree>>,
1764}
1765impl<'tree> ::treesitter_types::FromNode<'tree> for ConcatenatedString<'tree> {
1766 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1767 fn from_node(
1768 node: ::treesitter_types::tree_sitter::Node<'tree>,
1769 src: &'tree [u8],
1770 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1771 debug_assert_eq!(node.kind(), "concatenated_string");
1772 Ok(Self {
1773 span: ::treesitter_types::Span::from(node),
1774 children: {
1775 #[allow(clippy::suspicious_else_formatting)]
1776 let non_field_children = {
1777 let mut cursor = node.walk();
1778 let mut result = ::std::vec::Vec::new();
1779 if cursor.goto_first_child() {
1780 loop {
1781 if cursor.field_name().is_none()
1782 && cursor.node().is_named()
1783 && !cursor.node().is_extra()
1784 {
1785 result.push(cursor.node());
1786 }
1787 if !cursor.goto_next_sibling() {
1788 break;
1789 }
1790 }
1791 }
1792 result
1793 };
1794 let mut items = ::std::vec::Vec::new();
1795 for child in non_field_children {
1796 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
1797 <String as ::treesitter_types::FromNode>::from_node(child, src)
1798 })?);
1799 }
1800 items
1801 },
1802 })
1803 }
1804}
1805impl ::treesitter_types::Spanned for ConcatenatedString<'_> {
1806 fn span(&self) -> ::treesitter_types::Span {
1807 self.span
1808 }
1809}
1810#[derive(Debug, Clone, PartialEq, Eq)]
1811pub struct ConditionalExpression<'tree> {
1812 pub span: ::treesitter_types::Span,
1813 pub children: ::std::vec::Vec<Expression<'tree>>,
1814}
1815impl<'tree> ::treesitter_types::FromNode<'tree> for ConditionalExpression<'tree> {
1816 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1817 fn from_node(
1818 node: ::treesitter_types::tree_sitter::Node<'tree>,
1819 src: &'tree [u8],
1820 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1821 debug_assert_eq!(node.kind(), "conditional_expression");
1822 Ok(Self {
1823 span: ::treesitter_types::Span::from(node),
1824 children: {
1825 #[allow(clippy::suspicious_else_formatting)]
1826 let non_field_children = {
1827 let mut cursor = node.walk();
1828 let mut result = ::std::vec::Vec::new();
1829 if cursor.goto_first_child() {
1830 loop {
1831 if cursor.field_name().is_none()
1832 && cursor.node().is_named()
1833 && !cursor.node().is_extra()
1834 {
1835 result.push(cursor.node());
1836 }
1837 if !cursor.goto_next_sibling() {
1838 break;
1839 }
1840 }
1841 }
1842 result
1843 };
1844 let mut items = ::std::vec::Vec::new();
1845 for child in non_field_children {
1846 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
1847 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
1848 })?);
1849 }
1850 items
1851 },
1852 })
1853 }
1854}
1855impl ::treesitter_types::Spanned for ConditionalExpression<'_> {
1856 fn span(&self) -> ::treesitter_types::Span {
1857 self.span
1858 }
1859}
1860#[derive(Debug, Clone, PartialEq, Eq)]
1861pub struct ConstrainedType<'tree> {
1862 pub span: ::treesitter_types::Span,
1863 pub children: ::std::vec::Vec<Type<'tree>>,
1864}
1865impl<'tree> ::treesitter_types::FromNode<'tree> for ConstrainedType<'tree> {
1866 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1867 fn from_node(
1868 node: ::treesitter_types::tree_sitter::Node<'tree>,
1869 src: &'tree [u8],
1870 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1871 debug_assert_eq!(node.kind(), "constrained_type");
1872 Ok(Self {
1873 span: ::treesitter_types::Span::from(node),
1874 children: {
1875 #[allow(clippy::suspicious_else_formatting)]
1876 let non_field_children = {
1877 let mut cursor = node.walk();
1878 let mut result = ::std::vec::Vec::new();
1879 if cursor.goto_first_child() {
1880 loop {
1881 if cursor.field_name().is_none()
1882 && cursor.node().is_named()
1883 && !cursor.node().is_extra()
1884 {
1885 result.push(cursor.node());
1886 }
1887 if !cursor.goto_next_sibling() {
1888 break;
1889 }
1890 }
1891 }
1892 result
1893 };
1894 let mut items = ::std::vec::Vec::new();
1895 for child in non_field_children {
1896 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
1897 <Type as ::treesitter_types::FromNode>::from_node(child, src)
1898 })?);
1899 }
1900 items
1901 },
1902 })
1903 }
1904}
1905impl ::treesitter_types::Spanned for ConstrainedType<'_> {
1906 fn span(&self) -> ::treesitter_types::Span {
1907 self.span
1908 }
1909}
1910#[derive(Debug, Clone, PartialEq, Eq)]
1911pub struct ContinueStatement<'tree> {
1912 pub span: ::treesitter_types::Span,
1913 text: &'tree str,
1914}
1915impl<'tree> ::treesitter_types::FromNode<'tree> for ContinueStatement<'tree> {
1916 fn from_node(
1917 node: ::treesitter_types::tree_sitter::Node<'tree>,
1918 src: &'tree [u8],
1919 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1920 debug_assert_eq!(node.kind(), "continue_statement");
1921 Ok(Self {
1922 span: ::treesitter_types::Span::from(node),
1923 text: node.utf8_text(src)?,
1924 })
1925 }
1926}
1927impl<'tree> ::treesitter_types::LeafNode<'tree> for ContinueStatement<'tree> {
1928 fn text(&self) -> &'tree str {
1929 self.text
1930 }
1931}
1932impl ::treesitter_types::Spanned for ContinueStatement<'_> {
1933 fn span(&self) -> ::treesitter_types::Span {
1934 self.span
1935 }
1936}
1937#[derive(Debug, Clone, PartialEq, Eq)]
1938pub struct DecoratedDefinition<'tree> {
1939 pub span: ::treesitter_types::Span,
1940 pub definition: DecoratedDefinitionDefinition<'tree>,
1941 pub children: ::std::vec::Vec<Decorator<'tree>>,
1942}
1943impl<'tree> ::treesitter_types::FromNode<'tree> for DecoratedDefinition<'tree> {
1944 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1945 fn from_node(
1946 node: ::treesitter_types::tree_sitter::Node<'tree>,
1947 src: &'tree [u8],
1948 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1949 debug_assert_eq!(node.kind(), "decorated_definition");
1950 Ok(Self {
1951 span: ::treesitter_types::Span::from(node),
1952 definition: {
1953 let child = node.child_by_field_name("definition").ok_or_else(|| {
1954 ::treesitter_types::ParseError::missing_field("definition", node)
1955 })?;
1956 ::treesitter_types::runtime::maybe_grow_stack(|| {
1957 <DecoratedDefinitionDefinition as ::treesitter_types::FromNode>::from_node(
1958 child, src,
1959 )
1960 })?
1961 },
1962 children: {
1963 #[allow(clippy::suspicious_else_formatting)]
1964 let non_field_children = {
1965 let mut cursor = node.walk();
1966 let mut result = ::std::vec::Vec::new();
1967 if cursor.goto_first_child() {
1968 loop {
1969 if cursor.field_name().is_none()
1970 && cursor.node().is_named()
1971 && !cursor.node().is_extra()
1972 {
1973 result.push(cursor.node());
1974 }
1975 if !cursor.goto_next_sibling() {
1976 break;
1977 }
1978 }
1979 }
1980 result
1981 };
1982 let mut items = ::std::vec::Vec::new();
1983 for child in non_field_children {
1984 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
1985 <Decorator as ::treesitter_types::FromNode>::from_node(child, src)
1986 })?);
1987 }
1988 items
1989 },
1990 })
1991 }
1992}
1993impl ::treesitter_types::Spanned for DecoratedDefinition<'_> {
1994 fn span(&self) -> ::treesitter_types::Span {
1995 self.span
1996 }
1997}
1998#[derive(Debug, Clone, PartialEq, Eq)]
1999pub struct Decorator<'tree> {
2000 pub span: ::treesitter_types::Span,
2001 pub children: Expression<'tree>,
2002}
2003impl<'tree> ::treesitter_types::FromNode<'tree> for Decorator<'tree> {
2004 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2005 fn from_node(
2006 node: ::treesitter_types::tree_sitter::Node<'tree>,
2007 src: &'tree [u8],
2008 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2009 debug_assert_eq!(node.kind(), "decorator");
2010 Ok(Self {
2011 span: ::treesitter_types::Span::from(node),
2012 children: {
2013 #[allow(clippy::suspicious_else_formatting)]
2014 let non_field_children = {
2015 let mut cursor = node.walk();
2016 let mut result = ::std::vec::Vec::new();
2017 if cursor.goto_first_child() {
2018 loop {
2019 if cursor.field_name().is_none()
2020 && cursor.node().is_named()
2021 && !cursor.node().is_extra()
2022 {
2023 result.push(cursor.node());
2024 }
2025 if !cursor.goto_next_sibling() {
2026 break;
2027 }
2028 }
2029 }
2030 result
2031 };
2032 let child = if let Some(&c) = non_field_children.first() {
2033 c
2034 } else {
2035 let mut fallback_cursor = node.walk();
2036 let mut fallback_child = None;
2037 if fallback_cursor.goto_first_child() {
2038 loop {
2039 if fallback_cursor.field_name().is_none()
2040 && !fallback_cursor.node().is_extra()
2041 {
2042 let candidate = fallback_cursor.node();
2043 #[allow(clippy::needless_question_mark)]
2044 if (|| -> ::core::result::Result<
2045 _,
2046 ::treesitter_types::ParseError,
2047 > {
2048 let child = candidate;
2049 Ok(
2050 ::treesitter_types::runtime::maybe_grow_stack(|| <Expression as ::treesitter_types::FromNode>::from_node(
2051 child,
2052 src,
2053 ))?,
2054 )
2055 })()
2056 .is_ok()
2057 {
2058 fallback_child = Some(candidate);
2059 break;
2060 }
2061 }
2062 if !fallback_cursor.goto_next_sibling() {
2063 break;
2064 }
2065 }
2066 }
2067 if fallback_child.is_none() {
2068 let mut cursor2 = node.walk();
2069 if cursor2.goto_first_child() {
2070 loop {
2071 if cursor2.node().is_named() && !cursor2.node().is_extra() {
2072 let candidate = cursor2.node();
2073 #[allow(clippy::needless_question_mark)]
2074 if (|| -> ::core::result::Result<
2075 _,
2076 ::treesitter_types::ParseError,
2077 > {
2078 let child = candidate;
2079 Ok(
2080 ::treesitter_types::runtime::maybe_grow_stack(|| <Expression as ::treesitter_types::FromNode>::from_node(
2081 child,
2082 src,
2083 ))?,
2084 )
2085 })()
2086 .is_ok()
2087 {
2088 fallback_child = Some(candidate);
2089 break;
2090 }
2091 }
2092 if !cursor2.goto_next_sibling() {
2093 break;
2094 }
2095 }
2096 }
2097 }
2098 fallback_child.ok_or_else(|| {
2099 ::treesitter_types::ParseError::missing_field("children", node)
2100 })?
2101 };
2102 ::treesitter_types::runtime::maybe_grow_stack(|| {
2103 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
2104 })?
2105 },
2106 })
2107 }
2108}
2109impl ::treesitter_types::Spanned for Decorator<'_> {
2110 fn span(&self) -> ::treesitter_types::Span {
2111 self.span
2112 }
2113}
2114#[derive(Debug, Clone, PartialEq, Eq)]
2115pub struct DefaultParameter<'tree> {
2116 pub span: ::treesitter_types::Span,
2117 pub name: DefaultParameterName<'tree>,
2118 pub value: Expression<'tree>,
2119}
2120impl<'tree> ::treesitter_types::FromNode<'tree> for DefaultParameter<'tree> {
2121 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2122 fn from_node(
2123 node: ::treesitter_types::tree_sitter::Node<'tree>,
2124 src: &'tree [u8],
2125 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2126 debug_assert_eq!(node.kind(), "default_parameter");
2127 Ok(Self {
2128 span: ::treesitter_types::Span::from(node),
2129 name: {
2130 let child = node
2131 .child_by_field_name("name")
2132 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
2133 ::treesitter_types::runtime::maybe_grow_stack(|| {
2134 <DefaultParameterName as ::treesitter_types::FromNode>::from_node(child, src)
2135 })?
2136 },
2137 value: {
2138 let child = node
2139 .child_by_field_name("value")
2140 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
2141 ::treesitter_types::runtime::maybe_grow_stack(|| {
2142 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
2143 })?
2144 },
2145 })
2146 }
2147}
2148impl ::treesitter_types::Spanned for DefaultParameter<'_> {
2149 fn span(&self) -> ::treesitter_types::Span {
2150 self.span
2151 }
2152}
2153#[derive(Debug, Clone, PartialEq, Eq)]
2154pub struct DeleteStatement<'tree> {
2155 pub span: ::treesitter_types::Span,
2156 pub children: DeleteStatementChildren<'tree>,
2157}
2158impl<'tree> ::treesitter_types::FromNode<'tree> for DeleteStatement<'tree> {
2159 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2160 fn from_node(
2161 node: ::treesitter_types::tree_sitter::Node<'tree>,
2162 src: &'tree [u8],
2163 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2164 debug_assert_eq!(node.kind(), "delete_statement");
2165 Ok(Self {
2166 span: ::treesitter_types::Span::from(node),
2167 children: {
2168 #[allow(clippy::suspicious_else_formatting)]
2169 let non_field_children = {
2170 let mut cursor = node.walk();
2171 let mut result = ::std::vec::Vec::new();
2172 if cursor.goto_first_child() {
2173 loop {
2174 if cursor.field_name().is_none()
2175 && cursor.node().is_named()
2176 && !cursor.node().is_extra()
2177 {
2178 result.push(cursor.node());
2179 }
2180 if !cursor.goto_next_sibling() {
2181 break;
2182 }
2183 }
2184 }
2185 result
2186 };
2187 let child = if let Some(&c) = non_field_children.first() {
2188 c
2189 } else {
2190 let mut fallback_cursor = node.walk();
2191 let mut fallback_child = None;
2192 if fallback_cursor.goto_first_child() {
2193 loop {
2194 if fallback_cursor.field_name().is_none()
2195 && !fallback_cursor.node().is_extra()
2196 {
2197 let candidate = fallback_cursor.node();
2198 #[allow(clippy::needless_question_mark)]
2199 if (|| -> ::core::result::Result<
2200 _,
2201 ::treesitter_types::ParseError,
2202 > {
2203 let child = candidate;
2204 Ok(
2205 ::treesitter_types::runtime::maybe_grow_stack(|| <DeleteStatementChildren as ::treesitter_types::FromNode>::from_node(
2206 child,
2207 src,
2208 ))?,
2209 )
2210 })()
2211 .is_ok()
2212 {
2213 fallback_child = Some(candidate);
2214 break;
2215 }
2216 }
2217 if !fallback_cursor.goto_next_sibling() {
2218 break;
2219 }
2220 }
2221 }
2222 if fallback_child.is_none() {
2223 let mut cursor2 = node.walk();
2224 if cursor2.goto_first_child() {
2225 loop {
2226 if cursor2.node().is_named() && !cursor2.node().is_extra() {
2227 let candidate = cursor2.node();
2228 #[allow(clippy::needless_question_mark)]
2229 if (|| -> ::core::result::Result<
2230 _,
2231 ::treesitter_types::ParseError,
2232 > {
2233 let child = candidate;
2234 Ok(
2235 ::treesitter_types::runtime::maybe_grow_stack(|| <DeleteStatementChildren as ::treesitter_types::FromNode>::from_node(
2236 child,
2237 src,
2238 ))?,
2239 )
2240 })()
2241 .is_ok()
2242 {
2243 fallback_child = Some(candidate);
2244 break;
2245 }
2246 }
2247 if !cursor2.goto_next_sibling() {
2248 break;
2249 }
2250 }
2251 }
2252 }
2253 fallback_child.ok_or_else(|| {
2254 ::treesitter_types::ParseError::missing_field("children", node)
2255 })?
2256 };
2257 ::treesitter_types::runtime::maybe_grow_stack(|| {
2258 <DeleteStatementChildren as ::treesitter_types::FromNode>::from_node(child, src)
2259 })?
2260 },
2261 })
2262 }
2263}
2264impl ::treesitter_types::Spanned for DeleteStatement<'_> {
2265 fn span(&self) -> ::treesitter_types::Span {
2266 self.span
2267 }
2268}
2269#[derive(Debug, Clone, PartialEq, Eq)]
2270pub struct DictPattern<'tree> {
2271 pub span: ::treesitter_types::Span,
2272 pub key: ::std::vec::Vec<DictPatternKey<'tree>>,
2273 pub value: ::std::vec::Vec<CasePattern<'tree>>,
2274 pub children: ::std::vec::Vec<SplatPattern<'tree>>,
2275}
2276impl<'tree> ::treesitter_types::FromNode<'tree> for DictPattern<'tree> {
2277 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2278 fn from_node(
2279 node: ::treesitter_types::tree_sitter::Node<'tree>,
2280 src: &'tree [u8],
2281 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2282 debug_assert_eq!(node.kind(), "dict_pattern");
2283 Ok(Self {
2284 span: ::treesitter_types::Span::from(node),
2285 key: {
2286 let mut cursor = node.walk();
2287 let mut items = ::std::vec::Vec::new();
2288 for child in node.children_by_field_name("key", &mut cursor) {
2289 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
2290 <DictPatternKey as ::treesitter_types::FromNode>::from_node(child, src)
2291 })?);
2292 }
2293 items
2294 },
2295 value: {
2296 let mut cursor = node.walk();
2297 let mut items = ::std::vec::Vec::new();
2298 for child in node.children_by_field_name("value", &mut cursor) {
2299 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
2300 <CasePattern as ::treesitter_types::FromNode>::from_node(child, src)
2301 })?);
2302 }
2303 items
2304 },
2305 children: {
2306 #[allow(clippy::suspicious_else_formatting)]
2307 let non_field_children = {
2308 let mut cursor = node.walk();
2309 let mut result = ::std::vec::Vec::new();
2310 if cursor.goto_first_child() {
2311 loop {
2312 if cursor.field_name().is_none()
2313 && cursor.node().is_named()
2314 && !cursor.node().is_extra()
2315 {
2316 result.push(cursor.node());
2317 }
2318 if !cursor.goto_next_sibling() {
2319 break;
2320 }
2321 }
2322 }
2323 result
2324 };
2325 let mut items = ::std::vec::Vec::new();
2326 for child in non_field_children {
2327 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
2328 <SplatPattern as ::treesitter_types::FromNode>::from_node(child, src)
2329 })?);
2330 }
2331 items
2332 },
2333 })
2334 }
2335}
2336impl ::treesitter_types::Spanned for DictPattern<'_> {
2337 fn span(&self) -> ::treesitter_types::Span {
2338 self.span
2339 }
2340}
2341#[derive(Debug, Clone, PartialEq, Eq)]
2342pub struct Dictionary<'tree> {
2343 pub span: ::treesitter_types::Span,
2344 pub children: ::std::vec::Vec<DictionaryChildren<'tree>>,
2345}
2346impl<'tree> ::treesitter_types::FromNode<'tree> for Dictionary<'tree> {
2347 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2348 fn from_node(
2349 node: ::treesitter_types::tree_sitter::Node<'tree>,
2350 src: &'tree [u8],
2351 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2352 debug_assert_eq!(node.kind(), "dictionary");
2353 Ok(Self {
2354 span: ::treesitter_types::Span::from(node),
2355 children: {
2356 #[allow(clippy::suspicious_else_formatting)]
2357 let non_field_children = {
2358 let mut cursor = node.walk();
2359 let mut result = ::std::vec::Vec::new();
2360 if cursor.goto_first_child() {
2361 loop {
2362 if cursor.field_name().is_none()
2363 && cursor.node().is_named()
2364 && !cursor.node().is_extra()
2365 {
2366 result.push(cursor.node());
2367 }
2368 if !cursor.goto_next_sibling() {
2369 break;
2370 }
2371 }
2372 }
2373 result
2374 };
2375 let mut items = ::std::vec::Vec::new();
2376 for child in non_field_children {
2377 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
2378 <DictionaryChildren as ::treesitter_types::FromNode>::from_node(child, src)
2379 })?);
2380 }
2381 items
2382 },
2383 })
2384 }
2385}
2386impl ::treesitter_types::Spanned for Dictionary<'_> {
2387 fn span(&self) -> ::treesitter_types::Span {
2388 self.span
2389 }
2390}
2391#[derive(Debug, Clone, PartialEq, Eq)]
2392pub struct DictionaryComprehension<'tree> {
2393 pub span: ::treesitter_types::Span,
2394 pub body: Pair<'tree>,
2395 pub children: ::std::vec::Vec<DictionaryComprehensionChildren<'tree>>,
2396}
2397impl<'tree> ::treesitter_types::FromNode<'tree> for DictionaryComprehension<'tree> {
2398 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2399 fn from_node(
2400 node: ::treesitter_types::tree_sitter::Node<'tree>,
2401 src: &'tree [u8],
2402 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2403 debug_assert_eq!(node.kind(), "dictionary_comprehension");
2404 Ok(Self {
2405 span: ::treesitter_types::Span::from(node),
2406 body: {
2407 let child = node
2408 .child_by_field_name("body")
2409 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
2410 ::treesitter_types::runtime::maybe_grow_stack(|| {
2411 <Pair as ::treesitter_types::FromNode>::from_node(child, src)
2412 })?
2413 },
2414 children: {
2415 #[allow(clippy::suspicious_else_formatting)]
2416 let non_field_children = {
2417 let mut cursor = node.walk();
2418 let mut result = ::std::vec::Vec::new();
2419 if cursor.goto_first_child() {
2420 loop {
2421 if cursor.field_name().is_none()
2422 && cursor.node().is_named()
2423 && !cursor.node().is_extra()
2424 {
2425 result.push(cursor.node());
2426 }
2427 if !cursor.goto_next_sibling() {
2428 break;
2429 }
2430 }
2431 }
2432 result
2433 };
2434 let mut items = ::std::vec::Vec::new();
2435 for child in non_field_children {
2436 items
2437 .push(
2438 ::treesitter_types::runtime::maybe_grow_stack(|| <DictionaryComprehensionChildren as ::treesitter_types::FromNode>::from_node(
2439 child,
2440 src,
2441 ))?,
2442 );
2443 }
2444 items
2445 },
2446 })
2447 }
2448}
2449impl ::treesitter_types::Spanned for DictionaryComprehension<'_> {
2450 fn span(&self) -> ::treesitter_types::Span {
2451 self.span
2452 }
2453}
2454#[derive(Debug, Clone, PartialEq, Eq)]
2455pub struct DictionarySplat<'tree> {
2456 pub span: ::treesitter_types::Span,
2457 pub children: Expression<'tree>,
2458}
2459impl<'tree> ::treesitter_types::FromNode<'tree> for DictionarySplat<'tree> {
2460 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2461 fn from_node(
2462 node: ::treesitter_types::tree_sitter::Node<'tree>,
2463 src: &'tree [u8],
2464 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2465 debug_assert_eq!(node.kind(), "dictionary_splat");
2466 Ok(Self {
2467 span: ::treesitter_types::Span::from(node),
2468 children: {
2469 #[allow(clippy::suspicious_else_formatting)]
2470 let non_field_children = {
2471 let mut cursor = node.walk();
2472 let mut result = ::std::vec::Vec::new();
2473 if cursor.goto_first_child() {
2474 loop {
2475 if cursor.field_name().is_none()
2476 && cursor.node().is_named()
2477 && !cursor.node().is_extra()
2478 {
2479 result.push(cursor.node());
2480 }
2481 if !cursor.goto_next_sibling() {
2482 break;
2483 }
2484 }
2485 }
2486 result
2487 };
2488 let child = if let Some(&c) = non_field_children.first() {
2489 c
2490 } else {
2491 let mut fallback_cursor = node.walk();
2492 let mut fallback_child = None;
2493 if fallback_cursor.goto_first_child() {
2494 loop {
2495 if fallback_cursor.field_name().is_none()
2496 && !fallback_cursor.node().is_extra()
2497 {
2498 let candidate = fallback_cursor.node();
2499 #[allow(clippy::needless_question_mark)]
2500 if (|| -> ::core::result::Result<
2501 _,
2502 ::treesitter_types::ParseError,
2503 > {
2504 let child = candidate;
2505 Ok(
2506 ::treesitter_types::runtime::maybe_grow_stack(|| <Expression as ::treesitter_types::FromNode>::from_node(
2507 child,
2508 src,
2509 ))?,
2510 )
2511 })()
2512 .is_ok()
2513 {
2514 fallback_child = Some(candidate);
2515 break;
2516 }
2517 }
2518 if !fallback_cursor.goto_next_sibling() {
2519 break;
2520 }
2521 }
2522 }
2523 if fallback_child.is_none() {
2524 let mut cursor2 = node.walk();
2525 if cursor2.goto_first_child() {
2526 loop {
2527 if cursor2.node().is_named() && !cursor2.node().is_extra() {
2528 let candidate = cursor2.node();
2529 #[allow(clippy::needless_question_mark)]
2530 if (|| -> ::core::result::Result<
2531 _,
2532 ::treesitter_types::ParseError,
2533 > {
2534 let child = candidate;
2535 Ok(
2536 ::treesitter_types::runtime::maybe_grow_stack(|| <Expression as ::treesitter_types::FromNode>::from_node(
2537 child,
2538 src,
2539 ))?,
2540 )
2541 })()
2542 .is_ok()
2543 {
2544 fallback_child = Some(candidate);
2545 break;
2546 }
2547 }
2548 if !cursor2.goto_next_sibling() {
2549 break;
2550 }
2551 }
2552 }
2553 }
2554 fallback_child.ok_or_else(|| {
2555 ::treesitter_types::ParseError::missing_field("children", node)
2556 })?
2557 };
2558 ::treesitter_types::runtime::maybe_grow_stack(|| {
2559 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
2560 })?
2561 },
2562 })
2563 }
2564}
2565impl ::treesitter_types::Spanned for DictionarySplat<'_> {
2566 fn span(&self) -> ::treesitter_types::Span {
2567 self.span
2568 }
2569}
2570#[derive(Debug, Clone, PartialEq, Eq)]
2571pub struct DictionarySplatPattern<'tree> {
2572 pub span: ::treesitter_types::Span,
2573 pub children: DictionarySplatPatternChildren<'tree>,
2574}
2575impl<'tree> ::treesitter_types::FromNode<'tree> for DictionarySplatPattern<'tree> {
2576 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2577 fn from_node(
2578 node: ::treesitter_types::tree_sitter::Node<'tree>,
2579 src: &'tree [u8],
2580 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2581 debug_assert_eq!(node.kind(), "dictionary_splat_pattern");
2582 Ok(Self {
2583 span: ::treesitter_types::Span::from(node),
2584 children: {
2585 #[allow(clippy::suspicious_else_formatting)]
2586 let non_field_children = {
2587 let mut cursor = node.walk();
2588 let mut result = ::std::vec::Vec::new();
2589 if cursor.goto_first_child() {
2590 loop {
2591 if cursor.field_name().is_none()
2592 && cursor.node().is_named()
2593 && !cursor.node().is_extra()
2594 {
2595 result.push(cursor.node());
2596 }
2597 if !cursor.goto_next_sibling() {
2598 break;
2599 }
2600 }
2601 }
2602 result
2603 };
2604 let child = if let Some(&c) = non_field_children.first() {
2605 c
2606 } else {
2607 let mut fallback_cursor = node.walk();
2608 let mut fallback_child = None;
2609 if fallback_cursor.goto_first_child() {
2610 loop {
2611 if fallback_cursor.field_name().is_none()
2612 && !fallback_cursor.node().is_extra()
2613 {
2614 let candidate = fallback_cursor.node();
2615 #[allow(clippy::needless_question_mark)]
2616 if (|| -> ::core::result::Result<
2617 _,
2618 ::treesitter_types::ParseError,
2619 > {
2620 let child = candidate;
2621 Ok(
2622 ::treesitter_types::runtime::maybe_grow_stack(|| <DictionarySplatPatternChildren as ::treesitter_types::FromNode>::from_node(
2623 child,
2624 src,
2625 ))?,
2626 )
2627 })()
2628 .is_ok()
2629 {
2630 fallback_child = Some(candidate);
2631 break;
2632 }
2633 }
2634 if !fallback_cursor.goto_next_sibling() {
2635 break;
2636 }
2637 }
2638 }
2639 if fallback_child.is_none() {
2640 let mut cursor2 = node.walk();
2641 if cursor2.goto_first_child() {
2642 loop {
2643 if cursor2.node().is_named() && !cursor2.node().is_extra() {
2644 let candidate = cursor2.node();
2645 #[allow(clippy::needless_question_mark)]
2646 if (|| -> ::core::result::Result<
2647 _,
2648 ::treesitter_types::ParseError,
2649 > {
2650 let child = candidate;
2651 Ok(
2652 ::treesitter_types::runtime::maybe_grow_stack(|| <DictionarySplatPatternChildren as ::treesitter_types::FromNode>::from_node(
2653 child,
2654 src,
2655 ))?,
2656 )
2657 })()
2658 .is_ok()
2659 {
2660 fallback_child = Some(candidate);
2661 break;
2662 }
2663 }
2664 if !cursor2.goto_next_sibling() {
2665 break;
2666 }
2667 }
2668 }
2669 }
2670 fallback_child.ok_or_else(|| {
2671 ::treesitter_types::ParseError::missing_field("children", node)
2672 })?
2673 };
2674 ::treesitter_types::runtime::maybe_grow_stack(|| {
2675 <DictionarySplatPatternChildren as ::treesitter_types::FromNode>::from_node(
2676 child, src,
2677 )
2678 })?
2679 },
2680 })
2681 }
2682}
2683impl ::treesitter_types::Spanned for DictionarySplatPattern<'_> {
2684 fn span(&self) -> ::treesitter_types::Span {
2685 self.span
2686 }
2687}
2688#[derive(Debug, Clone, PartialEq, Eq)]
2689pub struct DottedName<'tree> {
2690 pub span: ::treesitter_types::Span,
2691 pub children: ::std::vec::Vec<Identifier<'tree>>,
2692}
2693impl<'tree> ::treesitter_types::FromNode<'tree> for DottedName<'tree> {
2694 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2695 fn from_node(
2696 node: ::treesitter_types::tree_sitter::Node<'tree>,
2697 src: &'tree [u8],
2698 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2699 debug_assert_eq!(node.kind(), "dotted_name");
2700 Ok(Self {
2701 span: ::treesitter_types::Span::from(node),
2702 children: {
2703 #[allow(clippy::suspicious_else_formatting)]
2704 let non_field_children = {
2705 let mut cursor = node.walk();
2706 let mut result = ::std::vec::Vec::new();
2707 if cursor.goto_first_child() {
2708 loop {
2709 if cursor.field_name().is_none()
2710 && cursor.node().is_named()
2711 && !cursor.node().is_extra()
2712 {
2713 result.push(cursor.node());
2714 }
2715 if !cursor.goto_next_sibling() {
2716 break;
2717 }
2718 }
2719 }
2720 result
2721 };
2722 let mut items = ::std::vec::Vec::new();
2723 for child in non_field_children {
2724 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
2725 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)
2726 })?);
2727 }
2728 items
2729 },
2730 })
2731 }
2732}
2733impl ::treesitter_types::Spanned for DottedName<'_> {
2734 fn span(&self) -> ::treesitter_types::Span {
2735 self.span
2736 }
2737}
2738#[derive(Debug, Clone, PartialEq, Eq)]
2739pub struct ElifClause<'tree> {
2740 pub span: ::treesitter_types::Span,
2741 pub condition: Expression<'tree>,
2742 pub consequence: Block<'tree>,
2743}
2744impl<'tree> ::treesitter_types::FromNode<'tree> for ElifClause<'tree> {
2745 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2746 fn from_node(
2747 node: ::treesitter_types::tree_sitter::Node<'tree>,
2748 src: &'tree [u8],
2749 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2750 debug_assert_eq!(node.kind(), "elif_clause");
2751 Ok(Self {
2752 span: ::treesitter_types::Span::from(node),
2753 condition: {
2754 let child = node.child_by_field_name("condition").ok_or_else(|| {
2755 ::treesitter_types::ParseError::missing_field("condition", node)
2756 })?;
2757 ::treesitter_types::runtime::maybe_grow_stack(|| {
2758 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
2759 })?
2760 },
2761 consequence: {
2762 let child = node.child_by_field_name("consequence").ok_or_else(|| {
2763 ::treesitter_types::ParseError::missing_field("consequence", node)
2764 })?;
2765 ::treesitter_types::runtime::maybe_grow_stack(|| {
2766 <Block as ::treesitter_types::FromNode>::from_node(child, src)
2767 })?
2768 },
2769 })
2770 }
2771}
2772impl ::treesitter_types::Spanned for ElifClause<'_> {
2773 fn span(&self) -> ::treesitter_types::Span {
2774 self.span
2775 }
2776}
2777#[derive(Debug, Clone, PartialEq, Eq)]
2778pub struct ElseClause<'tree> {
2779 pub span: ::treesitter_types::Span,
2780 pub body: Block<'tree>,
2781}
2782impl<'tree> ::treesitter_types::FromNode<'tree> for ElseClause<'tree> {
2783 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2784 fn from_node(
2785 node: ::treesitter_types::tree_sitter::Node<'tree>,
2786 src: &'tree [u8],
2787 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2788 debug_assert_eq!(node.kind(), "else_clause");
2789 Ok(Self {
2790 span: ::treesitter_types::Span::from(node),
2791 body: {
2792 let child = node
2793 .child_by_field_name("body")
2794 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
2795 ::treesitter_types::runtime::maybe_grow_stack(|| {
2796 <Block as ::treesitter_types::FromNode>::from_node(child, src)
2797 })?
2798 },
2799 })
2800 }
2801}
2802impl ::treesitter_types::Spanned for ElseClause<'_> {
2803 fn span(&self) -> ::treesitter_types::Span {
2804 self.span
2805 }
2806}
2807#[derive(Debug, Clone, PartialEq, Eq)]
2808pub struct ExceptClause<'tree> {
2809 pub span: ::treesitter_types::Span,
2810 pub alias: ::core::option::Option<Expression<'tree>>,
2811 pub value: ::std::vec::Vec<Expression<'tree>>,
2812 pub children: Block<'tree>,
2813}
2814impl<'tree> ::treesitter_types::FromNode<'tree> for ExceptClause<'tree> {
2815 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2816 fn from_node(
2817 node: ::treesitter_types::tree_sitter::Node<'tree>,
2818 src: &'tree [u8],
2819 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2820 debug_assert_eq!(node.kind(), "except_clause");
2821 Ok(Self {
2822 span: ::treesitter_types::Span::from(node),
2823 alias: match node.child_by_field_name("alias") {
2824 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
2825 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
2826 })?),
2827 None => None,
2828 },
2829 value: {
2830 let mut cursor = node.walk();
2831 let mut items = ::std::vec::Vec::new();
2832 for child in node.children_by_field_name("value", &mut cursor) {
2833 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
2834 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
2835 })?);
2836 }
2837 items
2838 },
2839 children: {
2840 #[allow(clippy::suspicious_else_formatting)]
2841 let non_field_children = {
2842 let mut cursor = node.walk();
2843 let mut result = ::std::vec::Vec::new();
2844 if cursor.goto_first_child() {
2845 loop {
2846 if cursor.field_name().is_none()
2847 && cursor.node().is_named()
2848 && !cursor.node().is_extra()
2849 {
2850 result.push(cursor.node());
2851 }
2852 if !cursor.goto_next_sibling() {
2853 break;
2854 }
2855 }
2856 }
2857 result
2858 };
2859 let child = if let Some(&c) = non_field_children.first() {
2860 c
2861 } else {
2862 let mut fallback_cursor = node.walk();
2863 let mut fallback_child = None;
2864 if fallback_cursor.goto_first_child() {
2865 loop {
2866 if fallback_cursor.field_name().is_none()
2867 && !fallback_cursor.node().is_extra()
2868 {
2869 let candidate = fallback_cursor.node();
2870 #[allow(clippy::needless_question_mark)]
2871 if (|| -> ::core::result::Result<
2872 _,
2873 ::treesitter_types::ParseError,
2874 > {
2875 let child = candidate;
2876 Ok(
2877 ::treesitter_types::runtime::maybe_grow_stack(|| <Block as ::treesitter_types::FromNode>::from_node(
2878 child,
2879 src,
2880 ))?,
2881 )
2882 })()
2883 .is_ok()
2884 {
2885 fallback_child = Some(candidate);
2886 break;
2887 }
2888 }
2889 if !fallback_cursor.goto_next_sibling() {
2890 break;
2891 }
2892 }
2893 }
2894 if fallback_child.is_none() {
2895 let mut cursor2 = node.walk();
2896 if cursor2.goto_first_child() {
2897 loop {
2898 if cursor2.node().is_named() && !cursor2.node().is_extra() {
2899 let candidate = cursor2.node();
2900 #[allow(clippy::needless_question_mark)]
2901 if (|| -> ::core::result::Result<
2902 _,
2903 ::treesitter_types::ParseError,
2904 > {
2905 let child = candidate;
2906 Ok(
2907 ::treesitter_types::runtime::maybe_grow_stack(|| <Block as ::treesitter_types::FromNode>::from_node(
2908 child,
2909 src,
2910 ))?,
2911 )
2912 })()
2913 .is_ok()
2914 {
2915 fallback_child = Some(candidate);
2916 break;
2917 }
2918 }
2919 if !cursor2.goto_next_sibling() {
2920 break;
2921 }
2922 }
2923 }
2924 }
2925 fallback_child.ok_or_else(|| {
2926 ::treesitter_types::ParseError::missing_field("children", node)
2927 })?
2928 };
2929 ::treesitter_types::runtime::maybe_grow_stack(|| {
2930 <Block as ::treesitter_types::FromNode>::from_node(child, src)
2931 })?
2932 },
2933 })
2934 }
2935}
2936impl ::treesitter_types::Spanned for ExceptClause<'_> {
2937 fn span(&self) -> ::treesitter_types::Span {
2938 self.span
2939 }
2940}
2941#[derive(Debug, Clone, PartialEq, Eq)]
2942pub struct ExecStatement<'tree> {
2943 pub span: ::treesitter_types::Span,
2944 pub code: ExecStatementCode<'tree>,
2945 pub children: ::std::vec::Vec<Expression<'tree>>,
2946}
2947impl<'tree> ::treesitter_types::FromNode<'tree> for ExecStatement<'tree> {
2948 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2949 fn from_node(
2950 node: ::treesitter_types::tree_sitter::Node<'tree>,
2951 src: &'tree [u8],
2952 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2953 debug_assert_eq!(node.kind(), "exec_statement");
2954 Ok(Self {
2955 span: ::treesitter_types::Span::from(node),
2956 code: {
2957 let child = node
2958 .child_by_field_name("code")
2959 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("code", node))?;
2960 ::treesitter_types::runtime::maybe_grow_stack(|| {
2961 <ExecStatementCode as ::treesitter_types::FromNode>::from_node(child, src)
2962 })?
2963 },
2964 children: {
2965 #[allow(clippy::suspicious_else_formatting)]
2966 let non_field_children = {
2967 let mut cursor = node.walk();
2968 let mut result = ::std::vec::Vec::new();
2969 if cursor.goto_first_child() {
2970 loop {
2971 if cursor.field_name().is_none()
2972 && cursor.node().is_named()
2973 && !cursor.node().is_extra()
2974 {
2975 result.push(cursor.node());
2976 }
2977 if !cursor.goto_next_sibling() {
2978 break;
2979 }
2980 }
2981 }
2982 result
2983 };
2984 let mut items = ::std::vec::Vec::new();
2985 for child in non_field_children {
2986 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
2987 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
2988 })?);
2989 }
2990 items
2991 },
2992 })
2993 }
2994}
2995impl ::treesitter_types::Spanned for ExecStatement<'_> {
2996 fn span(&self) -> ::treesitter_types::Span {
2997 self.span
2998 }
2999}
3000#[derive(Debug, Clone, PartialEq, Eq)]
3001pub struct ExpressionList<'tree> {
3002 pub span: ::treesitter_types::Span,
3003 pub children: ::std::vec::Vec<Expression<'tree>>,
3004}
3005impl<'tree> ::treesitter_types::FromNode<'tree> for ExpressionList<'tree> {
3006 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3007 fn from_node(
3008 node: ::treesitter_types::tree_sitter::Node<'tree>,
3009 src: &'tree [u8],
3010 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3011 debug_assert_eq!(node.kind(), "expression_list");
3012 Ok(Self {
3013 span: ::treesitter_types::Span::from(node),
3014 children: {
3015 #[allow(clippy::suspicious_else_formatting)]
3016 let non_field_children = {
3017 let mut cursor = node.walk();
3018 let mut result = ::std::vec::Vec::new();
3019 if cursor.goto_first_child() {
3020 loop {
3021 if cursor.field_name().is_none()
3022 && cursor.node().is_named()
3023 && !cursor.node().is_extra()
3024 {
3025 result.push(cursor.node());
3026 }
3027 if !cursor.goto_next_sibling() {
3028 break;
3029 }
3030 }
3031 }
3032 result
3033 };
3034 let mut items = ::std::vec::Vec::new();
3035 for child in non_field_children {
3036 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
3037 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
3038 })?);
3039 }
3040 items
3041 },
3042 })
3043 }
3044}
3045impl ::treesitter_types::Spanned for ExpressionList<'_> {
3046 fn span(&self) -> ::treesitter_types::Span {
3047 self.span
3048 }
3049}
3050#[derive(Debug, Clone, PartialEq, Eq)]
3051pub struct ExpressionStatement<'tree> {
3052 pub span: ::treesitter_types::Span,
3053 pub children: ::std::vec::Vec<ExpressionStatementChildren<'tree>>,
3054}
3055impl<'tree> ::treesitter_types::FromNode<'tree> for ExpressionStatement<'tree> {
3056 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3057 fn from_node(
3058 node: ::treesitter_types::tree_sitter::Node<'tree>,
3059 src: &'tree [u8],
3060 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3061 debug_assert_eq!(node.kind(), "expression_statement");
3062 Ok(Self {
3063 span: ::treesitter_types::Span::from(node),
3064 children: {
3065 #[allow(clippy::suspicious_else_formatting)]
3066 let non_field_children = {
3067 let mut cursor = node.walk();
3068 let mut result = ::std::vec::Vec::new();
3069 if cursor.goto_first_child() {
3070 loop {
3071 if cursor.field_name().is_none()
3072 && cursor.node().is_named()
3073 && !cursor.node().is_extra()
3074 {
3075 result.push(cursor.node());
3076 }
3077 if !cursor.goto_next_sibling() {
3078 break;
3079 }
3080 }
3081 }
3082 result
3083 };
3084 let mut items = ::std::vec::Vec::new();
3085 for child in non_field_children {
3086 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
3087 <ExpressionStatementChildren as ::treesitter_types::FromNode>::from_node(
3088 child, src,
3089 )
3090 })?);
3091 }
3092 items
3093 },
3094 })
3095 }
3096}
3097impl ::treesitter_types::Spanned for ExpressionStatement<'_> {
3098 fn span(&self) -> ::treesitter_types::Span {
3099 self.span
3100 }
3101}
3102#[derive(Debug, Clone, PartialEq, Eq)]
3103pub struct FinallyClause<'tree> {
3104 pub span: ::treesitter_types::Span,
3105 pub children: Block<'tree>,
3106}
3107impl<'tree> ::treesitter_types::FromNode<'tree> for FinallyClause<'tree> {
3108 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3109 fn from_node(
3110 node: ::treesitter_types::tree_sitter::Node<'tree>,
3111 src: &'tree [u8],
3112 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3113 debug_assert_eq!(node.kind(), "finally_clause");
3114 Ok(Self {
3115 span: ::treesitter_types::Span::from(node),
3116 children: {
3117 #[allow(clippy::suspicious_else_formatting)]
3118 let non_field_children = {
3119 let mut cursor = node.walk();
3120 let mut result = ::std::vec::Vec::new();
3121 if cursor.goto_first_child() {
3122 loop {
3123 if cursor.field_name().is_none()
3124 && cursor.node().is_named()
3125 && !cursor.node().is_extra()
3126 {
3127 result.push(cursor.node());
3128 }
3129 if !cursor.goto_next_sibling() {
3130 break;
3131 }
3132 }
3133 }
3134 result
3135 };
3136 let child = if let Some(&c) = non_field_children.first() {
3137 c
3138 } else {
3139 let mut fallback_cursor = node.walk();
3140 let mut fallback_child = None;
3141 if fallback_cursor.goto_first_child() {
3142 loop {
3143 if fallback_cursor.field_name().is_none()
3144 && !fallback_cursor.node().is_extra()
3145 {
3146 let candidate = fallback_cursor.node();
3147 #[allow(clippy::needless_question_mark)]
3148 if (|| -> ::core::result::Result<
3149 _,
3150 ::treesitter_types::ParseError,
3151 > {
3152 let child = candidate;
3153 Ok(
3154 ::treesitter_types::runtime::maybe_grow_stack(|| <Block as ::treesitter_types::FromNode>::from_node(
3155 child,
3156 src,
3157 ))?,
3158 )
3159 })()
3160 .is_ok()
3161 {
3162 fallback_child = Some(candidate);
3163 break;
3164 }
3165 }
3166 if !fallback_cursor.goto_next_sibling() {
3167 break;
3168 }
3169 }
3170 }
3171 if fallback_child.is_none() {
3172 let mut cursor2 = node.walk();
3173 if cursor2.goto_first_child() {
3174 loop {
3175 if cursor2.node().is_named() && !cursor2.node().is_extra() {
3176 let candidate = cursor2.node();
3177 #[allow(clippy::needless_question_mark)]
3178 if (|| -> ::core::result::Result<
3179 _,
3180 ::treesitter_types::ParseError,
3181 > {
3182 let child = candidate;
3183 Ok(
3184 ::treesitter_types::runtime::maybe_grow_stack(|| <Block as ::treesitter_types::FromNode>::from_node(
3185 child,
3186 src,
3187 ))?,
3188 )
3189 })()
3190 .is_ok()
3191 {
3192 fallback_child = Some(candidate);
3193 break;
3194 }
3195 }
3196 if !cursor2.goto_next_sibling() {
3197 break;
3198 }
3199 }
3200 }
3201 }
3202 fallback_child.ok_or_else(|| {
3203 ::treesitter_types::ParseError::missing_field("children", node)
3204 })?
3205 };
3206 ::treesitter_types::runtime::maybe_grow_stack(|| {
3207 <Block as ::treesitter_types::FromNode>::from_node(child, src)
3208 })?
3209 },
3210 })
3211 }
3212}
3213impl ::treesitter_types::Spanned for FinallyClause<'_> {
3214 fn span(&self) -> ::treesitter_types::Span {
3215 self.span
3216 }
3217}
3218#[derive(Debug, Clone, PartialEq, Eq)]
3219pub struct ForInClause<'tree> {
3220 pub span: ::treesitter_types::Span,
3221 pub left: ForInClauseLeft<'tree>,
3222 pub right: ::std::vec::Vec<ForInClauseRight<'tree>>,
3223}
3224impl<'tree> ::treesitter_types::FromNode<'tree> for ForInClause<'tree> {
3225 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3226 fn from_node(
3227 node: ::treesitter_types::tree_sitter::Node<'tree>,
3228 src: &'tree [u8],
3229 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3230 debug_assert_eq!(node.kind(), "for_in_clause");
3231 Ok(Self {
3232 span: ::treesitter_types::Span::from(node),
3233 left: {
3234 let child = node
3235 .child_by_field_name("left")
3236 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
3237 ::treesitter_types::runtime::maybe_grow_stack(|| {
3238 <ForInClauseLeft as ::treesitter_types::FromNode>::from_node(child, src)
3239 })?
3240 },
3241 right: {
3242 let mut cursor = node.walk();
3243 let mut items = ::std::vec::Vec::new();
3244 for child in node.children_by_field_name("right", &mut cursor) {
3245 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
3246 <ForInClauseRight as ::treesitter_types::FromNode>::from_node(child, src)
3247 })?);
3248 }
3249 items
3250 },
3251 })
3252 }
3253}
3254impl ::treesitter_types::Spanned for ForInClause<'_> {
3255 fn span(&self) -> ::treesitter_types::Span {
3256 self.span
3257 }
3258}
3259#[derive(Debug, Clone, PartialEq, Eq)]
3260pub struct ForStatement<'tree> {
3261 pub span: ::treesitter_types::Span,
3262 pub alternative: ::core::option::Option<ElseClause<'tree>>,
3263 pub body: Block<'tree>,
3264 pub left: ForStatementLeft<'tree>,
3265 pub right: ForStatementRight<'tree>,
3266}
3267impl<'tree> ::treesitter_types::FromNode<'tree> for ForStatement<'tree> {
3268 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3269 fn from_node(
3270 node: ::treesitter_types::tree_sitter::Node<'tree>,
3271 src: &'tree [u8],
3272 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3273 debug_assert_eq!(node.kind(), "for_statement");
3274 Ok(Self {
3275 span: ::treesitter_types::Span::from(node),
3276 alternative: match node.child_by_field_name("alternative") {
3277 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
3278 <ElseClause as ::treesitter_types::FromNode>::from_node(child, src)
3279 })?),
3280 None => None,
3281 },
3282 body: {
3283 let child = node
3284 .child_by_field_name("body")
3285 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
3286 ::treesitter_types::runtime::maybe_grow_stack(|| {
3287 <Block as ::treesitter_types::FromNode>::from_node(child, src)
3288 })?
3289 },
3290 left: {
3291 let child = node
3292 .child_by_field_name("left")
3293 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
3294 ::treesitter_types::runtime::maybe_grow_stack(|| {
3295 <ForStatementLeft as ::treesitter_types::FromNode>::from_node(child, src)
3296 })?
3297 },
3298 right: {
3299 let child = node
3300 .child_by_field_name("right")
3301 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
3302 ::treesitter_types::runtime::maybe_grow_stack(|| {
3303 <ForStatementRight as ::treesitter_types::FromNode>::from_node(child, src)
3304 })?
3305 },
3306 })
3307 }
3308}
3309impl ::treesitter_types::Spanned for ForStatement<'_> {
3310 fn span(&self) -> ::treesitter_types::Span {
3311 self.span
3312 }
3313}
3314#[derive(Debug, Clone, PartialEq, Eq)]
3315pub struct FormatExpression<'tree> {
3316 pub span: ::treesitter_types::Span,
3317 pub expression: FormatExpressionExpression<'tree>,
3318 pub format_specifier: ::core::option::Option<FormatSpecifier<'tree>>,
3319 pub type_conversion: ::core::option::Option<TypeConversion<'tree>>,
3320}
3321impl<'tree> ::treesitter_types::FromNode<'tree> for FormatExpression<'tree> {
3322 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3323 fn from_node(
3324 node: ::treesitter_types::tree_sitter::Node<'tree>,
3325 src: &'tree [u8],
3326 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3327 debug_assert_eq!(node.kind(), "format_expression");
3328 Ok(Self {
3329 span: ::treesitter_types::Span::from(node),
3330 expression: {
3331 let child = node.child_by_field_name("expression").ok_or_else(|| {
3332 ::treesitter_types::ParseError::missing_field("expression", node)
3333 })?;
3334 ::treesitter_types::runtime::maybe_grow_stack(|| {
3335 <FormatExpressionExpression as ::treesitter_types::FromNode>::from_node(
3336 child, src,
3337 )
3338 })?
3339 },
3340 format_specifier: match node.child_by_field_name("format_specifier") {
3341 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
3342 <FormatSpecifier as ::treesitter_types::FromNode>::from_node(child, src)
3343 })?),
3344 None => None,
3345 },
3346 type_conversion: match node.child_by_field_name("type_conversion") {
3347 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
3348 <TypeConversion as ::treesitter_types::FromNode>::from_node(child, src)
3349 })?),
3350 None => None,
3351 },
3352 })
3353 }
3354}
3355impl ::treesitter_types::Spanned for FormatExpression<'_> {
3356 fn span(&self) -> ::treesitter_types::Span {
3357 self.span
3358 }
3359}
3360#[derive(Debug, Clone, PartialEq, Eq)]
3361pub struct FormatSpecifier<'tree> {
3362 pub span: ::treesitter_types::Span,
3363 pub children: ::std::vec::Vec<FormatExpression<'tree>>,
3364}
3365impl<'tree> ::treesitter_types::FromNode<'tree> for FormatSpecifier<'tree> {
3366 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3367 fn from_node(
3368 node: ::treesitter_types::tree_sitter::Node<'tree>,
3369 src: &'tree [u8],
3370 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3371 debug_assert_eq!(node.kind(), "format_specifier");
3372 Ok(Self {
3373 span: ::treesitter_types::Span::from(node),
3374 children: {
3375 #[allow(clippy::suspicious_else_formatting)]
3376 let non_field_children = {
3377 let mut cursor = node.walk();
3378 let mut result = ::std::vec::Vec::new();
3379 if cursor.goto_first_child() {
3380 loop {
3381 if cursor.field_name().is_none()
3382 && cursor.node().is_named()
3383 && !cursor.node().is_extra()
3384 {
3385 result.push(cursor.node());
3386 }
3387 if !cursor.goto_next_sibling() {
3388 break;
3389 }
3390 }
3391 }
3392 result
3393 };
3394 let mut items = ::std::vec::Vec::new();
3395 for child in non_field_children {
3396 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
3397 <FormatExpression as ::treesitter_types::FromNode>::from_node(child, src)
3398 })?);
3399 }
3400 items
3401 },
3402 })
3403 }
3404}
3405impl ::treesitter_types::Spanned for FormatSpecifier<'_> {
3406 fn span(&self) -> ::treesitter_types::Span {
3407 self.span
3408 }
3409}
3410#[derive(Debug, Clone, PartialEq, Eq)]
3411pub struct FunctionDefinition<'tree> {
3412 pub span: ::treesitter_types::Span,
3413 pub body: Block<'tree>,
3414 pub name: Identifier<'tree>,
3415 pub parameters: Parameters<'tree>,
3416 pub return_type: ::core::option::Option<Type<'tree>>,
3417 pub type_parameters: ::core::option::Option<TypeParameter<'tree>>,
3418}
3419impl<'tree> ::treesitter_types::FromNode<'tree> for FunctionDefinition<'tree> {
3420 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3421 fn from_node(
3422 node: ::treesitter_types::tree_sitter::Node<'tree>,
3423 src: &'tree [u8],
3424 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3425 debug_assert_eq!(node.kind(), "function_definition");
3426 Ok(Self {
3427 span: ::treesitter_types::Span::from(node),
3428 body: {
3429 let child = node
3430 .child_by_field_name("body")
3431 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
3432 ::treesitter_types::runtime::maybe_grow_stack(|| {
3433 <Block as ::treesitter_types::FromNode>::from_node(child, src)
3434 })?
3435 },
3436 name: {
3437 let child = node
3438 .child_by_field_name("name")
3439 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
3440 ::treesitter_types::runtime::maybe_grow_stack(|| {
3441 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)
3442 })?
3443 },
3444 parameters: {
3445 let child = node.child_by_field_name("parameters").ok_or_else(|| {
3446 ::treesitter_types::ParseError::missing_field("parameters", node)
3447 })?;
3448 ::treesitter_types::runtime::maybe_grow_stack(|| {
3449 <Parameters as ::treesitter_types::FromNode>::from_node(child, src)
3450 })?
3451 },
3452 return_type: match node.child_by_field_name("return_type") {
3453 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
3454 <Type as ::treesitter_types::FromNode>::from_node(child, src)
3455 })?),
3456 None => None,
3457 },
3458 type_parameters: match node.child_by_field_name("type_parameters") {
3459 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
3460 <TypeParameter as ::treesitter_types::FromNode>::from_node(child, src)
3461 })?),
3462 None => None,
3463 },
3464 })
3465 }
3466}
3467impl ::treesitter_types::Spanned for FunctionDefinition<'_> {
3468 fn span(&self) -> ::treesitter_types::Span {
3469 self.span
3470 }
3471}
3472#[derive(Debug, Clone, PartialEq, Eq)]
3473pub struct FutureImportStatement<'tree> {
3474 pub span: ::treesitter_types::Span,
3475 pub name: ::std::vec::Vec<FutureImportStatementName<'tree>>,
3476}
3477impl<'tree> ::treesitter_types::FromNode<'tree> for FutureImportStatement<'tree> {
3478 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3479 fn from_node(
3480 node: ::treesitter_types::tree_sitter::Node<'tree>,
3481 src: &'tree [u8],
3482 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3483 debug_assert_eq!(node.kind(), "future_import_statement");
3484 Ok(Self {
3485 span: ::treesitter_types::Span::from(node),
3486 name: {
3487 let mut cursor = node.walk();
3488 let mut items = ::std::vec::Vec::new();
3489 for child in node.children_by_field_name("name", &mut cursor) {
3490 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
3491 <FutureImportStatementName as ::treesitter_types::FromNode>::from_node(
3492 child, src,
3493 )
3494 })?);
3495 }
3496 items
3497 },
3498 })
3499 }
3500}
3501impl ::treesitter_types::Spanned for FutureImportStatement<'_> {
3502 fn span(&self) -> ::treesitter_types::Span {
3503 self.span
3504 }
3505}
3506#[derive(Debug, Clone, PartialEq, Eq)]
3507pub struct GeneratorExpression<'tree> {
3508 pub span: ::treesitter_types::Span,
3509 pub body: Expression<'tree>,
3510 pub children: ::std::vec::Vec<GeneratorExpressionChildren<'tree>>,
3511}
3512impl<'tree> ::treesitter_types::FromNode<'tree> for GeneratorExpression<'tree> {
3513 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3514 fn from_node(
3515 node: ::treesitter_types::tree_sitter::Node<'tree>,
3516 src: &'tree [u8],
3517 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3518 debug_assert_eq!(node.kind(), "generator_expression");
3519 Ok(Self {
3520 span: ::treesitter_types::Span::from(node),
3521 body: {
3522 let child = node
3523 .child_by_field_name("body")
3524 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
3525 ::treesitter_types::runtime::maybe_grow_stack(|| {
3526 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
3527 })?
3528 },
3529 children: {
3530 #[allow(clippy::suspicious_else_formatting)]
3531 let non_field_children = {
3532 let mut cursor = node.walk();
3533 let mut result = ::std::vec::Vec::new();
3534 if cursor.goto_first_child() {
3535 loop {
3536 if cursor.field_name().is_none()
3537 && cursor.node().is_named()
3538 && !cursor.node().is_extra()
3539 {
3540 result.push(cursor.node());
3541 }
3542 if !cursor.goto_next_sibling() {
3543 break;
3544 }
3545 }
3546 }
3547 result
3548 };
3549 let mut items = ::std::vec::Vec::new();
3550 for child in non_field_children {
3551 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
3552 <GeneratorExpressionChildren as ::treesitter_types::FromNode>::from_node(
3553 child, src,
3554 )
3555 })?);
3556 }
3557 items
3558 },
3559 })
3560 }
3561}
3562impl ::treesitter_types::Spanned for GeneratorExpression<'_> {
3563 fn span(&self) -> ::treesitter_types::Span {
3564 self.span
3565 }
3566}
3567#[derive(Debug, Clone, PartialEq, Eq)]
3568pub struct GenericType<'tree> {
3569 pub span: ::treesitter_types::Span,
3570 pub children: ::std::vec::Vec<GenericTypeChildren<'tree>>,
3571}
3572impl<'tree> ::treesitter_types::FromNode<'tree> for GenericType<'tree> {
3573 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3574 fn from_node(
3575 node: ::treesitter_types::tree_sitter::Node<'tree>,
3576 src: &'tree [u8],
3577 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3578 debug_assert_eq!(node.kind(), "generic_type");
3579 Ok(Self {
3580 span: ::treesitter_types::Span::from(node),
3581 children: {
3582 #[allow(clippy::suspicious_else_formatting)]
3583 let non_field_children = {
3584 let mut cursor = node.walk();
3585 let mut result = ::std::vec::Vec::new();
3586 if cursor.goto_first_child() {
3587 loop {
3588 if cursor.field_name().is_none()
3589 && cursor.node().is_named()
3590 && !cursor.node().is_extra()
3591 {
3592 result.push(cursor.node());
3593 }
3594 if !cursor.goto_next_sibling() {
3595 break;
3596 }
3597 }
3598 }
3599 result
3600 };
3601 let mut items = ::std::vec::Vec::new();
3602 for child in non_field_children {
3603 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
3604 <GenericTypeChildren as ::treesitter_types::FromNode>::from_node(child, src)
3605 })?);
3606 }
3607 items
3608 },
3609 })
3610 }
3611}
3612impl ::treesitter_types::Spanned for GenericType<'_> {
3613 fn span(&self) -> ::treesitter_types::Span {
3614 self.span
3615 }
3616}
3617#[derive(Debug, Clone, PartialEq, Eq)]
3618pub struct GlobalStatement<'tree> {
3619 pub span: ::treesitter_types::Span,
3620 pub children: ::std::vec::Vec<Identifier<'tree>>,
3621}
3622impl<'tree> ::treesitter_types::FromNode<'tree> for GlobalStatement<'tree> {
3623 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3624 fn from_node(
3625 node: ::treesitter_types::tree_sitter::Node<'tree>,
3626 src: &'tree [u8],
3627 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3628 debug_assert_eq!(node.kind(), "global_statement");
3629 Ok(Self {
3630 span: ::treesitter_types::Span::from(node),
3631 children: {
3632 #[allow(clippy::suspicious_else_formatting)]
3633 let non_field_children = {
3634 let mut cursor = node.walk();
3635 let mut result = ::std::vec::Vec::new();
3636 if cursor.goto_first_child() {
3637 loop {
3638 if cursor.field_name().is_none()
3639 && cursor.node().is_named()
3640 && !cursor.node().is_extra()
3641 {
3642 result.push(cursor.node());
3643 }
3644 if !cursor.goto_next_sibling() {
3645 break;
3646 }
3647 }
3648 }
3649 result
3650 };
3651 let mut items = ::std::vec::Vec::new();
3652 for child in non_field_children {
3653 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
3654 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)
3655 })?);
3656 }
3657 items
3658 },
3659 })
3660 }
3661}
3662impl ::treesitter_types::Spanned for GlobalStatement<'_> {
3663 fn span(&self) -> ::treesitter_types::Span {
3664 self.span
3665 }
3666}
3667#[derive(Debug, Clone, PartialEq, Eq)]
3668pub struct IfClause<'tree> {
3669 pub span: ::treesitter_types::Span,
3670 pub children: Expression<'tree>,
3671}
3672impl<'tree> ::treesitter_types::FromNode<'tree> for IfClause<'tree> {
3673 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3674 fn from_node(
3675 node: ::treesitter_types::tree_sitter::Node<'tree>,
3676 src: &'tree [u8],
3677 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3678 debug_assert_eq!(node.kind(), "if_clause");
3679 Ok(Self {
3680 span: ::treesitter_types::Span::from(node),
3681 children: {
3682 #[allow(clippy::suspicious_else_formatting)]
3683 let non_field_children = {
3684 let mut cursor = node.walk();
3685 let mut result = ::std::vec::Vec::new();
3686 if cursor.goto_first_child() {
3687 loop {
3688 if cursor.field_name().is_none()
3689 && cursor.node().is_named()
3690 && !cursor.node().is_extra()
3691 {
3692 result.push(cursor.node());
3693 }
3694 if !cursor.goto_next_sibling() {
3695 break;
3696 }
3697 }
3698 }
3699 result
3700 };
3701 let child = if let Some(&c) = non_field_children.first() {
3702 c
3703 } else {
3704 let mut fallback_cursor = node.walk();
3705 let mut fallback_child = None;
3706 if fallback_cursor.goto_first_child() {
3707 loop {
3708 if fallback_cursor.field_name().is_none()
3709 && !fallback_cursor.node().is_extra()
3710 {
3711 let candidate = fallback_cursor.node();
3712 #[allow(clippy::needless_question_mark)]
3713 if (|| -> ::core::result::Result<
3714 _,
3715 ::treesitter_types::ParseError,
3716 > {
3717 let child = candidate;
3718 Ok(
3719 ::treesitter_types::runtime::maybe_grow_stack(|| <Expression as ::treesitter_types::FromNode>::from_node(
3720 child,
3721 src,
3722 ))?,
3723 )
3724 })()
3725 .is_ok()
3726 {
3727 fallback_child = Some(candidate);
3728 break;
3729 }
3730 }
3731 if !fallback_cursor.goto_next_sibling() {
3732 break;
3733 }
3734 }
3735 }
3736 if fallback_child.is_none() {
3737 let mut cursor2 = node.walk();
3738 if cursor2.goto_first_child() {
3739 loop {
3740 if cursor2.node().is_named() && !cursor2.node().is_extra() {
3741 let candidate = cursor2.node();
3742 #[allow(clippy::needless_question_mark)]
3743 if (|| -> ::core::result::Result<
3744 _,
3745 ::treesitter_types::ParseError,
3746 > {
3747 let child = candidate;
3748 Ok(
3749 ::treesitter_types::runtime::maybe_grow_stack(|| <Expression as ::treesitter_types::FromNode>::from_node(
3750 child,
3751 src,
3752 ))?,
3753 )
3754 })()
3755 .is_ok()
3756 {
3757 fallback_child = Some(candidate);
3758 break;
3759 }
3760 }
3761 if !cursor2.goto_next_sibling() {
3762 break;
3763 }
3764 }
3765 }
3766 }
3767 fallback_child.ok_or_else(|| {
3768 ::treesitter_types::ParseError::missing_field("children", node)
3769 })?
3770 };
3771 ::treesitter_types::runtime::maybe_grow_stack(|| {
3772 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
3773 })?
3774 },
3775 })
3776 }
3777}
3778impl ::treesitter_types::Spanned for IfClause<'_> {
3779 fn span(&self) -> ::treesitter_types::Span {
3780 self.span
3781 }
3782}
3783#[derive(Debug, Clone, PartialEq, Eq)]
3784pub struct IfStatement<'tree> {
3785 pub span: ::treesitter_types::Span,
3786 pub alternative: ::std::vec::Vec<IfStatementAlternative<'tree>>,
3787 pub condition: Expression<'tree>,
3788 pub consequence: Block<'tree>,
3789}
3790impl<'tree> ::treesitter_types::FromNode<'tree> for IfStatement<'tree> {
3791 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3792 fn from_node(
3793 node: ::treesitter_types::tree_sitter::Node<'tree>,
3794 src: &'tree [u8],
3795 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3796 debug_assert_eq!(node.kind(), "if_statement");
3797 Ok(Self {
3798 span: ::treesitter_types::Span::from(node),
3799 alternative: {
3800 let mut cursor = node.walk();
3801 let mut items = ::std::vec::Vec::new();
3802 for child in node.children_by_field_name("alternative", &mut cursor) {
3803 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
3804 <IfStatementAlternative as ::treesitter_types::FromNode>::from_node(
3805 child, src,
3806 )
3807 })?);
3808 }
3809 items
3810 },
3811 condition: {
3812 let child = node.child_by_field_name("condition").ok_or_else(|| {
3813 ::treesitter_types::ParseError::missing_field("condition", node)
3814 })?;
3815 ::treesitter_types::runtime::maybe_grow_stack(|| {
3816 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
3817 })?
3818 },
3819 consequence: {
3820 let child = node.child_by_field_name("consequence").ok_or_else(|| {
3821 ::treesitter_types::ParseError::missing_field("consequence", node)
3822 })?;
3823 ::treesitter_types::runtime::maybe_grow_stack(|| {
3824 <Block as ::treesitter_types::FromNode>::from_node(child, src)
3825 })?
3826 },
3827 })
3828 }
3829}
3830impl ::treesitter_types::Spanned for IfStatement<'_> {
3831 fn span(&self) -> ::treesitter_types::Span {
3832 self.span
3833 }
3834}
3835#[derive(Debug, Clone, PartialEq, Eq)]
3836pub struct ImportFromStatement<'tree> {
3837 pub span: ::treesitter_types::Span,
3838 pub module_name: ImportFromStatementModuleName<'tree>,
3839 pub name: ::std::vec::Vec<ImportFromStatementName<'tree>>,
3840 pub children: ::core::option::Option<WildcardImport<'tree>>,
3841}
3842impl<'tree> ::treesitter_types::FromNode<'tree> for ImportFromStatement<'tree> {
3843 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3844 fn from_node(
3845 node: ::treesitter_types::tree_sitter::Node<'tree>,
3846 src: &'tree [u8],
3847 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3848 debug_assert_eq!(node.kind(), "import_from_statement");
3849 Ok(Self {
3850 span: ::treesitter_types::Span::from(node),
3851 module_name: {
3852 let child = node.child_by_field_name("module_name").ok_or_else(|| {
3853 ::treesitter_types::ParseError::missing_field("module_name", node)
3854 })?;
3855 ::treesitter_types::runtime::maybe_grow_stack(|| {
3856 <ImportFromStatementModuleName as ::treesitter_types::FromNode>::from_node(
3857 child, src,
3858 )
3859 })?
3860 },
3861 name: {
3862 let mut cursor = node.walk();
3863 let mut items = ::std::vec::Vec::new();
3864 for child in node.children_by_field_name("name", &mut cursor) {
3865 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
3866 <ImportFromStatementName as ::treesitter_types::FromNode>::from_node(
3867 child, src,
3868 )
3869 })?);
3870 }
3871 items
3872 },
3873 children: {
3874 #[allow(clippy::suspicious_else_formatting)]
3875 let non_field_children = {
3876 let mut cursor = node.walk();
3877 let mut result = ::std::vec::Vec::new();
3878 if cursor.goto_first_child() {
3879 loop {
3880 if cursor.field_name().is_none()
3881 && cursor.node().is_named()
3882 && !cursor.node().is_extra()
3883 {
3884 result.push(cursor.node());
3885 }
3886 if !cursor.goto_next_sibling() {
3887 break;
3888 }
3889 }
3890 }
3891 result
3892 };
3893 match non_field_children.first() {
3894 Some(&child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
3895 <WildcardImport as ::treesitter_types::FromNode>::from_node(child, src)
3896 })?),
3897 None => None,
3898 }
3899 },
3900 })
3901 }
3902}
3903impl ::treesitter_types::Spanned for ImportFromStatement<'_> {
3904 fn span(&self) -> ::treesitter_types::Span {
3905 self.span
3906 }
3907}
3908#[derive(Debug, Clone, PartialEq, Eq)]
3909pub struct ImportPrefix<'tree> {
3910 pub span: ::treesitter_types::Span,
3911 text: &'tree str,
3912}
3913impl<'tree> ::treesitter_types::FromNode<'tree> for ImportPrefix<'tree> {
3914 fn from_node(
3915 node: ::treesitter_types::tree_sitter::Node<'tree>,
3916 src: &'tree [u8],
3917 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3918 debug_assert_eq!(node.kind(), "import_prefix");
3919 Ok(Self {
3920 span: ::treesitter_types::Span::from(node),
3921 text: node.utf8_text(src)?,
3922 })
3923 }
3924}
3925impl<'tree> ::treesitter_types::LeafNode<'tree> for ImportPrefix<'tree> {
3926 fn text(&self) -> &'tree str {
3927 self.text
3928 }
3929}
3930impl ::treesitter_types::Spanned for ImportPrefix<'_> {
3931 fn span(&self) -> ::treesitter_types::Span {
3932 self.span
3933 }
3934}
3935#[derive(Debug, Clone, PartialEq, Eq)]
3936pub struct ImportStatement<'tree> {
3937 pub span: ::treesitter_types::Span,
3938 pub name: ::std::vec::Vec<ImportStatementName<'tree>>,
3939}
3940impl<'tree> ::treesitter_types::FromNode<'tree> for ImportStatement<'tree> {
3941 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3942 fn from_node(
3943 node: ::treesitter_types::tree_sitter::Node<'tree>,
3944 src: &'tree [u8],
3945 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3946 debug_assert_eq!(node.kind(), "import_statement");
3947 Ok(Self {
3948 span: ::treesitter_types::Span::from(node),
3949 name: {
3950 let mut cursor = node.walk();
3951 let mut items = ::std::vec::Vec::new();
3952 for child in node.children_by_field_name("name", &mut cursor) {
3953 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
3954 <ImportStatementName as ::treesitter_types::FromNode>::from_node(child, src)
3955 })?);
3956 }
3957 items
3958 },
3959 })
3960 }
3961}
3962impl ::treesitter_types::Spanned for ImportStatement<'_> {
3963 fn span(&self) -> ::treesitter_types::Span {
3964 self.span
3965 }
3966}
3967#[derive(Debug, Clone, PartialEq, Eq)]
3968pub struct Interpolation<'tree> {
3969 pub span: ::treesitter_types::Span,
3970 pub expression: InterpolationExpression<'tree>,
3971 pub format_specifier: ::core::option::Option<FormatSpecifier<'tree>>,
3972 pub type_conversion: ::core::option::Option<TypeConversion<'tree>>,
3973}
3974impl<'tree> ::treesitter_types::FromNode<'tree> for Interpolation<'tree> {
3975 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3976 fn from_node(
3977 node: ::treesitter_types::tree_sitter::Node<'tree>,
3978 src: &'tree [u8],
3979 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3980 debug_assert_eq!(node.kind(), "interpolation");
3981 Ok(Self {
3982 span: ::treesitter_types::Span::from(node),
3983 expression: {
3984 let child = node.child_by_field_name("expression").ok_or_else(|| {
3985 ::treesitter_types::ParseError::missing_field("expression", node)
3986 })?;
3987 ::treesitter_types::runtime::maybe_grow_stack(|| {
3988 <InterpolationExpression as ::treesitter_types::FromNode>::from_node(child, src)
3989 })?
3990 },
3991 format_specifier: match node.child_by_field_name("format_specifier") {
3992 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
3993 <FormatSpecifier as ::treesitter_types::FromNode>::from_node(child, src)
3994 })?),
3995 None => None,
3996 },
3997 type_conversion: match node.child_by_field_name("type_conversion") {
3998 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
3999 <TypeConversion as ::treesitter_types::FromNode>::from_node(child, src)
4000 })?),
4001 None => None,
4002 },
4003 })
4004 }
4005}
4006impl ::treesitter_types::Spanned for Interpolation<'_> {
4007 fn span(&self) -> ::treesitter_types::Span {
4008 self.span
4009 }
4010}
4011#[derive(Debug, Clone, PartialEq, Eq)]
4012pub struct KeywordArgument<'tree> {
4013 pub span: ::treesitter_types::Span,
4014 pub name: Identifier<'tree>,
4015 pub value: Expression<'tree>,
4016}
4017impl<'tree> ::treesitter_types::FromNode<'tree> for KeywordArgument<'tree> {
4018 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4019 fn from_node(
4020 node: ::treesitter_types::tree_sitter::Node<'tree>,
4021 src: &'tree [u8],
4022 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4023 debug_assert_eq!(node.kind(), "keyword_argument");
4024 Ok(Self {
4025 span: ::treesitter_types::Span::from(node),
4026 name: {
4027 let child = node
4028 .child_by_field_name("name")
4029 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
4030 ::treesitter_types::runtime::maybe_grow_stack(|| {
4031 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)
4032 })?
4033 },
4034 value: {
4035 let child = node
4036 .child_by_field_name("value")
4037 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
4038 ::treesitter_types::runtime::maybe_grow_stack(|| {
4039 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
4040 })?
4041 },
4042 })
4043 }
4044}
4045impl ::treesitter_types::Spanned for KeywordArgument<'_> {
4046 fn span(&self) -> ::treesitter_types::Span {
4047 self.span
4048 }
4049}
4050#[derive(Debug, Clone, PartialEq, Eq)]
4051pub struct KeywordPattern<'tree> {
4052 pub span: ::treesitter_types::Span,
4053 pub children: ::std::vec::Vec<KeywordPatternChildren<'tree>>,
4054}
4055impl<'tree> ::treesitter_types::FromNode<'tree> for KeywordPattern<'tree> {
4056 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4057 fn from_node(
4058 node: ::treesitter_types::tree_sitter::Node<'tree>,
4059 src: &'tree [u8],
4060 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4061 debug_assert_eq!(node.kind(), "keyword_pattern");
4062 Ok(Self {
4063 span: ::treesitter_types::Span::from(node),
4064 children: {
4065 #[allow(clippy::suspicious_else_formatting)]
4066 let non_field_children = {
4067 let mut cursor = node.walk();
4068 let mut result = ::std::vec::Vec::new();
4069 if cursor.goto_first_child() {
4070 loop {
4071 if cursor.field_name().is_none()
4072 && cursor.node().is_named()
4073 && !cursor.node().is_extra()
4074 {
4075 result.push(cursor.node());
4076 }
4077 if !cursor.goto_next_sibling() {
4078 break;
4079 }
4080 }
4081 }
4082 result
4083 };
4084 let mut items = ::std::vec::Vec::new();
4085 for child in non_field_children {
4086 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
4087 <KeywordPatternChildren as ::treesitter_types::FromNode>::from_node(
4088 child, src,
4089 )
4090 })?);
4091 }
4092 items
4093 },
4094 })
4095 }
4096}
4097impl ::treesitter_types::Spanned for KeywordPattern<'_> {
4098 fn span(&self) -> ::treesitter_types::Span {
4099 self.span
4100 }
4101}
4102#[derive(Debug, Clone, PartialEq, Eq)]
4103pub struct KeywordSeparator<'tree> {
4104 pub span: ::treesitter_types::Span,
4105 text: &'tree str,
4106}
4107impl<'tree> ::treesitter_types::FromNode<'tree> for KeywordSeparator<'tree> {
4108 fn from_node(
4109 node: ::treesitter_types::tree_sitter::Node<'tree>,
4110 src: &'tree [u8],
4111 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4112 debug_assert_eq!(node.kind(), "keyword_separator");
4113 Ok(Self {
4114 span: ::treesitter_types::Span::from(node),
4115 text: node.utf8_text(src)?,
4116 })
4117 }
4118}
4119impl<'tree> ::treesitter_types::LeafNode<'tree> for KeywordSeparator<'tree> {
4120 fn text(&self) -> &'tree str {
4121 self.text
4122 }
4123}
4124impl ::treesitter_types::Spanned for KeywordSeparator<'_> {
4125 fn span(&self) -> ::treesitter_types::Span {
4126 self.span
4127 }
4128}
4129#[derive(Debug, Clone, PartialEq, Eq)]
4130pub struct Lambda<'tree> {
4131 pub span: ::treesitter_types::Span,
4132 pub body: Expression<'tree>,
4133 pub parameters: ::core::option::Option<LambdaParameters<'tree>>,
4134}
4135impl<'tree> ::treesitter_types::FromNode<'tree> for Lambda<'tree> {
4136 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4137 fn from_node(
4138 node: ::treesitter_types::tree_sitter::Node<'tree>,
4139 src: &'tree [u8],
4140 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4141 debug_assert_eq!(node.kind(), "lambda");
4142 Ok(Self {
4143 span: ::treesitter_types::Span::from(node),
4144 body: {
4145 let child = node
4146 .child_by_field_name("body")
4147 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
4148 ::treesitter_types::runtime::maybe_grow_stack(|| {
4149 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
4150 })?
4151 },
4152 parameters: match node.child_by_field_name("parameters") {
4153 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
4154 <LambdaParameters as ::treesitter_types::FromNode>::from_node(child, src)
4155 })?),
4156 None => None,
4157 },
4158 })
4159 }
4160}
4161impl ::treesitter_types::Spanned for Lambda<'_> {
4162 fn span(&self) -> ::treesitter_types::Span {
4163 self.span
4164 }
4165}
4166#[derive(Debug, Clone, PartialEq, Eq)]
4167pub struct LambdaParameters<'tree> {
4168 pub span: ::treesitter_types::Span,
4169 pub children: ::std::vec::Vec<Parameter<'tree>>,
4170}
4171impl<'tree> ::treesitter_types::FromNode<'tree> for LambdaParameters<'tree> {
4172 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4173 fn from_node(
4174 node: ::treesitter_types::tree_sitter::Node<'tree>,
4175 src: &'tree [u8],
4176 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4177 debug_assert_eq!(node.kind(), "lambda_parameters");
4178 Ok(Self {
4179 span: ::treesitter_types::Span::from(node),
4180 children: {
4181 #[allow(clippy::suspicious_else_formatting)]
4182 let non_field_children = {
4183 let mut cursor = node.walk();
4184 let mut result = ::std::vec::Vec::new();
4185 if cursor.goto_first_child() {
4186 loop {
4187 if cursor.field_name().is_none()
4188 && cursor.node().is_named()
4189 && !cursor.node().is_extra()
4190 {
4191 result.push(cursor.node());
4192 }
4193 if !cursor.goto_next_sibling() {
4194 break;
4195 }
4196 }
4197 }
4198 result
4199 };
4200 let mut items = ::std::vec::Vec::new();
4201 for child in non_field_children {
4202 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
4203 <Parameter as ::treesitter_types::FromNode>::from_node(child, src)
4204 })?);
4205 }
4206 items
4207 },
4208 })
4209 }
4210}
4211impl ::treesitter_types::Spanned for LambdaParameters<'_> {
4212 fn span(&self) -> ::treesitter_types::Span {
4213 self.span
4214 }
4215}
4216#[derive(Debug, Clone, PartialEq, Eq)]
4217pub struct List<'tree> {
4218 pub span: ::treesitter_types::Span,
4219 pub children: ::std::vec::Vec<ListChildren<'tree>>,
4220}
4221impl<'tree> ::treesitter_types::FromNode<'tree> for List<'tree> {
4222 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4223 fn from_node(
4224 node: ::treesitter_types::tree_sitter::Node<'tree>,
4225 src: &'tree [u8],
4226 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4227 debug_assert_eq!(node.kind(), "list");
4228 Ok(Self {
4229 span: ::treesitter_types::Span::from(node),
4230 children: {
4231 #[allow(clippy::suspicious_else_formatting)]
4232 let non_field_children = {
4233 let mut cursor = node.walk();
4234 let mut result = ::std::vec::Vec::new();
4235 if cursor.goto_first_child() {
4236 loop {
4237 if cursor.field_name().is_none()
4238 && cursor.node().is_named()
4239 && !cursor.node().is_extra()
4240 {
4241 result.push(cursor.node());
4242 }
4243 if !cursor.goto_next_sibling() {
4244 break;
4245 }
4246 }
4247 }
4248 result
4249 };
4250 let mut items = ::std::vec::Vec::new();
4251 for child in non_field_children {
4252 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
4253 <ListChildren as ::treesitter_types::FromNode>::from_node(child, src)
4254 })?);
4255 }
4256 items
4257 },
4258 })
4259 }
4260}
4261impl ::treesitter_types::Spanned for List<'_> {
4262 fn span(&self) -> ::treesitter_types::Span {
4263 self.span
4264 }
4265}
4266#[derive(Debug, Clone, PartialEq, Eq)]
4267pub struct ListComprehension<'tree> {
4268 pub span: ::treesitter_types::Span,
4269 pub body: Expression<'tree>,
4270 pub children: ::std::vec::Vec<ListComprehensionChildren<'tree>>,
4271}
4272impl<'tree> ::treesitter_types::FromNode<'tree> for ListComprehension<'tree> {
4273 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4274 fn from_node(
4275 node: ::treesitter_types::tree_sitter::Node<'tree>,
4276 src: &'tree [u8],
4277 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4278 debug_assert_eq!(node.kind(), "list_comprehension");
4279 Ok(Self {
4280 span: ::treesitter_types::Span::from(node),
4281 body: {
4282 let child = node
4283 .child_by_field_name("body")
4284 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
4285 ::treesitter_types::runtime::maybe_grow_stack(|| {
4286 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
4287 })?
4288 },
4289 children: {
4290 #[allow(clippy::suspicious_else_formatting)]
4291 let non_field_children = {
4292 let mut cursor = node.walk();
4293 let mut result = ::std::vec::Vec::new();
4294 if cursor.goto_first_child() {
4295 loop {
4296 if cursor.field_name().is_none()
4297 && cursor.node().is_named()
4298 && !cursor.node().is_extra()
4299 {
4300 result.push(cursor.node());
4301 }
4302 if !cursor.goto_next_sibling() {
4303 break;
4304 }
4305 }
4306 }
4307 result
4308 };
4309 let mut items = ::std::vec::Vec::new();
4310 for child in non_field_children {
4311 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
4312 <ListComprehensionChildren as ::treesitter_types::FromNode>::from_node(
4313 child, src,
4314 )
4315 })?);
4316 }
4317 items
4318 },
4319 })
4320 }
4321}
4322impl ::treesitter_types::Spanned for ListComprehension<'_> {
4323 fn span(&self) -> ::treesitter_types::Span {
4324 self.span
4325 }
4326}
4327#[derive(Debug, Clone, PartialEq, Eq)]
4328pub struct ListPattern<'tree> {
4329 pub span: ::treesitter_types::Span,
4330 pub children: ::std::vec::Vec<ListPatternChildren<'tree>>,
4331}
4332impl<'tree> ::treesitter_types::FromNode<'tree> for ListPattern<'tree> {
4333 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4334 fn from_node(
4335 node: ::treesitter_types::tree_sitter::Node<'tree>,
4336 src: &'tree [u8],
4337 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4338 debug_assert_eq!(node.kind(), "list_pattern");
4339 Ok(Self {
4340 span: ::treesitter_types::Span::from(node),
4341 children: {
4342 #[allow(clippy::suspicious_else_formatting)]
4343 let non_field_children = {
4344 let mut cursor = node.walk();
4345 let mut result = ::std::vec::Vec::new();
4346 if cursor.goto_first_child() {
4347 loop {
4348 if cursor.field_name().is_none()
4349 && cursor.node().is_named()
4350 && !cursor.node().is_extra()
4351 {
4352 result.push(cursor.node());
4353 }
4354 if !cursor.goto_next_sibling() {
4355 break;
4356 }
4357 }
4358 }
4359 result
4360 };
4361 let mut items = ::std::vec::Vec::new();
4362 for child in non_field_children {
4363 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
4364 <ListPatternChildren as ::treesitter_types::FromNode>::from_node(child, src)
4365 })?);
4366 }
4367 items
4368 },
4369 })
4370 }
4371}
4372impl ::treesitter_types::Spanned for ListPattern<'_> {
4373 fn span(&self) -> ::treesitter_types::Span {
4374 self.span
4375 }
4376}
4377#[derive(Debug, Clone, PartialEq, Eq)]
4378pub struct ListSplat<'tree> {
4379 pub span: ::treesitter_types::Span,
4380 pub children: ListSplatChildren<'tree>,
4381}
4382impl<'tree> ::treesitter_types::FromNode<'tree> for ListSplat<'tree> {
4383 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4384 fn from_node(
4385 node: ::treesitter_types::tree_sitter::Node<'tree>,
4386 src: &'tree [u8],
4387 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4388 debug_assert_eq!(node.kind(), "list_splat");
4389 Ok(Self {
4390 span: ::treesitter_types::Span::from(node),
4391 children: {
4392 #[allow(clippy::suspicious_else_formatting)]
4393 let non_field_children = {
4394 let mut cursor = node.walk();
4395 let mut result = ::std::vec::Vec::new();
4396 if cursor.goto_first_child() {
4397 loop {
4398 if cursor.field_name().is_none()
4399 && cursor.node().is_named()
4400 && !cursor.node().is_extra()
4401 {
4402 result.push(cursor.node());
4403 }
4404 if !cursor.goto_next_sibling() {
4405 break;
4406 }
4407 }
4408 }
4409 result
4410 };
4411 let child = if let Some(&c) = non_field_children.first() {
4412 c
4413 } else {
4414 let mut fallback_cursor = node.walk();
4415 let mut fallback_child = None;
4416 if fallback_cursor.goto_first_child() {
4417 loop {
4418 if fallback_cursor.field_name().is_none()
4419 && !fallback_cursor.node().is_extra()
4420 {
4421 let candidate = fallback_cursor.node();
4422 #[allow(clippy::needless_question_mark)]
4423 if (|| -> ::core::result::Result<
4424 _,
4425 ::treesitter_types::ParseError,
4426 > {
4427 let child = candidate;
4428 Ok(
4429 ::treesitter_types::runtime::maybe_grow_stack(|| <ListSplatChildren as ::treesitter_types::FromNode>::from_node(
4430 child,
4431 src,
4432 ))?,
4433 )
4434 })()
4435 .is_ok()
4436 {
4437 fallback_child = Some(candidate);
4438 break;
4439 }
4440 }
4441 if !fallback_cursor.goto_next_sibling() {
4442 break;
4443 }
4444 }
4445 }
4446 if fallback_child.is_none() {
4447 let mut cursor2 = node.walk();
4448 if cursor2.goto_first_child() {
4449 loop {
4450 if cursor2.node().is_named() && !cursor2.node().is_extra() {
4451 let candidate = cursor2.node();
4452 #[allow(clippy::needless_question_mark)]
4453 if (|| -> ::core::result::Result<
4454 _,
4455 ::treesitter_types::ParseError,
4456 > {
4457 let child = candidate;
4458 Ok(
4459 ::treesitter_types::runtime::maybe_grow_stack(|| <ListSplatChildren as ::treesitter_types::FromNode>::from_node(
4460 child,
4461 src,
4462 ))?,
4463 )
4464 })()
4465 .is_ok()
4466 {
4467 fallback_child = Some(candidate);
4468 break;
4469 }
4470 }
4471 if !cursor2.goto_next_sibling() {
4472 break;
4473 }
4474 }
4475 }
4476 }
4477 fallback_child.ok_or_else(|| {
4478 ::treesitter_types::ParseError::missing_field("children", node)
4479 })?
4480 };
4481 ::treesitter_types::runtime::maybe_grow_stack(|| {
4482 <ListSplatChildren as ::treesitter_types::FromNode>::from_node(child, src)
4483 })?
4484 },
4485 })
4486 }
4487}
4488impl ::treesitter_types::Spanned for ListSplat<'_> {
4489 fn span(&self) -> ::treesitter_types::Span {
4490 self.span
4491 }
4492}
4493#[derive(Debug, Clone, PartialEq, Eq)]
4494pub struct ListSplatPattern<'tree> {
4495 pub span: ::treesitter_types::Span,
4496 pub children: ListSplatPatternChildren<'tree>,
4497}
4498impl<'tree> ::treesitter_types::FromNode<'tree> for ListSplatPattern<'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(), "list_splat_pattern");
4505 Ok(Self {
4506 span: ::treesitter_types::Span::from(node),
4507 children: {
4508 #[allow(clippy::suspicious_else_formatting)]
4509 let non_field_children = {
4510 let mut cursor = node.walk();
4511 let mut result = ::std::vec::Vec::new();
4512 if cursor.goto_first_child() {
4513 loop {
4514 if cursor.field_name().is_none()
4515 && cursor.node().is_named()
4516 && !cursor.node().is_extra()
4517 {
4518 result.push(cursor.node());
4519 }
4520 if !cursor.goto_next_sibling() {
4521 break;
4522 }
4523 }
4524 }
4525 result
4526 };
4527 let child = if let Some(&c) = non_field_children.first() {
4528 c
4529 } else {
4530 let mut fallback_cursor = node.walk();
4531 let mut fallback_child = None;
4532 if fallback_cursor.goto_first_child() {
4533 loop {
4534 if fallback_cursor.field_name().is_none()
4535 && !fallback_cursor.node().is_extra()
4536 {
4537 let candidate = fallback_cursor.node();
4538 #[allow(clippy::needless_question_mark)]
4539 if (|| -> ::core::result::Result<
4540 _,
4541 ::treesitter_types::ParseError,
4542 > {
4543 let child = candidate;
4544 Ok(
4545 ::treesitter_types::runtime::maybe_grow_stack(|| <ListSplatPatternChildren as ::treesitter_types::FromNode>::from_node(
4546 child,
4547 src,
4548 ))?,
4549 )
4550 })()
4551 .is_ok()
4552 {
4553 fallback_child = Some(candidate);
4554 break;
4555 }
4556 }
4557 if !fallback_cursor.goto_next_sibling() {
4558 break;
4559 }
4560 }
4561 }
4562 if fallback_child.is_none() {
4563 let mut cursor2 = node.walk();
4564 if cursor2.goto_first_child() {
4565 loop {
4566 if cursor2.node().is_named() && !cursor2.node().is_extra() {
4567 let candidate = cursor2.node();
4568 #[allow(clippy::needless_question_mark)]
4569 if (|| -> ::core::result::Result<
4570 _,
4571 ::treesitter_types::ParseError,
4572 > {
4573 let child = candidate;
4574 Ok(
4575 ::treesitter_types::runtime::maybe_grow_stack(|| <ListSplatPatternChildren as ::treesitter_types::FromNode>::from_node(
4576 child,
4577 src,
4578 ))?,
4579 )
4580 })()
4581 .is_ok()
4582 {
4583 fallback_child = Some(candidate);
4584 break;
4585 }
4586 }
4587 if !cursor2.goto_next_sibling() {
4588 break;
4589 }
4590 }
4591 }
4592 }
4593 fallback_child.ok_or_else(|| {
4594 ::treesitter_types::ParseError::missing_field("children", node)
4595 })?
4596 };
4597 ::treesitter_types::runtime::maybe_grow_stack(|| {
4598 <ListSplatPatternChildren as ::treesitter_types::FromNode>::from_node(
4599 child, src,
4600 )
4601 })?
4602 },
4603 })
4604 }
4605}
4606impl ::treesitter_types::Spanned for ListSplatPattern<'_> {
4607 fn span(&self) -> ::treesitter_types::Span {
4608 self.span
4609 }
4610}
4611#[derive(Debug, Clone, PartialEq, Eq)]
4612pub struct MatchStatement<'tree> {
4613 pub span: ::treesitter_types::Span,
4614 pub body: Block<'tree>,
4615 pub subject: ::std::vec::Vec<Expression<'tree>>,
4616}
4617impl<'tree> ::treesitter_types::FromNode<'tree> for MatchStatement<'tree> {
4618 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4619 fn from_node(
4620 node: ::treesitter_types::tree_sitter::Node<'tree>,
4621 src: &'tree [u8],
4622 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4623 debug_assert_eq!(node.kind(), "match_statement");
4624 Ok(Self {
4625 span: ::treesitter_types::Span::from(node),
4626 body: {
4627 let child = node
4628 .child_by_field_name("body")
4629 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
4630 ::treesitter_types::runtime::maybe_grow_stack(|| {
4631 <Block as ::treesitter_types::FromNode>::from_node(child, src)
4632 })?
4633 },
4634 subject: {
4635 let mut cursor = node.walk();
4636 let mut items = ::std::vec::Vec::new();
4637 for child in node.children_by_field_name("subject", &mut cursor) {
4638 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
4639 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
4640 })?);
4641 }
4642 items
4643 },
4644 })
4645 }
4646}
4647impl ::treesitter_types::Spanned for MatchStatement<'_> {
4648 fn span(&self) -> ::treesitter_types::Span {
4649 self.span
4650 }
4651}
4652#[derive(Debug, Clone, PartialEq, Eq)]
4653pub struct MemberType<'tree> {
4654 pub span: ::treesitter_types::Span,
4655 pub children: ::std::vec::Vec<MemberTypeChildren<'tree>>,
4656}
4657impl<'tree> ::treesitter_types::FromNode<'tree> for MemberType<'tree> {
4658 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4659 fn from_node(
4660 node: ::treesitter_types::tree_sitter::Node<'tree>,
4661 src: &'tree [u8],
4662 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4663 debug_assert_eq!(node.kind(), "member_type");
4664 Ok(Self {
4665 span: ::treesitter_types::Span::from(node),
4666 children: {
4667 #[allow(clippy::suspicious_else_formatting)]
4668 let non_field_children = {
4669 let mut cursor = node.walk();
4670 let mut result = ::std::vec::Vec::new();
4671 if cursor.goto_first_child() {
4672 loop {
4673 if cursor.field_name().is_none()
4674 && cursor.node().is_named()
4675 && !cursor.node().is_extra()
4676 {
4677 result.push(cursor.node());
4678 }
4679 if !cursor.goto_next_sibling() {
4680 break;
4681 }
4682 }
4683 }
4684 result
4685 };
4686 let mut items = ::std::vec::Vec::new();
4687 for child in non_field_children {
4688 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
4689 <MemberTypeChildren as ::treesitter_types::FromNode>::from_node(child, src)
4690 })?);
4691 }
4692 items
4693 },
4694 })
4695 }
4696}
4697impl ::treesitter_types::Spanned for MemberType<'_> {
4698 fn span(&self) -> ::treesitter_types::Span {
4699 self.span
4700 }
4701}
4702#[derive(Debug, Clone, PartialEq, Eq)]
4703pub struct Module<'tree> {
4704 pub span: ::treesitter_types::Span,
4705 pub children: ::std::vec::Vec<ModuleChildren<'tree>>,
4706}
4707impl<'tree> ::treesitter_types::FromNode<'tree> for Module<'tree> {
4708 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4709 fn from_node(
4710 node: ::treesitter_types::tree_sitter::Node<'tree>,
4711 src: &'tree [u8],
4712 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4713 debug_assert_eq!(node.kind(), "module");
4714 Ok(Self {
4715 span: ::treesitter_types::Span::from(node),
4716 children: {
4717 #[allow(clippy::suspicious_else_formatting)]
4718 let non_field_children = {
4719 let mut cursor = node.walk();
4720 let mut result = ::std::vec::Vec::new();
4721 if cursor.goto_first_child() {
4722 loop {
4723 if cursor.field_name().is_none()
4724 && cursor.node().is_named()
4725 && !cursor.node().is_extra()
4726 {
4727 result.push(cursor.node());
4728 }
4729 if !cursor.goto_next_sibling() {
4730 break;
4731 }
4732 }
4733 }
4734 result
4735 };
4736 let mut items = ::std::vec::Vec::new();
4737 for child in non_field_children {
4738 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
4739 <ModuleChildren as ::treesitter_types::FromNode>::from_node(child, src)
4740 })?);
4741 }
4742 items
4743 },
4744 })
4745 }
4746}
4747impl ::treesitter_types::Spanned for Module<'_> {
4748 fn span(&self) -> ::treesitter_types::Span {
4749 self.span
4750 }
4751}
4752#[derive(Debug, Clone, PartialEq, Eq)]
4753pub struct NamedExpression<'tree> {
4754 pub span: ::treesitter_types::Span,
4755 pub name: Identifier<'tree>,
4756 pub value: Expression<'tree>,
4757}
4758impl<'tree> ::treesitter_types::FromNode<'tree> for NamedExpression<'tree> {
4759 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4760 fn from_node(
4761 node: ::treesitter_types::tree_sitter::Node<'tree>,
4762 src: &'tree [u8],
4763 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4764 debug_assert_eq!(node.kind(), "named_expression");
4765 Ok(Self {
4766 span: ::treesitter_types::Span::from(node),
4767 name: {
4768 let child = node
4769 .child_by_field_name("name")
4770 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
4771 ::treesitter_types::runtime::maybe_grow_stack(|| {
4772 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)
4773 })?
4774 },
4775 value: {
4776 let child = node
4777 .child_by_field_name("value")
4778 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
4779 ::treesitter_types::runtime::maybe_grow_stack(|| {
4780 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
4781 })?
4782 },
4783 })
4784 }
4785}
4786impl ::treesitter_types::Spanned for NamedExpression<'_> {
4787 fn span(&self) -> ::treesitter_types::Span {
4788 self.span
4789 }
4790}
4791#[derive(Debug, Clone, PartialEq, Eq)]
4792pub struct NonlocalStatement<'tree> {
4793 pub span: ::treesitter_types::Span,
4794 pub children: ::std::vec::Vec<Identifier<'tree>>,
4795}
4796impl<'tree> ::treesitter_types::FromNode<'tree> for NonlocalStatement<'tree> {
4797 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4798 fn from_node(
4799 node: ::treesitter_types::tree_sitter::Node<'tree>,
4800 src: &'tree [u8],
4801 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4802 debug_assert_eq!(node.kind(), "nonlocal_statement");
4803 Ok(Self {
4804 span: ::treesitter_types::Span::from(node),
4805 children: {
4806 #[allow(clippy::suspicious_else_formatting)]
4807 let non_field_children = {
4808 let mut cursor = node.walk();
4809 let mut result = ::std::vec::Vec::new();
4810 if cursor.goto_first_child() {
4811 loop {
4812 if cursor.field_name().is_none()
4813 && cursor.node().is_named()
4814 && !cursor.node().is_extra()
4815 {
4816 result.push(cursor.node());
4817 }
4818 if !cursor.goto_next_sibling() {
4819 break;
4820 }
4821 }
4822 }
4823 result
4824 };
4825 let mut items = ::std::vec::Vec::new();
4826 for child in non_field_children {
4827 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
4828 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)
4829 })?);
4830 }
4831 items
4832 },
4833 })
4834 }
4835}
4836impl ::treesitter_types::Spanned for NonlocalStatement<'_> {
4837 fn span(&self) -> ::treesitter_types::Span {
4838 self.span
4839 }
4840}
4841#[derive(Debug, Clone, PartialEq, Eq)]
4842pub struct NotOperator<'tree> {
4843 pub span: ::treesitter_types::Span,
4844 pub argument: Expression<'tree>,
4845}
4846impl<'tree> ::treesitter_types::FromNode<'tree> for NotOperator<'tree> {
4847 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4848 fn from_node(
4849 node: ::treesitter_types::tree_sitter::Node<'tree>,
4850 src: &'tree [u8],
4851 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4852 debug_assert_eq!(node.kind(), "not_operator");
4853 Ok(Self {
4854 span: ::treesitter_types::Span::from(node),
4855 argument: {
4856 let child = node.child_by_field_name("argument").ok_or_else(|| {
4857 ::treesitter_types::ParseError::missing_field("argument", node)
4858 })?;
4859 ::treesitter_types::runtime::maybe_grow_stack(|| {
4860 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
4861 })?
4862 },
4863 })
4864 }
4865}
4866impl ::treesitter_types::Spanned for NotOperator<'_> {
4867 fn span(&self) -> ::treesitter_types::Span {
4868 self.span
4869 }
4870}
4871#[derive(Debug, Clone, PartialEq, Eq)]
4872pub struct Pair<'tree> {
4873 pub span: ::treesitter_types::Span,
4874 pub key: Expression<'tree>,
4875 pub value: Expression<'tree>,
4876}
4877impl<'tree> ::treesitter_types::FromNode<'tree> for Pair<'tree> {
4878 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4879 fn from_node(
4880 node: ::treesitter_types::tree_sitter::Node<'tree>,
4881 src: &'tree [u8],
4882 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4883 debug_assert_eq!(node.kind(), "pair");
4884 Ok(Self {
4885 span: ::treesitter_types::Span::from(node),
4886 key: {
4887 let child = node
4888 .child_by_field_name("key")
4889 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("key", node))?;
4890 ::treesitter_types::runtime::maybe_grow_stack(|| {
4891 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
4892 })?
4893 },
4894 value: {
4895 let child = node
4896 .child_by_field_name("value")
4897 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
4898 ::treesitter_types::runtime::maybe_grow_stack(|| {
4899 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
4900 })?
4901 },
4902 })
4903 }
4904}
4905impl ::treesitter_types::Spanned for Pair<'_> {
4906 fn span(&self) -> ::treesitter_types::Span {
4907 self.span
4908 }
4909}
4910#[derive(Debug, Clone, PartialEq, Eq)]
4911pub struct Parameters<'tree> {
4912 pub span: ::treesitter_types::Span,
4913 pub children: ::std::vec::Vec<Parameter<'tree>>,
4914}
4915impl<'tree> ::treesitter_types::FromNode<'tree> for Parameters<'tree> {
4916 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4917 fn from_node(
4918 node: ::treesitter_types::tree_sitter::Node<'tree>,
4919 src: &'tree [u8],
4920 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4921 debug_assert_eq!(node.kind(), "parameters");
4922 Ok(Self {
4923 span: ::treesitter_types::Span::from(node),
4924 children: {
4925 #[allow(clippy::suspicious_else_formatting)]
4926 let non_field_children = {
4927 let mut cursor = node.walk();
4928 let mut result = ::std::vec::Vec::new();
4929 if cursor.goto_first_child() {
4930 loop {
4931 if cursor.field_name().is_none()
4932 && cursor.node().is_named()
4933 && !cursor.node().is_extra()
4934 {
4935 result.push(cursor.node());
4936 }
4937 if !cursor.goto_next_sibling() {
4938 break;
4939 }
4940 }
4941 }
4942 result
4943 };
4944 let mut items = ::std::vec::Vec::new();
4945 for child in non_field_children {
4946 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
4947 <Parameter as ::treesitter_types::FromNode>::from_node(child, src)
4948 })?);
4949 }
4950 items
4951 },
4952 })
4953 }
4954}
4955impl ::treesitter_types::Spanned for Parameters<'_> {
4956 fn span(&self) -> ::treesitter_types::Span {
4957 self.span
4958 }
4959}
4960#[derive(Debug, Clone, PartialEq, Eq)]
4961pub struct ParenthesizedExpression<'tree> {
4962 pub span: ::treesitter_types::Span,
4963 pub children: ParenthesizedExpressionChildren<'tree>,
4964}
4965impl<'tree> ::treesitter_types::FromNode<'tree> for ParenthesizedExpression<'tree> {
4966 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4967 fn from_node(
4968 node: ::treesitter_types::tree_sitter::Node<'tree>,
4969 src: &'tree [u8],
4970 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4971 debug_assert_eq!(node.kind(), "parenthesized_expression");
4972 Ok(Self {
4973 span: ::treesitter_types::Span::from(node),
4974 children: {
4975 #[allow(clippy::suspicious_else_formatting)]
4976 let non_field_children = {
4977 let mut cursor = node.walk();
4978 let mut result = ::std::vec::Vec::new();
4979 if cursor.goto_first_child() {
4980 loop {
4981 if cursor.field_name().is_none()
4982 && cursor.node().is_named()
4983 && !cursor.node().is_extra()
4984 {
4985 result.push(cursor.node());
4986 }
4987 if !cursor.goto_next_sibling() {
4988 break;
4989 }
4990 }
4991 }
4992 result
4993 };
4994 let child = if let Some(&c) = non_field_children.first() {
4995 c
4996 } else {
4997 let mut fallback_cursor = node.walk();
4998 let mut fallback_child = None;
4999 if fallback_cursor.goto_first_child() {
5000 loop {
5001 if fallback_cursor.field_name().is_none()
5002 && !fallback_cursor.node().is_extra()
5003 {
5004 let candidate = fallback_cursor.node();
5005 #[allow(clippy::needless_question_mark)]
5006 if (|| -> ::core::result::Result<
5007 _,
5008 ::treesitter_types::ParseError,
5009 > {
5010 let child = candidate;
5011 Ok(
5012 ::treesitter_types::runtime::maybe_grow_stack(|| <ParenthesizedExpressionChildren as ::treesitter_types::FromNode>::from_node(
5013 child,
5014 src,
5015 ))?,
5016 )
5017 })()
5018 .is_ok()
5019 {
5020 fallback_child = Some(candidate);
5021 break;
5022 }
5023 }
5024 if !fallback_cursor.goto_next_sibling() {
5025 break;
5026 }
5027 }
5028 }
5029 if fallback_child.is_none() {
5030 let mut cursor2 = node.walk();
5031 if cursor2.goto_first_child() {
5032 loop {
5033 if cursor2.node().is_named() && !cursor2.node().is_extra() {
5034 let candidate = cursor2.node();
5035 #[allow(clippy::needless_question_mark)]
5036 if (|| -> ::core::result::Result<
5037 _,
5038 ::treesitter_types::ParseError,
5039 > {
5040 let child = candidate;
5041 Ok(
5042 ::treesitter_types::runtime::maybe_grow_stack(|| <ParenthesizedExpressionChildren as ::treesitter_types::FromNode>::from_node(
5043 child,
5044 src,
5045 ))?,
5046 )
5047 })()
5048 .is_ok()
5049 {
5050 fallback_child = Some(candidate);
5051 break;
5052 }
5053 }
5054 if !cursor2.goto_next_sibling() {
5055 break;
5056 }
5057 }
5058 }
5059 }
5060 fallback_child.ok_or_else(|| {
5061 ::treesitter_types::ParseError::missing_field("children", node)
5062 })?
5063 };
5064 ::treesitter_types::runtime::maybe_grow_stack(|| {
5065 <ParenthesizedExpressionChildren as ::treesitter_types::FromNode>::from_node(
5066 child, src,
5067 )
5068 })?
5069 },
5070 })
5071 }
5072}
5073impl ::treesitter_types::Spanned for ParenthesizedExpression<'_> {
5074 fn span(&self) -> ::treesitter_types::Span {
5075 self.span
5076 }
5077}
5078#[derive(Debug, Clone, PartialEq, Eq)]
5079pub struct ParenthesizedListSplat<'tree> {
5080 pub span: ::treesitter_types::Span,
5081 pub children: ParenthesizedListSplatChildren<'tree>,
5082}
5083impl<'tree> ::treesitter_types::FromNode<'tree> for ParenthesizedListSplat<'tree> {
5084 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5085 fn from_node(
5086 node: ::treesitter_types::tree_sitter::Node<'tree>,
5087 src: &'tree [u8],
5088 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5089 debug_assert_eq!(node.kind(), "parenthesized_list_splat");
5090 Ok(Self {
5091 span: ::treesitter_types::Span::from(node),
5092 children: {
5093 #[allow(clippy::suspicious_else_formatting)]
5094 let non_field_children = {
5095 let mut cursor = node.walk();
5096 let mut result = ::std::vec::Vec::new();
5097 if cursor.goto_first_child() {
5098 loop {
5099 if cursor.field_name().is_none()
5100 && cursor.node().is_named()
5101 && !cursor.node().is_extra()
5102 {
5103 result.push(cursor.node());
5104 }
5105 if !cursor.goto_next_sibling() {
5106 break;
5107 }
5108 }
5109 }
5110 result
5111 };
5112 let child = if let Some(&c) = non_field_children.first() {
5113 c
5114 } else {
5115 let mut fallback_cursor = node.walk();
5116 let mut fallback_child = None;
5117 if fallback_cursor.goto_first_child() {
5118 loop {
5119 if fallback_cursor.field_name().is_none()
5120 && !fallback_cursor.node().is_extra()
5121 {
5122 let candidate = fallback_cursor.node();
5123 #[allow(clippy::needless_question_mark)]
5124 if (|| -> ::core::result::Result<
5125 _,
5126 ::treesitter_types::ParseError,
5127 > {
5128 let child = candidate;
5129 Ok(
5130 ::treesitter_types::runtime::maybe_grow_stack(|| <ParenthesizedListSplatChildren as ::treesitter_types::FromNode>::from_node(
5131 child,
5132 src,
5133 ))?,
5134 )
5135 })()
5136 .is_ok()
5137 {
5138 fallback_child = Some(candidate);
5139 break;
5140 }
5141 }
5142 if !fallback_cursor.goto_next_sibling() {
5143 break;
5144 }
5145 }
5146 }
5147 if fallback_child.is_none() {
5148 let mut cursor2 = node.walk();
5149 if cursor2.goto_first_child() {
5150 loop {
5151 if cursor2.node().is_named() && !cursor2.node().is_extra() {
5152 let candidate = cursor2.node();
5153 #[allow(clippy::needless_question_mark)]
5154 if (|| -> ::core::result::Result<
5155 _,
5156 ::treesitter_types::ParseError,
5157 > {
5158 let child = candidate;
5159 Ok(
5160 ::treesitter_types::runtime::maybe_grow_stack(|| <ParenthesizedListSplatChildren as ::treesitter_types::FromNode>::from_node(
5161 child,
5162 src,
5163 ))?,
5164 )
5165 })()
5166 .is_ok()
5167 {
5168 fallback_child = Some(candidate);
5169 break;
5170 }
5171 }
5172 if !cursor2.goto_next_sibling() {
5173 break;
5174 }
5175 }
5176 }
5177 }
5178 fallback_child.ok_or_else(|| {
5179 ::treesitter_types::ParseError::missing_field("children", node)
5180 })?
5181 };
5182 ::treesitter_types::runtime::maybe_grow_stack(|| {
5183 <ParenthesizedListSplatChildren as ::treesitter_types::FromNode>::from_node(
5184 child, src,
5185 )
5186 })?
5187 },
5188 })
5189 }
5190}
5191impl ::treesitter_types::Spanned for ParenthesizedListSplat<'_> {
5192 fn span(&self) -> ::treesitter_types::Span {
5193 self.span
5194 }
5195}
5196#[derive(Debug, Clone, PartialEq, Eq)]
5197pub struct PassStatement<'tree> {
5198 pub span: ::treesitter_types::Span,
5199 text: &'tree str,
5200}
5201impl<'tree> ::treesitter_types::FromNode<'tree> for PassStatement<'tree> {
5202 fn from_node(
5203 node: ::treesitter_types::tree_sitter::Node<'tree>,
5204 src: &'tree [u8],
5205 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5206 debug_assert_eq!(node.kind(), "pass_statement");
5207 Ok(Self {
5208 span: ::treesitter_types::Span::from(node),
5209 text: node.utf8_text(src)?,
5210 })
5211 }
5212}
5213impl<'tree> ::treesitter_types::LeafNode<'tree> for PassStatement<'tree> {
5214 fn text(&self) -> &'tree str {
5215 self.text
5216 }
5217}
5218impl ::treesitter_types::Spanned for PassStatement<'_> {
5219 fn span(&self) -> ::treesitter_types::Span {
5220 self.span
5221 }
5222}
5223#[derive(Debug, Clone, PartialEq, Eq)]
5224pub struct PatternList<'tree> {
5225 pub span: ::treesitter_types::Span,
5226 pub children: ::std::vec::Vec<Pattern<'tree>>,
5227}
5228impl<'tree> ::treesitter_types::FromNode<'tree> for PatternList<'tree> {
5229 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5230 fn from_node(
5231 node: ::treesitter_types::tree_sitter::Node<'tree>,
5232 src: &'tree [u8],
5233 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5234 debug_assert_eq!(node.kind(), "pattern_list");
5235 Ok(Self {
5236 span: ::treesitter_types::Span::from(node),
5237 children: {
5238 #[allow(clippy::suspicious_else_formatting)]
5239 let non_field_children = {
5240 let mut cursor = node.walk();
5241 let mut result = ::std::vec::Vec::new();
5242 if cursor.goto_first_child() {
5243 loop {
5244 if cursor.field_name().is_none()
5245 && cursor.node().is_named()
5246 && !cursor.node().is_extra()
5247 {
5248 result.push(cursor.node());
5249 }
5250 if !cursor.goto_next_sibling() {
5251 break;
5252 }
5253 }
5254 }
5255 result
5256 };
5257 let mut items = ::std::vec::Vec::new();
5258 for child in non_field_children {
5259 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
5260 <Pattern as ::treesitter_types::FromNode>::from_node(child, src)
5261 })?);
5262 }
5263 items
5264 },
5265 })
5266 }
5267}
5268impl ::treesitter_types::Spanned for PatternList<'_> {
5269 fn span(&self) -> ::treesitter_types::Span {
5270 self.span
5271 }
5272}
5273#[derive(Debug, Clone, PartialEq, Eq)]
5274pub struct PositionalSeparator<'tree> {
5275 pub span: ::treesitter_types::Span,
5276 text: &'tree str,
5277}
5278impl<'tree> ::treesitter_types::FromNode<'tree> for PositionalSeparator<'tree> {
5279 fn from_node(
5280 node: ::treesitter_types::tree_sitter::Node<'tree>,
5281 src: &'tree [u8],
5282 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5283 debug_assert_eq!(node.kind(), "positional_separator");
5284 Ok(Self {
5285 span: ::treesitter_types::Span::from(node),
5286 text: node.utf8_text(src)?,
5287 })
5288 }
5289}
5290impl<'tree> ::treesitter_types::LeafNode<'tree> for PositionalSeparator<'tree> {
5291 fn text(&self) -> &'tree str {
5292 self.text
5293 }
5294}
5295impl ::treesitter_types::Spanned for PositionalSeparator<'_> {
5296 fn span(&self) -> ::treesitter_types::Span {
5297 self.span
5298 }
5299}
5300#[derive(Debug, Clone, PartialEq, Eq)]
5301pub struct PrintStatement<'tree> {
5302 pub span: ::treesitter_types::Span,
5303 pub argument: ::std::vec::Vec<Expression<'tree>>,
5304 pub children: ::core::option::Option<Chevron<'tree>>,
5305}
5306impl<'tree> ::treesitter_types::FromNode<'tree> for PrintStatement<'tree> {
5307 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5308 fn from_node(
5309 node: ::treesitter_types::tree_sitter::Node<'tree>,
5310 src: &'tree [u8],
5311 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5312 debug_assert_eq!(node.kind(), "print_statement");
5313 Ok(Self {
5314 span: ::treesitter_types::Span::from(node),
5315 argument: {
5316 let mut cursor = node.walk();
5317 let mut items = ::std::vec::Vec::new();
5318 for child in node.children_by_field_name("argument", &mut cursor) {
5319 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
5320 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
5321 })?);
5322 }
5323 items
5324 },
5325 children: {
5326 #[allow(clippy::suspicious_else_formatting)]
5327 let non_field_children = {
5328 let mut cursor = node.walk();
5329 let mut result = ::std::vec::Vec::new();
5330 if cursor.goto_first_child() {
5331 loop {
5332 if cursor.field_name().is_none()
5333 && cursor.node().is_named()
5334 && !cursor.node().is_extra()
5335 {
5336 result.push(cursor.node());
5337 }
5338 if !cursor.goto_next_sibling() {
5339 break;
5340 }
5341 }
5342 }
5343 result
5344 };
5345 match non_field_children.first() {
5346 Some(&child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
5347 <Chevron as ::treesitter_types::FromNode>::from_node(child, src)
5348 })?),
5349 None => None,
5350 }
5351 },
5352 })
5353 }
5354}
5355impl ::treesitter_types::Spanned for PrintStatement<'_> {
5356 fn span(&self) -> ::treesitter_types::Span {
5357 self.span
5358 }
5359}
5360#[derive(Debug, Clone, PartialEq, Eq)]
5361pub struct RaiseStatement<'tree> {
5362 pub span: ::treesitter_types::Span,
5363 pub cause: ::core::option::Option<Expression<'tree>>,
5364 pub children: ::core::option::Option<RaiseStatementChildren<'tree>>,
5365}
5366impl<'tree> ::treesitter_types::FromNode<'tree> for RaiseStatement<'tree> {
5367 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5368 fn from_node(
5369 node: ::treesitter_types::tree_sitter::Node<'tree>,
5370 src: &'tree [u8],
5371 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5372 debug_assert_eq!(node.kind(), "raise_statement");
5373 Ok(Self {
5374 span: ::treesitter_types::Span::from(node),
5375 cause: match node.child_by_field_name("cause") {
5376 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
5377 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
5378 })?),
5379 None => None,
5380 },
5381 children: {
5382 #[allow(clippy::suspicious_else_formatting)]
5383 let non_field_children = {
5384 let mut cursor = node.walk();
5385 let mut result = ::std::vec::Vec::new();
5386 if cursor.goto_first_child() {
5387 loop {
5388 if cursor.field_name().is_none()
5389 && cursor.node().is_named()
5390 && !cursor.node().is_extra()
5391 {
5392 result.push(cursor.node());
5393 }
5394 if !cursor.goto_next_sibling() {
5395 break;
5396 }
5397 }
5398 }
5399 result
5400 };
5401 match non_field_children.first() {
5402 Some(&child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
5403 <RaiseStatementChildren as ::treesitter_types::FromNode>::from_node(
5404 child, src,
5405 )
5406 })?),
5407 None => None,
5408 }
5409 },
5410 })
5411 }
5412}
5413impl ::treesitter_types::Spanned for RaiseStatement<'_> {
5414 fn span(&self) -> ::treesitter_types::Span {
5415 self.span
5416 }
5417}
5418#[derive(Debug, Clone, PartialEq, Eq)]
5419pub struct RelativeImport<'tree> {
5420 pub span: ::treesitter_types::Span,
5421 pub children: ::std::vec::Vec<RelativeImportChildren<'tree>>,
5422}
5423impl<'tree> ::treesitter_types::FromNode<'tree> for RelativeImport<'tree> {
5424 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5425 fn from_node(
5426 node: ::treesitter_types::tree_sitter::Node<'tree>,
5427 src: &'tree [u8],
5428 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5429 debug_assert_eq!(node.kind(), "relative_import");
5430 Ok(Self {
5431 span: ::treesitter_types::Span::from(node),
5432 children: {
5433 #[allow(clippy::suspicious_else_formatting)]
5434 let non_field_children = {
5435 let mut cursor = node.walk();
5436 let mut result = ::std::vec::Vec::new();
5437 if cursor.goto_first_child() {
5438 loop {
5439 if cursor.field_name().is_none()
5440 && cursor.node().is_named()
5441 && !cursor.node().is_extra()
5442 {
5443 result.push(cursor.node());
5444 }
5445 if !cursor.goto_next_sibling() {
5446 break;
5447 }
5448 }
5449 }
5450 result
5451 };
5452 let mut items = ::std::vec::Vec::new();
5453 for child in non_field_children {
5454 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
5455 <RelativeImportChildren as ::treesitter_types::FromNode>::from_node(
5456 child, src,
5457 )
5458 })?);
5459 }
5460 items
5461 },
5462 })
5463 }
5464}
5465impl ::treesitter_types::Spanned for RelativeImport<'_> {
5466 fn span(&self) -> ::treesitter_types::Span {
5467 self.span
5468 }
5469}
5470#[derive(Debug, Clone, PartialEq, Eq)]
5471pub struct ReturnStatement<'tree> {
5472 pub span: ::treesitter_types::Span,
5473 pub children: ::core::option::Option<ReturnStatementChildren<'tree>>,
5474}
5475impl<'tree> ::treesitter_types::FromNode<'tree> for ReturnStatement<'tree> {
5476 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5477 fn from_node(
5478 node: ::treesitter_types::tree_sitter::Node<'tree>,
5479 src: &'tree [u8],
5480 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5481 debug_assert_eq!(node.kind(), "return_statement");
5482 Ok(Self {
5483 span: ::treesitter_types::Span::from(node),
5484 children: {
5485 #[allow(clippy::suspicious_else_formatting)]
5486 let non_field_children = {
5487 let mut cursor = node.walk();
5488 let mut result = ::std::vec::Vec::new();
5489 if cursor.goto_first_child() {
5490 loop {
5491 if cursor.field_name().is_none()
5492 && cursor.node().is_named()
5493 && !cursor.node().is_extra()
5494 {
5495 result.push(cursor.node());
5496 }
5497 if !cursor.goto_next_sibling() {
5498 break;
5499 }
5500 }
5501 }
5502 result
5503 };
5504 match non_field_children.first() {
5505 Some(&child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
5506 <ReturnStatementChildren as ::treesitter_types::FromNode>::from_node(
5507 child, src,
5508 )
5509 })?),
5510 None => None,
5511 }
5512 },
5513 })
5514 }
5515}
5516impl ::treesitter_types::Spanned for ReturnStatement<'_> {
5517 fn span(&self) -> ::treesitter_types::Span {
5518 self.span
5519 }
5520}
5521#[derive(Debug, Clone, PartialEq, Eq)]
5522pub struct Set<'tree> {
5523 pub span: ::treesitter_types::Span,
5524 pub children: ::std::vec::Vec<SetChildren<'tree>>,
5525}
5526impl<'tree> ::treesitter_types::FromNode<'tree> for Set<'tree> {
5527 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5528 fn from_node(
5529 node: ::treesitter_types::tree_sitter::Node<'tree>,
5530 src: &'tree [u8],
5531 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5532 debug_assert_eq!(node.kind(), "set");
5533 Ok(Self {
5534 span: ::treesitter_types::Span::from(node),
5535 children: {
5536 #[allow(clippy::suspicious_else_formatting)]
5537 let non_field_children = {
5538 let mut cursor = node.walk();
5539 let mut result = ::std::vec::Vec::new();
5540 if cursor.goto_first_child() {
5541 loop {
5542 if cursor.field_name().is_none()
5543 && cursor.node().is_named()
5544 && !cursor.node().is_extra()
5545 {
5546 result.push(cursor.node());
5547 }
5548 if !cursor.goto_next_sibling() {
5549 break;
5550 }
5551 }
5552 }
5553 result
5554 };
5555 let mut items = ::std::vec::Vec::new();
5556 for child in non_field_children {
5557 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
5558 <SetChildren as ::treesitter_types::FromNode>::from_node(child, src)
5559 })?);
5560 }
5561 items
5562 },
5563 })
5564 }
5565}
5566impl ::treesitter_types::Spanned for Set<'_> {
5567 fn span(&self) -> ::treesitter_types::Span {
5568 self.span
5569 }
5570}
5571#[derive(Debug, Clone, PartialEq, Eq)]
5572pub struct SetComprehension<'tree> {
5573 pub span: ::treesitter_types::Span,
5574 pub body: Expression<'tree>,
5575 pub children: ::std::vec::Vec<SetComprehensionChildren<'tree>>,
5576}
5577impl<'tree> ::treesitter_types::FromNode<'tree> for SetComprehension<'tree> {
5578 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5579 fn from_node(
5580 node: ::treesitter_types::tree_sitter::Node<'tree>,
5581 src: &'tree [u8],
5582 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5583 debug_assert_eq!(node.kind(), "set_comprehension");
5584 Ok(Self {
5585 span: ::treesitter_types::Span::from(node),
5586 body: {
5587 let child = node
5588 .child_by_field_name("body")
5589 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
5590 ::treesitter_types::runtime::maybe_grow_stack(|| {
5591 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
5592 })?
5593 },
5594 children: {
5595 #[allow(clippy::suspicious_else_formatting)]
5596 let non_field_children = {
5597 let mut cursor = node.walk();
5598 let mut result = ::std::vec::Vec::new();
5599 if cursor.goto_first_child() {
5600 loop {
5601 if cursor.field_name().is_none()
5602 && cursor.node().is_named()
5603 && !cursor.node().is_extra()
5604 {
5605 result.push(cursor.node());
5606 }
5607 if !cursor.goto_next_sibling() {
5608 break;
5609 }
5610 }
5611 }
5612 result
5613 };
5614 let mut items = ::std::vec::Vec::new();
5615 for child in non_field_children {
5616 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
5617 <SetComprehensionChildren as ::treesitter_types::FromNode>::from_node(
5618 child, src,
5619 )
5620 })?);
5621 }
5622 items
5623 },
5624 })
5625 }
5626}
5627impl ::treesitter_types::Spanned for SetComprehension<'_> {
5628 fn span(&self) -> ::treesitter_types::Span {
5629 self.span
5630 }
5631}
5632#[derive(Debug, Clone, PartialEq, Eq)]
5633pub struct Slice<'tree> {
5634 pub span: ::treesitter_types::Span,
5635 pub children: ::std::vec::Vec<Expression<'tree>>,
5636}
5637impl<'tree> ::treesitter_types::FromNode<'tree> for Slice<'tree> {
5638 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5639 fn from_node(
5640 node: ::treesitter_types::tree_sitter::Node<'tree>,
5641 src: &'tree [u8],
5642 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5643 debug_assert_eq!(node.kind(), "slice");
5644 Ok(Self {
5645 span: ::treesitter_types::Span::from(node),
5646 children: {
5647 #[allow(clippy::suspicious_else_formatting)]
5648 let non_field_children = {
5649 let mut cursor = node.walk();
5650 let mut result = ::std::vec::Vec::new();
5651 if cursor.goto_first_child() {
5652 loop {
5653 if cursor.field_name().is_none()
5654 && cursor.node().is_named()
5655 && !cursor.node().is_extra()
5656 {
5657 result.push(cursor.node());
5658 }
5659 if !cursor.goto_next_sibling() {
5660 break;
5661 }
5662 }
5663 }
5664 result
5665 };
5666 let mut items = ::std::vec::Vec::new();
5667 for child in non_field_children {
5668 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
5669 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
5670 })?);
5671 }
5672 items
5673 },
5674 })
5675 }
5676}
5677impl ::treesitter_types::Spanned for Slice<'_> {
5678 fn span(&self) -> ::treesitter_types::Span {
5679 self.span
5680 }
5681}
5682#[derive(Debug, Clone, PartialEq, Eq)]
5683pub struct SplatPattern<'tree> {
5684 pub span: ::treesitter_types::Span,
5685 pub children: ::core::option::Option<Identifier<'tree>>,
5686}
5687impl<'tree> ::treesitter_types::FromNode<'tree> for SplatPattern<'tree> {
5688 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5689 fn from_node(
5690 node: ::treesitter_types::tree_sitter::Node<'tree>,
5691 src: &'tree [u8],
5692 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5693 debug_assert_eq!(node.kind(), "splat_pattern");
5694 Ok(Self {
5695 span: ::treesitter_types::Span::from(node),
5696 children: {
5697 #[allow(clippy::suspicious_else_formatting)]
5698 let non_field_children = {
5699 let mut cursor = node.walk();
5700 let mut result = ::std::vec::Vec::new();
5701 if cursor.goto_first_child() {
5702 loop {
5703 if cursor.field_name().is_none()
5704 && cursor.node().is_named()
5705 && !cursor.node().is_extra()
5706 {
5707 result.push(cursor.node());
5708 }
5709 if !cursor.goto_next_sibling() {
5710 break;
5711 }
5712 }
5713 }
5714 result
5715 };
5716 match non_field_children.first() {
5717 Some(&child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
5718 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)
5719 })?),
5720 None => None,
5721 }
5722 },
5723 })
5724 }
5725}
5726impl ::treesitter_types::Spanned for SplatPattern<'_> {
5727 fn span(&self) -> ::treesitter_types::Span {
5728 self.span
5729 }
5730}
5731#[derive(Debug, Clone, PartialEq, Eq)]
5732pub struct SplatType<'tree> {
5733 pub span: ::treesitter_types::Span,
5734 pub children: Identifier<'tree>,
5735}
5736impl<'tree> ::treesitter_types::FromNode<'tree> for SplatType<'tree> {
5737 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5738 fn from_node(
5739 node: ::treesitter_types::tree_sitter::Node<'tree>,
5740 src: &'tree [u8],
5741 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5742 debug_assert_eq!(node.kind(), "splat_type");
5743 Ok(Self {
5744 span: ::treesitter_types::Span::from(node),
5745 children: {
5746 #[allow(clippy::suspicious_else_formatting)]
5747 let non_field_children = {
5748 let mut cursor = node.walk();
5749 let mut result = ::std::vec::Vec::new();
5750 if cursor.goto_first_child() {
5751 loop {
5752 if cursor.field_name().is_none()
5753 && cursor.node().is_named()
5754 && !cursor.node().is_extra()
5755 {
5756 result.push(cursor.node());
5757 }
5758 if !cursor.goto_next_sibling() {
5759 break;
5760 }
5761 }
5762 }
5763 result
5764 };
5765 let child = if let Some(&c) = non_field_children.first() {
5766 c
5767 } else {
5768 let mut fallback_cursor = node.walk();
5769 let mut fallback_child = None;
5770 if fallback_cursor.goto_first_child() {
5771 loop {
5772 if fallback_cursor.field_name().is_none()
5773 && !fallback_cursor.node().is_extra()
5774 {
5775 let candidate = fallback_cursor.node();
5776 #[allow(clippy::needless_question_mark)]
5777 if (|| -> ::core::result::Result<
5778 _,
5779 ::treesitter_types::ParseError,
5780 > {
5781 let child = candidate;
5782 Ok(
5783 ::treesitter_types::runtime::maybe_grow_stack(|| <Identifier as ::treesitter_types::FromNode>::from_node(
5784 child,
5785 src,
5786 ))?,
5787 )
5788 })()
5789 .is_ok()
5790 {
5791 fallback_child = Some(candidate);
5792 break;
5793 }
5794 }
5795 if !fallback_cursor.goto_next_sibling() {
5796 break;
5797 }
5798 }
5799 }
5800 if fallback_child.is_none() {
5801 let mut cursor2 = node.walk();
5802 if cursor2.goto_first_child() {
5803 loop {
5804 if cursor2.node().is_named() && !cursor2.node().is_extra() {
5805 let candidate = cursor2.node();
5806 #[allow(clippy::needless_question_mark)]
5807 if (|| -> ::core::result::Result<
5808 _,
5809 ::treesitter_types::ParseError,
5810 > {
5811 let child = candidate;
5812 Ok(
5813 ::treesitter_types::runtime::maybe_grow_stack(|| <Identifier as ::treesitter_types::FromNode>::from_node(
5814 child,
5815 src,
5816 ))?,
5817 )
5818 })()
5819 .is_ok()
5820 {
5821 fallback_child = Some(candidate);
5822 break;
5823 }
5824 }
5825 if !cursor2.goto_next_sibling() {
5826 break;
5827 }
5828 }
5829 }
5830 }
5831 fallback_child.ok_or_else(|| {
5832 ::treesitter_types::ParseError::missing_field("children", node)
5833 })?
5834 };
5835 ::treesitter_types::runtime::maybe_grow_stack(|| {
5836 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)
5837 })?
5838 },
5839 })
5840 }
5841}
5842impl ::treesitter_types::Spanned for SplatType<'_> {
5843 fn span(&self) -> ::treesitter_types::Span {
5844 self.span
5845 }
5846}
5847#[derive(Debug, Clone, PartialEq, Eq)]
5848pub struct String<'tree> {
5849 pub span: ::treesitter_types::Span,
5850 pub children: ::std::vec::Vec<StringChildren<'tree>>,
5851}
5852impl<'tree> ::treesitter_types::FromNode<'tree> for String<'tree> {
5853 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5854 fn from_node(
5855 node: ::treesitter_types::tree_sitter::Node<'tree>,
5856 src: &'tree [u8],
5857 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5858 debug_assert_eq!(node.kind(), "string");
5859 Ok(Self {
5860 span: ::treesitter_types::Span::from(node),
5861 children: {
5862 #[allow(clippy::suspicious_else_formatting)]
5863 let non_field_children = {
5864 let mut cursor = node.walk();
5865 let mut result = ::std::vec::Vec::new();
5866 if cursor.goto_first_child() {
5867 loop {
5868 if cursor.field_name().is_none()
5869 && cursor.node().is_named()
5870 && !cursor.node().is_extra()
5871 {
5872 result.push(cursor.node());
5873 }
5874 if !cursor.goto_next_sibling() {
5875 break;
5876 }
5877 }
5878 }
5879 result
5880 };
5881 let mut items = ::std::vec::Vec::new();
5882 for child in non_field_children {
5883 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
5884 <StringChildren as ::treesitter_types::FromNode>::from_node(child, src)
5885 })?);
5886 }
5887 items
5888 },
5889 })
5890 }
5891}
5892impl ::treesitter_types::Spanned for String<'_> {
5893 fn span(&self) -> ::treesitter_types::Span {
5894 self.span
5895 }
5896}
5897#[derive(Debug, Clone, PartialEq, Eq)]
5898pub struct StringContent<'tree> {
5899 pub span: ::treesitter_types::Span,
5900 pub children: ::std::vec::Vec<StringContentChildren<'tree>>,
5901}
5902impl<'tree> ::treesitter_types::FromNode<'tree> for StringContent<'tree> {
5903 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5904 fn from_node(
5905 node: ::treesitter_types::tree_sitter::Node<'tree>,
5906 src: &'tree [u8],
5907 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5908 debug_assert_eq!(node.kind(), "string_content");
5909 Ok(Self {
5910 span: ::treesitter_types::Span::from(node),
5911 children: {
5912 #[allow(clippy::suspicious_else_formatting)]
5913 let non_field_children = {
5914 let mut cursor = node.walk();
5915 let mut result = ::std::vec::Vec::new();
5916 if cursor.goto_first_child() {
5917 loop {
5918 if cursor.field_name().is_none()
5919 && cursor.node().is_named()
5920 && !cursor.node().is_extra()
5921 {
5922 result.push(cursor.node());
5923 }
5924 if !cursor.goto_next_sibling() {
5925 break;
5926 }
5927 }
5928 }
5929 result
5930 };
5931 let mut items = ::std::vec::Vec::new();
5932 for child in non_field_children {
5933 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
5934 <StringContentChildren as ::treesitter_types::FromNode>::from_node(
5935 child, src,
5936 )
5937 })?);
5938 }
5939 items
5940 },
5941 })
5942 }
5943}
5944impl ::treesitter_types::Spanned for StringContent<'_> {
5945 fn span(&self) -> ::treesitter_types::Span {
5946 self.span
5947 }
5948}
5949#[derive(Debug, Clone, PartialEq, Eq)]
5950pub struct Subscript<'tree> {
5951 pub span: ::treesitter_types::Span,
5952 pub subscript: ::std::vec::Vec<SubscriptSubscript<'tree>>,
5953 pub value: PrimaryExpression<'tree>,
5954}
5955impl<'tree> ::treesitter_types::FromNode<'tree> for Subscript<'tree> {
5956 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5957 fn from_node(
5958 node: ::treesitter_types::tree_sitter::Node<'tree>,
5959 src: &'tree [u8],
5960 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5961 debug_assert_eq!(node.kind(), "subscript");
5962 Ok(Self {
5963 span: ::treesitter_types::Span::from(node),
5964 subscript: {
5965 let mut cursor = node.walk();
5966 let mut items = ::std::vec::Vec::new();
5967 for child in node.children_by_field_name("subscript", &mut cursor) {
5968 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
5969 <SubscriptSubscript as ::treesitter_types::FromNode>::from_node(child, src)
5970 })?);
5971 }
5972 items
5973 },
5974 value: {
5975 let child = node
5976 .child_by_field_name("value")
5977 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
5978 ::treesitter_types::runtime::maybe_grow_stack(|| {
5979 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(child, src)
5980 })?
5981 },
5982 })
5983 }
5984}
5985impl ::treesitter_types::Spanned for Subscript<'_> {
5986 fn span(&self) -> ::treesitter_types::Span {
5987 self.span
5988 }
5989}
5990#[derive(Debug, Clone, PartialEq, Eq)]
5991pub struct TryStatement<'tree> {
5992 pub span: ::treesitter_types::Span,
5993 pub body: Block<'tree>,
5994 pub children: ::std::vec::Vec<TryStatementChildren<'tree>>,
5995}
5996impl<'tree> ::treesitter_types::FromNode<'tree> for TryStatement<'tree> {
5997 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5998 fn from_node(
5999 node: ::treesitter_types::tree_sitter::Node<'tree>,
6000 src: &'tree [u8],
6001 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6002 debug_assert_eq!(node.kind(), "try_statement");
6003 Ok(Self {
6004 span: ::treesitter_types::Span::from(node),
6005 body: {
6006 let child = node
6007 .child_by_field_name("body")
6008 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
6009 ::treesitter_types::runtime::maybe_grow_stack(|| {
6010 <Block as ::treesitter_types::FromNode>::from_node(child, src)
6011 })?
6012 },
6013 children: {
6014 #[allow(clippy::suspicious_else_formatting)]
6015 let non_field_children = {
6016 let mut cursor = node.walk();
6017 let mut result = ::std::vec::Vec::new();
6018 if cursor.goto_first_child() {
6019 loop {
6020 if cursor.field_name().is_none()
6021 && cursor.node().is_named()
6022 && !cursor.node().is_extra()
6023 {
6024 result.push(cursor.node());
6025 }
6026 if !cursor.goto_next_sibling() {
6027 break;
6028 }
6029 }
6030 }
6031 result
6032 };
6033 let mut items = ::std::vec::Vec::new();
6034 for child in non_field_children {
6035 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
6036 <TryStatementChildren as ::treesitter_types::FromNode>::from_node(
6037 child, src,
6038 )
6039 })?);
6040 }
6041 items
6042 },
6043 })
6044 }
6045}
6046impl ::treesitter_types::Spanned for TryStatement<'_> {
6047 fn span(&self) -> ::treesitter_types::Span {
6048 self.span
6049 }
6050}
6051#[derive(Debug, Clone, PartialEq, Eq)]
6052pub struct Tuple<'tree> {
6053 pub span: ::treesitter_types::Span,
6054 pub children: ::std::vec::Vec<TupleChildren<'tree>>,
6055}
6056impl<'tree> ::treesitter_types::FromNode<'tree> for Tuple<'tree> {
6057 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6058 fn from_node(
6059 node: ::treesitter_types::tree_sitter::Node<'tree>,
6060 src: &'tree [u8],
6061 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6062 debug_assert_eq!(node.kind(), "tuple");
6063 Ok(Self {
6064 span: ::treesitter_types::Span::from(node),
6065 children: {
6066 #[allow(clippy::suspicious_else_formatting)]
6067 let non_field_children = {
6068 let mut cursor = node.walk();
6069 let mut result = ::std::vec::Vec::new();
6070 if cursor.goto_first_child() {
6071 loop {
6072 if cursor.field_name().is_none()
6073 && cursor.node().is_named()
6074 && !cursor.node().is_extra()
6075 {
6076 result.push(cursor.node());
6077 }
6078 if !cursor.goto_next_sibling() {
6079 break;
6080 }
6081 }
6082 }
6083 result
6084 };
6085 let mut items = ::std::vec::Vec::new();
6086 for child in non_field_children {
6087 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
6088 <TupleChildren as ::treesitter_types::FromNode>::from_node(child, src)
6089 })?);
6090 }
6091 items
6092 },
6093 })
6094 }
6095}
6096impl ::treesitter_types::Spanned for Tuple<'_> {
6097 fn span(&self) -> ::treesitter_types::Span {
6098 self.span
6099 }
6100}
6101#[derive(Debug, Clone, PartialEq, Eq)]
6102pub struct TuplePattern<'tree> {
6103 pub span: ::treesitter_types::Span,
6104 pub children: ::std::vec::Vec<TuplePatternChildren<'tree>>,
6105}
6106impl<'tree> ::treesitter_types::FromNode<'tree> for TuplePattern<'tree> {
6107 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6108 fn from_node(
6109 node: ::treesitter_types::tree_sitter::Node<'tree>,
6110 src: &'tree [u8],
6111 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6112 debug_assert_eq!(node.kind(), "tuple_pattern");
6113 Ok(Self {
6114 span: ::treesitter_types::Span::from(node),
6115 children: {
6116 #[allow(clippy::suspicious_else_formatting)]
6117 let non_field_children = {
6118 let mut cursor = node.walk();
6119 let mut result = ::std::vec::Vec::new();
6120 if cursor.goto_first_child() {
6121 loop {
6122 if cursor.field_name().is_none()
6123 && cursor.node().is_named()
6124 && !cursor.node().is_extra()
6125 {
6126 result.push(cursor.node());
6127 }
6128 if !cursor.goto_next_sibling() {
6129 break;
6130 }
6131 }
6132 }
6133 result
6134 };
6135 let mut items = ::std::vec::Vec::new();
6136 for child in non_field_children {
6137 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
6138 <TuplePatternChildren as ::treesitter_types::FromNode>::from_node(
6139 child, src,
6140 )
6141 })?);
6142 }
6143 items
6144 },
6145 })
6146 }
6147}
6148impl ::treesitter_types::Spanned for TuplePattern<'_> {
6149 fn span(&self) -> ::treesitter_types::Span {
6150 self.span
6151 }
6152}
6153#[derive(Debug, Clone, PartialEq, Eq)]
6154pub struct Type<'tree> {
6155 pub span: ::treesitter_types::Span,
6156 pub children: TypeChildren<'tree>,
6157}
6158impl<'tree> ::treesitter_types::FromNode<'tree> for Type<'tree> {
6159 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6160 fn from_node(
6161 node: ::treesitter_types::tree_sitter::Node<'tree>,
6162 src: &'tree [u8],
6163 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6164 debug_assert_eq!(node.kind(), "type");
6165 Ok(Self {
6166 span: ::treesitter_types::Span::from(node),
6167 children: {
6168 #[allow(clippy::suspicious_else_formatting)]
6169 let non_field_children = {
6170 let mut cursor = node.walk();
6171 let mut result = ::std::vec::Vec::new();
6172 if cursor.goto_first_child() {
6173 loop {
6174 if cursor.field_name().is_none()
6175 && cursor.node().is_named()
6176 && !cursor.node().is_extra()
6177 {
6178 result.push(cursor.node());
6179 }
6180 if !cursor.goto_next_sibling() {
6181 break;
6182 }
6183 }
6184 }
6185 result
6186 };
6187 let child = if let Some(&c) = non_field_children.first() {
6188 c
6189 } else {
6190 let mut fallback_cursor = node.walk();
6191 let mut fallback_child = None;
6192 if fallback_cursor.goto_first_child() {
6193 loop {
6194 if fallback_cursor.field_name().is_none()
6195 && !fallback_cursor.node().is_extra()
6196 {
6197 let candidate = fallback_cursor.node();
6198 #[allow(clippy::needless_question_mark)]
6199 if (|| -> ::core::result::Result<
6200 _,
6201 ::treesitter_types::ParseError,
6202 > {
6203 let child = candidate;
6204 Ok(
6205 ::treesitter_types::runtime::maybe_grow_stack(|| <TypeChildren as ::treesitter_types::FromNode>::from_node(
6206 child,
6207 src,
6208 ))?,
6209 )
6210 })()
6211 .is_ok()
6212 {
6213 fallback_child = Some(candidate);
6214 break;
6215 }
6216 }
6217 if !fallback_cursor.goto_next_sibling() {
6218 break;
6219 }
6220 }
6221 }
6222 if fallback_child.is_none() {
6223 let mut cursor2 = node.walk();
6224 if cursor2.goto_first_child() {
6225 loop {
6226 if cursor2.node().is_named() && !cursor2.node().is_extra() {
6227 let candidate = cursor2.node();
6228 #[allow(clippy::needless_question_mark)]
6229 if (|| -> ::core::result::Result<
6230 _,
6231 ::treesitter_types::ParseError,
6232 > {
6233 let child = candidate;
6234 Ok(
6235 ::treesitter_types::runtime::maybe_grow_stack(|| <TypeChildren as ::treesitter_types::FromNode>::from_node(
6236 child,
6237 src,
6238 ))?,
6239 )
6240 })()
6241 .is_ok()
6242 {
6243 fallback_child = Some(candidate);
6244 break;
6245 }
6246 }
6247 if !cursor2.goto_next_sibling() {
6248 break;
6249 }
6250 }
6251 }
6252 }
6253 fallback_child.ok_or_else(|| {
6254 ::treesitter_types::ParseError::missing_field("children", node)
6255 })?
6256 };
6257 ::treesitter_types::runtime::maybe_grow_stack(|| {
6258 <TypeChildren as ::treesitter_types::FromNode>::from_node(child, src)
6259 })?
6260 },
6261 })
6262 }
6263}
6264impl ::treesitter_types::Spanned for Type<'_> {
6265 fn span(&self) -> ::treesitter_types::Span {
6266 self.span
6267 }
6268}
6269#[derive(Debug, Clone, PartialEq, Eq)]
6270pub struct TypeAliasStatement<'tree> {
6271 pub span: ::treesitter_types::Span,
6272 pub left: Type<'tree>,
6273 pub right: Type<'tree>,
6274}
6275impl<'tree> ::treesitter_types::FromNode<'tree> for TypeAliasStatement<'tree> {
6276 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6277 fn from_node(
6278 node: ::treesitter_types::tree_sitter::Node<'tree>,
6279 src: &'tree [u8],
6280 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6281 debug_assert_eq!(node.kind(), "type_alias_statement");
6282 Ok(Self {
6283 span: ::treesitter_types::Span::from(node),
6284 left: {
6285 let child = node
6286 .child_by_field_name("left")
6287 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
6288 ::treesitter_types::runtime::maybe_grow_stack(|| {
6289 <Type as ::treesitter_types::FromNode>::from_node(child, src)
6290 })?
6291 },
6292 right: {
6293 let child = node
6294 .child_by_field_name("right")
6295 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
6296 ::treesitter_types::runtime::maybe_grow_stack(|| {
6297 <Type as ::treesitter_types::FromNode>::from_node(child, src)
6298 })?
6299 },
6300 })
6301 }
6302}
6303impl ::treesitter_types::Spanned for TypeAliasStatement<'_> {
6304 fn span(&self) -> ::treesitter_types::Span {
6305 self.span
6306 }
6307}
6308#[derive(Debug, Clone, PartialEq, Eq)]
6309pub struct TypeParameter<'tree> {
6310 pub span: ::treesitter_types::Span,
6311 pub children: ::std::vec::Vec<Type<'tree>>,
6312}
6313impl<'tree> ::treesitter_types::FromNode<'tree> for TypeParameter<'tree> {
6314 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6315 fn from_node(
6316 node: ::treesitter_types::tree_sitter::Node<'tree>,
6317 src: &'tree [u8],
6318 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6319 debug_assert_eq!(node.kind(), "type_parameter");
6320 Ok(Self {
6321 span: ::treesitter_types::Span::from(node),
6322 children: {
6323 #[allow(clippy::suspicious_else_formatting)]
6324 let non_field_children = {
6325 let mut cursor = node.walk();
6326 let mut result = ::std::vec::Vec::new();
6327 if cursor.goto_first_child() {
6328 loop {
6329 if cursor.field_name().is_none()
6330 && cursor.node().is_named()
6331 && !cursor.node().is_extra()
6332 {
6333 result.push(cursor.node());
6334 }
6335 if !cursor.goto_next_sibling() {
6336 break;
6337 }
6338 }
6339 }
6340 result
6341 };
6342 let mut items = ::std::vec::Vec::new();
6343 for child in non_field_children {
6344 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
6345 <Type as ::treesitter_types::FromNode>::from_node(child, src)
6346 })?);
6347 }
6348 items
6349 },
6350 })
6351 }
6352}
6353impl ::treesitter_types::Spanned for TypeParameter<'_> {
6354 fn span(&self) -> ::treesitter_types::Span {
6355 self.span
6356 }
6357}
6358#[derive(Debug, Clone, PartialEq, Eq)]
6359pub struct TypedDefaultParameter<'tree> {
6360 pub span: ::treesitter_types::Span,
6361 pub name: Identifier<'tree>,
6362 pub r#type: Type<'tree>,
6363 pub value: Expression<'tree>,
6364}
6365impl<'tree> ::treesitter_types::FromNode<'tree> for TypedDefaultParameter<'tree> {
6366 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6367 fn from_node(
6368 node: ::treesitter_types::tree_sitter::Node<'tree>,
6369 src: &'tree [u8],
6370 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6371 debug_assert_eq!(node.kind(), "typed_default_parameter");
6372 Ok(Self {
6373 span: ::treesitter_types::Span::from(node),
6374 name: {
6375 let child = node
6376 .child_by_field_name("name")
6377 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
6378 ::treesitter_types::runtime::maybe_grow_stack(|| {
6379 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)
6380 })?
6381 },
6382 r#type: {
6383 let child = node
6384 .child_by_field_name("type")
6385 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("type", node))?;
6386 ::treesitter_types::runtime::maybe_grow_stack(|| {
6387 <Type as ::treesitter_types::FromNode>::from_node(child, src)
6388 })?
6389 },
6390 value: {
6391 let child = node
6392 .child_by_field_name("value")
6393 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
6394 ::treesitter_types::runtime::maybe_grow_stack(|| {
6395 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
6396 })?
6397 },
6398 })
6399 }
6400}
6401impl ::treesitter_types::Spanned for TypedDefaultParameter<'_> {
6402 fn span(&self) -> ::treesitter_types::Span {
6403 self.span
6404 }
6405}
6406#[derive(Debug, Clone, PartialEq, Eq)]
6407pub struct TypedParameter<'tree> {
6408 pub span: ::treesitter_types::Span,
6409 pub r#type: Type<'tree>,
6410 pub children: TypedParameterChildren<'tree>,
6411}
6412impl<'tree> ::treesitter_types::FromNode<'tree> for TypedParameter<'tree> {
6413 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6414 fn from_node(
6415 node: ::treesitter_types::tree_sitter::Node<'tree>,
6416 src: &'tree [u8],
6417 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6418 debug_assert_eq!(node.kind(), "typed_parameter");
6419 Ok(Self {
6420 span: ::treesitter_types::Span::from(node),
6421 r#type: {
6422 let child = node
6423 .child_by_field_name("type")
6424 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("type", node))?;
6425 ::treesitter_types::runtime::maybe_grow_stack(|| {
6426 <Type as ::treesitter_types::FromNode>::from_node(child, src)
6427 })?
6428 },
6429 children: {
6430 #[allow(clippy::suspicious_else_formatting)]
6431 let non_field_children = {
6432 let mut cursor = node.walk();
6433 let mut result = ::std::vec::Vec::new();
6434 if cursor.goto_first_child() {
6435 loop {
6436 if cursor.field_name().is_none()
6437 && cursor.node().is_named()
6438 && !cursor.node().is_extra()
6439 {
6440 result.push(cursor.node());
6441 }
6442 if !cursor.goto_next_sibling() {
6443 break;
6444 }
6445 }
6446 }
6447 result
6448 };
6449 let child = if let Some(&c) = non_field_children.first() {
6450 c
6451 } else {
6452 let mut fallback_cursor = node.walk();
6453 let mut fallback_child = None;
6454 if fallback_cursor.goto_first_child() {
6455 loop {
6456 if fallback_cursor.field_name().is_none()
6457 && !fallback_cursor.node().is_extra()
6458 {
6459 let candidate = fallback_cursor.node();
6460 #[allow(clippy::needless_question_mark)]
6461 if (|| -> ::core::result::Result<
6462 _,
6463 ::treesitter_types::ParseError,
6464 > {
6465 let child = candidate;
6466 Ok(
6467 ::treesitter_types::runtime::maybe_grow_stack(|| <TypedParameterChildren as ::treesitter_types::FromNode>::from_node(
6468 child,
6469 src,
6470 ))?,
6471 )
6472 })()
6473 .is_ok()
6474 {
6475 fallback_child = Some(candidate);
6476 break;
6477 }
6478 }
6479 if !fallback_cursor.goto_next_sibling() {
6480 break;
6481 }
6482 }
6483 }
6484 if fallback_child.is_none() {
6485 let mut cursor2 = node.walk();
6486 if cursor2.goto_first_child() {
6487 loop {
6488 if cursor2.node().is_named() && !cursor2.node().is_extra() {
6489 let candidate = cursor2.node();
6490 #[allow(clippy::needless_question_mark)]
6491 if (|| -> ::core::result::Result<
6492 _,
6493 ::treesitter_types::ParseError,
6494 > {
6495 let child = candidate;
6496 Ok(
6497 ::treesitter_types::runtime::maybe_grow_stack(|| <TypedParameterChildren as ::treesitter_types::FromNode>::from_node(
6498 child,
6499 src,
6500 ))?,
6501 )
6502 })()
6503 .is_ok()
6504 {
6505 fallback_child = Some(candidate);
6506 break;
6507 }
6508 }
6509 if !cursor2.goto_next_sibling() {
6510 break;
6511 }
6512 }
6513 }
6514 }
6515 fallback_child.ok_or_else(|| {
6516 ::treesitter_types::ParseError::missing_field("children", node)
6517 })?
6518 };
6519 ::treesitter_types::runtime::maybe_grow_stack(|| {
6520 <TypedParameterChildren as ::treesitter_types::FromNode>::from_node(child, src)
6521 })?
6522 },
6523 })
6524 }
6525}
6526impl ::treesitter_types::Spanned for TypedParameter<'_> {
6527 fn span(&self) -> ::treesitter_types::Span {
6528 self.span
6529 }
6530}
6531#[derive(Debug, Clone, PartialEq, Eq)]
6532pub struct UnaryOperator<'tree> {
6533 pub span: ::treesitter_types::Span,
6534 pub argument: PrimaryExpression<'tree>,
6535 pub operator: UnaryOperatorOperator,
6536}
6537impl<'tree> ::treesitter_types::FromNode<'tree> for UnaryOperator<'tree> {
6538 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6539 fn from_node(
6540 node: ::treesitter_types::tree_sitter::Node<'tree>,
6541 src: &'tree [u8],
6542 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6543 debug_assert_eq!(node.kind(), "unary_operator");
6544 Ok(Self {
6545 span: ::treesitter_types::Span::from(node),
6546 argument: {
6547 let child = node.child_by_field_name("argument").ok_or_else(|| {
6548 ::treesitter_types::ParseError::missing_field("argument", node)
6549 })?;
6550 ::treesitter_types::runtime::maybe_grow_stack(|| {
6551 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(child, src)
6552 })?
6553 },
6554 operator: {
6555 let child = node.child_by_field_name("operator").ok_or_else(|| {
6556 ::treesitter_types::ParseError::missing_field("operator", node)
6557 })?;
6558 ::treesitter_types::runtime::maybe_grow_stack(|| {
6559 <UnaryOperatorOperator as ::treesitter_types::FromNode>::from_node(child, src)
6560 })?
6561 },
6562 })
6563 }
6564}
6565impl ::treesitter_types::Spanned for UnaryOperator<'_> {
6566 fn span(&self) -> ::treesitter_types::Span {
6567 self.span
6568 }
6569}
6570#[derive(Debug, Clone, PartialEq, Eq)]
6571pub struct UnionPattern<'tree> {
6572 pub span: ::treesitter_types::Span,
6573 pub children: ::std::vec::Vec<UnionPatternChildren<'tree>>,
6574}
6575impl<'tree> ::treesitter_types::FromNode<'tree> for UnionPattern<'tree> {
6576 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6577 fn from_node(
6578 node: ::treesitter_types::tree_sitter::Node<'tree>,
6579 src: &'tree [u8],
6580 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6581 debug_assert_eq!(node.kind(), "union_pattern");
6582 Ok(Self {
6583 span: ::treesitter_types::Span::from(node),
6584 children: {
6585 #[allow(clippy::suspicious_else_formatting)]
6586 let non_field_children = {
6587 let mut cursor = node.walk();
6588 let mut result = ::std::vec::Vec::new();
6589 if cursor.goto_first_child() {
6590 loop {
6591 if cursor.field_name().is_none()
6592 && cursor.node().is_named()
6593 && !cursor.node().is_extra()
6594 {
6595 result.push(cursor.node());
6596 }
6597 if !cursor.goto_next_sibling() {
6598 break;
6599 }
6600 }
6601 }
6602 result
6603 };
6604 let mut items = ::std::vec::Vec::new();
6605 for child in non_field_children {
6606 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
6607 <UnionPatternChildren as ::treesitter_types::FromNode>::from_node(
6608 child, src,
6609 )
6610 })?);
6611 }
6612 items
6613 },
6614 })
6615 }
6616}
6617impl ::treesitter_types::Spanned for UnionPattern<'_> {
6618 fn span(&self) -> ::treesitter_types::Span {
6619 self.span
6620 }
6621}
6622#[derive(Debug, Clone, PartialEq, Eq)]
6623pub struct UnionType<'tree> {
6624 pub span: ::treesitter_types::Span,
6625 pub children: ::std::vec::Vec<Type<'tree>>,
6626}
6627impl<'tree> ::treesitter_types::FromNode<'tree> for UnionType<'tree> {
6628 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6629 fn from_node(
6630 node: ::treesitter_types::tree_sitter::Node<'tree>,
6631 src: &'tree [u8],
6632 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6633 debug_assert_eq!(node.kind(), "union_type");
6634 Ok(Self {
6635 span: ::treesitter_types::Span::from(node),
6636 children: {
6637 #[allow(clippy::suspicious_else_formatting)]
6638 let non_field_children = {
6639 let mut cursor = node.walk();
6640 let mut result = ::std::vec::Vec::new();
6641 if cursor.goto_first_child() {
6642 loop {
6643 if cursor.field_name().is_none()
6644 && cursor.node().is_named()
6645 && !cursor.node().is_extra()
6646 {
6647 result.push(cursor.node());
6648 }
6649 if !cursor.goto_next_sibling() {
6650 break;
6651 }
6652 }
6653 }
6654 result
6655 };
6656 let mut items = ::std::vec::Vec::new();
6657 for child in non_field_children {
6658 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
6659 <Type as ::treesitter_types::FromNode>::from_node(child, src)
6660 })?);
6661 }
6662 items
6663 },
6664 })
6665 }
6666}
6667impl ::treesitter_types::Spanned for UnionType<'_> {
6668 fn span(&self) -> ::treesitter_types::Span {
6669 self.span
6670 }
6671}
6672#[derive(Debug, Clone, PartialEq, Eq)]
6673pub struct WhileStatement<'tree> {
6674 pub span: ::treesitter_types::Span,
6675 pub alternative: ::core::option::Option<ElseClause<'tree>>,
6676 pub body: Block<'tree>,
6677 pub condition: Expression<'tree>,
6678}
6679impl<'tree> ::treesitter_types::FromNode<'tree> for WhileStatement<'tree> {
6680 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6681 fn from_node(
6682 node: ::treesitter_types::tree_sitter::Node<'tree>,
6683 src: &'tree [u8],
6684 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6685 debug_assert_eq!(node.kind(), "while_statement");
6686 Ok(Self {
6687 span: ::treesitter_types::Span::from(node),
6688 alternative: match node.child_by_field_name("alternative") {
6689 Some(child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
6690 <ElseClause as ::treesitter_types::FromNode>::from_node(child, src)
6691 })?),
6692 None => None,
6693 },
6694 body: {
6695 let child = node
6696 .child_by_field_name("body")
6697 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
6698 ::treesitter_types::runtime::maybe_grow_stack(|| {
6699 <Block as ::treesitter_types::FromNode>::from_node(child, src)
6700 })?
6701 },
6702 condition: {
6703 let child = node.child_by_field_name("condition").ok_or_else(|| {
6704 ::treesitter_types::ParseError::missing_field("condition", node)
6705 })?;
6706 ::treesitter_types::runtime::maybe_grow_stack(|| {
6707 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
6708 })?
6709 },
6710 })
6711 }
6712}
6713impl ::treesitter_types::Spanned for WhileStatement<'_> {
6714 fn span(&self) -> ::treesitter_types::Span {
6715 self.span
6716 }
6717}
6718#[derive(Debug, Clone, PartialEq, Eq)]
6719pub struct WildcardImport<'tree> {
6720 pub span: ::treesitter_types::Span,
6721 text: &'tree str,
6722}
6723impl<'tree> ::treesitter_types::FromNode<'tree> for WildcardImport<'tree> {
6724 fn from_node(
6725 node: ::treesitter_types::tree_sitter::Node<'tree>,
6726 src: &'tree [u8],
6727 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6728 debug_assert_eq!(node.kind(), "wildcard_import");
6729 Ok(Self {
6730 span: ::treesitter_types::Span::from(node),
6731 text: node.utf8_text(src)?,
6732 })
6733 }
6734}
6735impl<'tree> ::treesitter_types::LeafNode<'tree> for WildcardImport<'tree> {
6736 fn text(&self) -> &'tree str {
6737 self.text
6738 }
6739}
6740impl ::treesitter_types::Spanned for WildcardImport<'_> {
6741 fn span(&self) -> ::treesitter_types::Span {
6742 self.span
6743 }
6744}
6745#[derive(Debug, Clone, PartialEq, Eq)]
6746pub struct WithClause<'tree> {
6747 pub span: ::treesitter_types::Span,
6748 pub children: ::std::vec::Vec<WithItem<'tree>>,
6749}
6750impl<'tree> ::treesitter_types::FromNode<'tree> for WithClause<'tree> {
6751 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6752 fn from_node(
6753 node: ::treesitter_types::tree_sitter::Node<'tree>,
6754 src: &'tree [u8],
6755 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6756 debug_assert_eq!(node.kind(), "with_clause");
6757 Ok(Self {
6758 span: ::treesitter_types::Span::from(node),
6759 children: {
6760 #[allow(clippy::suspicious_else_formatting)]
6761 let non_field_children = {
6762 let mut cursor = node.walk();
6763 let mut result = ::std::vec::Vec::new();
6764 if cursor.goto_first_child() {
6765 loop {
6766 if cursor.field_name().is_none()
6767 && cursor.node().is_named()
6768 && !cursor.node().is_extra()
6769 {
6770 result.push(cursor.node());
6771 }
6772 if !cursor.goto_next_sibling() {
6773 break;
6774 }
6775 }
6776 }
6777 result
6778 };
6779 let mut items = ::std::vec::Vec::new();
6780 for child in non_field_children {
6781 items.push(::treesitter_types::runtime::maybe_grow_stack(|| {
6782 <WithItem as ::treesitter_types::FromNode>::from_node(child, src)
6783 })?);
6784 }
6785 items
6786 },
6787 })
6788 }
6789}
6790impl ::treesitter_types::Spanned for WithClause<'_> {
6791 fn span(&self) -> ::treesitter_types::Span {
6792 self.span
6793 }
6794}
6795#[derive(Debug, Clone, PartialEq, Eq)]
6796pub struct WithItem<'tree> {
6797 pub span: ::treesitter_types::Span,
6798 pub value: Expression<'tree>,
6799}
6800impl<'tree> ::treesitter_types::FromNode<'tree> for WithItem<'tree> {
6801 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6802 fn from_node(
6803 node: ::treesitter_types::tree_sitter::Node<'tree>,
6804 src: &'tree [u8],
6805 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6806 debug_assert_eq!(node.kind(), "with_item");
6807 Ok(Self {
6808 span: ::treesitter_types::Span::from(node),
6809 value: {
6810 let child = node
6811 .child_by_field_name("value")
6812 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
6813 ::treesitter_types::runtime::maybe_grow_stack(|| {
6814 <Expression as ::treesitter_types::FromNode>::from_node(child, src)
6815 })?
6816 },
6817 })
6818 }
6819}
6820impl ::treesitter_types::Spanned for WithItem<'_> {
6821 fn span(&self) -> ::treesitter_types::Span {
6822 self.span
6823 }
6824}
6825#[derive(Debug, Clone, PartialEq, Eq)]
6826pub struct WithStatement<'tree> {
6827 pub span: ::treesitter_types::Span,
6828 pub body: Block<'tree>,
6829 pub children: WithClause<'tree>,
6830}
6831impl<'tree> ::treesitter_types::FromNode<'tree> for WithStatement<'tree> {
6832 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6833 fn from_node(
6834 node: ::treesitter_types::tree_sitter::Node<'tree>,
6835 src: &'tree [u8],
6836 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6837 debug_assert_eq!(node.kind(), "with_statement");
6838 Ok(Self {
6839 span: ::treesitter_types::Span::from(node),
6840 body: {
6841 let child = node
6842 .child_by_field_name("body")
6843 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
6844 ::treesitter_types::runtime::maybe_grow_stack(|| {
6845 <Block as ::treesitter_types::FromNode>::from_node(child, src)
6846 })?
6847 },
6848 children: {
6849 #[allow(clippy::suspicious_else_formatting)]
6850 let non_field_children = {
6851 let mut cursor = node.walk();
6852 let mut result = ::std::vec::Vec::new();
6853 if cursor.goto_first_child() {
6854 loop {
6855 if cursor.field_name().is_none()
6856 && cursor.node().is_named()
6857 && !cursor.node().is_extra()
6858 {
6859 result.push(cursor.node());
6860 }
6861 if !cursor.goto_next_sibling() {
6862 break;
6863 }
6864 }
6865 }
6866 result
6867 };
6868 let child = if let Some(&c) = non_field_children.first() {
6869 c
6870 } else {
6871 let mut fallback_cursor = node.walk();
6872 let mut fallback_child = None;
6873 if fallback_cursor.goto_first_child() {
6874 loop {
6875 if fallback_cursor.field_name().is_none()
6876 && !fallback_cursor.node().is_extra()
6877 {
6878 let candidate = fallback_cursor.node();
6879 #[allow(clippy::needless_question_mark)]
6880 if (|| -> ::core::result::Result<
6881 _,
6882 ::treesitter_types::ParseError,
6883 > {
6884 let child = candidate;
6885 Ok(
6886 ::treesitter_types::runtime::maybe_grow_stack(|| <WithClause as ::treesitter_types::FromNode>::from_node(
6887 child,
6888 src,
6889 ))?,
6890 )
6891 })()
6892 .is_ok()
6893 {
6894 fallback_child = Some(candidate);
6895 break;
6896 }
6897 }
6898 if !fallback_cursor.goto_next_sibling() {
6899 break;
6900 }
6901 }
6902 }
6903 if fallback_child.is_none() {
6904 let mut cursor2 = node.walk();
6905 if cursor2.goto_first_child() {
6906 loop {
6907 if cursor2.node().is_named() && !cursor2.node().is_extra() {
6908 let candidate = cursor2.node();
6909 #[allow(clippy::needless_question_mark)]
6910 if (|| -> ::core::result::Result<
6911 _,
6912 ::treesitter_types::ParseError,
6913 > {
6914 let child = candidate;
6915 Ok(
6916 ::treesitter_types::runtime::maybe_grow_stack(|| <WithClause as ::treesitter_types::FromNode>::from_node(
6917 child,
6918 src,
6919 ))?,
6920 )
6921 })()
6922 .is_ok()
6923 {
6924 fallback_child = Some(candidate);
6925 break;
6926 }
6927 }
6928 if !cursor2.goto_next_sibling() {
6929 break;
6930 }
6931 }
6932 }
6933 }
6934 fallback_child.ok_or_else(|| {
6935 ::treesitter_types::ParseError::missing_field("children", node)
6936 })?
6937 };
6938 ::treesitter_types::runtime::maybe_grow_stack(|| {
6939 <WithClause as ::treesitter_types::FromNode>::from_node(child, src)
6940 })?
6941 },
6942 })
6943 }
6944}
6945impl ::treesitter_types::Spanned for WithStatement<'_> {
6946 fn span(&self) -> ::treesitter_types::Span {
6947 self.span
6948 }
6949}
6950#[derive(Debug, Clone, PartialEq, Eq)]
6951pub struct Yield<'tree> {
6952 pub span: ::treesitter_types::Span,
6953 pub children: ::core::option::Option<YieldChildren<'tree>>,
6954}
6955impl<'tree> ::treesitter_types::FromNode<'tree> for Yield<'tree> {
6956 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6957 fn from_node(
6958 node: ::treesitter_types::tree_sitter::Node<'tree>,
6959 src: &'tree [u8],
6960 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6961 debug_assert_eq!(node.kind(), "yield");
6962 Ok(Self {
6963 span: ::treesitter_types::Span::from(node),
6964 children: {
6965 #[allow(clippy::suspicious_else_formatting)]
6966 let non_field_children = {
6967 let mut cursor = node.walk();
6968 let mut result = ::std::vec::Vec::new();
6969 if cursor.goto_first_child() {
6970 loop {
6971 if cursor.field_name().is_none()
6972 && cursor.node().is_named()
6973 && !cursor.node().is_extra()
6974 {
6975 result.push(cursor.node());
6976 }
6977 if !cursor.goto_next_sibling() {
6978 break;
6979 }
6980 }
6981 }
6982 result
6983 };
6984 match non_field_children.first() {
6985 Some(&child) => Some(::treesitter_types::runtime::maybe_grow_stack(|| {
6986 <YieldChildren as ::treesitter_types::FromNode>::from_node(child, src)
6987 })?),
6988 None => None,
6989 }
6990 },
6991 })
6992 }
6993}
6994impl ::treesitter_types::Spanned for Yield<'_> {
6995 fn span(&self) -> ::treesitter_types::Span {
6996 self.span
6997 }
6998}
6999#[derive(Debug, Clone, PartialEq, Eq)]
7000pub struct Comment<'tree> {
7001 pub span: ::treesitter_types::Span,
7002 text: &'tree str,
7003}
7004impl<'tree> ::treesitter_types::FromNode<'tree> for Comment<'tree> {
7005 fn from_node(
7006 node: ::treesitter_types::tree_sitter::Node<'tree>,
7007 src: &'tree [u8],
7008 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7009 debug_assert_eq!(node.kind(), "comment");
7010 Ok(Self {
7011 span: ::treesitter_types::Span::from(node),
7012 text: node.utf8_text(src)?,
7013 })
7014 }
7015}
7016impl<'tree> ::treesitter_types::LeafNode<'tree> for Comment<'tree> {
7017 fn text(&self) -> &'tree str {
7018 self.text
7019 }
7020}
7021impl ::treesitter_types::Spanned for Comment<'_> {
7022 fn span(&self) -> ::treesitter_types::Span {
7023 self.span
7024 }
7025}
7026#[derive(Debug, Clone, PartialEq, Eq)]
7027pub struct Ellipsis<'tree> {
7028 pub span: ::treesitter_types::Span,
7029 text: &'tree str,
7030}
7031impl<'tree> ::treesitter_types::FromNode<'tree> for Ellipsis<'tree> {
7032 fn from_node(
7033 node: ::treesitter_types::tree_sitter::Node<'tree>,
7034 src: &'tree [u8],
7035 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7036 debug_assert_eq!(node.kind(), "ellipsis");
7037 Ok(Self {
7038 span: ::treesitter_types::Span::from(node),
7039 text: node.utf8_text(src)?,
7040 })
7041 }
7042}
7043impl<'tree> ::treesitter_types::LeafNode<'tree> for Ellipsis<'tree> {
7044 fn text(&self) -> &'tree str {
7045 self.text
7046 }
7047}
7048impl ::treesitter_types::Spanned for Ellipsis<'_> {
7049 fn span(&self) -> ::treesitter_types::Span {
7050 self.span
7051 }
7052}
7053#[derive(Debug, Clone, PartialEq, Eq)]
7054pub struct EscapeInterpolation<'tree> {
7055 pub span: ::treesitter_types::Span,
7056 text: &'tree str,
7057}
7058impl<'tree> ::treesitter_types::FromNode<'tree> for EscapeInterpolation<'tree> {
7059 fn from_node(
7060 node: ::treesitter_types::tree_sitter::Node<'tree>,
7061 src: &'tree [u8],
7062 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7063 debug_assert_eq!(node.kind(), "escape_interpolation");
7064 Ok(Self {
7065 span: ::treesitter_types::Span::from(node),
7066 text: node.utf8_text(src)?,
7067 })
7068 }
7069}
7070impl<'tree> ::treesitter_types::LeafNode<'tree> for EscapeInterpolation<'tree> {
7071 fn text(&self) -> &'tree str {
7072 self.text
7073 }
7074}
7075impl ::treesitter_types::Spanned for EscapeInterpolation<'_> {
7076 fn span(&self) -> ::treesitter_types::Span {
7077 self.span
7078 }
7079}
7080#[derive(Debug, Clone, PartialEq, Eq)]
7081pub struct EscapeSequence<'tree> {
7082 pub span: ::treesitter_types::Span,
7083 text: &'tree str,
7084}
7085impl<'tree> ::treesitter_types::FromNode<'tree> for EscapeSequence<'tree> {
7086 fn from_node(
7087 node: ::treesitter_types::tree_sitter::Node<'tree>,
7088 src: &'tree [u8],
7089 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7090 debug_assert_eq!(node.kind(), "escape_sequence");
7091 Ok(Self {
7092 span: ::treesitter_types::Span::from(node),
7093 text: node.utf8_text(src)?,
7094 })
7095 }
7096}
7097impl<'tree> ::treesitter_types::LeafNode<'tree> for EscapeSequence<'tree> {
7098 fn text(&self) -> &'tree str {
7099 self.text
7100 }
7101}
7102impl ::treesitter_types::Spanned for EscapeSequence<'_> {
7103 fn span(&self) -> ::treesitter_types::Span {
7104 self.span
7105 }
7106}
7107#[derive(Debug, Clone, PartialEq, Eq)]
7108pub struct False<'tree> {
7109 pub span: ::treesitter_types::Span,
7110 text: &'tree str,
7111}
7112impl<'tree> ::treesitter_types::FromNode<'tree> for False<'tree> {
7113 fn from_node(
7114 node: ::treesitter_types::tree_sitter::Node<'tree>,
7115 src: &'tree [u8],
7116 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7117 debug_assert_eq!(node.kind(), "false");
7118 Ok(Self {
7119 span: ::treesitter_types::Span::from(node),
7120 text: node.utf8_text(src)?,
7121 })
7122 }
7123}
7124impl<'tree> ::treesitter_types::LeafNode<'tree> for False<'tree> {
7125 fn text(&self) -> &'tree str {
7126 self.text
7127 }
7128}
7129impl ::treesitter_types::Spanned for False<'_> {
7130 fn span(&self) -> ::treesitter_types::Span {
7131 self.span
7132 }
7133}
7134#[derive(Debug, Clone, PartialEq, Eq)]
7135pub struct Float<'tree> {
7136 pub span: ::treesitter_types::Span,
7137 text: &'tree str,
7138}
7139impl<'tree> ::treesitter_types::FromNode<'tree> for Float<'tree> {
7140 fn from_node(
7141 node: ::treesitter_types::tree_sitter::Node<'tree>,
7142 src: &'tree [u8],
7143 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7144 debug_assert_eq!(node.kind(), "float");
7145 Ok(Self {
7146 span: ::treesitter_types::Span::from(node),
7147 text: node.utf8_text(src)?,
7148 })
7149 }
7150}
7151impl<'tree> ::treesitter_types::LeafNode<'tree> for Float<'tree> {
7152 fn text(&self) -> &'tree str {
7153 self.text
7154 }
7155}
7156impl ::treesitter_types::Spanned for Float<'_> {
7157 fn span(&self) -> ::treesitter_types::Span {
7158 self.span
7159 }
7160}
7161#[derive(Debug, Clone, PartialEq, Eq)]
7162pub struct Identifier<'tree> {
7163 pub span: ::treesitter_types::Span,
7164 text: &'tree str,
7165}
7166impl<'tree> ::treesitter_types::FromNode<'tree> for Identifier<'tree> {
7167 fn from_node(
7168 node: ::treesitter_types::tree_sitter::Node<'tree>,
7169 src: &'tree [u8],
7170 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7171 debug_assert_eq!(node.kind(), "identifier");
7172 Ok(Self {
7173 span: ::treesitter_types::Span::from(node),
7174 text: node.utf8_text(src)?,
7175 })
7176 }
7177}
7178impl<'tree> ::treesitter_types::LeafNode<'tree> for Identifier<'tree> {
7179 fn text(&self) -> &'tree str {
7180 self.text
7181 }
7182}
7183impl ::treesitter_types::Spanned for Identifier<'_> {
7184 fn span(&self) -> ::treesitter_types::Span {
7185 self.span
7186 }
7187}
7188#[derive(Debug, Clone, PartialEq, Eq)]
7189pub struct Integer<'tree> {
7190 pub span: ::treesitter_types::Span,
7191 text: &'tree str,
7192}
7193impl<'tree> ::treesitter_types::FromNode<'tree> for Integer<'tree> {
7194 fn from_node(
7195 node: ::treesitter_types::tree_sitter::Node<'tree>,
7196 src: &'tree [u8],
7197 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7198 debug_assert_eq!(node.kind(), "integer");
7199 Ok(Self {
7200 span: ::treesitter_types::Span::from(node),
7201 text: node.utf8_text(src)?,
7202 })
7203 }
7204}
7205impl<'tree> ::treesitter_types::LeafNode<'tree> for Integer<'tree> {
7206 fn text(&self) -> &'tree str {
7207 self.text
7208 }
7209}
7210impl ::treesitter_types::Spanned for Integer<'_> {
7211 fn span(&self) -> ::treesitter_types::Span {
7212 self.span
7213 }
7214}
7215#[derive(Debug, Clone, PartialEq, Eq)]
7216pub struct LineContinuation<'tree> {
7217 pub span: ::treesitter_types::Span,
7218 text: &'tree str,
7219}
7220impl<'tree> ::treesitter_types::FromNode<'tree> for LineContinuation<'tree> {
7221 fn from_node(
7222 node: ::treesitter_types::tree_sitter::Node<'tree>,
7223 src: &'tree [u8],
7224 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7225 debug_assert_eq!(node.kind(), "line_continuation");
7226 Ok(Self {
7227 span: ::treesitter_types::Span::from(node),
7228 text: node.utf8_text(src)?,
7229 })
7230 }
7231}
7232impl<'tree> ::treesitter_types::LeafNode<'tree> for LineContinuation<'tree> {
7233 fn text(&self) -> &'tree str {
7234 self.text
7235 }
7236}
7237impl ::treesitter_types::Spanned for LineContinuation<'_> {
7238 fn span(&self) -> ::treesitter_types::Span {
7239 self.span
7240 }
7241}
7242#[derive(Debug, Clone, PartialEq, Eq)]
7243pub struct None<'tree> {
7244 pub span: ::treesitter_types::Span,
7245 text: &'tree str,
7246}
7247impl<'tree> ::treesitter_types::FromNode<'tree> for None<'tree> {
7248 fn from_node(
7249 node: ::treesitter_types::tree_sitter::Node<'tree>,
7250 src: &'tree [u8],
7251 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7252 debug_assert_eq!(node.kind(), "none");
7253 Ok(Self {
7254 span: ::treesitter_types::Span::from(node),
7255 text: node.utf8_text(src)?,
7256 })
7257 }
7258}
7259impl<'tree> ::treesitter_types::LeafNode<'tree> for None<'tree> {
7260 fn text(&self) -> &'tree str {
7261 self.text
7262 }
7263}
7264impl ::treesitter_types::Spanned for None<'_> {
7265 fn span(&self) -> ::treesitter_types::Span {
7266 self.span
7267 }
7268}
7269#[derive(Debug, Clone, PartialEq, Eq)]
7270pub struct StringEnd<'tree> {
7271 pub span: ::treesitter_types::Span,
7272 text: &'tree str,
7273}
7274impl<'tree> ::treesitter_types::FromNode<'tree> for StringEnd<'tree> {
7275 fn from_node(
7276 node: ::treesitter_types::tree_sitter::Node<'tree>,
7277 src: &'tree [u8],
7278 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7279 debug_assert_eq!(node.kind(), "string_end");
7280 Ok(Self {
7281 span: ::treesitter_types::Span::from(node),
7282 text: node.utf8_text(src)?,
7283 })
7284 }
7285}
7286impl<'tree> ::treesitter_types::LeafNode<'tree> for StringEnd<'tree> {
7287 fn text(&self) -> &'tree str {
7288 self.text
7289 }
7290}
7291impl ::treesitter_types::Spanned for StringEnd<'_> {
7292 fn span(&self) -> ::treesitter_types::Span {
7293 self.span
7294 }
7295}
7296#[derive(Debug, Clone, PartialEq, Eq)]
7297pub struct StringStart<'tree> {
7298 pub span: ::treesitter_types::Span,
7299 text: &'tree str,
7300}
7301impl<'tree> ::treesitter_types::FromNode<'tree> for StringStart<'tree> {
7302 fn from_node(
7303 node: ::treesitter_types::tree_sitter::Node<'tree>,
7304 src: &'tree [u8],
7305 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7306 debug_assert_eq!(node.kind(), "string_start");
7307 Ok(Self {
7308 span: ::treesitter_types::Span::from(node),
7309 text: node.utf8_text(src)?,
7310 })
7311 }
7312}
7313impl<'tree> ::treesitter_types::LeafNode<'tree> for StringStart<'tree> {
7314 fn text(&self) -> &'tree str {
7315 self.text
7316 }
7317}
7318impl ::treesitter_types::Spanned for StringStart<'_> {
7319 fn span(&self) -> ::treesitter_types::Span {
7320 self.span
7321 }
7322}
7323#[derive(Debug, Clone, PartialEq, Eq)]
7324pub struct True<'tree> {
7325 pub span: ::treesitter_types::Span,
7326 text: &'tree str,
7327}
7328impl<'tree> ::treesitter_types::FromNode<'tree> for True<'tree> {
7329 fn from_node(
7330 node: ::treesitter_types::tree_sitter::Node<'tree>,
7331 src: &'tree [u8],
7332 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7333 debug_assert_eq!(node.kind(), "true");
7334 Ok(Self {
7335 span: ::treesitter_types::Span::from(node),
7336 text: node.utf8_text(src)?,
7337 })
7338 }
7339}
7340impl<'tree> ::treesitter_types::LeafNode<'tree> for True<'tree> {
7341 fn text(&self) -> &'tree str {
7342 self.text
7343 }
7344}
7345impl ::treesitter_types::Spanned for True<'_> {
7346 fn span(&self) -> ::treesitter_types::Span {
7347 self.span
7348 }
7349}
7350#[derive(Debug, Clone, PartialEq, Eq)]
7351pub struct TypeConversion<'tree> {
7352 pub span: ::treesitter_types::Span,
7353 text: &'tree str,
7354}
7355impl<'tree> ::treesitter_types::FromNode<'tree> for TypeConversion<'tree> {
7356 fn from_node(
7357 node: ::treesitter_types::tree_sitter::Node<'tree>,
7358 src: &'tree [u8],
7359 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7360 debug_assert_eq!(node.kind(), "type_conversion");
7361 Ok(Self {
7362 span: ::treesitter_types::Span::from(node),
7363 text: node.utf8_text(src)?,
7364 })
7365 }
7366}
7367impl<'tree> ::treesitter_types::LeafNode<'tree> for TypeConversion<'tree> {
7368 fn text(&self) -> &'tree str {
7369 self.text
7370 }
7371}
7372impl ::treesitter_types::Spanned for TypeConversion<'_> {
7373 fn span(&self) -> ::treesitter_types::Span {
7374 self.span
7375 }
7376}
7377#[derive(Debug, Clone, PartialEq, Eq)]
7378pub struct AsPatternTarget<'tree> {
7379 pub span: ::treesitter_types::Span,
7380 text: &'tree str,
7381}
7382impl<'tree> ::treesitter_types::FromNode<'tree> for AsPatternTarget<'tree> {
7383 fn from_node(
7384 node: ::treesitter_types::tree_sitter::Node<'tree>,
7385 src: &'tree [u8],
7386 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7387 debug_assert_eq!(node.kind(), "as_pattern_target");
7388 Ok(Self {
7389 span: ::treesitter_types::Span::from(node),
7390 text: node.utf8_text(src)?,
7391 })
7392 }
7393}
7394impl<'tree> ::treesitter_types::LeafNode<'tree> for AsPatternTarget<'tree> {
7395 fn text(&self) -> &'tree str {
7396 self.text
7397 }
7398}
7399impl ::treesitter_types::Spanned for AsPatternTarget<'_> {
7400 fn span(&self) -> ::treesitter_types::Span {
7401 self.span
7402 }
7403}
7404#[derive(Debug, Clone, PartialEq, Eq)]
7405pub enum ArgumentListChildren<'tree> {
7406 DictionarySplat(::std::boxed::Box<DictionarySplat<'tree>>),
7407 Expression(::std::boxed::Box<Expression<'tree>>),
7408 KeywordArgument(::std::boxed::Box<KeywordArgument<'tree>>),
7409 ListSplat(::std::boxed::Box<ListSplat<'tree>>),
7410 ParenthesizedExpression(::std::boxed::Box<ParenthesizedExpression<'tree>>),
7411}
7412impl<'tree> ::treesitter_types::FromNode<'tree> for ArgumentListChildren<'tree> {
7413 #[allow(clippy::collapsible_else_if)]
7414 fn from_node(
7415 node: ::treesitter_types::tree_sitter::Node<'tree>,
7416 src: &'tree [u8],
7417 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7418 match node.kind() {
7419 "dictionary_splat" => Ok(Self::DictionarySplat(::std::boxed::Box::new(
7420 ::treesitter_types::runtime::maybe_grow_stack(|| {
7421 <DictionarySplat as ::treesitter_types::FromNode>::from_node(node, src)
7422 })?,
7423 ))),
7424 "keyword_argument" => Ok(Self::KeywordArgument(::std::boxed::Box::new(
7425 ::treesitter_types::runtime::maybe_grow_stack(|| {
7426 <KeywordArgument as ::treesitter_types::FromNode>::from_node(node, src)
7427 })?,
7428 ))),
7429 "list_splat" => Ok(Self::ListSplat(::std::boxed::Box::new(
7430 ::treesitter_types::runtime::maybe_grow_stack(|| {
7431 <ListSplat as ::treesitter_types::FromNode>::from_node(node, src)
7432 })?,
7433 ))),
7434 "parenthesized_expression" => Ok(Self::ParenthesizedExpression(
7435 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
7436 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(node, src)
7437 })?),
7438 )),
7439 _other => {
7440 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
7441 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
7442 }) {
7443 Ok(Self::Expression(::std::boxed::Box::new(v)))
7444 } else {
7445 Err(::treesitter_types::ParseError::unexpected_kind(
7446 _other, node,
7447 ))
7448 }
7449 }
7450 }
7451 }
7452}
7453impl ::treesitter_types::Spanned for ArgumentListChildren<'_> {
7454 fn span(&self) -> ::treesitter_types::Span {
7455 match self {
7456 Self::DictionarySplat(inner) => inner.span(),
7457 Self::Expression(inner) => inner.span(),
7458 Self::KeywordArgument(inner) => inner.span(),
7459 Self::ListSplat(inner) => inner.span(),
7460 Self::ParenthesizedExpression(inner) => inner.span(),
7461 }
7462 }
7463}
7464#[derive(Debug, Clone, PartialEq, Eq)]
7465pub enum AsPatternChildren<'tree> {
7466 CasePattern(::std::boxed::Box<CasePattern<'tree>>),
7467 Expression(::std::boxed::Box<Expression<'tree>>),
7468 Identifier(::std::boxed::Box<Identifier<'tree>>),
7469}
7470impl<'tree> ::treesitter_types::FromNode<'tree> for AsPatternChildren<'tree> {
7471 #[allow(clippy::collapsible_else_if)]
7472 fn from_node(
7473 node: ::treesitter_types::tree_sitter::Node<'tree>,
7474 src: &'tree [u8],
7475 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7476 match node.kind() {
7477 "case_pattern" => Ok(Self::CasePattern(::std::boxed::Box::new(
7478 ::treesitter_types::runtime::maybe_grow_stack(|| {
7479 <CasePattern as ::treesitter_types::FromNode>::from_node(node, src)
7480 })?,
7481 ))),
7482 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
7483 ::treesitter_types::runtime::maybe_grow_stack(|| {
7484 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
7485 })?,
7486 ))),
7487 _other => {
7488 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
7489 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
7490 }) {
7491 Ok(Self::Expression(::std::boxed::Box::new(v)))
7492 } else {
7493 Err(::treesitter_types::ParseError::unexpected_kind(
7494 _other, node,
7495 ))
7496 }
7497 }
7498 }
7499 }
7500}
7501impl ::treesitter_types::Spanned for AsPatternChildren<'_> {
7502 fn span(&self) -> ::treesitter_types::Span {
7503 match self {
7504 Self::CasePattern(inner) => inner.span(),
7505 Self::Expression(inner) => inner.span(),
7506 Self::Identifier(inner) => inner.span(),
7507 }
7508 }
7509}
7510#[derive(Debug, Clone, PartialEq, Eq)]
7511pub enum AssignmentLeft<'tree> {
7512 Pattern(::std::boxed::Box<Pattern<'tree>>),
7513 PatternList(::std::boxed::Box<PatternList<'tree>>),
7514}
7515impl<'tree> ::treesitter_types::FromNode<'tree> for AssignmentLeft<'tree> {
7516 #[allow(clippy::collapsible_else_if)]
7517 fn from_node(
7518 node: ::treesitter_types::tree_sitter::Node<'tree>,
7519 src: &'tree [u8],
7520 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7521 match node.kind() {
7522 "pattern_list" => Ok(Self::PatternList(::std::boxed::Box::new(
7523 ::treesitter_types::runtime::maybe_grow_stack(|| {
7524 <PatternList as ::treesitter_types::FromNode>::from_node(node, src)
7525 })?,
7526 ))),
7527 _other => {
7528 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
7529 <Pattern as ::treesitter_types::FromNode>::from_node(node, src)
7530 }) {
7531 Ok(Self::Pattern(::std::boxed::Box::new(v)))
7532 } else {
7533 Err(::treesitter_types::ParseError::unexpected_kind(
7534 _other, node,
7535 ))
7536 }
7537 }
7538 }
7539 }
7540}
7541impl ::treesitter_types::Spanned for AssignmentLeft<'_> {
7542 fn span(&self) -> ::treesitter_types::Span {
7543 match self {
7544 Self::Pattern(inner) => inner.span(),
7545 Self::PatternList(inner) => inner.span(),
7546 }
7547 }
7548}
7549#[derive(Debug, Clone, PartialEq, Eq)]
7550pub enum AssignmentRight<'tree> {
7551 Assignment(::std::boxed::Box<Assignment<'tree>>),
7552 AugmentedAssignment(::std::boxed::Box<AugmentedAssignment<'tree>>),
7553 Expression(::std::boxed::Box<Expression<'tree>>),
7554 ExpressionList(::std::boxed::Box<ExpressionList<'tree>>),
7555 PatternList(::std::boxed::Box<PatternList<'tree>>),
7556 Yield(::std::boxed::Box<Yield<'tree>>),
7557}
7558impl<'tree> ::treesitter_types::FromNode<'tree> for AssignmentRight<'tree> {
7559 #[allow(clippy::collapsible_else_if)]
7560 fn from_node(
7561 node: ::treesitter_types::tree_sitter::Node<'tree>,
7562 src: &'tree [u8],
7563 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7564 match node.kind() {
7565 "assignment" => Ok(Self::Assignment(::std::boxed::Box::new(
7566 ::treesitter_types::runtime::maybe_grow_stack(|| {
7567 <Assignment as ::treesitter_types::FromNode>::from_node(node, src)
7568 })?,
7569 ))),
7570 "augmented_assignment" => Ok(Self::AugmentedAssignment(::std::boxed::Box::new(
7571 ::treesitter_types::runtime::maybe_grow_stack(|| {
7572 <AugmentedAssignment as ::treesitter_types::FromNode>::from_node(node, src)
7573 })?,
7574 ))),
7575 "expression_list" => Ok(Self::ExpressionList(::std::boxed::Box::new(
7576 ::treesitter_types::runtime::maybe_grow_stack(|| {
7577 <ExpressionList as ::treesitter_types::FromNode>::from_node(node, src)
7578 })?,
7579 ))),
7580 "pattern_list" => Ok(Self::PatternList(::std::boxed::Box::new(
7581 ::treesitter_types::runtime::maybe_grow_stack(|| {
7582 <PatternList as ::treesitter_types::FromNode>::from_node(node, src)
7583 })?,
7584 ))),
7585 "yield" => Ok(Self::Yield(::std::boxed::Box::new(
7586 ::treesitter_types::runtime::maybe_grow_stack(|| {
7587 <Yield as ::treesitter_types::FromNode>::from_node(node, src)
7588 })?,
7589 ))),
7590 _other => {
7591 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
7592 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
7593 }) {
7594 Ok(Self::Expression(::std::boxed::Box::new(v)))
7595 } else {
7596 Err(::treesitter_types::ParseError::unexpected_kind(
7597 _other, node,
7598 ))
7599 }
7600 }
7601 }
7602 }
7603}
7604impl ::treesitter_types::Spanned for AssignmentRight<'_> {
7605 fn span(&self) -> ::treesitter_types::Span {
7606 match self {
7607 Self::Assignment(inner) => inner.span(),
7608 Self::AugmentedAssignment(inner) => inner.span(),
7609 Self::Expression(inner) => inner.span(),
7610 Self::ExpressionList(inner) => inner.span(),
7611 Self::PatternList(inner) => inner.span(),
7612 Self::Yield(inner) => inner.span(),
7613 }
7614 }
7615}
7616#[derive(Debug, Clone, PartialEq, Eq)]
7617pub enum AugmentedAssignmentLeft<'tree> {
7618 Pattern(::std::boxed::Box<Pattern<'tree>>),
7619 PatternList(::std::boxed::Box<PatternList<'tree>>),
7620}
7621impl<'tree> ::treesitter_types::FromNode<'tree> for AugmentedAssignmentLeft<'tree> {
7622 #[allow(clippy::collapsible_else_if)]
7623 fn from_node(
7624 node: ::treesitter_types::tree_sitter::Node<'tree>,
7625 src: &'tree [u8],
7626 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7627 match node.kind() {
7628 "pattern_list" => Ok(Self::PatternList(::std::boxed::Box::new(
7629 ::treesitter_types::runtime::maybe_grow_stack(|| {
7630 <PatternList as ::treesitter_types::FromNode>::from_node(node, src)
7631 })?,
7632 ))),
7633 _other => {
7634 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
7635 <Pattern as ::treesitter_types::FromNode>::from_node(node, src)
7636 }) {
7637 Ok(Self::Pattern(::std::boxed::Box::new(v)))
7638 } else {
7639 Err(::treesitter_types::ParseError::unexpected_kind(
7640 _other, node,
7641 ))
7642 }
7643 }
7644 }
7645 }
7646}
7647impl ::treesitter_types::Spanned for AugmentedAssignmentLeft<'_> {
7648 fn span(&self) -> ::treesitter_types::Span {
7649 match self {
7650 Self::Pattern(inner) => inner.span(),
7651 Self::PatternList(inner) => inner.span(),
7652 }
7653 }
7654}
7655#[derive(Debug, Clone, PartialEq, Eq)]
7656pub enum AugmentedAssignmentOperator {
7657 PercentEq(::treesitter_types::Span),
7658 AmpEq(::treesitter_types::Span),
7659 StarStarEq(::treesitter_types::Span),
7660 StarEq(::treesitter_types::Span),
7661 PlusEq(::treesitter_types::Span),
7662 MinusEq(::treesitter_types::Span),
7663 SlashSlashEq(::treesitter_types::Span),
7664 SlashEq(::treesitter_types::Span),
7665 ShlEq(::treesitter_types::Span),
7666 ShrEq(::treesitter_types::Span),
7667 AtEq(::treesitter_types::Span),
7668 CaretEq(::treesitter_types::Span),
7669 PipeEq(::treesitter_types::Span),
7670}
7671impl<'tree> ::treesitter_types::FromNode<'tree> for AugmentedAssignmentOperator {
7672 #[allow(clippy::collapsible_else_if)]
7673 fn from_node(
7674 node: ::treesitter_types::tree_sitter::Node<'tree>,
7675 _src: &'tree [u8],
7676 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7677 match node.kind() {
7678 "%=" => Ok(Self::PercentEq(::treesitter_types::Span::from(node))),
7679 "&=" => Ok(Self::AmpEq(::treesitter_types::Span::from(node))),
7680 "**=" => Ok(Self::StarStarEq(::treesitter_types::Span::from(node))),
7681 "*=" => Ok(Self::StarEq(::treesitter_types::Span::from(node))),
7682 "+=" => Ok(Self::PlusEq(::treesitter_types::Span::from(node))),
7683 "-=" => Ok(Self::MinusEq(::treesitter_types::Span::from(node))),
7684 "//=" => Ok(Self::SlashSlashEq(::treesitter_types::Span::from(node))),
7685 "/=" => Ok(Self::SlashEq(::treesitter_types::Span::from(node))),
7686 "<<=" => Ok(Self::ShlEq(::treesitter_types::Span::from(node))),
7687 ">>=" => Ok(Self::ShrEq(::treesitter_types::Span::from(node))),
7688 "@=" => Ok(Self::AtEq(::treesitter_types::Span::from(node))),
7689 "^=" => Ok(Self::CaretEq(::treesitter_types::Span::from(node))),
7690 "|=" => Ok(Self::PipeEq(::treesitter_types::Span::from(node))),
7691 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7692 }
7693 }
7694}
7695impl ::treesitter_types::Spanned for AugmentedAssignmentOperator {
7696 fn span(&self) -> ::treesitter_types::Span {
7697 match self {
7698 Self::PercentEq(span) => *span,
7699 Self::AmpEq(span) => *span,
7700 Self::StarStarEq(span) => *span,
7701 Self::StarEq(span) => *span,
7702 Self::PlusEq(span) => *span,
7703 Self::MinusEq(span) => *span,
7704 Self::SlashSlashEq(span) => *span,
7705 Self::SlashEq(span) => *span,
7706 Self::ShlEq(span) => *span,
7707 Self::ShrEq(span) => *span,
7708 Self::AtEq(span) => *span,
7709 Self::CaretEq(span) => *span,
7710 Self::PipeEq(span) => *span,
7711 }
7712 }
7713}
7714#[derive(Debug, Clone, PartialEq, Eq)]
7715pub enum AugmentedAssignmentRight<'tree> {
7716 Assignment(::std::boxed::Box<Assignment<'tree>>),
7717 AugmentedAssignment(::std::boxed::Box<AugmentedAssignment<'tree>>),
7718 Expression(::std::boxed::Box<Expression<'tree>>),
7719 ExpressionList(::std::boxed::Box<ExpressionList<'tree>>),
7720 PatternList(::std::boxed::Box<PatternList<'tree>>),
7721 Yield(::std::boxed::Box<Yield<'tree>>),
7722}
7723impl<'tree> ::treesitter_types::FromNode<'tree> for AugmentedAssignmentRight<'tree> {
7724 #[allow(clippy::collapsible_else_if)]
7725 fn from_node(
7726 node: ::treesitter_types::tree_sitter::Node<'tree>,
7727 src: &'tree [u8],
7728 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7729 match node.kind() {
7730 "assignment" => Ok(Self::Assignment(::std::boxed::Box::new(
7731 ::treesitter_types::runtime::maybe_grow_stack(|| {
7732 <Assignment as ::treesitter_types::FromNode>::from_node(node, src)
7733 })?,
7734 ))),
7735 "augmented_assignment" => Ok(Self::AugmentedAssignment(::std::boxed::Box::new(
7736 ::treesitter_types::runtime::maybe_grow_stack(|| {
7737 <AugmentedAssignment as ::treesitter_types::FromNode>::from_node(node, src)
7738 })?,
7739 ))),
7740 "expression_list" => Ok(Self::ExpressionList(::std::boxed::Box::new(
7741 ::treesitter_types::runtime::maybe_grow_stack(|| {
7742 <ExpressionList as ::treesitter_types::FromNode>::from_node(node, src)
7743 })?,
7744 ))),
7745 "pattern_list" => Ok(Self::PatternList(::std::boxed::Box::new(
7746 ::treesitter_types::runtime::maybe_grow_stack(|| {
7747 <PatternList as ::treesitter_types::FromNode>::from_node(node, src)
7748 })?,
7749 ))),
7750 "yield" => Ok(Self::Yield(::std::boxed::Box::new(
7751 ::treesitter_types::runtime::maybe_grow_stack(|| {
7752 <Yield as ::treesitter_types::FromNode>::from_node(node, src)
7753 })?,
7754 ))),
7755 _other => {
7756 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
7757 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
7758 }) {
7759 Ok(Self::Expression(::std::boxed::Box::new(v)))
7760 } else {
7761 Err(::treesitter_types::ParseError::unexpected_kind(
7762 _other, node,
7763 ))
7764 }
7765 }
7766 }
7767 }
7768}
7769impl ::treesitter_types::Spanned for AugmentedAssignmentRight<'_> {
7770 fn span(&self) -> ::treesitter_types::Span {
7771 match self {
7772 Self::Assignment(inner) => inner.span(),
7773 Self::AugmentedAssignment(inner) => inner.span(),
7774 Self::Expression(inner) => inner.span(),
7775 Self::ExpressionList(inner) => inner.span(),
7776 Self::PatternList(inner) => inner.span(),
7777 Self::Yield(inner) => inner.span(),
7778 }
7779 }
7780}
7781#[derive(Debug, Clone, PartialEq, Eq)]
7782pub enum BinaryOperatorOperator {
7783 Percent(::treesitter_types::Span),
7784 Amp(::treesitter_types::Span),
7785 Star(::treesitter_types::Span),
7786 StarStar(::treesitter_types::Span),
7787 Plus(::treesitter_types::Span),
7788 Minus(::treesitter_types::Span),
7789 Slash(::treesitter_types::Span),
7790 SlashSlash(::treesitter_types::Span),
7791 Shl(::treesitter_types::Span),
7792 Shr(::treesitter_types::Span),
7793 At(::treesitter_types::Span),
7794 Caret(::treesitter_types::Span),
7795 Pipe(::treesitter_types::Span),
7796}
7797impl<'tree> ::treesitter_types::FromNode<'tree> for BinaryOperatorOperator {
7798 #[allow(clippy::collapsible_else_if)]
7799 fn from_node(
7800 node: ::treesitter_types::tree_sitter::Node<'tree>,
7801 _src: &'tree [u8],
7802 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7803 match node.kind() {
7804 "%" => Ok(Self::Percent(::treesitter_types::Span::from(node))),
7805 "&" => Ok(Self::Amp(::treesitter_types::Span::from(node))),
7806 "*" => Ok(Self::Star(::treesitter_types::Span::from(node))),
7807 "**" => Ok(Self::StarStar(::treesitter_types::Span::from(node))),
7808 "+" => Ok(Self::Plus(::treesitter_types::Span::from(node))),
7809 "-" => Ok(Self::Minus(::treesitter_types::Span::from(node))),
7810 "/" => Ok(Self::Slash(::treesitter_types::Span::from(node))),
7811 "//" => Ok(Self::SlashSlash(::treesitter_types::Span::from(node))),
7812 "<<" => Ok(Self::Shl(::treesitter_types::Span::from(node))),
7813 ">>" => Ok(Self::Shr(::treesitter_types::Span::from(node))),
7814 "@" => Ok(Self::At(::treesitter_types::Span::from(node))),
7815 "^" => Ok(Self::Caret(::treesitter_types::Span::from(node))),
7816 "|" => Ok(Self::Pipe(::treesitter_types::Span::from(node))),
7817 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7818 }
7819 }
7820}
7821impl ::treesitter_types::Spanned for BinaryOperatorOperator {
7822 fn span(&self) -> ::treesitter_types::Span {
7823 match self {
7824 Self::Percent(span) => *span,
7825 Self::Amp(span) => *span,
7826 Self::Star(span) => *span,
7827 Self::StarStar(span) => *span,
7828 Self::Plus(span) => *span,
7829 Self::Minus(span) => *span,
7830 Self::Slash(span) => *span,
7831 Self::SlashSlash(span) => *span,
7832 Self::Shl(span) => *span,
7833 Self::Shr(span) => *span,
7834 Self::At(span) => *span,
7835 Self::Caret(span) => *span,
7836 Self::Pipe(span) => *span,
7837 }
7838 }
7839}
7840#[derive(Debug, Clone, PartialEq, Eq)]
7841pub enum BlockChildren<'tree> {
7842 CompoundStatement(::std::boxed::Box<CompoundStatement<'tree>>),
7843 SimpleStatement(::std::boxed::Box<SimpleStatement<'tree>>),
7844}
7845impl<'tree> ::treesitter_types::FromNode<'tree> for BlockChildren<'tree> {
7846 #[allow(clippy::collapsible_else_if)]
7847 fn from_node(
7848 node: ::treesitter_types::tree_sitter::Node<'tree>,
7849 src: &'tree [u8],
7850 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7851 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
7852 <CompoundStatement as ::treesitter_types::FromNode>::from_node(node, src)
7853 }) {
7854 Ok(Self::CompoundStatement(::std::boxed::Box::new(v)))
7855 } else {
7856 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
7857 <SimpleStatement as ::treesitter_types::FromNode>::from_node(node, src)
7858 }) {
7859 Ok(Self::SimpleStatement(::std::boxed::Box::new(v)))
7860 } else {
7861 Err(::treesitter_types::ParseError::unexpected_kind(
7862 node.kind(),
7863 node,
7864 ))
7865 }
7866 }
7867 }
7868}
7869impl ::treesitter_types::Spanned for BlockChildren<'_> {
7870 fn span(&self) -> ::treesitter_types::Span {
7871 match self {
7872 Self::CompoundStatement(inner) => inner.span(),
7873 Self::SimpleStatement(inner) => inner.span(),
7874 }
7875 }
7876}
7877#[derive(Debug, Clone, PartialEq, Eq)]
7878pub enum BooleanOperatorOperator {
7879 And(::treesitter_types::Span),
7880 Or(::treesitter_types::Span),
7881}
7882impl<'tree> ::treesitter_types::FromNode<'tree> for BooleanOperatorOperator {
7883 #[allow(clippy::collapsible_else_if)]
7884 fn from_node(
7885 node: ::treesitter_types::tree_sitter::Node<'tree>,
7886 _src: &'tree [u8],
7887 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7888 match node.kind() {
7889 "and" => Ok(Self::And(::treesitter_types::Span::from(node))),
7890 "or" => Ok(Self::Or(::treesitter_types::Span::from(node))),
7891 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7892 }
7893 }
7894}
7895impl ::treesitter_types::Spanned for BooleanOperatorOperator {
7896 fn span(&self) -> ::treesitter_types::Span {
7897 match self {
7898 Self::And(span) => *span,
7899 Self::Or(span) => *span,
7900 }
7901 }
7902}
7903#[derive(Debug, Clone, PartialEq, Eq)]
7904pub enum CallArguments<'tree> {
7905 ArgumentList(::std::boxed::Box<ArgumentList<'tree>>),
7906 GeneratorExpression(::std::boxed::Box<GeneratorExpression<'tree>>),
7907}
7908impl<'tree> ::treesitter_types::FromNode<'tree> for CallArguments<'tree> {
7909 #[allow(clippy::collapsible_else_if)]
7910 fn from_node(
7911 node: ::treesitter_types::tree_sitter::Node<'tree>,
7912 src: &'tree [u8],
7913 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7914 match node.kind() {
7915 "argument_list" => Ok(Self::ArgumentList(::std::boxed::Box::new(
7916 ::treesitter_types::runtime::maybe_grow_stack(|| {
7917 <ArgumentList as ::treesitter_types::FromNode>::from_node(node, src)
7918 })?,
7919 ))),
7920 "generator_expression" => Ok(Self::GeneratorExpression(::std::boxed::Box::new(
7921 ::treesitter_types::runtime::maybe_grow_stack(|| {
7922 <GeneratorExpression as ::treesitter_types::FromNode>::from_node(node, src)
7923 })?,
7924 ))),
7925 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7926 }
7927 }
7928}
7929impl ::treesitter_types::Spanned for CallArguments<'_> {
7930 fn span(&self) -> ::treesitter_types::Span {
7931 match self {
7932 Self::ArgumentList(inner) => inner.span(),
7933 Self::GeneratorExpression(inner) => inner.span(),
7934 }
7935 }
7936}
7937#[derive(Debug, Clone, PartialEq, Eq)]
7938pub enum CasePatternChildren<'tree> {
7939 AsPattern(::std::boxed::Box<AsPattern<'tree>>),
7940 ClassPattern(::std::boxed::Box<ClassPattern<'tree>>),
7941 ComplexPattern(::std::boxed::Box<ComplexPattern<'tree>>),
7942 ConcatenatedString(::std::boxed::Box<ConcatenatedString<'tree>>),
7943 DictPattern(::std::boxed::Box<DictPattern<'tree>>),
7944 DottedName(::std::boxed::Box<DottedName<'tree>>),
7945 False(::std::boxed::Box<False<'tree>>),
7946 Float(::std::boxed::Box<Float<'tree>>),
7947 Integer(::std::boxed::Box<Integer<'tree>>),
7948 KeywordPattern(::std::boxed::Box<KeywordPattern<'tree>>),
7949 ListPattern(::std::boxed::Box<ListPattern<'tree>>),
7950 None(::std::boxed::Box<None<'tree>>),
7951 SplatPattern(::std::boxed::Box<SplatPattern<'tree>>),
7952 String(::std::boxed::Box<String<'tree>>),
7953 True(::std::boxed::Box<True<'tree>>),
7954 TuplePattern(::std::boxed::Box<TuplePattern<'tree>>),
7955 UnionPattern(::std::boxed::Box<UnionPattern<'tree>>),
7956}
7957impl<'tree> ::treesitter_types::FromNode<'tree> for CasePatternChildren<'tree> {
7958 #[allow(clippy::collapsible_else_if)]
7959 fn from_node(
7960 node: ::treesitter_types::tree_sitter::Node<'tree>,
7961 src: &'tree [u8],
7962 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7963 match node.kind() {
7964 "as_pattern" => Ok(Self::AsPattern(::std::boxed::Box::new(
7965 ::treesitter_types::runtime::maybe_grow_stack(|| {
7966 <AsPattern as ::treesitter_types::FromNode>::from_node(node, src)
7967 })?,
7968 ))),
7969 "class_pattern" => Ok(Self::ClassPattern(::std::boxed::Box::new(
7970 ::treesitter_types::runtime::maybe_grow_stack(|| {
7971 <ClassPattern as ::treesitter_types::FromNode>::from_node(node, src)
7972 })?,
7973 ))),
7974 "complex_pattern" => Ok(Self::ComplexPattern(::std::boxed::Box::new(
7975 ::treesitter_types::runtime::maybe_grow_stack(|| {
7976 <ComplexPattern as ::treesitter_types::FromNode>::from_node(node, src)
7977 })?,
7978 ))),
7979 "concatenated_string" => Ok(Self::ConcatenatedString(::std::boxed::Box::new(
7980 ::treesitter_types::runtime::maybe_grow_stack(|| {
7981 <ConcatenatedString as ::treesitter_types::FromNode>::from_node(node, src)
7982 })?,
7983 ))),
7984 "dict_pattern" => Ok(Self::DictPattern(::std::boxed::Box::new(
7985 ::treesitter_types::runtime::maybe_grow_stack(|| {
7986 <DictPattern as ::treesitter_types::FromNode>::from_node(node, src)
7987 })?,
7988 ))),
7989 "dotted_name" => Ok(Self::DottedName(::std::boxed::Box::new(
7990 ::treesitter_types::runtime::maybe_grow_stack(|| {
7991 <DottedName as ::treesitter_types::FromNode>::from_node(node, src)
7992 })?,
7993 ))),
7994 "false" => Ok(Self::False(::std::boxed::Box::new(
7995 ::treesitter_types::runtime::maybe_grow_stack(|| {
7996 <False as ::treesitter_types::FromNode>::from_node(node, src)
7997 })?,
7998 ))),
7999 "float" => Ok(Self::Float(::std::boxed::Box::new(
8000 ::treesitter_types::runtime::maybe_grow_stack(|| {
8001 <Float as ::treesitter_types::FromNode>::from_node(node, src)
8002 })?,
8003 ))),
8004 "integer" => Ok(Self::Integer(::std::boxed::Box::new(
8005 ::treesitter_types::runtime::maybe_grow_stack(|| {
8006 <Integer as ::treesitter_types::FromNode>::from_node(node, src)
8007 })?,
8008 ))),
8009 "keyword_pattern" => Ok(Self::KeywordPattern(::std::boxed::Box::new(
8010 ::treesitter_types::runtime::maybe_grow_stack(|| {
8011 <KeywordPattern as ::treesitter_types::FromNode>::from_node(node, src)
8012 })?,
8013 ))),
8014 "list_pattern" => Ok(Self::ListPattern(::std::boxed::Box::new(
8015 ::treesitter_types::runtime::maybe_grow_stack(|| {
8016 <ListPattern as ::treesitter_types::FromNode>::from_node(node, src)
8017 })?,
8018 ))),
8019 "none" => Ok(Self::None(::std::boxed::Box::new(
8020 ::treesitter_types::runtime::maybe_grow_stack(|| {
8021 <None as ::treesitter_types::FromNode>::from_node(node, src)
8022 })?,
8023 ))),
8024 "splat_pattern" => Ok(Self::SplatPattern(::std::boxed::Box::new(
8025 ::treesitter_types::runtime::maybe_grow_stack(|| {
8026 <SplatPattern as ::treesitter_types::FromNode>::from_node(node, src)
8027 })?,
8028 ))),
8029 "string" => Ok(Self::String(::std::boxed::Box::new(
8030 ::treesitter_types::runtime::maybe_grow_stack(|| {
8031 <String as ::treesitter_types::FromNode>::from_node(node, src)
8032 })?,
8033 ))),
8034 "true" => Ok(Self::True(::std::boxed::Box::new(
8035 ::treesitter_types::runtime::maybe_grow_stack(|| {
8036 <True as ::treesitter_types::FromNode>::from_node(node, src)
8037 })?,
8038 ))),
8039 "tuple_pattern" => Ok(Self::TuplePattern(::std::boxed::Box::new(
8040 ::treesitter_types::runtime::maybe_grow_stack(|| {
8041 <TuplePattern as ::treesitter_types::FromNode>::from_node(node, src)
8042 })?,
8043 ))),
8044 "union_pattern" => Ok(Self::UnionPattern(::std::boxed::Box::new(
8045 ::treesitter_types::runtime::maybe_grow_stack(|| {
8046 <UnionPattern as ::treesitter_types::FromNode>::from_node(node, src)
8047 })?,
8048 ))),
8049 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8050 }
8051 }
8052}
8053impl ::treesitter_types::Spanned for CasePatternChildren<'_> {
8054 fn span(&self) -> ::treesitter_types::Span {
8055 match self {
8056 Self::AsPattern(inner) => inner.span(),
8057 Self::ClassPattern(inner) => inner.span(),
8058 Self::ComplexPattern(inner) => inner.span(),
8059 Self::ConcatenatedString(inner) => inner.span(),
8060 Self::DictPattern(inner) => inner.span(),
8061 Self::DottedName(inner) => inner.span(),
8062 Self::False(inner) => inner.span(),
8063 Self::Float(inner) => inner.span(),
8064 Self::Integer(inner) => inner.span(),
8065 Self::KeywordPattern(inner) => inner.span(),
8066 Self::ListPattern(inner) => inner.span(),
8067 Self::None(inner) => inner.span(),
8068 Self::SplatPattern(inner) => inner.span(),
8069 Self::String(inner) => inner.span(),
8070 Self::True(inner) => inner.span(),
8071 Self::TuplePattern(inner) => inner.span(),
8072 Self::UnionPattern(inner) => inner.span(),
8073 }
8074 }
8075}
8076#[derive(Debug, Clone, PartialEq, Eq)]
8077pub enum ClassPatternChildren<'tree> {
8078 CasePattern(::std::boxed::Box<CasePattern<'tree>>),
8079 DottedName(::std::boxed::Box<DottedName<'tree>>),
8080}
8081impl<'tree> ::treesitter_types::FromNode<'tree> for ClassPatternChildren<'tree> {
8082 #[allow(clippy::collapsible_else_if)]
8083 fn from_node(
8084 node: ::treesitter_types::tree_sitter::Node<'tree>,
8085 src: &'tree [u8],
8086 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8087 match node.kind() {
8088 "case_pattern" => Ok(Self::CasePattern(::std::boxed::Box::new(
8089 ::treesitter_types::runtime::maybe_grow_stack(|| {
8090 <CasePattern as ::treesitter_types::FromNode>::from_node(node, src)
8091 })?,
8092 ))),
8093 "dotted_name" => Ok(Self::DottedName(::std::boxed::Box::new(
8094 ::treesitter_types::runtime::maybe_grow_stack(|| {
8095 <DottedName as ::treesitter_types::FromNode>::from_node(node, src)
8096 })?,
8097 ))),
8098 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8099 }
8100 }
8101}
8102impl ::treesitter_types::Spanned for ClassPatternChildren<'_> {
8103 fn span(&self) -> ::treesitter_types::Span {
8104 match self {
8105 Self::CasePattern(inner) => inner.span(),
8106 Self::DottedName(inner) => inner.span(),
8107 }
8108 }
8109}
8110#[derive(Debug, Clone, PartialEq, Eq)]
8111pub enum ComparisonOperatorOperators {
8112 NotEq(::treesitter_types::Span),
8113 Lt(::treesitter_types::Span),
8114 LtEq(::treesitter_types::Span),
8115 LtGt(::treesitter_types::Span),
8116 EqEq(::treesitter_types::Span),
8117 Gt(::treesitter_types::Span),
8118 GtEq(::treesitter_types::Span),
8119 In(::treesitter_types::Span),
8120 Is(::treesitter_types::Span),
8121 ISXNOT(::treesitter_types::Span),
8122 NOTXIN(::treesitter_types::Span),
8123}
8124impl<'tree> ::treesitter_types::FromNode<'tree> for ComparisonOperatorOperators {
8125 #[allow(clippy::collapsible_else_if)]
8126 fn from_node(
8127 node: ::treesitter_types::tree_sitter::Node<'tree>,
8128 _src: &'tree [u8],
8129 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8130 match node.kind() {
8131 "!=" => Ok(Self::NotEq(::treesitter_types::Span::from(node))),
8132 "<" => Ok(Self::Lt(::treesitter_types::Span::from(node))),
8133 "<=" => Ok(Self::LtEq(::treesitter_types::Span::from(node))),
8134 "<>" => Ok(Self::LtGt(::treesitter_types::Span::from(node))),
8135 "==" => Ok(Self::EqEq(::treesitter_types::Span::from(node))),
8136 ">" => Ok(Self::Gt(::treesitter_types::Span::from(node))),
8137 ">=" => Ok(Self::GtEq(::treesitter_types::Span::from(node))),
8138 "in" => Ok(Self::In(::treesitter_types::Span::from(node))),
8139 "is" => Ok(Self::Is(::treesitter_types::Span::from(node))),
8140 "is not" => Ok(Self::ISXNOT(::treesitter_types::Span::from(node))),
8141 "not in" => Ok(Self::NOTXIN(::treesitter_types::Span::from(node))),
8142 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8143 }
8144 }
8145}
8146impl ::treesitter_types::Spanned for ComparisonOperatorOperators {
8147 fn span(&self) -> ::treesitter_types::Span {
8148 match self {
8149 Self::NotEq(span) => *span,
8150 Self::Lt(span) => *span,
8151 Self::LtEq(span) => *span,
8152 Self::LtGt(span) => *span,
8153 Self::EqEq(span) => *span,
8154 Self::Gt(span) => *span,
8155 Self::GtEq(span) => *span,
8156 Self::In(span) => *span,
8157 Self::Is(span) => *span,
8158 Self::ISXNOT(span) => *span,
8159 Self::NOTXIN(span) => *span,
8160 }
8161 }
8162}
8163#[derive(Debug, Clone, PartialEq, Eq)]
8164pub enum ComplexPatternChildren<'tree> {
8165 Float(::std::boxed::Box<Float<'tree>>),
8166 Integer(::std::boxed::Box<Integer<'tree>>),
8167}
8168impl<'tree> ::treesitter_types::FromNode<'tree> for ComplexPatternChildren<'tree> {
8169 #[allow(clippy::collapsible_else_if)]
8170 fn from_node(
8171 node: ::treesitter_types::tree_sitter::Node<'tree>,
8172 src: &'tree [u8],
8173 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8174 match node.kind() {
8175 "float" => Ok(Self::Float(::std::boxed::Box::new(
8176 ::treesitter_types::runtime::maybe_grow_stack(|| {
8177 <Float as ::treesitter_types::FromNode>::from_node(node, src)
8178 })?,
8179 ))),
8180 "integer" => Ok(Self::Integer(::std::boxed::Box::new(
8181 ::treesitter_types::runtime::maybe_grow_stack(|| {
8182 <Integer as ::treesitter_types::FromNode>::from_node(node, src)
8183 })?,
8184 ))),
8185 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8186 }
8187 }
8188}
8189impl ::treesitter_types::Spanned for ComplexPatternChildren<'_> {
8190 fn span(&self) -> ::treesitter_types::Span {
8191 match self {
8192 Self::Float(inner) => inner.span(),
8193 Self::Integer(inner) => inner.span(),
8194 }
8195 }
8196}
8197#[derive(Debug, Clone, PartialEq, Eq)]
8198pub enum DecoratedDefinitionDefinition<'tree> {
8199 ClassDefinition(::std::boxed::Box<ClassDefinition<'tree>>),
8200 FunctionDefinition(::std::boxed::Box<FunctionDefinition<'tree>>),
8201}
8202impl<'tree> ::treesitter_types::FromNode<'tree> for DecoratedDefinitionDefinition<'tree> {
8203 #[allow(clippy::collapsible_else_if)]
8204 fn from_node(
8205 node: ::treesitter_types::tree_sitter::Node<'tree>,
8206 src: &'tree [u8],
8207 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8208 match node.kind() {
8209 "class_definition" => Ok(Self::ClassDefinition(::std::boxed::Box::new(
8210 ::treesitter_types::runtime::maybe_grow_stack(|| {
8211 <ClassDefinition as ::treesitter_types::FromNode>::from_node(node, src)
8212 })?,
8213 ))),
8214 "function_definition" => Ok(Self::FunctionDefinition(::std::boxed::Box::new(
8215 ::treesitter_types::runtime::maybe_grow_stack(|| {
8216 <FunctionDefinition as ::treesitter_types::FromNode>::from_node(node, src)
8217 })?,
8218 ))),
8219 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8220 }
8221 }
8222}
8223impl ::treesitter_types::Spanned for DecoratedDefinitionDefinition<'_> {
8224 fn span(&self) -> ::treesitter_types::Span {
8225 match self {
8226 Self::ClassDefinition(inner) => inner.span(),
8227 Self::FunctionDefinition(inner) => inner.span(),
8228 }
8229 }
8230}
8231#[derive(Debug, Clone, PartialEq, Eq)]
8232pub enum DefaultParameterName<'tree> {
8233 Identifier(::std::boxed::Box<Identifier<'tree>>),
8234 TuplePattern(::std::boxed::Box<TuplePattern<'tree>>),
8235}
8236impl<'tree> ::treesitter_types::FromNode<'tree> for DefaultParameterName<'tree> {
8237 #[allow(clippy::collapsible_else_if)]
8238 fn from_node(
8239 node: ::treesitter_types::tree_sitter::Node<'tree>,
8240 src: &'tree [u8],
8241 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8242 match node.kind() {
8243 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
8244 ::treesitter_types::runtime::maybe_grow_stack(|| {
8245 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
8246 })?,
8247 ))),
8248 "tuple_pattern" => Ok(Self::TuplePattern(::std::boxed::Box::new(
8249 ::treesitter_types::runtime::maybe_grow_stack(|| {
8250 <TuplePattern as ::treesitter_types::FromNode>::from_node(node, src)
8251 })?,
8252 ))),
8253 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8254 }
8255 }
8256}
8257impl ::treesitter_types::Spanned for DefaultParameterName<'_> {
8258 fn span(&self) -> ::treesitter_types::Span {
8259 match self {
8260 Self::Identifier(inner) => inner.span(),
8261 Self::TuplePattern(inner) => inner.span(),
8262 }
8263 }
8264}
8265#[derive(Debug, Clone, PartialEq, Eq)]
8266pub enum DeleteStatementChildren<'tree> {
8267 Expression(::std::boxed::Box<Expression<'tree>>),
8268 ExpressionList(::std::boxed::Box<ExpressionList<'tree>>),
8269}
8270impl<'tree> ::treesitter_types::FromNode<'tree> for DeleteStatementChildren<'tree> {
8271 #[allow(clippy::collapsible_else_if)]
8272 fn from_node(
8273 node: ::treesitter_types::tree_sitter::Node<'tree>,
8274 src: &'tree [u8],
8275 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8276 match node.kind() {
8277 "expression_list" => Ok(Self::ExpressionList(::std::boxed::Box::new(
8278 ::treesitter_types::runtime::maybe_grow_stack(|| {
8279 <ExpressionList as ::treesitter_types::FromNode>::from_node(node, src)
8280 })?,
8281 ))),
8282 _other => {
8283 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
8284 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
8285 }) {
8286 Ok(Self::Expression(::std::boxed::Box::new(v)))
8287 } else {
8288 Err(::treesitter_types::ParseError::unexpected_kind(
8289 _other, node,
8290 ))
8291 }
8292 }
8293 }
8294 }
8295}
8296impl ::treesitter_types::Spanned for DeleteStatementChildren<'_> {
8297 fn span(&self) -> ::treesitter_types::Span {
8298 match self {
8299 Self::Expression(inner) => inner.span(),
8300 Self::ExpressionList(inner) => inner.span(),
8301 }
8302 }
8303}
8304#[derive(Debug, Clone, PartialEq, Eq)]
8305pub enum DictPatternKey<'tree> {
8306 Minus(::treesitter_types::Span),
8307 Blank(::treesitter_types::Span),
8308 ClassPattern(::std::boxed::Box<ClassPattern<'tree>>),
8309 ComplexPattern(::std::boxed::Box<ComplexPattern<'tree>>),
8310 ConcatenatedString(::std::boxed::Box<ConcatenatedString<'tree>>),
8311 DictPattern(::std::boxed::Box<DictPattern<'tree>>),
8312 DottedName(::std::boxed::Box<DottedName<'tree>>),
8313 False(::std::boxed::Box<False<'tree>>),
8314 Float(::std::boxed::Box<Float<'tree>>),
8315 Integer(::std::boxed::Box<Integer<'tree>>),
8316 ListPattern(::std::boxed::Box<ListPattern<'tree>>),
8317 None(::std::boxed::Box<None<'tree>>),
8318 SplatPattern(::std::boxed::Box<SplatPattern<'tree>>),
8319 String(::std::boxed::Box<String<'tree>>),
8320 True(::std::boxed::Box<True<'tree>>),
8321 TuplePattern(::std::boxed::Box<TuplePattern<'tree>>),
8322 UnionPattern(::std::boxed::Box<UnionPattern<'tree>>),
8323}
8324impl<'tree> ::treesitter_types::FromNode<'tree> for DictPatternKey<'tree> {
8325 #[allow(clippy::collapsible_else_if)]
8326 fn from_node(
8327 node: ::treesitter_types::tree_sitter::Node<'tree>,
8328 src: &'tree [u8],
8329 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8330 match node.kind() {
8331 "-" => Ok(Self::Minus(::treesitter_types::Span::from(node))),
8332 "_" => Ok(Self::Blank(::treesitter_types::Span::from(node))),
8333 "class_pattern" => Ok(Self::ClassPattern(::std::boxed::Box::new(
8334 ::treesitter_types::runtime::maybe_grow_stack(|| {
8335 <ClassPattern as ::treesitter_types::FromNode>::from_node(node, src)
8336 })?,
8337 ))),
8338 "complex_pattern" => Ok(Self::ComplexPattern(::std::boxed::Box::new(
8339 ::treesitter_types::runtime::maybe_grow_stack(|| {
8340 <ComplexPattern as ::treesitter_types::FromNode>::from_node(node, src)
8341 })?,
8342 ))),
8343 "concatenated_string" => Ok(Self::ConcatenatedString(::std::boxed::Box::new(
8344 ::treesitter_types::runtime::maybe_grow_stack(|| {
8345 <ConcatenatedString as ::treesitter_types::FromNode>::from_node(node, src)
8346 })?,
8347 ))),
8348 "dict_pattern" => Ok(Self::DictPattern(::std::boxed::Box::new(
8349 ::treesitter_types::runtime::maybe_grow_stack(|| {
8350 <DictPattern as ::treesitter_types::FromNode>::from_node(node, src)
8351 })?,
8352 ))),
8353 "dotted_name" => Ok(Self::DottedName(::std::boxed::Box::new(
8354 ::treesitter_types::runtime::maybe_grow_stack(|| {
8355 <DottedName as ::treesitter_types::FromNode>::from_node(node, src)
8356 })?,
8357 ))),
8358 "false" => Ok(Self::False(::std::boxed::Box::new(
8359 ::treesitter_types::runtime::maybe_grow_stack(|| {
8360 <False as ::treesitter_types::FromNode>::from_node(node, src)
8361 })?,
8362 ))),
8363 "float" => Ok(Self::Float(::std::boxed::Box::new(
8364 ::treesitter_types::runtime::maybe_grow_stack(|| {
8365 <Float as ::treesitter_types::FromNode>::from_node(node, src)
8366 })?,
8367 ))),
8368 "integer" => Ok(Self::Integer(::std::boxed::Box::new(
8369 ::treesitter_types::runtime::maybe_grow_stack(|| {
8370 <Integer as ::treesitter_types::FromNode>::from_node(node, src)
8371 })?,
8372 ))),
8373 "list_pattern" => Ok(Self::ListPattern(::std::boxed::Box::new(
8374 ::treesitter_types::runtime::maybe_grow_stack(|| {
8375 <ListPattern as ::treesitter_types::FromNode>::from_node(node, src)
8376 })?,
8377 ))),
8378 "none" => Ok(Self::None(::std::boxed::Box::new(
8379 ::treesitter_types::runtime::maybe_grow_stack(|| {
8380 <None as ::treesitter_types::FromNode>::from_node(node, src)
8381 })?,
8382 ))),
8383 "splat_pattern" => Ok(Self::SplatPattern(::std::boxed::Box::new(
8384 ::treesitter_types::runtime::maybe_grow_stack(|| {
8385 <SplatPattern as ::treesitter_types::FromNode>::from_node(node, src)
8386 })?,
8387 ))),
8388 "string" => Ok(Self::String(::std::boxed::Box::new(
8389 ::treesitter_types::runtime::maybe_grow_stack(|| {
8390 <String as ::treesitter_types::FromNode>::from_node(node, src)
8391 })?,
8392 ))),
8393 "true" => Ok(Self::True(::std::boxed::Box::new(
8394 ::treesitter_types::runtime::maybe_grow_stack(|| {
8395 <True as ::treesitter_types::FromNode>::from_node(node, src)
8396 })?,
8397 ))),
8398 "tuple_pattern" => Ok(Self::TuplePattern(::std::boxed::Box::new(
8399 ::treesitter_types::runtime::maybe_grow_stack(|| {
8400 <TuplePattern as ::treesitter_types::FromNode>::from_node(node, src)
8401 })?,
8402 ))),
8403 "union_pattern" => Ok(Self::UnionPattern(::std::boxed::Box::new(
8404 ::treesitter_types::runtime::maybe_grow_stack(|| {
8405 <UnionPattern as ::treesitter_types::FromNode>::from_node(node, src)
8406 })?,
8407 ))),
8408 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8409 }
8410 }
8411}
8412impl ::treesitter_types::Spanned for DictPatternKey<'_> {
8413 fn span(&self) -> ::treesitter_types::Span {
8414 match self {
8415 Self::Minus(span) => *span,
8416 Self::Blank(span) => *span,
8417 Self::ClassPattern(inner) => inner.span(),
8418 Self::ComplexPattern(inner) => inner.span(),
8419 Self::ConcatenatedString(inner) => inner.span(),
8420 Self::DictPattern(inner) => inner.span(),
8421 Self::DottedName(inner) => inner.span(),
8422 Self::False(inner) => inner.span(),
8423 Self::Float(inner) => inner.span(),
8424 Self::Integer(inner) => inner.span(),
8425 Self::ListPattern(inner) => inner.span(),
8426 Self::None(inner) => inner.span(),
8427 Self::SplatPattern(inner) => inner.span(),
8428 Self::String(inner) => inner.span(),
8429 Self::True(inner) => inner.span(),
8430 Self::TuplePattern(inner) => inner.span(),
8431 Self::UnionPattern(inner) => inner.span(),
8432 }
8433 }
8434}
8435#[derive(Debug, Clone, PartialEq, Eq)]
8436pub enum DictionaryChildren<'tree> {
8437 DictionarySplat(::std::boxed::Box<DictionarySplat<'tree>>),
8438 Pair(::std::boxed::Box<Pair<'tree>>),
8439}
8440impl<'tree> ::treesitter_types::FromNode<'tree> for DictionaryChildren<'tree> {
8441 #[allow(clippy::collapsible_else_if)]
8442 fn from_node(
8443 node: ::treesitter_types::tree_sitter::Node<'tree>,
8444 src: &'tree [u8],
8445 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8446 match node.kind() {
8447 "dictionary_splat" => Ok(Self::DictionarySplat(::std::boxed::Box::new(
8448 ::treesitter_types::runtime::maybe_grow_stack(|| {
8449 <DictionarySplat as ::treesitter_types::FromNode>::from_node(node, src)
8450 })?,
8451 ))),
8452 "pair" => Ok(Self::Pair(::std::boxed::Box::new(
8453 ::treesitter_types::runtime::maybe_grow_stack(|| {
8454 <Pair as ::treesitter_types::FromNode>::from_node(node, src)
8455 })?,
8456 ))),
8457 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8458 }
8459 }
8460}
8461impl ::treesitter_types::Spanned for DictionaryChildren<'_> {
8462 fn span(&self) -> ::treesitter_types::Span {
8463 match self {
8464 Self::DictionarySplat(inner) => inner.span(),
8465 Self::Pair(inner) => inner.span(),
8466 }
8467 }
8468}
8469#[derive(Debug, Clone, PartialEq, Eq)]
8470pub enum DictionaryComprehensionChildren<'tree> {
8471 ForInClause(::std::boxed::Box<ForInClause<'tree>>),
8472 IfClause(::std::boxed::Box<IfClause<'tree>>),
8473}
8474impl<'tree> ::treesitter_types::FromNode<'tree> for DictionaryComprehensionChildren<'tree> {
8475 #[allow(clippy::collapsible_else_if)]
8476 fn from_node(
8477 node: ::treesitter_types::tree_sitter::Node<'tree>,
8478 src: &'tree [u8],
8479 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8480 match node.kind() {
8481 "for_in_clause" => Ok(Self::ForInClause(::std::boxed::Box::new(
8482 ::treesitter_types::runtime::maybe_grow_stack(|| {
8483 <ForInClause as ::treesitter_types::FromNode>::from_node(node, src)
8484 })?,
8485 ))),
8486 "if_clause" => Ok(Self::IfClause(::std::boxed::Box::new(
8487 ::treesitter_types::runtime::maybe_grow_stack(|| {
8488 <IfClause as ::treesitter_types::FromNode>::from_node(node, src)
8489 })?,
8490 ))),
8491 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8492 }
8493 }
8494}
8495impl ::treesitter_types::Spanned for DictionaryComprehensionChildren<'_> {
8496 fn span(&self) -> ::treesitter_types::Span {
8497 match self {
8498 Self::ForInClause(inner) => inner.span(),
8499 Self::IfClause(inner) => inner.span(),
8500 }
8501 }
8502}
8503#[derive(Debug, Clone, PartialEq, Eq)]
8504pub enum DictionarySplatPatternChildren<'tree> {
8505 Attribute(::std::boxed::Box<Attribute<'tree>>),
8506 Identifier(::std::boxed::Box<Identifier<'tree>>),
8507 Subscript(::std::boxed::Box<Subscript<'tree>>),
8508}
8509impl<'tree> ::treesitter_types::FromNode<'tree> for DictionarySplatPatternChildren<'tree> {
8510 #[allow(clippy::collapsible_else_if)]
8511 fn from_node(
8512 node: ::treesitter_types::tree_sitter::Node<'tree>,
8513 src: &'tree [u8],
8514 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8515 match node.kind() {
8516 "attribute" => Ok(Self::Attribute(::std::boxed::Box::new(
8517 ::treesitter_types::runtime::maybe_grow_stack(|| {
8518 <Attribute as ::treesitter_types::FromNode>::from_node(node, src)
8519 })?,
8520 ))),
8521 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
8522 ::treesitter_types::runtime::maybe_grow_stack(|| {
8523 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
8524 })?,
8525 ))),
8526 "subscript" => Ok(Self::Subscript(::std::boxed::Box::new(
8527 ::treesitter_types::runtime::maybe_grow_stack(|| {
8528 <Subscript as ::treesitter_types::FromNode>::from_node(node, src)
8529 })?,
8530 ))),
8531 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8532 }
8533 }
8534}
8535impl ::treesitter_types::Spanned for DictionarySplatPatternChildren<'_> {
8536 fn span(&self) -> ::treesitter_types::Span {
8537 match self {
8538 Self::Attribute(inner) => inner.span(),
8539 Self::Identifier(inner) => inner.span(),
8540 Self::Subscript(inner) => inner.span(),
8541 }
8542 }
8543}
8544#[derive(Debug, Clone, PartialEq, Eq)]
8545pub enum ExecStatementCode<'tree> {
8546 Identifier(::std::boxed::Box<Identifier<'tree>>),
8547 String(::std::boxed::Box<String<'tree>>),
8548}
8549impl<'tree> ::treesitter_types::FromNode<'tree> for ExecStatementCode<'tree> {
8550 #[allow(clippy::collapsible_else_if)]
8551 fn from_node(
8552 node: ::treesitter_types::tree_sitter::Node<'tree>,
8553 src: &'tree [u8],
8554 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8555 match node.kind() {
8556 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
8557 ::treesitter_types::runtime::maybe_grow_stack(|| {
8558 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
8559 })?,
8560 ))),
8561 "string" => Ok(Self::String(::std::boxed::Box::new(
8562 ::treesitter_types::runtime::maybe_grow_stack(|| {
8563 <String as ::treesitter_types::FromNode>::from_node(node, src)
8564 })?,
8565 ))),
8566 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8567 }
8568 }
8569}
8570impl ::treesitter_types::Spanned for ExecStatementCode<'_> {
8571 fn span(&self) -> ::treesitter_types::Span {
8572 match self {
8573 Self::Identifier(inner) => inner.span(),
8574 Self::String(inner) => inner.span(),
8575 }
8576 }
8577}
8578#[derive(Debug, Clone, PartialEq, Eq)]
8579pub enum ExpressionStatementChildren<'tree> {
8580 Assignment(::std::boxed::Box<Assignment<'tree>>),
8581 AugmentedAssignment(::std::boxed::Box<AugmentedAssignment<'tree>>),
8582 Expression(::std::boxed::Box<Expression<'tree>>),
8583 Yield(::std::boxed::Box<Yield<'tree>>),
8584}
8585impl<'tree> ::treesitter_types::FromNode<'tree> for ExpressionStatementChildren<'tree> {
8586 #[allow(clippy::collapsible_else_if)]
8587 fn from_node(
8588 node: ::treesitter_types::tree_sitter::Node<'tree>,
8589 src: &'tree [u8],
8590 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8591 match node.kind() {
8592 "assignment" => Ok(Self::Assignment(::std::boxed::Box::new(
8593 ::treesitter_types::runtime::maybe_grow_stack(|| {
8594 <Assignment as ::treesitter_types::FromNode>::from_node(node, src)
8595 })?,
8596 ))),
8597 "augmented_assignment" => Ok(Self::AugmentedAssignment(::std::boxed::Box::new(
8598 ::treesitter_types::runtime::maybe_grow_stack(|| {
8599 <AugmentedAssignment as ::treesitter_types::FromNode>::from_node(node, src)
8600 })?,
8601 ))),
8602 "yield" => Ok(Self::Yield(::std::boxed::Box::new(
8603 ::treesitter_types::runtime::maybe_grow_stack(|| {
8604 <Yield as ::treesitter_types::FromNode>::from_node(node, src)
8605 })?,
8606 ))),
8607 _other => {
8608 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
8609 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
8610 }) {
8611 Ok(Self::Expression(::std::boxed::Box::new(v)))
8612 } else {
8613 Err(::treesitter_types::ParseError::unexpected_kind(
8614 _other, node,
8615 ))
8616 }
8617 }
8618 }
8619 }
8620}
8621impl ::treesitter_types::Spanned for ExpressionStatementChildren<'_> {
8622 fn span(&self) -> ::treesitter_types::Span {
8623 match self {
8624 Self::Assignment(inner) => inner.span(),
8625 Self::AugmentedAssignment(inner) => inner.span(),
8626 Self::Expression(inner) => inner.span(),
8627 Self::Yield(inner) => inner.span(),
8628 }
8629 }
8630}
8631#[derive(Debug, Clone, PartialEq, Eq)]
8632pub enum ForInClauseLeft<'tree> {
8633 Pattern(::std::boxed::Box<Pattern<'tree>>),
8634 PatternList(::std::boxed::Box<PatternList<'tree>>),
8635}
8636impl<'tree> ::treesitter_types::FromNode<'tree> for ForInClauseLeft<'tree> {
8637 #[allow(clippy::collapsible_else_if)]
8638 fn from_node(
8639 node: ::treesitter_types::tree_sitter::Node<'tree>,
8640 src: &'tree [u8],
8641 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8642 match node.kind() {
8643 "pattern_list" => Ok(Self::PatternList(::std::boxed::Box::new(
8644 ::treesitter_types::runtime::maybe_grow_stack(|| {
8645 <PatternList as ::treesitter_types::FromNode>::from_node(node, src)
8646 })?,
8647 ))),
8648 _other => {
8649 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
8650 <Pattern as ::treesitter_types::FromNode>::from_node(node, src)
8651 }) {
8652 Ok(Self::Pattern(::std::boxed::Box::new(v)))
8653 } else {
8654 Err(::treesitter_types::ParseError::unexpected_kind(
8655 _other, node,
8656 ))
8657 }
8658 }
8659 }
8660 }
8661}
8662impl ::treesitter_types::Spanned for ForInClauseLeft<'_> {
8663 fn span(&self) -> ::treesitter_types::Span {
8664 match self {
8665 Self::Pattern(inner) => inner.span(),
8666 Self::PatternList(inner) => inner.span(),
8667 }
8668 }
8669}
8670#[derive(Debug, Clone, PartialEq, Eq)]
8671pub enum ForInClauseRight<'tree> {
8672 Comma(::treesitter_types::Span),
8673 Expression(::std::boxed::Box<Expression<'tree>>),
8674}
8675impl<'tree> ::treesitter_types::FromNode<'tree> for ForInClauseRight<'tree> {
8676 #[allow(clippy::collapsible_else_if)]
8677 fn from_node(
8678 node: ::treesitter_types::tree_sitter::Node<'tree>,
8679 src: &'tree [u8],
8680 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8681 match node.kind() {
8682 "," => Ok(Self::Comma(::treesitter_types::Span::from(node))),
8683 _other => {
8684 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
8685 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
8686 }) {
8687 Ok(Self::Expression(::std::boxed::Box::new(v)))
8688 } else {
8689 Err(::treesitter_types::ParseError::unexpected_kind(
8690 _other, node,
8691 ))
8692 }
8693 }
8694 }
8695 }
8696}
8697impl ::treesitter_types::Spanned for ForInClauseRight<'_> {
8698 fn span(&self) -> ::treesitter_types::Span {
8699 match self {
8700 Self::Comma(span) => *span,
8701 Self::Expression(inner) => inner.span(),
8702 }
8703 }
8704}
8705#[derive(Debug, Clone, PartialEq, Eq)]
8706pub enum ForStatementLeft<'tree> {
8707 Pattern(::std::boxed::Box<Pattern<'tree>>),
8708 PatternList(::std::boxed::Box<PatternList<'tree>>),
8709}
8710impl<'tree> ::treesitter_types::FromNode<'tree> for ForStatementLeft<'tree> {
8711 #[allow(clippy::collapsible_else_if)]
8712 fn from_node(
8713 node: ::treesitter_types::tree_sitter::Node<'tree>,
8714 src: &'tree [u8],
8715 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8716 match node.kind() {
8717 "pattern_list" => Ok(Self::PatternList(::std::boxed::Box::new(
8718 ::treesitter_types::runtime::maybe_grow_stack(|| {
8719 <PatternList as ::treesitter_types::FromNode>::from_node(node, src)
8720 })?,
8721 ))),
8722 _other => {
8723 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
8724 <Pattern as ::treesitter_types::FromNode>::from_node(node, src)
8725 }) {
8726 Ok(Self::Pattern(::std::boxed::Box::new(v)))
8727 } else {
8728 Err(::treesitter_types::ParseError::unexpected_kind(
8729 _other, node,
8730 ))
8731 }
8732 }
8733 }
8734 }
8735}
8736impl ::treesitter_types::Spanned for ForStatementLeft<'_> {
8737 fn span(&self) -> ::treesitter_types::Span {
8738 match self {
8739 Self::Pattern(inner) => inner.span(),
8740 Self::PatternList(inner) => inner.span(),
8741 }
8742 }
8743}
8744#[derive(Debug, Clone, PartialEq, Eq)]
8745pub enum ForStatementRight<'tree> {
8746 Expression(::std::boxed::Box<Expression<'tree>>),
8747 ExpressionList(::std::boxed::Box<ExpressionList<'tree>>),
8748}
8749impl<'tree> ::treesitter_types::FromNode<'tree> for ForStatementRight<'tree> {
8750 #[allow(clippy::collapsible_else_if)]
8751 fn from_node(
8752 node: ::treesitter_types::tree_sitter::Node<'tree>,
8753 src: &'tree [u8],
8754 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8755 match node.kind() {
8756 "expression_list" => Ok(Self::ExpressionList(::std::boxed::Box::new(
8757 ::treesitter_types::runtime::maybe_grow_stack(|| {
8758 <ExpressionList as ::treesitter_types::FromNode>::from_node(node, src)
8759 })?,
8760 ))),
8761 _other => {
8762 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
8763 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
8764 }) {
8765 Ok(Self::Expression(::std::boxed::Box::new(v)))
8766 } else {
8767 Err(::treesitter_types::ParseError::unexpected_kind(
8768 _other, node,
8769 ))
8770 }
8771 }
8772 }
8773 }
8774}
8775impl ::treesitter_types::Spanned for ForStatementRight<'_> {
8776 fn span(&self) -> ::treesitter_types::Span {
8777 match self {
8778 Self::Expression(inner) => inner.span(),
8779 Self::ExpressionList(inner) => inner.span(),
8780 }
8781 }
8782}
8783#[derive(Debug, Clone, PartialEq, Eq)]
8784pub enum FormatExpressionExpression<'tree> {
8785 Expression(::std::boxed::Box<Expression<'tree>>),
8786 ExpressionList(::std::boxed::Box<ExpressionList<'tree>>),
8787 PatternList(::std::boxed::Box<PatternList<'tree>>),
8788 Yield(::std::boxed::Box<Yield<'tree>>),
8789}
8790impl<'tree> ::treesitter_types::FromNode<'tree> for FormatExpressionExpression<'tree> {
8791 #[allow(clippy::collapsible_else_if)]
8792 fn from_node(
8793 node: ::treesitter_types::tree_sitter::Node<'tree>,
8794 src: &'tree [u8],
8795 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8796 match node.kind() {
8797 "expression_list" => Ok(Self::ExpressionList(::std::boxed::Box::new(
8798 ::treesitter_types::runtime::maybe_grow_stack(|| {
8799 <ExpressionList as ::treesitter_types::FromNode>::from_node(node, src)
8800 })?,
8801 ))),
8802 "pattern_list" => Ok(Self::PatternList(::std::boxed::Box::new(
8803 ::treesitter_types::runtime::maybe_grow_stack(|| {
8804 <PatternList as ::treesitter_types::FromNode>::from_node(node, src)
8805 })?,
8806 ))),
8807 "yield" => Ok(Self::Yield(::std::boxed::Box::new(
8808 ::treesitter_types::runtime::maybe_grow_stack(|| {
8809 <Yield as ::treesitter_types::FromNode>::from_node(node, src)
8810 })?,
8811 ))),
8812 _other => {
8813 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
8814 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
8815 }) {
8816 Ok(Self::Expression(::std::boxed::Box::new(v)))
8817 } else {
8818 Err(::treesitter_types::ParseError::unexpected_kind(
8819 _other, node,
8820 ))
8821 }
8822 }
8823 }
8824 }
8825}
8826impl ::treesitter_types::Spanned for FormatExpressionExpression<'_> {
8827 fn span(&self) -> ::treesitter_types::Span {
8828 match self {
8829 Self::Expression(inner) => inner.span(),
8830 Self::ExpressionList(inner) => inner.span(),
8831 Self::PatternList(inner) => inner.span(),
8832 Self::Yield(inner) => inner.span(),
8833 }
8834 }
8835}
8836#[derive(Debug, Clone, PartialEq, Eq)]
8837pub enum FutureImportStatementName<'tree> {
8838 AliasedImport(::std::boxed::Box<AliasedImport<'tree>>),
8839 DottedName(::std::boxed::Box<DottedName<'tree>>),
8840}
8841impl<'tree> ::treesitter_types::FromNode<'tree> for FutureImportStatementName<'tree> {
8842 #[allow(clippy::collapsible_else_if)]
8843 fn from_node(
8844 node: ::treesitter_types::tree_sitter::Node<'tree>,
8845 src: &'tree [u8],
8846 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8847 match node.kind() {
8848 "aliased_import" => Ok(Self::AliasedImport(::std::boxed::Box::new(
8849 ::treesitter_types::runtime::maybe_grow_stack(|| {
8850 <AliasedImport as ::treesitter_types::FromNode>::from_node(node, src)
8851 })?,
8852 ))),
8853 "dotted_name" => Ok(Self::DottedName(::std::boxed::Box::new(
8854 ::treesitter_types::runtime::maybe_grow_stack(|| {
8855 <DottedName as ::treesitter_types::FromNode>::from_node(node, src)
8856 })?,
8857 ))),
8858 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8859 }
8860 }
8861}
8862impl ::treesitter_types::Spanned for FutureImportStatementName<'_> {
8863 fn span(&self) -> ::treesitter_types::Span {
8864 match self {
8865 Self::AliasedImport(inner) => inner.span(),
8866 Self::DottedName(inner) => inner.span(),
8867 }
8868 }
8869}
8870#[derive(Debug, Clone, PartialEq, Eq)]
8871pub enum GeneratorExpressionChildren<'tree> {
8872 ForInClause(::std::boxed::Box<ForInClause<'tree>>),
8873 IfClause(::std::boxed::Box<IfClause<'tree>>),
8874}
8875impl<'tree> ::treesitter_types::FromNode<'tree> for GeneratorExpressionChildren<'tree> {
8876 #[allow(clippy::collapsible_else_if)]
8877 fn from_node(
8878 node: ::treesitter_types::tree_sitter::Node<'tree>,
8879 src: &'tree [u8],
8880 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8881 match node.kind() {
8882 "for_in_clause" => Ok(Self::ForInClause(::std::boxed::Box::new(
8883 ::treesitter_types::runtime::maybe_grow_stack(|| {
8884 <ForInClause as ::treesitter_types::FromNode>::from_node(node, src)
8885 })?,
8886 ))),
8887 "if_clause" => Ok(Self::IfClause(::std::boxed::Box::new(
8888 ::treesitter_types::runtime::maybe_grow_stack(|| {
8889 <IfClause as ::treesitter_types::FromNode>::from_node(node, src)
8890 })?,
8891 ))),
8892 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8893 }
8894 }
8895}
8896impl ::treesitter_types::Spanned for GeneratorExpressionChildren<'_> {
8897 fn span(&self) -> ::treesitter_types::Span {
8898 match self {
8899 Self::ForInClause(inner) => inner.span(),
8900 Self::IfClause(inner) => inner.span(),
8901 }
8902 }
8903}
8904#[derive(Debug, Clone, PartialEq, Eq)]
8905pub enum GenericTypeChildren<'tree> {
8906 Identifier(::std::boxed::Box<Identifier<'tree>>),
8907 TypeParameter(::std::boxed::Box<TypeParameter<'tree>>),
8908}
8909impl<'tree> ::treesitter_types::FromNode<'tree> for GenericTypeChildren<'tree> {
8910 #[allow(clippy::collapsible_else_if)]
8911 fn from_node(
8912 node: ::treesitter_types::tree_sitter::Node<'tree>,
8913 src: &'tree [u8],
8914 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8915 match node.kind() {
8916 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
8917 ::treesitter_types::runtime::maybe_grow_stack(|| {
8918 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
8919 })?,
8920 ))),
8921 "type_parameter" => Ok(Self::TypeParameter(::std::boxed::Box::new(
8922 ::treesitter_types::runtime::maybe_grow_stack(|| {
8923 <TypeParameter as ::treesitter_types::FromNode>::from_node(node, src)
8924 })?,
8925 ))),
8926 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8927 }
8928 }
8929}
8930impl ::treesitter_types::Spanned for GenericTypeChildren<'_> {
8931 fn span(&self) -> ::treesitter_types::Span {
8932 match self {
8933 Self::Identifier(inner) => inner.span(),
8934 Self::TypeParameter(inner) => inner.span(),
8935 }
8936 }
8937}
8938#[derive(Debug, Clone, PartialEq, Eq)]
8939pub enum IfStatementAlternative<'tree> {
8940 ElifClause(::std::boxed::Box<ElifClause<'tree>>),
8941 ElseClause(::std::boxed::Box<ElseClause<'tree>>),
8942}
8943impl<'tree> ::treesitter_types::FromNode<'tree> for IfStatementAlternative<'tree> {
8944 #[allow(clippy::collapsible_else_if)]
8945 fn from_node(
8946 node: ::treesitter_types::tree_sitter::Node<'tree>,
8947 src: &'tree [u8],
8948 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8949 match node.kind() {
8950 "elif_clause" => Ok(Self::ElifClause(::std::boxed::Box::new(
8951 ::treesitter_types::runtime::maybe_grow_stack(|| {
8952 <ElifClause as ::treesitter_types::FromNode>::from_node(node, src)
8953 })?,
8954 ))),
8955 "else_clause" => Ok(Self::ElseClause(::std::boxed::Box::new(
8956 ::treesitter_types::runtime::maybe_grow_stack(|| {
8957 <ElseClause as ::treesitter_types::FromNode>::from_node(node, src)
8958 })?,
8959 ))),
8960 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8961 }
8962 }
8963}
8964impl ::treesitter_types::Spanned for IfStatementAlternative<'_> {
8965 fn span(&self) -> ::treesitter_types::Span {
8966 match self {
8967 Self::ElifClause(inner) => inner.span(),
8968 Self::ElseClause(inner) => inner.span(),
8969 }
8970 }
8971}
8972#[derive(Debug, Clone, PartialEq, Eq)]
8973pub enum ImportFromStatementModuleName<'tree> {
8974 DottedName(::std::boxed::Box<DottedName<'tree>>),
8975 RelativeImport(::std::boxed::Box<RelativeImport<'tree>>),
8976}
8977impl<'tree> ::treesitter_types::FromNode<'tree> for ImportFromStatementModuleName<'tree> {
8978 #[allow(clippy::collapsible_else_if)]
8979 fn from_node(
8980 node: ::treesitter_types::tree_sitter::Node<'tree>,
8981 src: &'tree [u8],
8982 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8983 match node.kind() {
8984 "dotted_name" => Ok(Self::DottedName(::std::boxed::Box::new(
8985 ::treesitter_types::runtime::maybe_grow_stack(|| {
8986 <DottedName as ::treesitter_types::FromNode>::from_node(node, src)
8987 })?,
8988 ))),
8989 "relative_import" => Ok(Self::RelativeImport(::std::boxed::Box::new(
8990 ::treesitter_types::runtime::maybe_grow_stack(|| {
8991 <RelativeImport as ::treesitter_types::FromNode>::from_node(node, src)
8992 })?,
8993 ))),
8994 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8995 }
8996 }
8997}
8998impl ::treesitter_types::Spanned for ImportFromStatementModuleName<'_> {
8999 fn span(&self) -> ::treesitter_types::Span {
9000 match self {
9001 Self::DottedName(inner) => inner.span(),
9002 Self::RelativeImport(inner) => inner.span(),
9003 }
9004 }
9005}
9006#[derive(Debug, Clone, PartialEq, Eq)]
9007pub enum ImportFromStatementName<'tree> {
9008 AliasedImport(::std::boxed::Box<AliasedImport<'tree>>),
9009 DottedName(::std::boxed::Box<DottedName<'tree>>),
9010}
9011impl<'tree> ::treesitter_types::FromNode<'tree> for ImportFromStatementName<'tree> {
9012 #[allow(clippy::collapsible_else_if)]
9013 fn from_node(
9014 node: ::treesitter_types::tree_sitter::Node<'tree>,
9015 src: &'tree [u8],
9016 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9017 match node.kind() {
9018 "aliased_import" => Ok(Self::AliasedImport(::std::boxed::Box::new(
9019 ::treesitter_types::runtime::maybe_grow_stack(|| {
9020 <AliasedImport as ::treesitter_types::FromNode>::from_node(node, src)
9021 })?,
9022 ))),
9023 "dotted_name" => Ok(Self::DottedName(::std::boxed::Box::new(
9024 ::treesitter_types::runtime::maybe_grow_stack(|| {
9025 <DottedName as ::treesitter_types::FromNode>::from_node(node, src)
9026 })?,
9027 ))),
9028 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
9029 }
9030 }
9031}
9032impl ::treesitter_types::Spanned for ImportFromStatementName<'_> {
9033 fn span(&self) -> ::treesitter_types::Span {
9034 match self {
9035 Self::AliasedImport(inner) => inner.span(),
9036 Self::DottedName(inner) => inner.span(),
9037 }
9038 }
9039}
9040#[derive(Debug, Clone, PartialEq, Eq)]
9041pub enum ImportStatementName<'tree> {
9042 AliasedImport(::std::boxed::Box<AliasedImport<'tree>>),
9043 DottedName(::std::boxed::Box<DottedName<'tree>>),
9044}
9045impl<'tree> ::treesitter_types::FromNode<'tree> for ImportStatementName<'tree> {
9046 #[allow(clippy::collapsible_else_if)]
9047 fn from_node(
9048 node: ::treesitter_types::tree_sitter::Node<'tree>,
9049 src: &'tree [u8],
9050 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9051 match node.kind() {
9052 "aliased_import" => Ok(Self::AliasedImport(::std::boxed::Box::new(
9053 ::treesitter_types::runtime::maybe_grow_stack(|| {
9054 <AliasedImport as ::treesitter_types::FromNode>::from_node(node, src)
9055 })?,
9056 ))),
9057 "dotted_name" => Ok(Self::DottedName(::std::boxed::Box::new(
9058 ::treesitter_types::runtime::maybe_grow_stack(|| {
9059 <DottedName as ::treesitter_types::FromNode>::from_node(node, src)
9060 })?,
9061 ))),
9062 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
9063 }
9064 }
9065}
9066impl ::treesitter_types::Spanned for ImportStatementName<'_> {
9067 fn span(&self) -> ::treesitter_types::Span {
9068 match self {
9069 Self::AliasedImport(inner) => inner.span(),
9070 Self::DottedName(inner) => inner.span(),
9071 }
9072 }
9073}
9074#[derive(Debug, Clone, PartialEq, Eq)]
9075pub enum InterpolationExpression<'tree> {
9076 Expression(::std::boxed::Box<Expression<'tree>>),
9077 ExpressionList(::std::boxed::Box<ExpressionList<'tree>>),
9078 PatternList(::std::boxed::Box<PatternList<'tree>>),
9079 Yield(::std::boxed::Box<Yield<'tree>>),
9080}
9081impl<'tree> ::treesitter_types::FromNode<'tree> for InterpolationExpression<'tree> {
9082 #[allow(clippy::collapsible_else_if)]
9083 fn from_node(
9084 node: ::treesitter_types::tree_sitter::Node<'tree>,
9085 src: &'tree [u8],
9086 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9087 match node.kind() {
9088 "expression_list" => Ok(Self::ExpressionList(::std::boxed::Box::new(
9089 ::treesitter_types::runtime::maybe_grow_stack(|| {
9090 <ExpressionList as ::treesitter_types::FromNode>::from_node(node, src)
9091 })?,
9092 ))),
9093 "pattern_list" => Ok(Self::PatternList(::std::boxed::Box::new(
9094 ::treesitter_types::runtime::maybe_grow_stack(|| {
9095 <PatternList as ::treesitter_types::FromNode>::from_node(node, src)
9096 })?,
9097 ))),
9098 "yield" => Ok(Self::Yield(::std::boxed::Box::new(
9099 ::treesitter_types::runtime::maybe_grow_stack(|| {
9100 <Yield as ::treesitter_types::FromNode>::from_node(node, src)
9101 })?,
9102 ))),
9103 _other => {
9104 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
9105 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
9106 }) {
9107 Ok(Self::Expression(::std::boxed::Box::new(v)))
9108 } else {
9109 Err(::treesitter_types::ParseError::unexpected_kind(
9110 _other, node,
9111 ))
9112 }
9113 }
9114 }
9115 }
9116}
9117impl ::treesitter_types::Spanned for InterpolationExpression<'_> {
9118 fn span(&self) -> ::treesitter_types::Span {
9119 match self {
9120 Self::Expression(inner) => inner.span(),
9121 Self::ExpressionList(inner) => inner.span(),
9122 Self::PatternList(inner) => inner.span(),
9123 Self::Yield(inner) => inner.span(),
9124 }
9125 }
9126}
9127#[derive(Debug, Clone, PartialEq, Eq)]
9128pub enum KeywordPatternChildren<'tree> {
9129 ClassPattern(::std::boxed::Box<ClassPattern<'tree>>),
9130 ComplexPattern(::std::boxed::Box<ComplexPattern<'tree>>),
9131 ConcatenatedString(::std::boxed::Box<ConcatenatedString<'tree>>),
9132 DictPattern(::std::boxed::Box<DictPattern<'tree>>),
9133 DottedName(::std::boxed::Box<DottedName<'tree>>),
9134 False(::std::boxed::Box<False<'tree>>),
9135 Float(::std::boxed::Box<Float<'tree>>),
9136 Identifier(::std::boxed::Box<Identifier<'tree>>),
9137 Integer(::std::boxed::Box<Integer<'tree>>),
9138 ListPattern(::std::boxed::Box<ListPattern<'tree>>),
9139 None(::std::boxed::Box<None<'tree>>),
9140 SplatPattern(::std::boxed::Box<SplatPattern<'tree>>),
9141 String(::std::boxed::Box<String<'tree>>),
9142 True(::std::boxed::Box<True<'tree>>),
9143 TuplePattern(::std::boxed::Box<TuplePattern<'tree>>),
9144 UnionPattern(::std::boxed::Box<UnionPattern<'tree>>),
9145}
9146impl<'tree> ::treesitter_types::FromNode<'tree> for KeywordPatternChildren<'tree> {
9147 #[allow(clippy::collapsible_else_if)]
9148 fn from_node(
9149 node: ::treesitter_types::tree_sitter::Node<'tree>,
9150 src: &'tree [u8],
9151 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9152 match node.kind() {
9153 "class_pattern" => Ok(Self::ClassPattern(::std::boxed::Box::new(
9154 ::treesitter_types::runtime::maybe_grow_stack(|| {
9155 <ClassPattern as ::treesitter_types::FromNode>::from_node(node, src)
9156 })?,
9157 ))),
9158 "complex_pattern" => Ok(Self::ComplexPattern(::std::boxed::Box::new(
9159 ::treesitter_types::runtime::maybe_grow_stack(|| {
9160 <ComplexPattern as ::treesitter_types::FromNode>::from_node(node, src)
9161 })?,
9162 ))),
9163 "concatenated_string" => Ok(Self::ConcatenatedString(::std::boxed::Box::new(
9164 ::treesitter_types::runtime::maybe_grow_stack(|| {
9165 <ConcatenatedString as ::treesitter_types::FromNode>::from_node(node, src)
9166 })?,
9167 ))),
9168 "dict_pattern" => Ok(Self::DictPattern(::std::boxed::Box::new(
9169 ::treesitter_types::runtime::maybe_grow_stack(|| {
9170 <DictPattern as ::treesitter_types::FromNode>::from_node(node, src)
9171 })?,
9172 ))),
9173 "dotted_name" => Ok(Self::DottedName(::std::boxed::Box::new(
9174 ::treesitter_types::runtime::maybe_grow_stack(|| {
9175 <DottedName as ::treesitter_types::FromNode>::from_node(node, src)
9176 })?,
9177 ))),
9178 "false" => Ok(Self::False(::std::boxed::Box::new(
9179 ::treesitter_types::runtime::maybe_grow_stack(|| {
9180 <False as ::treesitter_types::FromNode>::from_node(node, src)
9181 })?,
9182 ))),
9183 "float" => Ok(Self::Float(::std::boxed::Box::new(
9184 ::treesitter_types::runtime::maybe_grow_stack(|| {
9185 <Float as ::treesitter_types::FromNode>::from_node(node, src)
9186 })?,
9187 ))),
9188 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
9189 ::treesitter_types::runtime::maybe_grow_stack(|| {
9190 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
9191 })?,
9192 ))),
9193 "integer" => Ok(Self::Integer(::std::boxed::Box::new(
9194 ::treesitter_types::runtime::maybe_grow_stack(|| {
9195 <Integer as ::treesitter_types::FromNode>::from_node(node, src)
9196 })?,
9197 ))),
9198 "list_pattern" => Ok(Self::ListPattern(::std::boxed::Box::new(
9199 ::treesitter_types::runtime::maybe_grow_stack(|| {
9200 <ListPattern as ::treesitter_types::FromNode>::from_node(node, src)
9201 })?,
9202 ))),
9203 "none" => Ok(Self::None(::std::boxed::Box::new(
9204 ::treesitter_types::runtime::maybe_grow_stack(|| {
9205 <None as ::treesitter_types::FromNode>::from_node(node, src)
9206 })?,
9207 ))),
9208 "splat_pattern" => Ok(Self::SplatPattern(::std::boxed::Box::new(
9209 ::treesitter_types::runtime::maybe_grow_stack(|| {
9210 <SplatPattern as ::treesitter_types::FromNode>::from_node(node, src)
9211 })?,
9212 ))),
9213 "string" => Ok(Self::String(::std::boxed::Box::new(
9214 ::treesitter_types::runtime::maybe_grow_stack(|| {
9215 <String as ::treesitter_types::FromNode>::from_node(node, src)
9216 })?,
9217 ))),
9218 "true" => Ok(Self::True(::std::boxed::Box::new(
9219 ::treesitter_types::runtime::maybe_grow_stack(|| {
9220 <True as ::treesitter_types::FromNode>::from_node(node, src)
9221 })?,
9222 ))),
9223 "tuple_pattern" => Ok(Self::TuplePattern(::std::boxed::Box::new(
9224 ::treesitter_types::runtime::maybe_grow_stack(|| {
9225 <TuplePattern as ::treesitter_types::FromNode>::from_node(node, src)
9226 })?,
9227 ))),
9228 "union_pattern" => Ok(Self::UnionPattern(::std::boxed::Box::new(
9229 ::treesitter_types::runtime::maybe_grow_stack(|| {
9230 <UnionPattern as ::treesitter_types::FromNode>::from_node(node, src)
9231 })?,
9232 ))),
9233 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
9234 }
9235 }
9236}
9237impl ::treesitter_types::Spanned for KeywordPatternChildren<'_> {
9238 fn span(&self) -> ::treesitter_types::Span {
9239 match self {
9240 Self::ClassPattern(inner) => inner.span(),
9241 Self::ComplexPattern(inner) => inner.span(),
9242 Self::ConcatenatedString(inner) => inner.span(),
9243 Self::DictPattern(inner) => inner.span(),
9244 Self::DottedName(inner) => inner.span(),
9245 Self::False(inner) => inner.span(),
9246 Self::Float(inner) => inner.span(),
9247 Self::Identifier(inner) => inner.span(),
9248 Self::Integer(inner) => inner.span(),
9249 Self::ListPattern(inner) => inner.span(),
9250 Self::None(inner) => inner.span(),
9251 Self::SplatPattern(inner) => inner.span(),
9252 Self::String(inner) => inner.span(),
9253 Self::True(inner) => inner.span(),
9254 Self::TuplePattern(inner) => inner.span(),
9255 Self::UnionPattern(inner) => inner.span(),
9256 }
9257 }
9258}
9259#[derive(Debug, Clone, PartialEq, Eq)]
9260pub enum ListChildren<'tree> {
9261 Expression(::std::boxed::Box<Expression<'tree>>),
9262 ListSplat(::std::boxed::Box<ListSplat<'tree>>),
9263 ParenthesizedListSplat(::std::boxed::Box<ParenthesizedListSplat<'tree>>),
9264 Yield(::std::boxed::Box<Yield<'tree>>),
9265}
9266impl<'tree> ::treesitter_types::FromNode<'tree> for ListChildren<'tree> {
9267 #[allow(clippy::collapsible_else_if)]
9268 fn from_node(
9269 node: ::treesitter_types::tree_sitter::Node<'tree>,
9270 src: &'tree [u8],
9271 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9272 match node.kind() {
9273 "list_splat" => Ok(Self::ListSplat(::std::boxed::Box::new(
9274 ::treesitter_types::runtime::maybe_grow_stack(|| {
9275 <ListSplat as ::treesitter_types::FromNode>::from_node(node, src)
9276 })?,
9277 ))),
9278 "parenthesized_list_splat" => Ok(Self::ParenthesizedListSplat(::std::boxed::Box::new(
9279 ::treesitter_types::runtime::maybe_grow_stack(|| {
9280 <ParenthesizedListSplat as ::treesitter_types::FromNode>::from_node(node, src)
9281 })?,
9282 ))),
9283 "yield" => Ok(Self::Yield(::std::boxed::Box::new(
9284 ::treesitter_types::runtime::maybe_grow_stack(|| {
9285 <Yield as ::treesitter_types::FromNode>::from_node(node, src)
9286 })?,
9287 ))),
9288 _other => {
9289 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
9290 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
9291 }) {
9292 Ok(Self::Expression(::std::boxed::Box::new(v)))
9293 } else {
9294 Err(::treesitter_types::ParseError::unexpected_kind(
9295 _other, node,
9296 ))
9297 }
9298 }
9299 }
9300 }
9301}
9302impl ::treesitter_types::Spanned for ListChildren<'_> {
9303 fn span(&self) -> ::treesitter_types::Span {
9304 match self {
9305 Self::Expression(inner) => inner.span(),
9306 Self::ListSplat(inner) => inner.span(),
9307 Self::ParenthesizedListSplat(inner) => inner.span(),
9308 Self::Yield(inner) => inner.span(),
9309 }
9310 }
9311}
9312#[derive(Debug, Clone, PartialEq, Eq)]
9313pub enum ListComprehensionChildren<'tree> {
9314 ForInClause(::std::boxed::Box<ForInClause<'tree>>),
9315 IfClause(::std::boxed::Box<IfClause<'tree>>),
9316}
9317impl<'tree> ::treesitter_types::FromNode<'tree> for ListComprehensionChildren<'tree> {
9318 #[allow(clippy::collapsible_else_if)]
9319 fn from_node(
9320 node: ::treesitter_types::tree_sitter::Node<'tree>,
9321 src: &'tree [u8],
9322 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9323 match node.kind() {
9324 "for_in_clause" => Ok(Self::ForInClause(::std::boxed::Box::new(
9325 ::treesitter_types::runtime::maybe_grow_stack(|| {
9326 <ForInClause as ::treesitter_types::FromNode>::from_node(node, src)
9327 })?,
9328 ))),
9329 "if_clause" => Ok(Self::IfClause(::std::boxed::Box::new(
9330 ::treesitter_types::runtime::maybe_grow_stack(|| {
9331 <IfClause as ::treesitter_types::FromNode>::from_node(node, src)
9332 })?,
9333 ))),
9334 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
9335 }
9336 }
9337}
9338impl ::treesitter_types::Spanned for ListComprehensionChildren<'_> {
9339 fn span(&self) -> ::treesitter_types::Span {
9340 match self {
9341 Self::ForInClause(inner) => inner.span(),
9342 Self::IfClause(inner) => inner.span(),
9343 }
9344 }
9345}
9346#[derive(Debug, Clone, PartialEq, Eq)]
9347pub enum ListPatternChildren<'tree> {
9348 CasePattern(::std::boxed::Box<CasePattern<'tree>>),
9349 Pattern(::std::boxed::Box<Pattern<'tree>>),
9350}
9351impl<'tree> ::treesitter_types::FromNode<'tree> for ListPatternChildren<'tree> {
9352 #[allow(clippy::collapsible_else_if)]
9353 fn from_node(
9354 node: ::treesitter_types::tree_sitter::Node<'tree>,
9355 src: &'tree [u8],
9356 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9357 match node.kind() {
9358 "case_pattern" => Ok(Self::CasePattern(::std::boxed::Box::new(
9359 ::treesitter_types::runtime::maybe_grow_stack(|| {
9360 <CasePattern as ::treesitter_types::FromNode>::from_node(node, src)
9361 })?,
9362 ))),
9363 _other => {
9364 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
9365 <Pattern as ::treesitter_types::FromNode>::from_node(node, src)
9366 }) {
9367 Ok(Self::Pattern(::std::boxed::Box::new(v)))
9368 } else {
9369 Err(::treesitter_types::ParseError::unexpected_kind(
9370 _other, node,
9371 ))
9372 }
9373 }
9374 }
9375 }
9376}
9377impl ::treesitter_types::Spanned for ListPatternChildren<'_> {
9378 fn span(&self) -> ::treesitter_types::Span {
9379 match self {
9380 Self::CasePattern(inner) => inner.span(),
9381 Self::Pattern(inner) => inner.span(),
9382 }
9383 }
9384}
9385#[derive(Debug, Clone, PartialEq, Eq)]
9386pub enum ListSplatChildren<'tree> {
9387 Attribute(::std::boxed::Box<Attribute<'tree>>),
9388 Expression(::std::boxed::Box<Expression<'tree>>),
9389 Identifier(::std::boxed::Box<Identifier<'tree>>),
9390 Subscript(::std::boxed::Box<Subscript<'tree>>),
9391}
9392impl<'tree> ::treesitter_types::FromNode<'tree> for ListSplatChildren<'tree> {
9393 #[allow(clippy::collapsible_else_if)]
9394 fn from_node(
9395 node: ::treesitter_types::tree_sitter::Node<'tree>,
9396 src: &'tree [u8],
9397 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9398 match node.kind() {
9399 "attribute" => Ok(Self::Attribute(::std::boxed::Box::new(
9400 ::treesitter_types::runtime::maybe_grow_stack(|| {
9401 <Attribute as ::treesitter_types::FromNode>::from_node(node, src)
9402 })?,
9403 ))),
9404 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
9405 ::treesitter_types::runtime::maybe_grow_stack(|| {
9406 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
9407 })?,
9408 ))),
9409 "subscript" => Ok(Self::Subscript(::std::boxed::Box::new(
9410 ::treesitter_types::runtime::maybe_grow_stack(|| {
9411 <Subscript as ::treesitter_types::FromNode>::from_node(node, src)
9412 })?,
9413 ))),
9414 _other => {
9415 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
9416 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
9417 }) {
9418 Ok(Self::Expression(::std::boxed::Box::new(v)))
9419 } else {
9420 Err(::treesitter_types::ParseError::unexpected_kind(
9421 _other, node,
9422 ))
9423 }
9424 }
9425 }
9426 }
9427}
9428impl ::treesitter_types::Spanned for ListSplatChildren<'_> {
9429 fn span(&self) -> ::treesitter_types::Span {
9430 match self {
9431 Self::Attribute(inner) => inner.span(),
9432 Self::Expression(inner) => inner.span(),
9433 Self::Identifier(inner) => inner.span(),
9434 Self::Subscript(inner) => inner.span(),
9435 }
9436 }
9437}
9438#[derive(Debug, Clone, PartialEq, Eq)]
9439pub enum ListSplatPatternChildren<'tree> {
9440 Attribute(::std::boxed::Box<Attribute<'tree>>),
9441 Identifier(::std::boxed::Box<Identifier<'tree>>),
9442 Subscript(::std::boxed::Box<Subscript<'tree>>),
9443}
9444impl<'tree> ::treesitter_types::FromNode<'tree> for ListSplatPatternChildren<'tree> {
9445 #[allow(clippy::collapsible_else_if)]
9446 fn from_node(
9447 node: ::treesitter_types::tree_sitter::Node<'tree>,
9448 src: &'tree [u8],
9449 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9450 match node.kind() {
9451 "attribute" => Ok(Self::Attribute(::std::boxed::Box::new(
9452 ::treesitter_types::runtime::maybe_grow_stack(|| {
9453 <Attribute as ::treesitter_types::FromNode>::from_node(node, src)
9454 })?,
9455 ))),
9456 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
9457 ::treesitter_types::runtime::maybe_grow_stack(|| {
9458 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
9459 })?,
9460 ))),
9461 "subscript" => Ok(Self::Subscript(::std::boxed::Box::new(
9462 ::treesitter_types::runtime::maybe_grow_stack(|| {
9463 <Subscript as ::treesitter_types::FromNode>::from_node(node, src)
9464 })?,
9465 ))),
9466 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
9467 }
9468 }
9469}
9470impl ::treesitter_types::Spanned for ListSplatPatternChildren<'_> {
9471 fn span(&self) -> ::treesitter_types::Span {
9472 match self {
9473 Self::Attribute(inner) => inner.span(),
9474 Self::Identifier(inner) => inner.span(),
9475 Self::Subscript(inner) => inner.span(),
9476 }
9477 }
9478}
9479#[derive(Debug, Clone, PartialEq, Eq)]
9480pub enum MemberTypeChildren<'tree> {
9481 Identifier(::std::boxed::Box<Identifier<'tree>>),
9482 Type(::std::boxed::Box<Type<'tree>>),
9483}
9484impl<'tree> ::treesitter_types::FromNode<'tree> for MemberTypeChildren<'tree> {
9485 #[allow(clippy::collapsible_else_if)]
9486 fn from_node(
9487 node: ::treesitter_types::tree_sitter::Node<'tree>,
9488 src: &'tree [u8],
9489 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9490 match node.kind() {
9491 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
9492 ::treesitter_types::runtime::maybe_grow_stack(|| {
9493 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
9494 })?,
9495 ))),
9496 "type" => Ok(Self::Type(::std::boxed::Box::new(
9497 ::treesitter_types::runtime::maybe_grow_stack(|| {
9498 <Type as ::treesitter_types::FromNode>::from_node(node, src)
9499 })?,
9500 ))),
9501 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
9502 }
9503 }
9504}
9505impl ::treesitter_types::Spanned for MemberTypeChildren<'_> {
9506 fn span(&self) -> ::treesitter_types::Span {
9507 match self {
9508 Self::Identifier(inner) => inner.span(),
9509 Self::Type(inner) => inner.span(),
9510 }
9511 }
9512}
9513#[derive(Debug, Clone, PartialEq, Eq)]
9514pub enum ModuleChildren<'tree> {
9515 CompoundStatement(::std::boxed::Box<CompoundStatement<'tree>>),
9516 SimpleStatement(::std::boxed::Box<SimpleStatement<'tree>>),
9517}
9518impl<'tree> ::treesitter_types::FromNode<'tree> for ModuleChildren<'tree> {
9519 #[allow(clippy::collapsible_else_if)]
9520 fn from_node(
9521 node: ::treesitter_types::tree_sitter::Node<'tree>,
9522 src: &'tree [u8],
9523 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9524 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
9525 <CompoundStatement as ::treesitter_types::FromNode>::from_node(node, src)
9526 }) {
9527 Ok(Self::CompoundStatement(::std::boxed::Box::new(v)))
9528 } else {
9529 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
9530 <SimpleStatement as ::treesitter_types::FromNode>::from_node(node, src)
9531 }) {
9532 Ok(Self::SimpleStatement(::std::boxed::Box::new(v)))
9533 } else {
9534 Err(::treesitter_types::ParseError::unexpected_kind(
9535 node.kind(),
9536 node,
9537 ))
9538 }
9539 }
9540 }
9541}
9542impl ::treesitter_types::Spanned for ModuleChildren<'_> {
9543 fn span(&self) -> ::treesitter_types::Span {
9544 match self {
9545 Self::CompoundStatement(inner) => inner.span(),
9546 Self::SimpleStatement(inner) => inner.span(),
9547 }
9548 }
9549}
9550#[derive(Debug, Clone, PartialEq, Eq)]
9551pub enum ParenthesizedExpressionChildren<'tree> {
9552 Expression(::std::boxed::Box<Expression<'tree>>),
9553 ListSplat(::std::boxed::Box<ListSplat<'tree>>),
9554 ParenthesizedExpression(::std::boxed::Box<ParenthesizedExpression<'tree>>),
9555 Yield(::std::boxed::Box<Yield<'tree>>),
9556}
9557impl<'tree> ::treesitter_types::FromNode<'tree> for ParenthesizedExpressionChildren<'tree> {
9558 #[allow(clippy::collapsible_else_if)]
9559 fn from_node(
9560 node: ::treesitter_types::tree_sitter::Node<'tree>,
9561 src: &'tree [u8],
9562 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9563 match node.kind() {
9564 "list_splat" => Ok(Self::ListSplat(::std::boxed::Box::new(
9565 ::treesitter_types::runtime::maybe_grow_stack(|| {
9566 <ListSplat as ::treesitter_types::FromNode>::from_node(node, src)
9567 })?,
9568 ))),
9569 "parenthesized_expression" => Ok(Self::ParenthesizedExpression(
9570 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
9571 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(node, src)
9572 })?),
9573 )),
9574 "yield" => Ok(Self::Yield(::std::boxed::Box::new(
9575 ::treesitter_types::runtime::maybe_grow_stack(|| {
9576 <Yield as ::treesitter_types::FromNode>::from_node(node, src)
9577 })?,
9578 ))),
9579 _other => {
9580 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
9581 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
9582 }) {
9583 Ok(Self::Expression(::std::boxed::Box::new(v)))
9584 } else {
9585 Err(::treesitter_types::ParseError::unexpected_kind(
9586 _other, node,
9587 ))
9588 }
9589 }
9590 }
9591 }
9592}
9593impl ::treesitter_types::Spanned for ParenthesizedExpressionChildren<'_> {
9594 fn span(&self) -> ::treesitter_types::Span {
9595 match self {
9596 Self::Expression(inner) => inner.span(),
9597 Self::ListSplat(inner) => inner.span(),
9598 Self::ParenthesizedExpression(inner) => inner.span(),
9599 Self::Yield(inner) => inner.span(),
9600 }
9601 }
9602}
9603#[derive(Debug, Clone, PartialEq, Eq)]
9604pub enum ParenthesizedListSplatChildren<'tree> {
9605 ListSplat(::std::boxed::Box<ListSplat<'tree>>),
9606 ParenthesizedExpression(::std::boxed::Box<ParenthesizedExpression<'tree>>),
9607}
9608impl<'tree> ::treesitter_types::FromNode<'tree> for ParenthesizedListSplatChildren<'tree> {
9609 #[allow(clippy::collapsible_else_if)]
9610 fn from_node(
9611 node: ::treesitter_types::tree_sitter::Node<'tree>,
9612 src: &'tree [u8],
9613 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9614 match node.kind() {
9615 "list_splat" => Ok(Self::ListSplat(::std::boxed::Box::new(
9616 ::treesitter_types::runtime::maybe_grow_stack(|| {
9617 <ListSplat as ::treesitter_types::FromNode>::from_node(node, src)
9618 })?,
9619 ))),
9620 "parenthesized_expression" => Ok(Self::ParenthesizedExpression(
9621 ::std::boxed::Box::new(::treesitter_types::runtime::maybe_grow_stack(|| {
9622 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(node, src)
9623 })?),
9624 )),
9625 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
9626 }
9627 }
9628}
9629impl ::treesitter_types::Spanned for ParenthesizedListSplatChildren<'_> {
9630 fn span(&self) -> ::treesitter_types::Span {
9631 match self {
9632 Self::ListSplat(inner) => inner.span(),
9633 Self::ParenthesizedExpression(inner) => inner.span(),
9634 }
9635 }
9636}
9637#[derive(Debug, Clone, PartialEq, Eq)]
9638pub enum RaiseStatementChildren<'tree> {
9639 Expression(::std::boxed::Box<Expression<'tree>>),
9640 ExpressionList(::std::boxed::Box<ExpressionList<'tree>>),
9641}
9642impl<'tree> ::treesitter_types::FromNode<'tree> for RaiseStatementChildren<'tree> {
9643 #[allow(clippy::collapsible_else_if)]
9644 fn from_node(
9645 node: ::treesitter_types::tree_sitter::Node<'tree>,
9646 src: &'tree [u8],
9647 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9648 match node.kind() {
9649 "expression_list" => Ok(Self::ExpressionList(::std::boxed::Box::new(
9650 ::treesitter_types::runtime::maybe_grow_stack(|| {
9651 <ExpressionList as ::treesitter_types::FromNode>::from_node(node, src)
9652 })?,
9653 ))),
9654 _other => {
9655 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
9656 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
9657 }) {
9658 Ok(Self::Expression(::std::boxed::Box::new(v)))
9659 } else {
9660 Err(::treesitter_types::ParseError::unexpected_kind(
9661 _other, node,
9662 ))
9663 }
9664 }
9665 }
9666 }
9667}
9668impl ::treesitter_types::Spanned for RaiseStatementChildren<'_> {
9669 fn span(&self) -> ::treesitter_types::Span {
9670 match self {
9671 Self::Expression(inner) => inner.span(),
9672 Self::ExpressionList(inner) => inner.span(),
9673 }
9674 }
9675}
9676#[derive(Debug, Clone, PartialEq, Eq)]
9677pub enum RelativeImportChildren<'tree> {
9678 DottedName(::std::boxed::Box<DottedName<'tree>>),
9679 ImportPrefix(::std::boxed::Box<ImportPrefix<'tree>>),
9680}
9681impl<'tree> ::treesitter_types::FromNode<'tree> for RelativeImportChildren<'tree> {
9682 #[allow(clippy::collapsible_else_if)]
9683 fn from_node(
9684 node: ::treesitter_types::tree_sitter::Node<'tree>,
9685 src: &'tree [u8],
9686 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9687 match node.kind() {
9688 "dotted_name" => Ok(Self::DottedName(::std::boxed::Box::new(
9689 ::treesitter_types::runtime::maybe_grow_stack(|| {
9690 <DottedName as ::treesitter_types::FromNode>::from_node(node, src)
9691 })?,
9692 ))),
9693 "import_prefix" => Ok(Self::ImportPrefix(::std::boxed::Box::new(
9694 ::treesitter_types::runtime::maybe_grow_stack(|| {
9695 <ImportPrefix as ::treesitter_types::FromNode>::from_node(node, src)
9696 })?,
9697 ))),
9698 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
9699 }
9700 }
9701}
9702impl ::treesitter_types::Spanned for RelativeImportChildren<'_> {
9703 fn span(&self) -> ::treesitter_types::Span {
9704 match self {
9705 Self::DottedName(inner) => inner.span(),
9706 Self::ImportPrefix(inner) => inner.span(),
9707 }
9708 }
9709}
9710#[derive(Debug, Clone, PartialEq, Eq)]
9711pub enum ReturnStatementChildren<'tree> {
9712 Expression(::std::boxed::Box<Expression<'tree>>),
9713 ExpressionList(::std::boxed::Box<ExpressionList<'tree>>),
9714}
9715impl<'tree> ::treesitter_types::FromNode<'tree> for ReturnStatementChildren<'tree> {
9716 #[allow(clippy::collapsible_else_if)]
9717 fn from_node(
9718 node: ::treesitter_types::tree_sitter::Node<'tree>,
9719 src: &'tree [u8],
9720 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9721 match node.kind() {
9722 "expression_list" => Ok(Self::ExpressionList(::std::boxed::Box::new(
9723 ::treesitter_types::runtime::maybe_grow_stack(|| {
9724 <ExpressionList as ::treesitter_types::FromNode>::from_node(node, src)
9725 })?,
9726 ))),
9727 _other => {
9728 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
9729 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
9730 }) {
9731 Ok(Self::Expression(::std::boxed::Box::new(v)))
9732 } else {
9733 Err(::treesitter_types::ParseError::unexpected_kind(
9734 _other, node,
9735 ))
9736 }
9737 }
9738 }
9739 }
9740}
9741impl ::treesitter_types::Spanned for ReturnStatementChildren<'_> {
9742 fn span(&self) -> ::treesitter_types::Span {
9743 match self {
9744 Self::Expression(inner) => inner.span(),
9745 Self::ExpressionList(inner) => inner.span(),
9746 }
9747 }
9748}
9749#[derive(Debug, Clone, PartialEq, Eq)]
9750pub enum SetChildren<'tree> {
9751 Expression(::std::boxed::Box<Expression<'tree>>),
9752 ListSplat(::std::boxed::Box<ListSplat<'tree>>),
9753 ParenthesizedListSplat(::std::boxed::Box<ParenthesizedListSplat<'tree>>),
9754 Yield(::std::boxed::Box<Yield<'tree>>),
9755}
9756impl<'tree> ::treesitter_types::FromNode<'tree> for SetChildren<'tree> {
9757 #[allow(clippy::collapsible_else_if)]
9758 fn from_node(
9759 node: ::treesitter_types::tree_sitter::Node<'tree>,
9760 src: &'tree [u8],
9761 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9762 match node.kind() {
9763 "list_splat" => Ok(Self::ListSplat(::std::boxed::Box::new(
9764 ::treesitter_types::runtime::maybe_grow_stack(|| {
9765 <ListSplat as ::treesitter_types::FromNode>::from_node(node, src)
9766 })?,
9767 ))),
9768 "parenthesized_list_splat" => Ok(Self::ParenthesizedListSplat(::std::boxed::Box::new(
9769 ::treesitter_types::runtime::maybe_grow_stack(|| {
9770 <ParenthesizedListSplat as ::treesitter_types::FromNode>::from_node(node, src)
9771 })?,
9772 ))),
9773 "yield" => Ok(Self::Yield(::std::boxed::Box::new(
9774 ::treesitter_types::runtime::maybe_grow_stack(|| {
9775 <Yield as ::treesitter_types::FromNode>::from_node(node, src)
9776 })?,
9777 ))),
9778 _other => {
9779 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
9780 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
9781 }) {
9782 Ok(Self::Expression(::std::boxed::Box::new(v)))
9783 } else {
9784 Err(::treesitter_types::ParseError::unexpected_kind(
9785 _other, node,
9786 ))
9787 }
9788 }
9789 }
9790 }
9791}
9792impl ::treesitter_types::Spanned for SetChildren<'_> {
9793 fn span(&self) -> ::treesitter_types::Span {
9794 match self {
9795 Self::Expression(inner) => inner.span(),
9796 Self::ListSplat(inner) => inner.span(),
9797 Self::ParenthesizedListSplat(inner) => inner.span(),
9798 Self::Yield(inner) => inner.span(),
9799 }
9800 }
9801}
9802#[derive(Debug, Clone, PartialEq, Eq)]
9803pub enum SetComprehensionChildren<'tree> {
9804 ForInClause(::std::boxed::Box<ForInClause<'tree>>),
9805 IfClause(::std::boxed::Box<IfClause<'tree>>),
9806}
9807impl<'tree> ::treesitter_types::FromNode<'tree> for SetComprehensionChildren<'tree> {
9808 #[allow(clippy::collapsible_else_if)]
9809 fn from_node(
9810 node: ::treesitter_types::tree_sitter::Node<'tree>,
9811 src: &'tree [u8],
9812 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9813 match node.kind() {
9814 "for_in_clause" => Ok(Self::ForInClause(::std::boxed::Box::new(
9815 ::treesitter_types::runtime::maybe_grow_stack(|| {
9816 <ForInClause as ::treesitter_types::FromNode>::from_node(node, src)
9817 })?,
9818 ))),
9819 "if_clause" => Ok(Self::IfClause(::std::boxed::Box::new(
9820 ::treesitter_types::runtime::maybe_grow_stack(|| {
9821 <IfClause as ::treesitter_types::FromNode>::from_node(node, src)
9822 })?,
9823 ))),
9824 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
9825 }
9826 }
9827}
9828impl ::treesitter_types::Spanned for SetComprehensionChildren<'_> {
9829 fn span(&self) -> ::treesitter_types::Span {
9830 match self {
9831 Self::ForInClause(inner) => inner.span(),
9832 Self::IfClause(inner) => inner.span(),
9833 }
9834 }
9835}
9836#[derive(Debug, Clone, PartialEq, Eq)]
9837pub enum StringChildren<'tree> {
9838 Interpolation(::std::boxed::Box<Interpolation<'tree>>),
9839 StringContent(::std::boxed::Box<StringContent<'tree>>),
9840 StringEnd(::std::boxed::Box<StringEnd<'tree>>),
9841 StringStart(::std::boxed::Box<StringStart<'tree>>),
9842}
9843impl<'tree> ::treesitter_types::FromNode<'tree> for StringChildren<'tree> {
9844 #[allow(clippy::collapsible_else_if)]
9845 fn from_node(
9846 node: ::treesitter_types::tree_sitter::Node<'tree>,
9847 src: &'tree [u8],
9848 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9849 match node.kind() {
9850 "interpolation" => Ok(Self::Interpolation(::std::boxed::Box::new(
9851 ::treesitter_types::runtime::maybe_grow_stack(|| {
9852 <Interpolation as ::treesitter_types::FromNode>::from_node(node, src)
9853 })?,
9854 ))),
9855 "string_content" => Ok(Self::StringContent(::std::boxed::Box::new(
9856 ::treesitter_types::runtime::maybe_grow_stack(|| {
9857 <StringContent as ::treesitter_types::FromNode>::from_node(node, src)
9858 })?,
9859 ))),
9860 "string_end" => Ok(Self::StringEnd(::std::boxed::Box::new(
9861 ::treesitter_types::runtime::maybe_grow_stack(|| {
9862 <StringEnd as ::treesitter_types::FromNode>::from_node(node, src)
9863 })?,
9864 ))),
9865 "string_start" => Ok(Self::StringStart(::std::boxed::Box::new(
9866 ::treesitter_types::runtime::maybe_grow_stack(|| {
9867 <StringStart as ::treesitter_types::FromNode>::from_node(node, src)
9868 })?,
9869 ))),
9870 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
9871 }
9872 }
9873}
9874impl ::treesitter_types::Spanned for StringChildren<'_> {
9875 fn span(&self) -> ::treesitter_types::Span {
9876 match self {
9877 Self::Interpolation(inner) => inner.span(),
9878 Self::StringContent(inner) => inner.span(),
9879 Self::StringEnd(inner) => inner.span(),
9880 Self::StringStart(inner) => inner.span(),
9881 }
9882 }
9883}
9884#[derive(Debug, Clone, PartialEq, Eq)]
9885pub enum StringContentChildren<'tree> {
9886 EscapeInterpolation(::std::boxed::Box<EscapeInterpolation<'tree>>),
9887 EscapeSequence(::std::boxed::Box<EscapeSequence<'tree>>),
9888}
9889impl<'tree> ::treesitter_types::FromNode<'tree> for StringContentChildren<'tree> {
9890 #[allow(clippy::collapsible_else_if)]
9891 fn from_node(
9892 node: ::treesitter_types::tree_sitter::Node<'tree>,
9893 src: &'tree [u8],
9894 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9895 match node.kind() {
9896 "escape_interpolation" => Ok(Self::EscapeInterpolation(::std::boxed::Box::new(
9897 ::treesitter_types::runtime::maybe_grow_stack(|| {
9898 <EscapeInterpolation as ::treesitter_types::FromNode>::from_node(node, src)
9899 })?,
9900 ))),
9901 "escape_sequence" => Ok(Self::EscapeSequence(::std::boxed::Box::new(
9902 ::treesitter_types::runtime::maybe_grow_stack(|| {
9903 <EscapeSequence as ::treesitter_types::FromNode>::from_node(node, src)
9904 })?,
9905 ))),
9906 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
9907 }
9908 }
9909}
9910impl ::treesitter_types::Spanned for StringContentChildren<'_> {
9911 fn span(&self) -> ::treesitter_types::Span {
9912 match self {
9913 Self::EscapeInterpolation(inner) => inner.span(),
9914 Self::EscapeSequence(inner) => inner.span(),
9915 }
9916 }
9917}
9918#[derive(Debug, Clone, PartialEq, Eq)]
9919pub enum SubscriptSubscript<'tree> {
9920 Expression(::std::boxed::Box<Expression<'tree>>),
9921 Slice(::std::boxed::Box<Slice<'tree>>),
9922}
9923impl<'tree> ::treesitter_types::FromNode<'tree> for SubscriptSubscript<'tree> {
9924 #[allow(clippy::collapsible_else_if)]
9925 fn from_node(
9926 node: ::treesitter_types::tree_sitter::Node<'tree>,
9927 src: &'tree [u8],
9928 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9929 match node.kind() {
9930 "slice" => Ok(Self::Slice(::std::boxed::Box::new(
9931 ::treesitter_types::runtime::maybe_grow_stack(|| {
9932 <Slice as ::treesitter_types::FromNode>::from_node(node, src)
9933 })?,
9934 ))),
9935 _other => {
9936 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
9937 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
9938 }) {
9939 Ok(Self::Expression(::std::boxed::Box::new(v)))
9940 } else {
9941 Err(::treesitter_types::ParseError::unexpected_kind(
9942 _other, node,
9943 ))
9944 }
9945 }
9946 }
9947 }
9948}
9949impl ::treesitter_types::Spanned for SubscriptSubscript<'_> {
9950 fn span(&self) -> ::treesitter_types::Span {
9951 match self {
9952 Self::Expression(inner) => inner.span(),
9953 Self::Slice(inner) => inner.span(),
9954 }
9955 }
9956}
9957#[derive(Debug, Clone, PartialEq, Eq)]
9958pub enum TryStatementChildren<'tree> {
9959 ElseClause(::std::boxed::Box<ElseClause<'tree>>),
9960 ExceptClause(::std::boxed::Box<ExceptClause<'tree>>),
9961 FinallyClause(::std::boxed::Box<FinallyClause<'tree>>),
9962}
9963impl<'tree> ::treesitter_types::FromNode<'tree> for TryStatementChildren<'tree> {
9964 #[allow(clippy::collapsible_else_if)]
9965 fn from_node(
9966 node: ::treesitter_types::tree_sitter::Node<'tree>,
9967 src: &'tree [u8],
9968 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9969 match node.kind() {
9970 "else_clause" => Ok(Self::ElseClause(::std::boxed::Box::new(
9971 ::treesitter_types::runtime::maybe_grow_stack(|| {
9972 <ElseClause as ::treesitter_types::FromNode>::from_node(node, src)
9973 })?,
9974 ))),
9975 "except_clause" => Ok(Self::ExceptClause(::std::boxed::Box::new(
9976 ::treesitter_types::runtime::maybe_grow_stack(|| {
9977 <ExceptClause as ::treesitter_types::FromNode>::from_node(node, src)
9978 })?,
9979 ))),
9980 "finally_clause" => Ok(Self::FinallyClause(::std::boxed::Box::new(
9981 ::treesitter_types::runtime::maybe_grow_stack(|| {
9982 <FinallyClause as ::treesitter_types::FromNode>::from_node(node, src)
9983 })?,
9984 ))),
9985 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
9986 }
9987 }
9988}
9989impl ::treesitter_types::Spanned for TryStatementChildren<'_> {
9990 fn span(&self) -> ::treesitter_types::Span {
9991 match self {
9992 Self::ElseClause(inner) => inner.span(),
9993 Self::ExceptClause(inner) => inner.span(),
9994 Self::FinallyClause(inner) => inner.span(),
9995 }
9996 }
9997}
9998#[derive(Debug, Clone, PartialEq, Eq)]
9999pub enum TupleChildren<'tree> {
10000 Expression(::std::boxed::Box<Expression<'tree>>),
10001 ListSplat(::std::boxed::Box<ListSplat<'tree>>),
10002 ParenthesizedListSplat(::std::boxed::Box<ParenthesizedListSplat<'tree>>),
10003 Yield(::std::boxed::Box<Yield<'tree>>),
10004}
10005impl<'tree> ::treesitter_types::FromNode<'tree> for TupleChildren<'tree> {
10006 #[allow(clippy::collapsible_else_if)]
10007 fn from_node(
10008 node: ::treesitter_types::tree_sitter::Node<'tree>,
10009 src: &'tree [u8],
10010 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10011 match node.kind() {
10012 "list_splat" => Ok(Self::ListSplat(::std::boxed::Box::new(
10013 ::treesitter_types::runtime::maybe_grow_stack(|| {
10014 <ListSplat as ::treesitter_types::FromNode>::from_node(node, src)
10015 })?,
10016 ))),
10017 "parenthesized_list_splat" => Ok(Self::ParenthesizedListSplat(::std::boxed::Box::new(
10018 ::treesitter_types::runtime::maybe_grow_stack(|| {
10019 <ParenthesizedListSplat as ::treesitter_types::FromNode>::from_node(node, src)
10020 })?,
10021 ))),
10022 "yield" => Ok(Self::Yield(::std::boxed::Box::new(
10023 ::treesitter_types::runtime::maybe_grow_stack(|| {
10024 <Yield as ::treesitter_types::FromNode>::from_node(node, src)
10025 })?,
10026 ))),
10027 _other => {
10028 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
10029 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
10030 }) {
10031 Ok(Self::Expression(::std::boxed::Box::new(v)))
10032 } else {
10033 Err(::treesitter_types::ParseError::unexpected_kind(
10034 _other, node,
10035 ))
10036 }
10037 }
10038 }
10039 }
10040}
10041impl ::treesitter_types::Spanned for TupleChildren<'_> {
10042 fn span(&self) -> ::treesitter_types::Span {
10043 match self {
10044 Self::Expression(inner) => inner.span(),
10045 Self::ListSplat(inner) => inner.span(),
10046 Self::ParenthesizedListSplat(inner) => inner.span(),
10047 Self::Yield(inner) => inner.span(),
10048 }
10049 }
10050}
10051#[derive(Debug, Clone, PartialEq, Eq)]
10052pub enum TuplePatternChildren<'tree> {
10053 CasePattern(::std::boxed::Box<CasePattern<'tree>>),
10054 Pattern(::std::boxed::Box<Pattern<'tree>>),
10055}
10056impl<'tree> ::treesitter_types::FromNode<'tree> for TuplePatternChildren<'tree> {
10057 #[allow(clippy::collapsible_else_if)]
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 match node.kind() {
10063 "case_pattern" => Ok(Self::CasePattern(::std::boxed::Box::new(
10064 ::treesitter_types::runtime::maybe_grow_stack(|| {
10065 <CasePattern as ::treesitter_types::FromNode>::from_node(node, src)
10066 })?,
10067 ))),
10068 _other => {
10069 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
10070 <Pattern as ::treesitter_types::FromNode>::from_node(node, src)
10071 }) {
10072 Ok(Self::Pattern(::std::boxed::Box::new(v)))
10073 } else {
10074 Err(::treesitter_types::ParseError::unexpected_kind(
10075 _other, node,
10076 ))
10077 }
10078 }
10079 }
10080 }
10081}
10082impl ::treesitter_types::Spanned for TuplePatternChildren<'_> {
10083 fn span(&self) -> ::treesitter_types::Span {
10084 match self {
10085 Self::CasePattern(inner) => inner.span(),
10086 Self::Pattern(inner) => inner.span(),
10087 }
10088 }
10089}
10090#[derive(Debug, Clone, PartialEq, Eq)]
10091pub enum TypeChildren<'tree> {
10092 ConstrainedType(::std::boxed::Box<ConstrainedType<'tree>>),
10093 Expression(::std::boxed::Box<Expression<'tree>>),
10094 GenericType(::std::boxed::Box<GenericType<'tree>>),
10095 MemberType(::std::boxed::Box<MemberType<'tree>>),
10096 SplatType(::std::boxed::Box<SplatType<'tree>>),
10097 UnionType(::std::boxed::Box<UnionType<'tree>>),
10098}
10099impl<'tree> ::treesitter_types::FromNode<'tree> for TypeChildren<'tree> {
10100 #[allow(clippy::collapsible_else_if)]
10101 fn from_node(
10102 node: ::treesitter_types::tree_sitter::Node<'tree>,
10103 src: &'tree [u8],
10104 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10105 match node.kind() {
10106 "constrained_type" => Ok(Self::ConstrainedType(::std::boxed::Box::new(
10107 ::treesitter_types::runtime::maybe_grow_stack(|| {
10108 <ConstrainedType as ::treesitter_types::FromNode>::from_node(node, src)
10109 })?,
10110 ))),
10111 "generic_type" => Ok(Self::GenericType(::std::boxed::Box::new(
10112 ::treesitter_types::runtime::maybe_grow_stack(|| {
10113 <GenericType as ::treesitter_types::FromNode>::from_node(node, src)
10114 })?,
10115 ))),
10116 "member_type" => Ok(Self::MemberType(::std::boxed::Box::new(
10117 ::treesitter_types::runtime::maybe_grow_stack(|| {
10118 <MemberType as ::treesitter_types::FromNode>::from_node(node, src)
10119 })?,
10120 ))),
10121 "splat_type" => Ok(Self::SplatType(::std::boxed::Box::new(
10122 ::treesitter_types::runtime::maybe_grow_stack(|| {
10123 <SplatType as ::treesitter_types::FromNode>::from_node(node, src)
10124 })?,
10125 ))),
10126 "union_type" => Ok(Self::UnionType(::std::boxed::Box::new(
10127 ::treesitter_types::runtime::maybe_grow_stack(|| {
10128 <UnionType as ::treesitter_types::FromNode>::from_node(node, src)
10129 })?,
10130 ))),
10131 _other => {
10132 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
10133 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
10134 }) {
10135 Ok(Self::Expression(::std::boxed::Box::new(v)))
10136 } else {
10137 Err(::treesitter_types::ParseError::unexpected_kind(
10138 _other, node,
10139 ))
10140 }
10141 }
10142 }
10143 }
10144}
10145impl ::treesitter_types::Spanned for TypeChildren<'_> {
10146 fn span(&self) -> ::treesitter_types::Span {
10147 match self {
10148 Self::ConstrainedType(inner) => inner.span(),
10149 Self::Expression(inner) => inner.span(),
10150 Self::GenericType(inner) => inner.span(),
10151 Self::MemberType(inner) => inner.span(),
10152 Self::SplatType(inner) => inner.span(),
10153 Self::UnionType(inner) => inner.span(),
10154 }
10155 }
10156}
10157#[derive(Debug, Clone, PartialEq, Eq)]
10158pub enum TypedParameterChildren<'tree> {
10159 DictionarySplatPattern(::std::boxed::Box<DictionarySplatPattern<'tree>>),
10160 Identifier(::std::boxed::Box<Identifier<'tree>>),
10161 ListSplatPattern(::std::boxed::Box<ListSplatPattern<'tree>>),
10162}
10163impl<'tree> ::treesitter_types::FromNode<'tree> for TypedParameterChildren<'tree> {
10164 #[allow(clippy::collapsible_else_if)]
10165 fn from_node(
10166 node: ::treesitter_types::tree_sitter::Node<'tree>,
10167 src: &'tree [u8],
10168 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10169 match node.kind() {
10170 "dictionary_splat_pattern" => Ok(Self::DictionarySplatPattern(::std::boxed::Box::new(
10171 ::treesitter_types::runtime::maybe_grow_stack(|| {
10172 <DictionarySplatPattern as ::treesitter_types::FromNode>::from_node(node, src)
10173 })?,
10174 ))),
10175 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
10176 ::treesitter_types::runtime::maybe_grow_stack(|| {
10177 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
10178 })?,
10179 ))),
10180 "list_splat_pattern" => Ok(Self::ListSplatPattern(::std::boxed::Box::new(
10181 ::treesitter_types::runtime::maybe_grow_stack(|| {
10182 <ListSplatPattern as ::treesitter_types::FromNode>::from_node(node, src)
10183 })?,
10184 ))),
10185 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
10186 }
10187 }
10188}
10189impl ::treesitter_types::Spanned for TypedParameterChildren<'_> {
10190 fn span(&self) -> ::treesitter_types::Span {
10191 match self {
10192 Self::DictionarySplatPattern(inner) => inner.span(),
10193 Self::Identifier(inner) => inner.span(),
10194 Self::ListSplatPattern(inner) => inner.span(),
10195 }
10196 }
10197}
10198#[derive(Debug, Clone, PartialEq, Eq)]
10199pub enum UnaryOperatorOperator {
10200 Plus(::treesitter_types::Span),
10201 Minus(::treesitter_types::Span),
10202 Tilde(::treesitter_types::Span),
10203}
10204impl<'tree> ::treesitter_types::FromNode<'tree> for UnaryOperatorOperator {
10205 #[allow(clippy::collapsible_else_if)]
10206 fn from_node(
10207 node: ::treesitter_types::tree_sitter::Node<'tree>,
10208 _src: &'tree [u8],
10209 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10210 match node.kind() {
10211 "+" => Ok(Self::Plus(::treesitter_types::Span::from(node))),
10212 "-" => Ok(Self::Minus(::treesitter_types::Span::from(node))),
10213 "~" => Ok(Self::Tilde(::treesitter_types::Span::from(node))),
10214 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
10215 }
10216 }
10217}
10218impl ::treesitter_types::Spanned for UnaryOperatorOperator {
10219 fn span(&self) -> ::treesitter_types::Span {
10220 match self {
10221 Self::Plus(span) => *span,
10222 Self::Minus(span) => *span,
10223 Self::Tilde(span) => *span,
10224 }
10225 }
10226}
10227#[derive(Debug, Clone, PartialEq, Eq)]
10228pub enum UnionPatternChildren<'tree> {
10229 ClassPattern(::std::boxed::Box<ClassPattern<'tree>>),
10230 ComplexPattern(::std::boxed::Box<ComplexPattern<'tree>>),
10231 ConcatenatedString(::std::boxed::Box<ConcatenatedString<'tree>>),
10232 DictPattern(::std::boxed::Box<DictPattern<'tree>>),
10233 DottedName(::std::boxed::Box<DottedName<'tree>>),
10234 False(::std::boxed::Box<False<'tree>>),
10235 Float(::std::boxed::Box<Float<'tree>>),
10236 Integer(::std::boxed::Box<Integer<'tree>>),
10237 ListPattern(::std::boxed::Box<ListPattern<'tree>>),
10238 None(::std::boxed::Box<None<'tree>>),
10239 SplatPattern(::std::boxed::Box<SplatPattern<'tree>>),
10240 String(::std::boxed::Box<String<'tree>>),
10241 True(::std::boxed::Box<True<'tree>>),
10242 TuplePattern(::std::boxed::Box<TuplePattern<'tree>>),
10243 UnionPattern(::std::boxed::Box<UnionPattern<'tree>>),
10244}
10245impl<'tree> ::treesitter_types::FromNode<'tree> for UnionPatternChildren<'tree> {
10246 #[allow(clippy::collapsible_else_if)]
10247 fn from_node(
10248 node: ::treesitter_types::tree_sitter::Node<'tree>,
10249 src: &'tree [u8],
10250 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10251 match node.kind() {
10252 "class_pattern" => Ok(Self::ClassPattern(::std::boxed::Box::new(
10253 ::treesitter_types::runtime::maybe_grow_stack(|| {
10254 <ClassPattern as ::treesitter_types::FromNode>::from_node(node, src)
10255 })?,
10256 ))),
10257 "complex_pattern" => Ok(Self::ComplexPattern(::std::boxed::Box::new(
10258 ::treesitter_types::runtime::maybe_grow_stack(|| {
10259 <ComplexPattern as ::treesitter_types::FromNode>::from_node(node, src)
10260 })?,
10261 ))),
10262 "concatenated_string" => Ok(Self::ConcatenatedString(::std::boxed::Box::new(
10263 ::treesitter_types::runtime::maybe_grow_stack(|| {
10264 <ConcatenatedString as ::treesitter_types::FromNode>::from_node(node, src)
10265 })?,
10266 ))),
10267 "dict_pattern" => Ok(Self::DictPattern(::std::boxed::Box::new(
10268 ::treesitter_types::runtime::maybe_grow_stack(|| {
10269 <DictPattern as ::treesitter_types::FromNode>::from_node(node, src)
10270 })?,
10271 ))),
10272 "dotted_name" => Ok(Self::DottedName(::std::boxed::Box::new(
10273 ::treesitter_types::runtime::maybe_grow_stack(|| {
10274 <DottedName as ::treesitter_types::FromNode>::from_node(node, src)
10275 })?,
10276 ))),
10277 "false" => Ok(Self::False(::std::boxed::Box::new(
10278 ::treesitter_types::runtime::maybe_grow_stack(|| {
10279 <False as ::treesitter_types::FromNode>::from_node(node, src)
10280 })?,
10281 ))),
10282 "float" => Ok(Self::Float(::std::boxed::Box::new(
10283 ::treesitter_types::runtime::maybe_grow_stack(|| {
10284 <Float as ::treesitter_types::FromNode>::from_node(node, src)
10285 })?,
10286 ))),
10287 "integer" => Ok(Self::Integer(::std::boxed::Box::new(
10288 ::treesitter_types::runtime::maybe_grow_stack(|| {
10289 <Integer as ::treesitter_types::FromNode>::from_node(node, src)
10290 })?,
10291 ))),
10292 "list_pattern" => Ok(Self::ListPattern(::std::boxed::Box::new(
10293 ::treesitter_types::runtime::maybe_grow_stack(|| {
10294 <ListPattern as ::treesitter_types::FromNode>::from_node(node, src)
10295 })?,
10296 ))),
10297 "none" => Ok(Self::None(::std::boxed::Box::new(
10298 ::treesitter_types::runtime::maybe_grow_stack(|| {
10299 <None as ::treesitter_types::FromNode>::from_node(node, src)
10300 })?,
10301 ))),
10302 "splat_pattern" => Ok(Self::SplatPattern(::std::boxed::Box::new(
10303 ::treesitter_types::runtime::maybe_grow_stack(|| {
10304 <SplatPattern as ::treesitter_types::FromNode>::from_node(node, src)
10305 })?,
10306 ))),
10307 "string" => Ok(Self::String(::std::boxed::Box::new(
10308 ::treesitter_types::runtime::maybe_grow_stack(|| {
10309 <String as ::treesitter_types::FromNode>::from_node(node, src)
10310 })?,
10311 ))),
10312 "true" => Ok(Self::True(::std::boxed::Box::new(
10313 ::treesitter_types::runtime::maybe_grow_stack(|| {
10314 <True as ::treesitter_types::FromNode>::from_node(node, src)
10315 })?,
10316 ))),
10317 "tuple_pattern" => Ok(Self::TuplePattern(::std::boxed::Box::new(
10318 ::treesitter_types::runtime::maybe_grow_stack(|| {
10319 <TuplePattern as ::treesitter_types::FromNode>::from_node(node, src)
10320 })?,
10321 ))),
10322 "union_pattern" => Ok(Self::UnionPattern(::std::boxed::Box::new(
10323 ::treesitter_types::runtime::maybe_grow_stack(|| {
10324 <UnionPattern as ::treesitter_types::FromNode>::from_node(node, src)
10325 })?,
10326 ))),
10327 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
10328 }
10329 }
10330}
10331impl ::treesitter_types::Spanned for UnionPatternChildren<'_> {
10332 fn span(&self) -> ::treesitter_types::Span {
10333 match self {
10334 Self::ClassPattern(inner) => inner.span(),
10335 Self::ComplexPattern(inner) => inner.span(),
10336 Self::ConcatenatedString(inner) => inner.span(),
10337 Self::DictPattern(inner) => inner.span(),
10338 Self::DottedName(inner) => inner.span(),
10339 Self::False(inner) => inner.span(),
10340 Self::Float(inner) => inner.span(),
10341 Self::Integer(inner) => inner.span(),
10342 Self::ListPattern(inner) => inner.span(),
10343 Self::None(inner) => inner.span(),
10344 Self::SplatPattern(inner) => inner.span(),
10345 Self::String(inner) => inner.span(),
10346 Self::True(inner) => inner.span(),
10347 Self::TuplePattern(inner) => inner.span(),
10348 Self::UnionPattern(inner) => inner.span(),
10349 }
10350 }
10351}
10352#[derive(Debug, Clone, PartialEq, Eq)]
10353pub enum YieldChildren<'tree> {
10354 Expression(::std::boxed::Box<Expression<'tree>>),
10355 ExpressionList(::std::boxed::Box<ExpressionList<'tree>>),
10356}
10357impl<'tree> ::treesitter_types::FromNode<'tree> for YieldChildren<'tree> {
10358 #[allow(clippy::collapsible_else_if)]
10359 fn from_node(
10360 node: ::treesitter_types::tree_sitter::Node<'tree>,
10361 src: &'tree [u8],
10362 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10363 match node.kind() {
10364 "expression_list" => Ok(Self::ExpressionList(::std::boxed::Box::new(
10365 ::treesitter_types::runtime::maybe_grow_stack(|| {
10366 <ExpressionList as ::treesitter_types::FromNode>::from_node(node, src)
10367 })?,
10368 ))),
10369 _other => {
10370 if let Ok(v) = ::treesitter_types::runtime::maybe_grow_stack(|| {
10371 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
10372 }) {
10373 Ok(Self::Expression(::std::boxed::Box::new(v)))
10374 } else {
10375 Err(::treesitter_types::ParseError::unexpected_kind(
10376 _other, node,
10377 ))
10378 }
10379 }
10380 }
10381 }
10382}
10383impl ::treesitter_types::Spanned for YieldChildren<'_> {
10384 fn span(&self) -> ::treesitter_types::Span {
10385 match self {
10386 Self::Expression(inner) => inner.span(),
10387 Self::ExpressionList(inner) => inner.span(),
10388 }
10389 }
10390}
10391#[derive(Debug, Clone, PartialEq, Eq)]
10392pub enum AnyNode<'tree> {
10393 CompoundStatement(CompoundStatement<'tree>),
10394 SimpleStatement(SimpleStatement<'tree>),
10395 Expression(Expression<'tree>),
10396 Parameter(Parameter<'tree>),
10397 Pattern(Pattern<'tree>),
10398 PrimaryExpression(PrimaryExpression<'tree>),
10399 AliasedImport(AliasedImport<'tree>),
10400 ArgumentList(ArgumentList<'tree>),
10401 AsPattern(AsPattern<'tree>),
10402 AssertStatement(AssertStatement<'tree>),
10403 Assignment(Assignment<'tree>),
10404 Attribute(Attribute<'tree>),
10405 AugmentedAssignment(AugmentedAssignment<'tree>),
10406 Await(Await<'tree>),
10407 BinaryOperator(BinaryOperator<'tree>),
10408 Block(Block<'tree>),
10409 BooleanOperator(BooleanOperator<'tree>),
10410 BreakStatement(BreakStatement<'tree>),
10411 Call(Call<'tree>),
10412 CaseClause(CaseClause<'tree>),
10413 CasePattern(CasePattern<'tree>),
10414 Chevron(Chevron<'tree>),
10415 ClassDefinition(ClassDefinition<'tree>),
10416 ClassPattern(ClassPattern<'tree>),
10417 ComparisonOperator(ComparisonOperator<'tree>),
10418 ComplexPattern(ComplexPattern<'tree>),
10419 ConcatenatedString(ConcatenatedString<'tree>),
10420 ConditionalExpression(ConditionalExpression<'tree>),
10421 ConstrainedType(ConstrainedType<'tree>),
10422 ContinueStatement(ContinueStatement<'tree>),
10423 DecoratedDefinition(DecoratedDefinition<'tree>),
10424 Decorator(Decorator<'tree>),
10425 DefaultParameter(DefaultParameter<'tree>),
10426 DeleteStatement(DeleteStatement<'tree>),
10427 DictPattern(DictPattern<'tree>),
10428 Dictionary(Dictionary<'tree>),
10429 DictionaryComprehension(DictionaryComprehension<'tree>),
10430 DictionarySplat(DictionarySplat<'tree>),
10431 DictionarySplatPattern(DictionarySplatPattern<'tree>),
10432 DottedName(DottedName<'tree>),
10433 ElifClause(ElifClause<'tree>),
10434 ElseClause(ElseClause<'tree>),
10435 ExceptClause(ExceptClause<'tree>),
10436 ExecStatement(ExecStatement<'tree>),
10437 ExpressionList(ExpressionList<'tree>),
10438 ExpressionStatement(ExpressionStatement<'tree>),
10439 FinallyClause(FinallyClause<'tree>),
10440 ForInClause(ForInClause<'tree>),
10441 ForStatement(ForStatement<'tree>),
10442 FormatExpression(FormatExpression<'tree>),
10443 FormatSpecifier(FormatSpecifier<'tree>),
10444 FunctionDefinition(FunctionDefinition<'tree>),
10445 FutureImportStatement(FutureImportStatement<'tree>),
10446 GeneratorExpression(GeneratorExpression<'tree>),
10447 GenericType(GenericType<'tree>),
10448 GlobalStatement(GlobalStatement<'tree>),
10449 IfClause(IfClause<'tree>),
10450 IfStatement(IfStatement<'tree>),
10451 ImportFromStatement(ImportFromStatement<'tree>),
10452 ImportPrefix(ImportPrefix<'tree>),
10453 ImportStatement(ImportStatement<'tree>),
10454 Interpolation(Interpolation<'tree>),
10455 KeywordArgument(KeywordArgument<'tree>),
10456 KeywordPattern(KeywordPattern<'tree>),
10457 KeywordSeparator(KeywordSeparator<'tree>),
10458 Lambda(Lambda<'tree>),
10459 LambdaParameters(LambdaParameters<'tree>),
10460 List(List<'tree>),
10461 ListComprehension(ListComprehension<'tree>),
10462 ListPattern(ListPattern<'tree>),
10463 ListSplat(ListSplat<'tree>),
10464 ListSplatPattern(ListSplatPattern<'tree>),
10465 MatchStatement(MatchStatement<'tree>),
10466 MemberType(MemberType<'tree>),
10467 Module(Module<'tree>),
10468 NamedExpression(NamedExpression<'tree>),
10469 NonlocalStatement(NonlocalStatement<'tree>),
10470 NotOperator(NotOperator<'tree>),
10471 Pair(Pair<'tree>),
10472 Parameters(Parameters<'tree>),
10473 ParenthesizedExpression(ParenthesizedExpression<'tree>),
10474 ParenthesizedListSplat(ParenthesizedListSplat<'tree>),
10475 PassStatement(PassStatement<'tree>),
10476 PatternList(PatternList<'tree>),
10477 PositionalSeparator(PositionalSeparator<'tree>),
10478 PrintStatement(PrintStatement<'tree>),
10479 RaiseStatement(RaiseStatement<'tree>),
10480 RelativeImport(RelativeImport<'tree>),
10481 ReturnStatement(ReturnStatement<'tree>),
10482 Set(Set<'tree>),
10483 SetComprehension(SetComprehension<'tree>),
10484 Slice(Slice<'tree>),
10485 SplatPattern(SplatPattern<'tree>),
10486 SplatType(SplatType<'tree>),
10487 String(String<'tree>),
10488 StringContent(StringContent<'tree>),
10489 Subscript(Subscript<'tree>),
10490 TryStatement(TryStatement<'tree>),
10491 Tuple(Tuple<'tree>),
10492 TuplePattern(TuplePattern<'tree>),
10493 Type(Type<'tree>),
10494 TypeAliasStatement(TypeAliasStatement<'tree>),
10495 TypeParameter(TypeParameter<'tree>),
10496 TypedDefaultParameter(TypedDefaultParameter<'tree>),
10497 TypedParameter(TypedParameter<'tree>),
10498 UnaryOperator(UnaryOperator<'tree>),
10499 UnionPattern(UnionPattern<'tree>),
10500 UnionType(UnionType<'tree>),
10501 WhileStatement(WhileStatement<'tree>),
10502 WildcardImport(WildcardImport<'tree>),
10503 WithClause(WithClause<'tree>),
10504 WithItem(WithItem<'tree>),
10505 WithStatement(WithStatement<'tree>),
10506 Yield(Yield<'tree>),
10507 Comment(Comment<'tree>),
10508 Ellipsis(Ellipsis<'tree>),
10509 EscapeInterpolation(EscapeInterpolation<'tree>),
10510 EscapeSequence(EscapeSequence<'tree>),
10511 False(False<'tree>),
10512 Float(Float<'tree>),
10513 Identifier(Identifier<'tree>),
10514 Integer(Integer<'tree>),
10515 LineContinuation(LineContinuation<'tree>),
10516 None(None<'tree>),
10517 StringEnd(StringEnd<'tree>),
10518 StringStart(StringStart<'tree>),
10519 True(True<'tree>),
10520 TypeConversion(TypeConversion<'tree>),
10521 AsPatternTarget(AsPatternTarget<'tree>),
10522 Unknown(::treesitter_types::tree_sitter::Node<'tree>),
10523}
10524impl<'tree> AnyNode<'tree> {
10525 pub fn from_node(node: ::treesitter_types::tree_sitter::Node<'tree>, src: &'tree [u8]) -> Self {
10526 match node.kind() {
10527 "_compound_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10528 <CompoundStatement as ::treesitter_types::FromNode>::from_node(node, src)
10529 })
10530 .map(Self::CompoundStatement)
10531 .unwrap_or(Self::Unknown(node)),
10532 "_simple_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10533 <SimpleStatement as ::treesitter_types::FromNode>::from_node(node, src)
10534 })
10535 .map(Self::SimpleStatement)
10536 .unwrap_or(Self::Unknown(node)),
10537 "expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10538 <Expression as ::treesitter_types::FromNode>::from_node(node, src)
10539 })
10540 .map(Self::Expression)
10541 .unwrap_or(Self::Unknown(node)),
10542 "parameter" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10543 <Parameter as ::treesitter_types::FromNode>::from_node(node, src)
10544 })
10545 .map(Self::Parameter)
10546 .unwrap_or(Self::Unknown(node)),
10547 "pattern" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10548 <Pattern as ::treesitter_types::FromNode>::from_node(node, src)
10549 })
10550 .map(Self::Pattern)
10551 .unwrap_or(Self::Unknown(node)),
10552 "primary_expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10553 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(node, src)
10554 })
10555 .map(Self::PrimaryExpression)
10556 .unwrap_or(Self::Unknown(node)),
10557 "aliased_import" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10558 <AliasedImport as ::treesitter_types::FromNode>::from_node(node, src)
10559 })
10560 .map(Self::AliasedImport)
10561 .unwrap_or(Self::Unknown(node)),
10562 "argument_list" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10563 <ArgumentList as ::treesitter_types::FromNode>::from_node(node, src)
10564 })
10565 .map(Self::ArgumentList)
10566 .unwrap_or(Self::Unknown(node)),
10567 "as_pattern" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10568 <AsPattern as ::treesitter_types::FromNode>::from_node(node, src)
10569 })
10570 .map(Self::AsPattern)
10571 .unwrap_or(Self::Unknown(node)),
10572 "assert_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10573 <AssertStatement as ::treesitter_types::FromNode>::from_node(node, src)
10574 })
10575 .map(Self::AssertStatement)
10576 .unwrap_or(Self::Unknown(node)),
10577 "assignment" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10578 <Assignment as ::treesitter_types::FromNode>::from_node(node, src)
10579 })
10580 .map(Self::Assignment)
10581 .unwrap_or(Self::Unknown(node)),
10582 "attribute" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10583 <Attribute as ::treesitter_types::FromNode>::from_node(node, src)
10584 })
10585 .map(Self::Attribute)
10586 .unwrap_or(Self::Unknown(node)),
10587 "augmented_assignment" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10588 <AugmentedAssignment as ::treesitter_types::FromNode>::from_node(node, src)
10589 })
10590 .map(Self::AugmentedAssignment)
10591 .unwrap_or(Self::Unknown(node)),
10592 "await" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10593 <Await as ::treesitter_types::FromNode>::from_node(node, src)
10594 })
10595 .map(Self::Await)
10596 .unwrap_or(Self::Unknown(node)),
10597 "binary_operator" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10598 <BinaryOperator as ::treesitter_types::FromNode>::from_node(node, src)
10599 })
10600 .map(Self::BinaryOperator)
10601 .unwrap_or(Self::Unknown(node)),
10602 "block" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10603 <Block as ::treesitter_types::FromNode>::from_node(node, src)
10604 })
10605 .map(Self::Block)
10606 .unwrap_or(Self::Unknown(node)),
10607 "boolean_operator" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10608 <BooleanOperator as ::treesitter_types::FromNode>::from_node(node, src)
10609 })
10610 .map(Self::BooleanOperator)
10611 .unwrap_or(Self::Unknown(node)),
10612 "break_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10613 <BreakStatement as ::treesitter_types::FromNode>::from_node(node, src)
10614 })
10615 .map(Self::BreakStatement)
10616 .unwrap_or(Self::Unknown(node)),
10617 "call" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10618 <Call as ::treesitter_types::FromNode>::from_node(node, src)
10619 })
10620 .map(Self::Call)
10621 .unwrap_or(Self::Unknown(node)),
10622 "case_clause" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10623 <CaseClause as ::treesitter_types::FromNode>::from_node(node, src)
10624 })
10625 .map(Self::CaseClause)
10626 .unwrap_or(Self::Unknown(node)),
10627 "case_pattern" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10628 <CasePattern as ::treesitter_types::FromNode>::from_node(node, src)
10629 })
10630 .map(Self::CasePattern)
10631 .unwrap_or(Self::Unknown(node)),
10632 "chevron" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10633 <Chevron as ::treesitter_types::FromNode>::from_node(node, src)
10634 })
10635 .map(Self::Chevron)
10636 .unwrap_or(Self::Unknown(node)),
10637 "class_definition" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10638 <ClassDefinition as ::treesitter_types::FromNode>::from_node(node, src)
10639 })
10640 .map(Self::ClassDefinition)
10641 .unwrap_or(Self::Unknown(node)),
10642 "class_pattern" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10643 <ClassPattern as ::treesitter_types::FromNode>::from_node(node, src)
10644 })
10645 .map(Self::ClassPattern)
10646 .unwrap_or(Self::Unknown(node)),
10647 "comparison_operator" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10648 <ComparisonOperator as ::treesitter_types::FromNode>::from_node(node, src)
10649 })
10650 .map(Self::ComparisonOperator)
10651 .unwrap_or(Self::Unknown(node)),
10652 "complex_pattern" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10653 <ComplexPattern as ::treesitter_types::FromNode>::from_node(node, src)
10654 })
10655 .map(Self::ComplexPattern)
10656 .unwrap_or(Self::Unknown(node)),
10657 "concatenated_string" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10658 <ConcatenatedString as ::treesitter_types::FromNode>::from_node(node, src)
10659 })
10660 .map(Self::ConcatenatedString)
10661 .unwrap_or(Self::Unknown(node)),
10662 "conditional_expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10663 <ConditionalExpression as ::treesitter_types::FromNode>::from_node(node, src)
10664 })
10665 .map(Self::ConditionalExpression)
10666 .unwrap_or(Self::Unknown(node)),
10667 "constrained_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10668 <ConstrainedType as ::treesitter_types::FromNode>::from_node(node, src)
10669 })
10670 .map(Self::ConstrainedType)
10671 .unwrap_or(Self::Unknown(node)),
10672 "continue_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10673 <ContinueStatement as ::treesitter_types::FromNode>::from_node(node, src)
10674 })
10675 .map(Self::ContinueStatement)
10676 .unwrap_or(Self::Unknown(node)),
10677 "decorated_definition" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10678 <DecoratedDefinition as ::treesitter_types::FromNode>::from_node(node, src)
10679 })
10680 .map(Self::DecoratedDefinition)
10681 .unwrap_or(Self::Unknown(node)),
10682 "decorator" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10683 <Decorator as ::treesitter_types::FromNode>::from_node(node, src)
10684 })
10685 .map(Self::Decorator)
10686 .unwrap_or(Self::Unknown(node)),
10687 "default_parameter" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10688 <DefaultParameter as ::treesitter_types::FromNode>::from_node(node, src)
10689 })
10690 .map(Self::DefaultParameter)
10691 .unwrap_or(Self::Unknown(node)),
10692 "delete_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10693 <DeleteStatement as ::treesitter_types::FromNode>::from_node(node, src)
10694 })
10695 .map(Self::DeleteStatement)
10696 .unwrap_or(Self::Unknown(node)),
10697 "dict_pattern" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10698 <DictPattern as ::treesitter_types::FromNode>::from_node(node, src)
10699 })
10700 .map(Self::DictPattern)
10701 .unwrap_or(Self::Unknown(node)),
10702 "dictionary" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10703 <Dictionary as ::treesitter_types::FromNode>::from_node(node, src)
10704 })
10705 .map(Self::Dictionary)
10706 .unwrap_or(Self::Unknown(node)),
10707 "dictionary_comprehension" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10708 <DictionaryComprehension as ::treesitter_types::FromNode>::from_node(node, src)
10709 })
10710 .map(Self::DictionaryComprehension)
10711 .unwrap_or(Self::Unknown(node)),
10712 "dictionary_splat" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10713 <DictionarySplat as ::treesitter_types::FromNode>::from_node(node, src)
10714 })
10715 .map(Self::DictionarySplat)
10716 .unwrap_or(Self::Unknown(node)),
10717 "dictionary_splat_pattern" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10718 <DictionarySplatPattern as ::treesitter_types::FromNode>::from_node(node, src)
10719 })
10720 .map(Self::DictionarySplatPattern)
10721 .unwrap_or(Self::Unknown(node)),
10722 "dotted_name" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10723 <DottedName as ::treesitter_types::FromNode>::from_node(node, src)
10724 })
10725 .map(Self::DottedName)
10726 .unwrap_or(Self::Unknown(node)),
10727 "elif_clause" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10728 <ElifClause as ::treesitter_types::FromNode>::from_node(node, src)
10729 })
10730 .map(Self::ElifClause)
10731 .unwrap_or(Self::Unknown(node)),
10732 "else_clause" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10733 <ElseClause as ::treesitter_types::FromNode>::from_node(node, src)
10734 })
10735 .map(Self::ElseClause)
10736 .unwrap_or(Self::Unknown(node)),
10737 "except_clause" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10738 <ExceptClause as ::treesitter_types::FromNode>::from_node(node, src)
10739 })
10740 .map(Self::ExceptClause)
10741 .unwrap_or(Self::Unknown(node)),
10742 "exec_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10743 <ExecStatement as ::treesitter_types::FromNode>::from_node(node, src)
10744 })
10745 .map(Self::ExecStatement)
10746 .unwrap_or(Self::Unknown(node)),
10747 "expression_list" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10748 <ExpressionList as ::treesitter_types::FromNode>::from_node(node, src)
10749 })
10750 .map(Self::ExpressionList)
10751 .unwrap_or(Self::Unknown(node)),
10752 "expression_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10753 <ExpressionStatement as ::treesitter_types::FromNode>::from_node(node, src)
10754 })
10755 .map(Self::ExpressionStatement)
10756 .unwrap_or(Self::Unknown(node)),
10757 "finally_clause" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10758 <FinallyClause as ::treesitter_types::FromNode>::from_node(node, src)
10759 })
10760 .map(Self::FinallyClause)
10761 .unwrap_or(Self::Unknown(node)),
10762 "for_in_clause" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10763 <ForInClause as ::treesitter_types::FromNode>::from_node(node, src)
10764 })
10765 .map(Self::ForInClause)
10766 .unwrap_or(Self::Unknown(node)),
10767 "for_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10768 <ForStatement as ::treesitter_types::FromNode>::from_node(node, src)
10769 })
10770 .map(Self::ForStatement)
10771 .unwrap_or(Self::Unknown(node)),
10772 "format_expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10773 <FormatExpression as ::treesitter_types::FromNode>::from_node(node, src)
10774 })
10775 .map(Self::FormatExpression)
10776 .unwrap_or(Self::Unknown(node)),
10777 "format_specifier" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10778 <FormatSpecifier as ::treesitter_types::FromNode>::from_node(node, src)
10779 })
10780 .map(Self::FormatSpecifier)
10781 .unwrap_or(Self::Unknown(node)),
10782 "function_definition" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10783 <FunctionDefinition as ::treesitter_types::FromNode>::from_node(node, src)
10784 })
10785 .map(Self::FunctionDefinition)
10786 .unwrap_or(Self::Unknown(node)),
10787 "future_import_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10788 <FutureImportStatement as ::treesitter_types::FromNode>::from_node(node, src)
10789 })
10790 .map(Self::FutureImportStatement)
10791 .unwrap_or(Self::Unknown(node)),
10792 "generator_expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10793 <GeneratorExpression as ::treesitter_types::FromNode>::from_node(node, src)
10794 })
10795 .map(Self::GeneratorExpression)
10796 .unwrap_or(Self::Unknown(node)),
10797 "generic_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10798 <GenericType as ::treesitter_types::FromNode>::from_node(node, src)
10799 })
10800 .map(Self::GenericType)
10801 .unwrap_or(Self::Unknown(node)),
10802 "global_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10803 <GlobalStatement as ::treesitter_types::FromNode>::from_node(node, src)
10804 })
10805 .map(Self::GlobalStatement)
10806 .unwrap_or(Self::Unknown(node)),
10807 "if_clause" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10808 <IfClause as ::treesitter_types::FromNode>::from_node(node, src)
10809 })
10810 .map(Self::IfClause)
10811 .unwrap_or(Self::Unknown(node)),
10812 "if_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10813 <IfStatement as ::treesitter_types::FromNode>::from_node(node, src)
10814 })
10815 .map(Self::IfStatement)
10816 .unwrap_or(Self::Unknown(node)),
10817 "import_from_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10818 <ImportFromStatement as ::treesitter_types::FromNode>::from_node(node, src)
10819 })
10820 .map(Self::ImportFromStatement)
10821 .unwrap_or(Self::Unknown(node)),
10822 "import_prefix" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10823 <ImportPrefix as ::treesitter_types::FromNode>::from_node(node, src)
10824 })
10825 .map(Self::ImportPrefix)
10826 .unwrap_or(Self::Unknown(node)),
10827 "import_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10828 <ImportStatement as ::treesitter_types::FromNode>::from_node(node, src)
10829 })
10830 .map(Self::ImportStatement)
10831 .unwrap_or(Self::Unknown(node)),
10832 "interpolation" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10833 <Interpolation as ::treesitter_types::FromNode>::from_node(node, src)
10834 })
10835 .map(Self::Interpolation)
10836 .unwrap_or(Self::Unknown(node)),
10837 "keyword_argument" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10838 <KeywordArgument as ::treesitter_types::FromNode>::from_node(node, src)
10839 })
10840 .map(Self::KeywordArgument)
10841 .unwrap_or(Self::Unknown(node)),
10842 "keyword_pattern" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10843 <KeywordPattern as ::treesitter_types::FromNode>::from_node(node, src)
10844 })
10845 .map(Self::KeywordPattern)
10846 .unwrap_or(Self::Unknown(node)),
10847 "keyword_separator" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10848 <KeywordSeparator as ::treesitter_types::FromNode>::from_node(node, src)
10849 })
10850 .map(Self::KeywordSeparator)
10851 .unwrap_or(Self::Unknown(node)),
10852 "lambda" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10853 <Lambda as ::treesitter_types::FromNode>::from_node(node, src)
10854 })
10855 .map(Self::Lambda)
10856 .unwrap_or(Self::Unknown(node)),
10857 "lambda_parameters" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10858 <LambdaParameters as ::treesitter_types::FromNode>::from_node(node, src)
10859 })
10860 .map(Self::LambdaParameters)
10861 .unwrap_or(Self::Unknown(node)),
10862 "list" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10863 <List as ::treesitter_types::FromNode>::from_node(node, src)
10864 })
10865 .map(Self::List)
10866 .unwrap_or(Self::Unknown(node)),
10867 "list_comprehension" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10868 <ListComprehension as ::treesitter_types::FromNode>::from_node(node, src)
10869 })
10870 .map(Self::ListComprehension)
10871 .unwrap_or(Self::Unknown(node)),
10872 "list_pattern" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10873 <ListPattern as ::treesitter_types::FromNode>::from_node(node, src)
10874 })
10875 .map(Self::ListPattern)
10876 .unwrap_or(Self::Unknown(node)),
10877 "list_splat" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10878 <ListSplat as ::treesitter_types::FromNode>::from_node(node, src)
10879 })
10880 .map(Self::ListSplat)
10881 .unwrap_or(Self::Unknown(node)),
10882 "list_splat_pattern" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10883 <ListSplatPattern as ::treesitter_types::FromNode>::from_node(node, src)
10884 })
10885 .map(Self::ListSplatPattern)
10886 .unwrap_or(Self::Unknown(node)),
10887 "match_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10888 <MatchStatement as ::treesitter_types::FromNode>::from_node(node, src)
10889 })
10890 .map(Self::MatchStatement)
10891 .unwrap_or(Self::Unknown(node)),
10892 "member_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10893 <MemberType as ::treesitter_types::FromNode>::from_node(node, src)
10894 })
10895 .map(Self::MemberType)
10896 .unwrap_or(Self::Unknown(node)),
10897 "module" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10898 <Module as ::treesitter_types::FromNode>::from_node(node, src)
10899 })
10900 .map(Self::Module)
10901 .unwrap_or(Self::Unknown(node)),
10902 "named_expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10903 <NamedExpression as ::treesitter_types::FromNode>::from_node(node, src)
10904 })
10905 .map(Self::NamedExpression)
10906 .unwrap_or(Self::Unknown(node)),
10907 "nonlocal_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10908 <NonlocalStatement as ::treesitter_types::FromNode>::from_node(node, src)
10909 })
10910 .map(Self::NonlocalStatement)
10911 .unwrap_or(Self::Unknown(node)),
10912 "not_operator" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10913 <NotOperator as ::treesitter_types::FromNode>::from_node(node, src)
10914 })
10915 .map(Self::NotOperator)
10916 .unwrap_or(Self::Unknown(node)),
10917 "pair" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10918 <Pair as ::treesitter_types::FromNode>::from_node(node, src)
10919 })
10920 .map(Self::Pair)
10921 .unwrap_or(Self::Unknown(node)),
10922 "parameters" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10923 <Parameters as ::treesitter_types::FromNode>::from_node(node, src)
10924 })
10925 .map(Self::Parameters)
10926 .unwrap_or(Self::Unknown(node)),
10927 "parenthesized_expression" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10928 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(node, src)
10929 })
10930 .map(Self::ParenthesizedExpression)
10931 .unwrap_or(Self::Unknown(node)),
10932 "parenthesized_list_splat" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10933 <ParenthesizedListSplat as ::treesitter_types::FromNode>::from_node(node, src)
10934 })
10935 .map(Self::ParenthesizedListSplat)
10936 .unwrap_or(Self::Unknown(node)),
10937 "pass_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10938 <PassStatement as ::treesitter_types::FromNode>::from_node(node, src)
10939 })
10940 .map(Self::PassStatement)
10941 .unwrap_or(Self::Unknown(node)),
10942 "pattern_list" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10943 <PatternList as ::treesitter_types::FromNode>::from_node(node, src)
10944 })
10945 .map(Self::PatternList)
10946 .unwrap_or(Self::Unknown(node)),
10947 "positional_separator" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10948 <PositionalSeparator as ::treesitter_types::FromNode>::from_node(node, src)
10949 })
10950 .map(Self::PositionalSeparator)
10951 .unwrap_or(Self::Unknown(node)),
10952 "print_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10953 <PrintStatement as ::treesitter_types::FromNode>::from_node(node, src)
10954 })
10955 .map(Self::PrintStatement)
10956 .unwrap_or(Self::Unknown(node)),
10957 "raise_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10958 <RaiseStatement as ::treesitter_types::FromNode>::from_node(node, src)
10959 })
10960 .map(Self::RaiseStatement)
10961 .unwrap_or(Self::Unknown(node)),
10962 "relative_import" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10963 <RelativeImport as ::treesitter_types::FromNode>::from_node(node, src)
10964 })
10965 .map(Self::RelativeImport)
10966 .unwrap_or(Self::Unknown(node)),
10967 "return_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10968 <ReturnStatement as ::treesitter_types::FromNode>::from_node(node, src)
10969 })
10970 .map(Self::ReturnStatement)
10971 .unwrap_or(Self::Unknown(node)),
10972 "set" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10973 <Set as ::treesitter_types::FromNode>::from_node(node, src)
10974 })
10975 .map(Self::Set)
10976 .unwrap_or(Self::Unknown(node)),
10977 "set_comprehension" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10978 <SetComprehension as ::treesitter_types::FromNode>::from_node(node, src)
10979 })
10980 .map(Self::SetComprehension)
10981 .unwrap_or(Self::Unknown(node)),
10982 "slice" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10983 <Slice as ::treesitter_types::FromNode>::from_node(node, src)
10984 })
10985 .map(Self::Slice)
10986 .unwrap_or(Self::Unknown(node)),
10987 "splat_pattern" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10988 <SplatPattern as ::treesitter_types::FromNode>::from_node(node, src)
10989 })
10990 .map(Self::SplatPattern)
10991 .unwrap_or(Self::Unknown(node)),
10992 "splat_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10993 <SplatType as ::treesitter_types::FromNode>::from_node(node, src)
10994 })
10995 .map(Self::SplatType)
10996 .unwrap_or(Self::Unknown(node)),
10997 "string" => ::treesitter_types::runtime::maybe_grow_stack(|| {
10998 <String as ::treesitter_types::FromNode>::from_node(node, src)
10999 })
11000 .map(Self::String)
11001 .unwrap_or(Self::Unknown(node)),
11002 "string_content" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11003 <StringContent as ::treesitter_types::FromNode>::from_node(node, src)
11004 })
11005 .map(Self::StringContent)
11006 .unwrap_or(Self::Unknown(node)),
11007 "subscript" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11008 <Subscript as ::treesitter_types::FromNode>::from_node(node, src)
11009 })
11010 .map(Self::Subscript)
11011 .unwrap_or(Self::Unknown(node)),
11012 "try_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11013 <TryStatement as ::treesitter_types::FromNode>::from_node(node, src)
11014 })
11015 .map(Self::TryStatement)
11016 .unwrap_or(Self::Unknown(node)),
11017 "tuple" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11018 <Tuple as ::treesitter_types::FromNode>::from_node(node, src)
11019 })
11020 .map(Self::Tuple)
11021 .unwrap_or(Self::Unknown(node)),
11022 "tuple_pattern" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11023 <TuplePattern as ::treesitter_types::FromNode>::from_node(node, src)
11024 })
11025 .map(Self::TuplePattern)
11026 .unwrap_or(Self::Unknown(node)),
11027 "type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11028 <Type as ::treesitter_types::FromNode>::from_node(node, src)
11029 })
11030 .map(Self::Type)
11031 .unwrap_or(Self::Unknown(node)),
11032 "type_alias_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11033 <TypeAliasStatement as ::treesitter_types::FromNode>::from_node(node, src)
11034 })
11035 .map(Self::TypeAliasStatement)
11036 .unwrap_or(Self::Unknown(node)),
11037 "type_parameter" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11038 <TypeParameter as ::treesitter_types::FromNode>::from_node(node, src)
11039 })
11040 .map(Self::TypeParameter)
11041 .unwrap_or(Self::Unknown(node)),
11042 "typed_default_parameter" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11043 <TypedDefaultParameter as ::treesitter_types::FromNode>::from_node(node, src)
11044 })
11045 .map(Self::TypedDefaultParameter)
11046 .unwrap_or(Self::Unknown(node)),
11047 "typed_parameter" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11048 <TypedParameter as ::treesitter_types::FromNode>::from_node(node, src)
11049 })
11050 .map(Self::TypedParameter)
11051 .unwrap_or(Self::Unknown(node)),
11052 "unary_operator" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11053 <UnaryOperator as ::treesitter_types::FromNode>::from_node(node, src)
11054 })
11055 .map(Self::UnaryOperator)
11056 .unwrap_or(Self::Unknown(node)),
11057 "union_pattern" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11058 <UnionPattern as ::treesitter_types::FromNode>::from_node(node, src)
11059 })
11060 .map(Self::UnionPattern)
11061 .unwrap_or(Self::Unknown(node)),
11062 "union_type" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11063 <UnionType as ::treesitter_types::FromNode>::from_node(node, src)
11064 })
11065 .map(Self::UnionType)
11066 .unwrap_or(Self::Unknown(node)),
11067 "while_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11068 <WhileStatement as ::treesitter_types::FromNode>::from_node(node, src)
11069 })
11070 .map(Self::WhileStatement)
11071 .unwrap_or(Self::Unknown(node)),
11072 "wildcard_import" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11073 <WildcardImport as ::treesitter_types::FromNode>::from_node(node, src)
11074 })
11075 .map(Self::WildcardImport)
11076 .unwrap_or(Self::Unknown(node)),
11077 "with_clause" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11078 <WithClause as ::treesitter_types::FromNode>::from_node(node, src)
11079 })
11080 .map(Self::WithClause)
11081 .unwrap_or(Self::Unknown(node)),
11082 "with_item" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11083 <WithItem as ::treesitter_types::FromNode>::from_node(node, src)
11084 })
11085 .map(Self::WithItem)
11086 .unwrap_or(Self::Unknown(node)),
11087 "with_statement" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11088 <WithStatement as ::treesitter_types::FromNode>::from_node(node, src)
11089 })
11090 .map(Self::WithStatement)
11091 .unwrap_or(Self::Unknown(node)),
11092 "yield" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11093 <Yield as ::treesitter_types::FromNode>::from_node(node, src)
11094 })
11095 .map(Self::Yield)
11096 .unwrap_or(Self::Unknown(node)),
11097 "comment" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11098 <Comment as ::treesitter_types::FromNode>::from_node(node, src)
11099 })
11100 .map(Self::Comment)
11101 .unwrap_or(Self::Unknown(node)),
11102 "ellipsis" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11103 <Ellipsis as ::treesitter_types::FromNode>::from_node(node, src)
11104 })
11105 .map(Self::Ellipsis)
11106 .unwrap_or(Self::Unknown(node)),
11107 "escape_interpolation" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11108 <EscapeInterpolation as ::treesitter_types::FromNode>::from_node(node, src)
11109 })
11110 .map(Self::EscapeInterpolation)
11111 .unwrap_or(Self::Unknown(node)),
11112 "escape_sequence" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11113 <EscapeSequence as ::treesitter_types::FromNode>::from_node(node, src)
11114 })
11115 .map(Self::EscapeSequence)
11116 .unwrap_or(Self::Unknown(node)),
11117 "false" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11118 <False as ::treesitter_types::FromNode>::from_node(node, src)
11119 })
11120 .map(Self::False)
11121 .unwrap_or(Self::Unknown(node)),
11122 "float" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11123 <Float as ::treesitter_types::FromNode>::from_node(node, src)
11124 })
11125 .map(Self::Float)
11126 .unwrap_or(Self::Unknown(node)),
11127 "identifier" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11128 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
11129 })
11130 .map(Self::Identifier)
11131 .unwrap_or(Self::Unknown(node)),
11132 "integer" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11133 <Integer as ::treesitter_types::FromNode>::from_node(node, src)
11134 })
11135 .map(Self::Integer)
11136 .unwrap_or(Self::Unknown(node)),
11137 "line_continuation" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11138 <LineContinuation as ::treesitter_types::FromNode>::from_node(node, src)
11139 })
11140 .map(Self::LineContinuation)
11141 .unwrap_or(Self::Unknown(node)),
11142 "none" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11143 <None as ::treesitter_types::FromNode>::from_node(node, src)
11144 })
11145 .map(Self::None)
11146 .unwrap_or(Self::Unknown(node)),
11147 "string_end" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11148 <StringEnd as ::treesitter_types::FromNode>::from_node(node, src)
11149 })
11150 .map(Self::StringEnd)
11151 .unwrap_or(Self::Unknown(node)),
11152 "string_start" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11153 <StringStart as ::treesitter_types::FromNode>::from_node(node, src)
11154 })
11155 .map(Self::StringStart)
11156 .unwrap_or(Self::Unknown(node)),
11157 "true" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11158 <True as ::treesitter_types::FromNode>::from_node(node, src)
11159 })
11160 .map(Self::True)
11161 .unwrap_or(Self::Unknown(node)),
11162 "type_conversion" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11163 <TypeConversion as ::treesitter_types::FromNode>::from_node(node, src)
11164 })
11165 .map(Self::TypeConversion)
11166 .unwrap_or(Self::Unknown(node)),
11167 "as_pattern_target" => ::treesitter_types::runtime::maybe_grow_stack(|| {
11168 <AsPatternTarget as ::treesitter_types::FromNode>::from_node(node, src)
11169 })
11170 .map(Self::AsPatternTarget)
11171 .unwrap_or(Self::Unknown(node)),
11172 _ => Self::Unknown(node),
11173 }
11174 }
11175}
11176impl ::treesitter_types::Spanned for AnyNode<'_> {
11177 fn span(&self) -> ::treesitter_types::Span {
11178 match self {
11179 Self::CompoundStatement(inner) => inner.span(),
11180 Self::SimpleStatement(inner) => inner.span(),
11181 Self::Expression(inner) => inner.span(),
11182 Self::Parameter(inner) => inner.span(),
11183 Self::Pattern(inner) => inner.span(),
11184 Self::PrimaryExpression(inner) => inner.span(),
11185 Self::AliasedImport(inner) => inner.span(),
11186 Self::ArgumentList(inner) => inner.span(),
11187 Self::AsPattern(inner) => inner.span(),
11188 Self::AssertStatement(inner) => inner.span(),
11189 Self::Assignment(inner) => inner.span(),
11190 Self::Attribute(inner) => inner.span(),
11191 Self::AugmentedAssignment(inner) => inner.span(),
11192 Self::Await(inner) => inner.span(),
11193 Self::BinaryOperator(inner) => inner.span(),
11194 Self::Block(inner) => inner.span(),
11195 Self::BooleanOperator(inner) => inner.span(),
11196 Self::BreakStatement(inner) => inner.span(),
11197 Self::Call(inner) => inner.span(),
11198 Self::CaseClause(inner) => inner.span(),
11199 Self::CasePattern(inner) => inner.span(),
11200 Self::Chevron(inner) => inner.span(),
11201 Self::ClassDefinition(inner) => inner.span(),
11202 Self::ClassPattern(inner) => inner.span(),
11203 Self::ComparisonOperator(inner) => inner.span(),
11204 Self::ComplexPattern(inner) => inner.span(),
11205 Self::ConcatenatedString(inner) => inner.span(),
11206 Self::ConditionalExpression(inner) => inner.span(),
11207 Self::ConstrainedType(inner) => inner.span(),
11208 Self::ContinueStatement(inner) => inner.span(),
11209 Self::DecoratedDefinition(inner) => inner.span(),
11210 Self::Decorator(inner) => inner.span(),
11211 Self::DefaultParameter(inner) => inner.span(),
11212 Self::DeleteStatement(inner) => inner.span(),
11213 Self::DictPattern(inner) => inner.span(),
11214 Self::Dictionary(inner) => inner.span(),
11215 Self::DictionaryComprehension(inner) => inner.span(),
11216 Self::DictionarySplat(inner) => inner.span(),
11217 Self::DictionarySplatPattern(inner) => inner.span(),
11218 Self::DottedName(inner) => inner.span(),
11219 Self::ElifClause(inner) => inner.span(),
11220 Self::ElseClause(inner) => inner.span(),
11221 Self::ExceptClause(inner) => inner.span(),
11222 Self::ExecStatement(inner) => inner.span(),
11223 Self::ExpressionList(inner) => inner.span(),
11224 Self::ExpressionStatement(inner) => inner.span(),
11225 Self::FinallyClause(inner) => inner.span(),
11226 Self::ForInClause(inner) => inner.span(),
11227 Self::ForStatement(inner) => inner.span(),
11228 Self::FormatExpression(inner) => inner.span(),
11229 Self::FormatSpecifier(inner) => inner.span(),
11230 Self::FunctionDefinition(inner) => inner.span(),
11231 Self::FutureImportStatement(inner) => inner.span(),
11232 Self::GeneratorExpression(inner) => inner.span(),
11233 Self::GenericType(inner) => inner.span(),
11234 Self::GlobalStatement(inner) => inner.span(),
11235 Self::IfClause(inner) => inner.span(),
11236 Self::IfStatement(inner) => inner.span(),
11237 Self::ImportFromStatement(inner) => inner.span(),
11238 Self::ImportPrefix(inner) => inner.span(),
11239 Self::ImportStatement(inner) => inner.span(),
11240 Self::Interpolation(inner) => inner.span(),
11241 Self::KeywordArgument(inner) => inner.span(),
11242 Self::KeywordPattern(inner) => inner.span(),
11243 Self::KeywordSeparator(inner) => inner.span(),
11244 Self::Lambda(inner) => inner.span(),
11245 Self::LambdaParameters(inner) => inner.span(),
11246 Self::List(inner) => inner.span(),
11247 Self::ListComprehension(inner) => inner.span(),
11248 Self::ListPattern(inner) => inner.span(),
11249 Self::ListSplat(inner) => inner.span(),
11250 Self::ListSplatPattern(inner) => inner.span(),
11251 Self::MatchStatement(inner) => inner.span(),
11252 Self::MemberType(inner) => inner.span(),
11253 Self::Module(inner) => inner.span(),
11254 Self::NamedExpression(inner) => inner.span(),
11255 Self::NonlocalStatement(inner) => inner.span(),
11256 Self::NotOperator(inner) => inner.span(),
11257 Self::Pair(inner) => inner.span(),
11258 Self::Parameters(inner) => inner.span(),
11259 Self::ParenthesizedExpression(inner) => inner.span(),
11260 Self::ParenthesizedListSplat(inner) => inner.span(),
11261 Self::PassStatement(inner) => inner.span(),
11262 Self::PatternList(inner) => inner.span(),
11263 Self::PositionalSeparator(inner) => inner.span(),
11264 Self::PrintStatement(inner) => inner.span(),
11265 Self::RaiseStatement(inner) => inner.span(),
11266 Self::RelativeImport(inner) => inner.span(),
11267 Self::ReturnStatement(inner) => inner.span(),
11268 Self::Set(inner) => inner.span(),
11269 Self::SetComprehension(inner) => inner.span(),
11270 Self::Slice(inner) => inner.span(),
11271 Self::SplatPattern(inner) => inner.span(),
11272 Self::SplatType(inner) => inner.span(),
11273 Self::String(inner) => inner.span(),
11274 Self::StringContent(inner) => inner.span(),
11275 Self::Subscript(inner) => inner.span(),
11276 Self::TryStatement(inner) => inner.span(),
11277 Self::Tuple(inner) => inner.span(),
11278 Self::TuplePattern(inner) => inner.span(),
11279 Self::Type(inner) => inner.span(),
11280 Self::TypeAliasStatement(inner) => inner.span(),
11281 Self::TypeParameter(inner) => inner.span(),
11282 Self::TypedDefaultParameter(inner) => inner.span(),
11283 Self::TypedParameter(inner) => inner.span(),
11284 Self::UnaryOperator(inner) => inner.span(),
11285 Self::UnionPattern(inner) => inner.span(),
11286 Self::UnionType(inner) => inner.span(),
11287 Self::WhileStatement(inner) => inner.span(),
11288 Self::WildcardImport(inner) => inner.span(),
11289 Self::WithClause(inner) => inner.span(),
11290 Self::WithItem(inner) => inner.span(),
11291 Self::WithStatement(inner) => inner.span(),
11292 Self::Yield(inner) => inner.span(),
11293 Self::Comment(inner) => inner.span(),
11294 Self::Ellipsis(inner) => inner.span(),
11295 Self::EscapeInterpolation(inner) => inner.span(),
11296 Self::EscapeSequence(inner) => inner.span(),
11297 Self::False(inner) => inner.span(),
11298 Self::Float(inner) => inner.span(),
11299 Self::Identifier(inner) => inner.span(),
11300 Self::Integer(inner) => inner.span(),
11301 Self::LineContinuation(inner) => inner.span(),
11302 Self::None(inner) => inner.span(),
11303 Self::StringEnd(inner) => inner.span(),
11304 Self::StringStart(inner) => inner.span(),
11305 Self::True(inner) => inner.span(),
11306 Self::TypeConversion(inner) => inner.span(),
11307 Self::AsPatternTarget(inner) => inner.span(),
11308 Self::Unknown(node) => ::treesitter_types::Span::from(*node),
11309 }
11310 }
11311}