1#[derive(Debug, Clone)]
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: ::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 <ClassDefinition as ::treesitter_types::FromNode>::from_node(node, src)?,
22 ))),
23 "decorated_definition" => Ok(Self::DecoratedDefinition(::std::boxed::Box::new(
24 <DecoratedDefinition as ::treesitter_types::FromNode>::from_node(node, src)?,
25 ))),
26 "for_statement" => Ok(Self::ForStatement(::std::boxed::Box::new(
27 <ForStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
28 ))),
29 "function_definition" => Ok(Self::FunctionDefinition(::std::boxed::Box::new(
30 <FunctionDefinition as ::treesitter_types::FromNode>::from_node(node, src)?,
31 ))),
32 "if_statement" => Ok(Self::IfStatement(::std::boxed::Box::new(
33 <IfStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
34 ))),
35 "match_statement" => Ok(Self::MatchStatement(::std::boxed::Box::new(
36 <MatchStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
37 ))),
38 "try_statement" => Ok(Self::TryStatement(::std::boxed::Box::new(
39 <TryStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
40 ))),
41 "while_statement" => Ok(Self::WhileStatement(::std::boxed::Box::new(
42 <WhileStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
43 ))),
44 "with_statement" => Ok(Self::WithStatement(::std::boxed::Box::new(
45 <WithStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
46 ))),
47 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
48 }
49 }
50}
51impl ::treesitter_types::Spanned for CompoundStatement<'_> {
52 fn span(&self) -> ::treesitter_types::Span {
53 match self {
54 Self::ClassDefinition(inner) => inner.span(),
55 Self::DecoratedDefinition(inner) => inner.span(),
56 Self::ForStatement(inner) => inner.span(),
57 Self::FunctionDefinition(inner) => inner.span(),
58 Self::IfStatement(inner) => inner.span(),
59 Self::MatchStatement(inner) => inner.span(),
60 Self::TryStatement(inner) => inner.span(),
61 Self::WhileStatement(inner) => inner.span(),
62 Self::WithStatement(inner) => inner.span(),
63 }
64 }
65}
66#[derive(Debug, Clone)]
67pub enum SimpleStatement<'tree> {
68 AssertStatement(::std::boxed::Box<AssertStatement<'tree>>),
69 BreakStatement(::std::boxed::Box<BreakStatement<'tree>>),
70 ContinueStatement(::std::boxed::Box<ContinueStatement<'tree>>),
71 DeleteStatement(::std::boxed::Box<DeleteStatement<'tree>>),
72 ExecStatement(::std::boxed::Box<ExecStatement<'tree>>),
73 ExpressionStatement(::std::boxed::Box<ExpressionStatement<'tree>>),
74 FutureImportStatement(::std::boxed::Box<FutureImportStatement<'tree>>),
75 GlobalStatement(::std::boxed::Box<GlobalStatement<'tree>>),
76 ImportFromStatement(::std::boxed::Box<ImportFromStatement<'tree>>),
77 ImportStatement(::std::boxed::Box<ImportStatement<'tree>>),
78 NonlocalStatement(::std::boxed::Box<NonlocalStatement<'tree>>),
79 PassStatement(::std::boxed::Box<PassStatement<'tree>>),
80 PrintStatement(::std::boxed::Box<PrintStatement<'tree>>),
81 RaiseStatement(::std::boxed::Box<RaiseStatement<'tree>>),
82 ReturnStatement(::std::boxed::Box<ReturnStatement<'tree>>),
83 TypeAliasStatement(::std::boxed::Box<TypeAliasStatement<'tree>>),
84}
85impl<'tree> ::treesitter_types::FromNode<'tree> for SimpleStatement<'tree> {
86 #[allow(clippy::collapsible_else_if)]
87 fn from_node(
88 node: ::tree_sitter::Node<'tree>,
89 src: &'tree [u8],
90 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
91 match node.kind() {
92 "assert_statement" => Ok(Self::AssertStatement(::std::boxed::Box::new(
93 <AssertStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
94 ))),
95 "break_statement" => Ok(Self::BreakStatement(::std::boxed::Box::new(
96 <BreakStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
97 ))),
98 "continue_statement" => Ok(Self::ContinueStatement(::std::boxed::Box::new(
99 <ContinueStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
100 ))),
101 "delete_statement" => Ok(Self::DeleteStatement(::std::boxed::Box::new(
102 <DeleteStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
103 ))),
104 "exec_statement" => Ok(Self::ExecStatement(::std::boxed::Box::new(
105 <ExecStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
106 ))),
107 "expression_statement" => Ok(Self::ExpressionStatement(::std::boxed::Box::new(
108 <ExpressionStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
109 ))),
110 "future_import_statement" => Ok(Self::FutureImportStatement(::std::boxed::Box::new(
111 <FutureImportStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
112 ))),
113 "global_statement" => Ok(Self::GlobalStatement(::std::boxed::Box::new(
114 <GlobalStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
115 ))),
116 "import_from_statement" => Ok(Self::ImportFromStatement(::std::boxed::Box::new(
117 <ImportFromStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
118 ))),
119 "import_statement" => Ok(Self::ImportStatement(::std::boxed::Box::new(
120 <ImportStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
121 ))),
122 "nonlocal_statement" => Ok(Self::NonlocalStatement(::std::boxed::Box::new(
123 <NonlocalStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
124 ))),
125 "pass_statement" => Ok(Self::PassStatement(::std::boxed::Box::new(
126 <PassStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
127 ))),
128 "print_statement" => Ok(Self::PrintStatement(::std::boxed::Box::new(
129 <PrintStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
130 ))),
131 "raise_statement" => Ok(Self::RaiseStatement(::std::boxed::Box::new(
132 <RaiseStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
133 ))),
134 "return_statement" => Ok(Self::ReturnStatement(::std::boxed::Box::new(
135 <ReturnStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
136 ))),
137 "type_alias_statement" => Ok(Self::TypeAliasStatement(::std::boxed::Box::new(
138 <TypeAliasStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
139 ))),
140 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
141 }
142 }
143}
144impl ::treesitter_types::Spanned for SimpleStatement<'_> {
145 fn span(&self) -> ::treesitter_types::Span {
146 match self {
147 Self::AssertStatement(inner) => inner.span(),
148 Self::BreakStatement(inner) => inner.span(),
149 Self::ContinueStatement(inner) => inner.span(),
150 Self::DeleteStatement(inner) => inner.span(),
151 Self::ExecStatement(inner) => inner.span(),
152 Self::ExpressionStatement(inner) => inner.span(),
153 Self::FutureImportStatement(inner) => inner.span(),
154 Self::GlobalStatement(inner) => inner.span(),
155 Self::ImportFromStatement(inner) => inner.span(),
156 Self::ImportStatement(inner) => inner.span(),
157 Self::NonlocalStatement(inner) => inner.span(),
158 Self::PassStatement(inner) => inner.span(),
159 Self::PrintStatement(inner) => inner.span(),
160 Self::RaiseStatement(inner) => inner.span(),
161 Self::ReturnStatement(inner) => inner.span(),
162 Self::TypeAliasStatement(inner) => inner.span(),
163 }
164 }
165}
166#[derive(Debug, Clone)]
167pub enum Expression<'tree> {
168 AsPattern(::std::boxed::Box<AsPattern<'tree>>),
169 BooleanOperator(::std::boxed::Box<BooleanOperator<'tree>>),
170 ComparisonOperator(::std::boxed::Box<ComparisonOperator<'tree>>),
171 ConditionalExpression(::std::boxed::Box<ConditionalExpression<'tree>>),
172 Lambda(::std::boxed::Box<Lambda<'tree>>),
173 NamedExpression(::std::boxed::Box<NamedExpression<'tree>>),
174 NotOperator(::std::boxed::Box<NotOperator<'tree>>),
175 PrimaryExpression(::std::boxed::Box<PrimaryExpression<'tree>>),
176}
177impl<'tree> ::treesitter_types::FromNode<'tree> for Expression<'tree> {
178 #[allow(clippy::collapsible_else_if)]
179 fn from_node(
180 node: ::tree_sitter::Node<'tree>,
181 src: &'tree [u8],
182 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
183 match node.kind() {
184 "as_pattern" => Ok(Self::AsPattern(::std::boxed::Box::new(
185 <AsPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
186 ))),
187 "boolean_operator" => Ok(Self::BooleanOperator(::std::boxed::Box::new(
188 <BooleanOperator as ::treesitter_types::FromNode>::from_node(node, src)?,
189 ))),
190 "comparison_operator" => Ok(Self::ComparisonOperator(::std::boxed::Box::new(
191 <ComparisonOperator as ::treesitter_types::FromNode>::from_node(node, src)?,
192 ))),
193 "conditional_expression" => Ok(Self::ConditionalExpression(::std::boxed::Box::new(
194 <ConditionalExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
195 ))),
196 "lambda" => Ok(Self::Lambda(::std::boxed::Box::new(
197 <Lambda as ::treesitter_types::FromNode>::from_node(node, src)?,
198 ))),
199 "named_expression" => Ok(Self::NamedExpression(::std::boxed::Box::new(
200 <NamedExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
201 ))),
202 "not_operator" => Ok(Self::NotOperator(::std::boxed::Box::new(
203 <NotOperator as ::treesitter_types::FromNode>::from_node(node, src)?,
204 ))),
205 _other => {
206 if let Ok(v) =
207 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(node, src)
208 {
209 Ok(Self::PrimaryExpression(::std::boxed::Box::new(v)))
210 } else {
211 Err(::treesitter_types::ParseError::unexpected_kind(
212 _other, node,
213 ))
214 }
215 }
216 }
217 }
218}
219impl ::treesitter_types::Spanned for Expression<'_> {
220 fn span(&self) -> ::treesitter_types::Span {
221 match self {
222 Self::AsPattern(inner) => inner.span(),
223 Self::BooleanOperator(inner) => inner.span(),
224 Self::ComparisonOperator(inner) => inner.span(),
225 Self::ConditionalExpression(inner) => inner.span(),
226 Self::Lambda(inner) => inner.span(),
227 Self::NamedExpression(inner) => inner.span(),
228 Self::NotOperator(inner) => inner.span(),
229 Self::PrimaryExpression(inner) => inner.span(),
230 }
231 }
232}
233#[derive(Debug, Clone)]
234pub enum Parameter<'tree> {
235 DefaultParameter(::std::boxed::Box<DefaultParameter<'tree>>),
236 DictionarySplatPattern(::std::boxed::Box<DictionarySplatPattern<'tree>>),
237 Identifier(::std::boxed::Box<Identifier<'tree>>),
238 KeywordSeparator(::std::boxed::Box<KeywordSeparator<'tree>>),
239 ListSplatPattern(::std::boxed::Box<ListSplatPattern<'tree>>),
240 PositionalSeparator(::std::boxed::Box<PositionalSeparator<'tree>>),
241 TuplePattern(::std::boxed::Box<TuplePattern<'tree>>),
242 TypedDefaultParameter(::std::boxed::Box<TypedDefaultParameter<'tree>>),
243 TypedParameter(::std::boxed::Box<TypedParameter<'tree>>),
244}
245impl<'tree> ::treesitter_types::FromNode<'tree> for Parameter<'tree> {
246 #[allow(clippy::collapsible_else_if)]
247 fn from_node(
248 node: ::tree_sitter::Node<'tree>,
249 src: &'tree [u8],
250 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
251 match node.kind() {
252 "default_parameter" => Ok(Self::DefaultParameter(::std::boxed::Box::new(
253 <DefaultParameter as ::treesitter_types::FromNode>::from_node(node, src)?,
254 ))),
255 "dictionary_splat_pattern" => Ok(Self::DictionarySplatPattern(::std::boxed::Box::new(
256 <DictionarySplatPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
257 ))),
258 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
259 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
260 ))),
261 "keyword_separator" => Ok(Self::KeywordSeparator(::std::boxed::Box::new(
262 <KeywordSeparator as ::treesitter_types::FromNode>::from_node(node, src)?,
263 ))),
264 "list_splat_pattern" => Ok(Self::ListSplatPattern(::std::boxed::Box::new(
265 <ListSplatPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
266 ))),
267 "positional_separator" => Ok(Self::PositionalSeparator(::std::boxed::Box::new(
268 <PositionalSeparator as ::treesitter_types::FromNode>::from_node(node, src)?,
269 ))),
270 "tuple_pattern" => Ok(Self::TuplePattern(::std::boxed::Box::new(
271 <TuplePattern as ::treesitter_types::FromNode>::from_node(node, src)?,
272 ))),
273 "typed_default_parameter" => Ok(Self::TypedDefaultParameter(::std::boxed::Box::new(
274 <TypedDefaultParameter as ::treesitter_types::FromNode>::from_node(node, src)?,
275 ))),
276 "typed_parameter" => Ok(Self::TypedParameter(::std::boxed::Box::new(
277 <TypedParameter as ::treesitter_types::FromNode>::from_node(node, src)?,
278 ))),
279 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
280 }
281 }
282}
283impl ::treesitter_types::Spanned for Parameter<'_> {
284 fn span(&self) -> ::treesitter_types::Span {
285 match self {
286 Self::DefaultParameter(inner) => inner.span(),
287 Self::DictionarySplatPattern(inner) => inner.span(),
288 Self::Identifier(inner) => inner.span(),
289 Self::KeywordSeparator(inner) => inner.span(),
290 Self::ListSplatPattern(inner) => inner.span(),
291 Self::PositionalSeparator(inner) => inner.span(),
292 Self::TuplePattern(inner) => inner.span(),
293 Self::TypedDefaultParameter(inner) => inner.span(),
294 Self::TypedParameter(inner) => inner.span(),
295 }
296 }
297}
298#[derive(Debug, Clone)]
299pub enum Pattern<'tree> {
300 Attribute(::std::boxed::Box<Attribute<'tree>>),
301 Identifier(::std::boxed::Box<Identifier<'tree>>),
302 ListPattern(::std::boxed::Box<ListPattern<'tree>>),
303 ListSplatPattern(::std::boxed::Box<ListSplatPattern<'tree>>),
304 Subscript(::std::boxed::Box<Subscript<'tree>>),
305 TuplePattern(::std::boxed::Box<TuplePattern<'tree>>),
306}
307impl<'tree> ::treesitter_types::FromNode<'tree> for Pattern<'tree> {
308 #[allow(clippy::collapsible_else_if)]
309 fn from_node(
310 node: ::tree_sitter::Node<'tree>,
311 src: &'tree [u8],
312 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
313 match node.kind() {
314 "attribute" => Ok(Self::Attribute(::std::boxed::Box::new(
315 <Attribute as ::treesitter_types::FromNode>::from_node(node, src)?,
316 ))),
317 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
318 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
319 ))),
320 "list_pattern" => Ok(Self::ListPattern(::std::boxed::Box::new(
321 <ListPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
322 ))),
323 "list_splat_pattern" => Ok(Self::ListSplatPattern(::std::boxed::Box::new(
324 <ListSplatPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
325 ))),
326 "subscript" => Ok(Self::Subscript(::std::boxed::Box::new(
327 <Subscript as ::treesitter_types::FromNode>::from_node(node, src)?,
328 ))),
329 "tuple_pattern" => Ok(Self::TuplePattern(::std::boxed::Box::new(
330 <TuplePattern as ::treesitter_types::FromNode>::from_node(node, src)?,
331 ))),
332 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
333 }
334 }
335}
336impl ::treesitter_types::Spanned for Pattern<'_> {
337 fn span(&self) -> ::treesitter_types::Span {
338 match self {
339 Self::Attribute(inner) => inner.span(),
340 Self::Identifier(inner) => inner.span(),
341 Self::ListPattern(inner) => inner.span(),
342 Self::ListSplatPattern(inner) => inner.span(),
343 Self::Subscript(inner) => inner.span(),
344 Self::TuplePattern(inner) => inner.span(),
345 }
346 }
347}
348#[derive(Debug, Clone)]
349pub enum PrimaryExpression<'tree> {
350 Attribute(::std::boxed::Box<Attribute<'tree>>),
351 Await(::std::boxed::Box<Await<'tree>>),
352 BinaryOperator(::std::boxed::Box<BinaryOperator<'tree>>),
353 Call(::std::boxed::Box<Call<'tree>>),
354 ConcatenatedString(::std::boxed::Box<ConcatenatedString<'tree>>),
355 Dictionary(::std::boxed::Box<Dictionary<'tree>>),
356 DictionaryComprehension(::std::boxed::Box<DictionaryComprehension<'tree>>),
357 Ellipsis(::std::boxed::Box<Ellipsis<'tree>>),
358 False(::std::boxed::Box<False<'tree>>),
359 Float(::std::boxed::Box<Float<'tree>>),
360 GeneratorExpression(::std::boxed::Box<GeneratorExpression<'tree>>),
361 Identifier(::std::boxed::Box<Identifier<'tree>>),
362 Integer(::std::boxed::Box<Integer<'tree>>),
363 List(::std::boxed::Box<List<'tree>>),
364 ListComprehension(::std::boxed::Box<ListComprehension<'tree>>),
365 ListSplat(::std::boxed::Box<ListSplat<'tree>>),
366 None(::std::boxed::Box<None<'tree>>),
367 ParenthesizedExpression(::std::boxed::Box<ParenthesizedExpression<'tree>>),
368 Set(::std::boxed::Box<Set<'tree>>),
369 SetComprehension(::std::boxed::Box<SetComprehension<'tree>>),
370 String(::std::boxed::Box<String<'tree>>),
371 Subscript(::std::boxed::Box<Subscript<'tree>>),
372 True(::std::boxed::Box<True<'tree>>),
373 Tuple(::std::boxed::Box<Tuple<'tree>>),
374 UnaryOperator(::std::boxed::Box<UnaryOperator<'tree>>),
375}
376impl<'tree> ::treesitter_types::FromNode<'tree> for PrimaryExpression<'tree> {
377 #[allow(clippy::collapsible_else_if)]
378 fn from_node(
379 node: ::tree_sitter::Node<'tree>,
380 src: &'tree [u8],
381 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
382 match node.kind() {
383 "attribute" => Ok(Self::Attribute(::std::boxed::Box::new(
384 <Attribute as ::treesitter_types::FromNode>::from_node(node, src)?,
385 ))),
386 "await" => Ok(Self::Await(::std::boxed::Box::new(
387 <Await as ::treesitter_types::FromNode>::from_node(node, src)?,
388 ))),
389 "binary_operator" => Ok(Self::BinaryOperator(::std::boxed::Box::new(
390 <BinaryOperator as ::treesitter_types::FromNode>::from_node(node, src)?,
391 ))),
392 "call" => Ok(Self::Call(::std::boxed::Box::new(
393 <Call as ::treesitter_types::FromNode>::from_node(node, src)?,
394 ))),
395 "concatenated_string" => Ok(Self::ConcatenatedString(::std::boxed::Box::new(
396 <ConcatenatedString as ::treesitter_types::FromNode>::from_node(node, src)?,
397 ))),
398 "dictionary" => Ok(Self::Dictionary(::std::boxed::Box::new(
399 <Dictionary as ::treesitter_types::FromNode>::from_node(node, src)?,
400 ))),
401 "dictionary_comprehension" => {
402 Ok(Self::DictionaryComprehension(::std::boxed::Box::new(
403 <DictionaryComprehension as ::treesitter_types::FromNode>::from_node(
404 node, src,
405 )?,
406 )))
407 }
408 "ellipsis" => Ok(Self::Ellipsis(::std::boxed::Box::new(
409 <Ellipsis as ::treesitter_types::FromNode>::from_node(node, src)?,
410 ))),
411 "false" => Ok(Self::False(::std::boxed::Box::new(
412 <False as ::treesitter_types::FromNode>::from_node(node, src)?,
413 ))),
414 "float" => Ok(Self::Float(::std::boxed::Box::new(
415 <Float as ::treesitter_types::FromNode>::from_node(node, src)?,
416 ))),
417 "generator_expression" => Ok(Self::GeneratorExpression(::std::boxed::Box::new(
418 <GeneratorExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
419 ))),
420 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
421 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
422 ))),
423 "integer" => Ok(Self::Integer(::std::boxed::Box::new(
424 <Integer as ::treesitter_types::FromNode>::from_node(node, src)?,
425 ))),
426 "list" => Ok(Self::List(::std::boxed::Box::new(
427 <List as ::treesitter_types::FromNode>::from_node(node, src)?,
428 ))),
429 "list_comprehension" => Ok(Self::ListComprehension(::std::boxed::Box::new(
430 <ListComprehension as ::treesitter_types::FromNode>::from_node(node, src)?,
431 ))),
432 "list_splat" => Ok(Self::ListSplat(::std::boxed::Box::new(
433 <ListSplat as ::treesitter_types::FromNode>::from_node(node, src)?,
434 ))),
435 "none" => Ok(Self::None(::std::boxed::Box::new(
436 <None as ::treesitter_types::FromNode>::from_node(node, src)?,
437 ))),
438 "parenthesized_expression" => {
439 Ok(Self::ParenthesizedExpression(::std::boxed::Box::new(
440 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(
441 node, src,
442 )?,
443 )))
444 }
445 "set" => Ok(Self::Set(::std::boxed::Box::new(
446 <Set as ::treesitter_types::FromNode>::from_node(node, src)?,
447 ))),
448 "set_comprehension" => Ok(Self::SetComprehension(::std::boxed::Box::new(
449 <SetComprehension as ::treesitter_types::FromNode>::from_node(node, src)?,
450 ))),
451 "string" => Ok(Self::String(::std::boxed::Box::new(
452 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
453 ))),
454 "subscript" => Ok(Self::Subscript(::std::boxed::Box::new(
455 <Subscript as ::treesitter_types::FromNode>::from_node(node, src)?,
456 ))),
457 "true" => Ok(Self::True(::std::boxed::Box::new(
458 <True as ::treesitter_types::FromNode>::from_node(node, src)?,
459 ))),
460 "tuple" => Ok(Self::Tuple(::std::boxed::Box::new(
461 <Tuple as ::treesitter_types::FromNode>::from_node(node, src)?,
462 ))),
463 "unary_operator" => Ok(Self::UnaryOperator(::std::boxed::Box::new(
464 <UnaryOperator as ::treesitter_types::FromNode>::from_node(node, src)?,
465 ))),
466 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
467 }
468 }
469}
470impl ::treesitter_types::Spanned for PrimaryExpression<'_> {
471 fn span(&self) -> ::treesitter_types::Span {
472 match self {
473 Self::Attribute(inner) => inner.span(),
474 Self::Await(inner) => inner.span(),
475 Self::BinaryOperator(inner) => inner.span(),
476 Self::Call(inner) => inner.span(),
477 Self::ConcatenatedString(inner) => inner.span(),
478 Self::Dictionary(inner) => inner.span(),
479 Self::DictionaryComprehension(inner) => inner.span(),
480 Self::Ellipsis(inner) => inner.span(),
481 Self::False(inner) => inner.span(),
482 Self::Float(inner) => inner.span(),
483 Self::GeneratorExpression(inner) => inner.span(),
484 Self::Identifier(inner) => inner.span(),
485 Self::Integer(inner) => inner.span(),
486 Self::List(inner) => inner.span(),
487 Self::ListComprehension(inner) => inner.span(),
488 Self::ListSplat(inner) => inner.span(),
489 Self::None(inner) => inner.span(),
490 Self::ParenthesizedExpression(inner) => inner.span(),
491 Self::Set(inner) => inner.span(),
492 Self::SetComprehension(inner) => inner.span(),
493 Self::String(inner) => inner.span(),
494 Self::Subscript(inner) => inner.span(),
495 Self::True(inner) => inner.span(),
496 Self::Tuple(inner) => inner.span(),
497 Self::UnaryOperator(inner) => inner.span(),
498 }
499 }
500}
501#[derive(Debug, Clone)]
502pub struct AliasedImport<'tree> {
503 pub span: ::treesitter_types::Span,
504 pub alias: Identifier<'tree>,
505 pub name: DottedName<'tree>,
506}
507impl<'tree> ::treesitter_types::FromNode<'tree> for AliasedImport<'tree> {
508 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
509 fn from_node(
510 node: ::tree_sitter::Node<'tree>,
511 src: &'tree [u8],
512 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
513 debug_assert_eq!(node.kind(), "aliased_import");
514 Ok(Self {
515 span: ::treesitter_types::Span::from(node),
516 alias: {
517 let child = node
518 .child_by_field_name("alias")
519 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("alias", node))?;
520 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)?
521 },
522 name: {
523 let child = node
524 .child_by_field_name("name")
525 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
526 <DottedName as ::treesitter_types::FromNode>::from_node(child, src)?
527 },
528 })
529 }
530}
531impl ::treesitter_types::Spanned for AliasedImport<'_> {
532 fn span(&self) -> ::treesitter_types::Span {
533 self.span
534 }
535}
536#[derive(Debug, Clone)]
537pub struct ArgumentList<'tree> {
538 pub span: ::treesitter_types::Span,
539 pub children: ::std::vec::Vec<ArgumentListChildren<'tree>>,
540}
541impl<'tree> ::treesitter_types::FromNode<'tree> for ArgumentList<'tree> {
542 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
543 fn from_node(
544 node: ::tree_sitter::Node<'tree>,
545 src: &'tree [u8],
546 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
547 debug_assert_eq!(node.kind(), "argument_list");
548 Ok(Self {
549 span: ::treesitter_types::Span::from(node),
550 children: {
551 #[allow(clippy::suspicious_else_formatting)]
552 let non_field_children = {
553 let mut cursor = node.walk();
554 let mut result = ::std::vec::Vec::new();
555 if cursor.goto_first_child() {
556 loop {
557 if cursor.field_name().is_none()
558 && cursor.node().is_named()
559 && !cursor.node().is_extra()
560 {
561 result.push(cursor.node());
562 }
563 if !cursor.goto_next_sibling() {
564 break;
565 }
566 }
567 }
568 result
569 };
570 let mut items = ::std::vec::Vec::new();
571 for child in non_field_children {
572 items.push(
573 <ArgumentListChildren as ::treesitter_types::FromNode>::from_node(
574 child, src,
575 )?,
576 );
577 }
578 items
579 },
580 })
581 }
582}
583impl ::treesitter_types::Spanned for ArgumentList<'_> {
584 fn span(&self) -> ::treesitter_types::Span {
585 self.span
586 }
587}
588#[derive(Debug, Clone)]
589pub struct AsPattern<'tree> {
590 pub span: ::treesitter_types::Span,
591 pub alias: ::core::option::Option<AsPatternTarget<'tree>>,
592 pub children: ::std::vec::Vec<AsPatternChildren<'tree>>,
593}
594impl<'tree> ::treesitter_types::FromNode<'tree> for AsPattern<'tree> {
595 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
596 fn from_node(
597 node: ::tree_sitter::Node<'tree>,
598 src: &'tree [u8],
599 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
600 debug_assert_eq!(node.kind(), "as_pattern");
601 Ok(Self {
602 span: ::treesitter_types::Span::from(node),
603 alias: match node.child_by_field_name("alias") {
604 Some(child) => {
605 Some(<AsPatternTarget as ::treesitter_types::FromNode>::from_node(child, src)?)
606 }
607 None => None,
608 },
609 children: {
610 #[allow(clippy::suspicious_else_formatting)]
611 let non_field_children = {
612 let mut cursor = node.walk();
613 let mut result = ::std::vec::Vec::new();
614 if cursor.goto_first_child() {
615 loop {
616 if cursor.field_name().is_none()
617 && cursor.node().is_named()
618 && !cursor.node().is_extra()
619 {
620 result.push(cursor.node());
621 }
622 if !cursor.goto_next_sibling() {
623 break;
624 }
625 }
626 }
627 result
628 };
629 let mut items = ::std::vec::Vec::new();
630 for child in non_field_children {
631 items.push(
632 <AsPatternChildren as ::treesitter_types::FromNode>::from_node(child, src)?,
633 );
634 }
635 items
636 },
637 })
638 }
639}
640impl ::treesitter_types::Spanned for AsPattern<'_> {
641 fn span(&self) -> ::treesitter_types::Span {
642 self.span
643 }
644}
645#[derive(Debug, Clone)]
646pub struct AssertStatement<'tree> {
647 pub span: ::treesitter_types::Span,
648 pub children: ::std::vec::Vec<Expression<'tree>>,
649}
650impl<'tree> ::treesitter_types::FromNode<'tree> for AssertStatement<'tree> {
651 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
652 fn from_node(
653 node: ::tree_sitter::Node<'tree>,
654 src: &'tree [u8],
655 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
656 debug_assert_eq!(node.kind(), "assert_statement");
657 Ok(Self {
658 span: ::treesitter_types::Span::from(node),
659 children: {
660 #[allow(clippy::suspicious_else_formatting)]
661 let non_field_children = {
662 let mut cursor = node.walk();
663 let mut result = ::std::vec::Vec::new();
664 if cursor.goto_first_child() {
665 loop {
666 if cursor.field_name().is_none()
667 && cursor.node().is_named()
668 && !cursor.node().is_extra()
669 {
670 result.push(cursor.node());
671 }
672 if !cursor.goto_next_sibling() {
673 break;
674 }
675 }
676 }
677 result
678 };
679 let mut items = ::std::vec::Vec::new();
680 for child in non_field_children {
681 items.push(<Expression as ::treesitter_types::FromNode>::from_node(
682 child, src,
683 )?);
684 }
685 items
686 },
687 })
688 }
689}
690impl ::treesitter_types::Spanned for AssertStatement<'_> {
691 fn span(&self) -> ::treesitter_types::Span {
692 self.span
693 }
694}
695#[derive(Debug, Clone)]
696pub struct Assignment<'tree> {
697 pub span: ::treesitter_types::Span,
698 pub left: AssignmentLeft<'tree>,
699 pub right: ::core::option::Option<AssignmentRight<'tree>>,
700 pub r#type: ::core::option::Option<Type<'tree>>,
701}
702impl<'tree> ::treesitter_types::FromNode<'tree> for Assignment<'tree> {
703 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
704 fn from_node(
705 node: ::tree_sitter::Node<'tree>,
706 src: &'tree [u8],
707 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
708 debug_assert_eq!(node.kind(), "assignment");
709 Ok(Self {
710 span: ::treesitter_types::Span::from(node),
711 left: {
712 let child = node
713 .child_by_field_name("left")
714 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
715 <AssignmentLeft as ::treesitter_types::FromNode>::from_node(child, src)?
716 },
717 right: match node.child_by_field_name("right") {
718 Some(child) => {
719 Some(<AssignmentRight as ::treesitter_types::FromNode>::from_node(child, src)?)
720 }
721 None => None,
722 },
723 r#type: match node.child_by_field_name("type") {
724 Some(child) => Some(<Type as ::treesitter_types::FromNode>::from_node(
725 child, src,
726 )?),
727 None => None,
728 },
729 })
730 }
731}
732impl ::treesitter_types::Spanned for Assignment<'_> {
733 fn span(&self) -> ::treesitter_types::Span {
734 self.span
735 }
736}
737#[derive(Debug, Clone)]
738pub struct Attribute<'tree> {
739 pub span: ::treesitter_types::Span,
740 pub attribute: Identifier<'tree>,
741 pub object: PrimaryExpression<'tree>,
742}
743impl<'tree> ::treesitter_types::FromNode<'tree> for Attribute<'tree> {
744 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
745 fn from_node(
746 node: ::tree_sitter::Node<'tree>,
747 src: &'tree [u8],
748 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
749 debug_assert_eq!(node.kind(), "attribute");
750 Ok(Self {
751 span: ::treesitter_types::Span::from(node),
752 attribute: {
753 let child = node.child_by_field_name("attribute").ok_or_else(|| {
754 ::treesitter_types::ParseError::missing_field("attribute", node)
755 })?;
756 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)?
757 },
758 object: {
759 let child = node
760 .child_by_field_name("object")
761 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("object", node))?;
762 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(child, src)?
763 },
764 })
765 }
766}
767impl ::treesitter_types::Spanned for Attribute<'_> {
768 fn span(&self) -> ::treesitter_types::Span {
769 self.span
770 }
771}
772#[derive(Debug, Clone)]
773pub struct AugmentedAssignment<'tree> {
774 pub span: ::treesitter_types::Span,
775 pub left: AugmentedAssignmentLeft<'tree>,
776 pub operator: AugmentedAssignmentOperator,
777 pub right: AugmentedAssignmentRight<'tree>,
778}
779impl<'tree> ::treesitter_types::FromNode<'tree> for AugmentedAssignment<'tree> {
780 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
781 fn from_node(
782 node: ::tree_sitter::Node<'tree>,
783 src: &'tree [u8],
784 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
785 debug_assert_eq!(node.kind(), "augmented_assignment");
786 Ok(Self {
787 span: ::treesitter_types::Span::from(node),
788 left: {
789 let child = node
790 .child_by_field_name("left")
791 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
792 <AugmentedAssignmentLeft as ::treesitter_types::FromNode>::from_node(child, src)?
793 },
794 operator: {
795 let child = node.child_by_field_name("operator").ok_or_else(|| {
796 ::treesitter_types::ParseError::missing_field("operator", node)
797 })?;
798 <AugmentedAssignmentOperator as ::treesitter_types::FromNode>::from_node(
799 child, src,
800 )?
801 },
802 right: {
803 let child = node
804 .child_by_field_name("right")
805 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
806 <AugmentedAssignmentRight as ::treesitter_types::FromNode>::from_node(child, src)?
807 },
808 })
809 }
810}
811impl ::treesitter_types::Spanned for AugmentedAssignment<'_> {
812 fn span(&self) -> ::treesitter_types::Span {
813 self.span
814 }
815}
816#[derive(Debug, Clone)]
817pub struct Await<'tree> {
818 pub span: ::treesitter_types::Span,
819 pub children: PrimaryExpression<'tree>,
820}
821impl<'tree> ::treesitter_types::FromNode<'tree> for Await<'tree> {
822 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
823 fn from_node(
824 node: ::tree_sitter::Node<'tree>,
825 src: &'tree [u8],
826 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
827 debug_assert_eq!(node.kind(), "await");
828 Ok(Self {
829 span: ::treesitter_types::Span::from(node),
830 children: {
831 #[allow(clippy::suspicious_else_formatting)]
832 let non_field_children = {
833 let mut cursor = node.walk();
834 let mut result = ::std::vec::Vec::new();
835 if cursor.goto_first_child() {
836 loop {
837 if cursor.field_name().is_none()
838 && cursor.node().is_named()
839 && !cursor.node().is_extra()
840 {
841 result.push(cursor.node());
842 }
843 if !cursor.goto_next_sibling() {
844 break;
845 }
846 }
847 }
848 result
849 };
850 let child = if let Some(&c) = non_field_children.first() {
851 c
852 } else {
853 let mut fallback_cursor = node.walk();
854 let mut fallback_child = None;
855 if fallback_cursor.goto_first_child() {
856 loop {
857 if fallback_cursor.field_name().is_none()
858 && !fallback_cursor.node().is_extra()
859 {
860 let candidate = fallback_cursor.node();
861 #[allow(clippy::needless_question_mark)]
862 if (|| -> ::core::result::Result<
863 _,
864 ::treesitter_types::ParseError,
865 > {
866 let child = candidate;
867 Ok(
868 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(
869 child,
870 src,
871 )?,
872 )
873 })()
874 .is_ok()
875 {
876 fallback_child = Some(candidate);
877 break;
878 }
879 }
880 if !fallback_cursor.goto_next_sibling() {
881 break;
882 }
883 }
884 }
885 if fallback_child.is_none() {
886 let mut cursor2 = node.walk();
887 if cursor2.goto_first_child() {
888 loop {
889 if cursor2.node().is_named() && !cursor2.node().is_extra() {
890 let candidate = cursor2.node();
891 #[allow(clippy::needless_question_mark)]
892 if (|| -> ::core::result::Result<
893 _,
894 ::treesitter_types::ParseError,
895 > {
896 let child = candidate;
897 Ok(
898 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(
899 child,
900 src,
901 )?,
902 )
903 })()
904 .is_ok()
905 {
906 fallback_child = Some(candidate);
907 break;
908 }
909 }
910 if !cursor2.goto_next_sibling() {
911 break;
912 }
913 }
914 }
915 }
916 fallback_child.ok_or_else(|| {
917 ::treesitter_types::ParseError::missing_field("children", node)
918 })?
919 };
920 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(child, src)?
921 },
922 })
923 }
924}
925impl ::treesitter_types::Spanned for Await<'_> {
926 fn span(&self) -> ::treesitter_types::Span {
927 self.span
928 }
929}
930#[derive(Debug, Clone)]
931pub struct BinaryOperator<'tree> {
932 pub span: ::treesitter_types::Span,
933 pub left: PrimaryExpression<'tree>,
934 pub operator: BinaryOperatorOperator,
935 pub right: PrimaryExpression<'tree>,
936}
937impl<'tree> ::treesitter_types::FromNode<'tree> for BinaryOperator<'tree> {
938 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
939 fn from_node(
940 node: ::tree_sitter::Node<'tree>,
941 src: &'tree [u8],
942 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
943 debug_assert_eq!(node.kind(), "binary_operator");
944 Ok(Self {
945 span: ::treesitter_types::Span::from(node),
946 left: {
947 let child = node
948 .child_by_field_name("left")
949 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
950 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(child, src)?
951 },
952 operator: {
953 let child = node.child_by_field_name("operator").ok_or_else(|| {
954 ::treesitter_types::ParseError::missing_field("operator", node)
955 })?;
956 <BinaryOperatorOperator as ::treesitter_types::FromNode>::from_node(child, src)?
957 },
958 right: {
959 let child = node
960 .child_by_field_name("right")
961 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
962 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(child, src)?
963 },
964 })
965 }
966}
967impl ::treesitter_types::Spanned for BinaryOperator<'_> {
968 fn span(&self) -> ::treesitter_types::Span {
969 self.span
970 }
971}
972#[derive(Debug, Clone)]
973pub struct Block<'tree> {
974 pub span: ::treesitter_types::Span,
975 pub alternative: ::std::vec::Vec<CaseClause<'tree>>,
976 pub children: ::std::vec::Vec<BlockChildren<'tree>>,
977}
978impl<'tree> ::treesitter_types::FromNode<'tree> for Block<'tree> {
979 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
980 fn from_node(
981 node: ::tree_sitter::Node<'tree>,
982 src: &'tree [u8],
983 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
984 debug_assert_eq!(node.kind(), "block");
985 Ok(Self {
986 span: ::treesitter_types::Span::from(node),
987 alternative: {
988 let mut cursor = node.walk();
989 let mut items = ::std::vec::Vec::new();
990 for child in node.children_by_field_name("alternative", &mut cursor) {
991 items.push(<CaseClause as ::treesitter_types::FromNode>::from_node(
992 child, src,
993 )?);
994 }
995 items
996 },
997 children: {
998 #[allow(clippy::suspicious_else_formatting)]
999 let non_field_children = {
1000 let mut cursor = node.walk();
1001 let mut result = ::std::vec::Vec::new();
1002 if cursor.goto_first_child() {
1003 loop {
1004 if cursor.field_name().is_none()
1005 && cursor.node().is_named()
1006 && !cursor.node().is_extra()
1007 {
1008 result.push(cursor.node());
1009 }
1010 if !cursor.goto_next_sibling() {
1011 break;
1012 }
1013 }
1014 }
1015 result
1016 };
1017 let mut items = ::std::vec::Vec::new();
1018 for child in non_field_children {
1019 items.push(<BlockChildren as ::treesitter_types::FromNode>::from_node(
1020 child, src,
1021 )?);
1022 }
1023 items
1024 },
1025 })
1026 }
1027}
1028impl ::treesitter_types::Spanned for Block<'_> {
1029 fn span(&self) -> ::treesitter_types::Span {
1030 self.span
1031 }
1032}
1033#[derive(Debug, Clone)]
1034pub struct BooleanOperator<'tree> {
1035 pub span: ::treesitter_types::Span,
1036 pub left: Expression<'tree>,
1037 pub operator: BooleanOperatorOperator,
1038 pub right: Expression<'tree>,
1039}
1040impl<'tree> ::treesitter_types::FromNode<'tree> for BooleanOperator<'tree> {
1041 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1042 fn from_node(
1043 node: ::tree_sitter::Node<'tree>,
1044 src: &'tree [u8],
1045 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1046 debug_assert_eq!(node.kind(), "boolean_operator");
1047 Ok(Self {
1048 span: ::treesitter_types::Span::from(node),
1049 left: {
1050 let child = node
1051 .child_by_field_name("left")
1052 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
1053 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
1054 },
1055 operator: {
1056 let child = node.child_by_field_name("operator").ok_or_else(|| {
1057 ::treesitter_types::ParseError::missing_field("operator", node)
1058 })?;
1059 <BooleanOperatorOperator as ::treesitter_types::FromNode>::from_node(child, src)?
1060 },
1061 right: {
1062 let child = node
1063 .child_by_field_name("right")
1064 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
1065 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
1066 },
1067 })
1068 }
1069}
1070impl ::treesitter_types::Spanned for BooleanOperator<'_> {
1071 fn span(&self) -> ::treesitter_types::Span {
1072 self.span
1073 }
1074}
1075#[derive(Debug, Clone)]
1076pub struct BreakStatement<'tree> {
1077 pub span: ::treesitter_types::Span,
1078 text: &'tree str,
1079}
1080impl<'tree> ::treesitter_types::FromNode<'tree> for BreakStatement<'tree> {
1081 fn from_node(
1082 node: ::tree_sitter::Node<'tree>,
1083 src: &'tree [u8],
1084 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1085 debug_assert_eq!(node.kind(), "break_statement");
1086 Ok(Self {
1087 span: ::treesitter_types::Span::from(node),
1088 text: node.utf8_text(src)?,
1089 })
1090 }
1091}
1092impl<'tree> ::treesitter_types::LeafNode<'tree> for BreakStatement<'tree> {
1093 fn text(&self) -> &'tree str {
1094 self.text
1095 }
1096}
1097impl ::treesitter_types::Spanned for BreakStatement<'_> {
1098 fn span(&self) -> ::treesitter_types::Span {
1099 self.span
1100 }
1101}
1102#[derive(Debug, Clone)]
1103pub struct Call<'tree> {
1104 pub span: ::treesitter_types::Span,
1105 pub arguments: CallArguments<'tree>,
1106 pub function: PrimaryExpression<'tree>,
1107}
1108impl<'tree> ::treesitter_types::FromNode<'tree> for Call<'tree> {
1109 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1110 fn from_node(
1111 node: ::tree_sitter::Node<'tree>,
1112 src: &'tree [u8],
1113 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1114 debug_assert_eq!(node.kind(), "call");
1115 Ok(Self {
1116 span: ::treesitter_types::Span::from(node),
1117 arguments: {
1118 let child = node.child_by_field_name("arguments").ok_or_else(|| {
1119 ::treesitter_types::ParseError::missing_field("arguments", node)
1120 })?;
1121 <CallArguments as ::treesitter_types::FromNode>::from_node(child, src)?
1122 },
1123 function: {
1124 let child = node.child_by_field_name("function").ok_or_else(|| {
1125 ::treesitter_types::ParseError::missing_field("function", node)
1126 })?;
1127 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(child, src)?
1128 },
1129 })
1130 }
1131}
1132impl ::treesitter_types::Spanned for Call<'_> {
1133 fn span(&self) -> ::treesitter_types::Span {
1134 self.span
1135 }
1136}
1137#[derive(Debug, Clone)]
1138pub struct CaseClause<'tree> {
1139 pub span: ::treesitter_types::Span,
1140 pub consequence: Block<'tree>,
1141 pub guard: ::core::option::Option<IfClause<'tree>>,
1142 pub children: ::std::vec::Vec<CasePattern<'tree>>,
1143}
1144impl<'tree> ::treesitter_types::FromNode<'tree> for CaseClause<'tree> {
1145 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1146 fn from_node(
1147 node: ::tree_sitter::Node<'tree>,
1148 src: &'tree [u8],
1149 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1150 debug_assert_eq!(node.kind(), "case_clause");
1151 Ok(Self {
1152 span: ::treesitter_types::Span::from(node),
1153 consequence: {
1154 let child = node.child_by_field_name("consequence").ok_or_else(|| {
1155 ::treesitter_types::ParseError::missing_field("consequence", node)
1156 })?;
1157 <Block as ::treesitter_types::FromNode>::from_node(child, src)?
1158 },
1159 guard: match node.child_by_field_name("guard") {
1160 Some(child) => Some(<IfClause as ::treesitter_types::FromNode>::from_node(
1161 child, src,
1162 )?),
1163 None => None,
1164 },
1165 children: {
1166 #[allow(clippy::suspicious_else_formatting)]
1167 let non_field_children = {
1168 let mut cursor = node.walk();
1169 let mut result = ::std::vec::Vec::new();
1170 if cursor.goto_first_child() {
1171 loop {
1172 if cursor.field_name().is_none()
1173 && cursor.node().is_named()
1174 && !cursor.node().is_extra()
1175 {
1176 result.push(cursor.node());
1177 }
1178 if !cursor.goto_next_sibling() {
1179 break;
1180 }
1181 }
1182 }
1183 result
1184 };
1185 let mut items = ::std::vec::Vec::new();
1186 for child in non_field_children {
1187 items.push(<CasePattern as ::treesitter_types::FromNode>::from_node(
1188 child, src,
1189 )?);
1190 }
1191 items
1192 },
1193 })
1194 }
1195}
1196impl ::treesitter_types::Spanned for CaseClause<'_> {
1197 fn span(&self) -> ::treesitter_types::Span {
1198 self.span
1199 }
1200}
1201#[derive(Debug, Clone)]
1202pub struct CasePattern<'tree> {
1203 pub span: ::treesitter_types::Span,
1204 pub children: ::core::option::Option<CasePatternChildren<'tree>>,
1205}
1206impl<'tree> ::treesitter_types::FromNode<'tree> for CasePattern<'tree> {
1207 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1208 fn from_node(
1209 node: ::tree_sitter::Node<'tree>,
1210 src: &'tree [u8],
1211 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1212 debug_assert_eq!(node.kind(), "case_pattern");
1213 Ok(Self {
1214 span: ::treesitter_types::Span::from(node),
1215 children: {
1216 #[allow(clippy::suspicious_else_formatting)]
1217 let non_field_children = {
1218 let mut cursor = node.walk();
1219 let mut result = ::std::vec::Vec::new();
1220 if cursor.goto_first_child() {
1221 loop {
1222 if cursor.field_name().is_none()
1223 && cursor.node().is_named()
1224 && !cursor.node().is_extra()
1225 {
1226 result.push(cursor.node());
1227 }
1228 if !cursor.goto_next_sibling() {
1229 break;
1230 }
1231 }
1232 }
1233 result
1234 };
1235 match non_field_children.first() {
1236 Some(&child) => Some(
1237 <CasePatternChildren as ::treesitter_types::FromNode>::from_node(
1238 child, src,
1239 )?,
1240 ),
1241 None => None,
1242 }
1243 },
1244 })
1245 }
1246}
1247impl ::treesitter_types::Spanned for CasePattern<'_> {
1248 fn span(&self) -> ::treesitter_types::Span {
1249 self.span
1250 }
1251}
1252#[derive(Debug, Clone)]
1253pub struct Chevron<'tree> {
1254 pub span: ::treesitter_types::Span,
1255 pub children: Expression<'tree>,
1256}
1257impl<'tree> ::treesitter_types::FromNode<'tree> for Chevron<'tree> {
1258 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1259 fn from_node(
1260 node: ::tree_sitter::Node<'tree>,
1261 src: &'tree [u8],
1262 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1263 debug_assert_eq!(node.kind(), "chevron");
1264 Ok(Self {
1265 span: ::treesitter_types::Span::from(node),
1266 children: {
1267 #[allow(clippy::suspicious_else_formatting)]
1268 let non_field_children = {
1269 let mut cursor = node.walk();
1270 let mut result = ::std::vec::Vec::new();
1271 if cursor.goto_first_child() {
1272 loop {
1273 if cursor.field_name().is_none()
1274 && cursor.node().is_named()
1275 && !cursor.node().is_extra()
1276 {
1277 result.push(cursor.node());
1278 }
1279 if !cursor.goto_next_sibling() {
1280 break;
1281 }
1282 }
1283 }
1284 result
1285 };
1286 let child = if let Some(&c) = non_field_children.first() {
1287 c
1288 } else {
1289 let mut fallback_cursor = node.walk();
1290 let mut fallback_child = None;
1291 if fallback_cursor.goto_first_child() {
1292 loop {
1293 if fallback_cursor.field_name().is_none()
1294 && !fallback_cursor.node().is_extra()
1295 {
1296 let candidate = fallback_cursor.node();
1297 #[allow(clippy::needless_question_mark)]
1298 if (|| -> ::core::result::Result<
1299 _,
1300 ::treesitter_types::ParseError,
1301 > {
1302 let child = candidate;
1303 Ok(
1304 <Expression as ::treesitter_types::FromNode>::from_node(
1305 child,
1306 src,
1307 )?,
1308 )
1309 })()
1310 .is_ok()
1311 {
1312 fallback_child = Some(candidate);
1313 break;
1314 }
1315 }
1316 if !fallback_cursor.goto_next_sibling() {
1317 break;
1318 }
1319 }
1320 }
1321 if fallback_child.is_none() {
1322 let mut cursor2 = node.walk();
1323 if cursor2.goto_first_child() {
1324 loop {
1325 if cursor2.node().is_named() && !cursor2.node().is_extra() {
1326 let candidate = cursor2.node();
1327 #[allow(clippy::needless_question_mark)]
1328 if (|| -> ::core::result::Result<
1329 _,
1330 ::treesitter_types::ParseError,
1331 > {
1332 let child = candidate;
1333 Ok(
1334 <Expression as ::treesitter_types::FromNode>::from_node(
1335 child,
1336 src,
1337 )?,
1338 )
1339 })()
1340 .is_ok()
1341 {
1342 fallback_child = Some(candidate);
1343 break;
1344 }
1345 }
1346 if !cursor2.goto_next_sibling() {
1347 break;
1348 }
1349 }
1350 }
1351 }
1352 fallback_child.ok_or_else(|| {
1353 ::treesitter_types::ParseError::missing_field("children", node)
1354 })?
1355 };
1356 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
1357 },
1358 })
1359 }
1360}
1361impl ::treesitter_types::Spanned for Chevron<'_> {
1362 fn span(&self) -> ::treesitter_types::Span {
1363 self.span
1364 }
1365}
1366#[derive(Debug, Clone)]
1367pub struct ClassDefinition<'tree> {
1368 pub span: ::treesitter_types::Span,
1369 pub body: Block<'tree>,
1370 pub name: Identifier<'tree>,
1371 pub superclasses: ::core::option::Option<ArgumentList<'tree>>,
1372 pub type_parameters: ::core::option::Option<TypeParameter<'tree>>,
1373}
1374impl<'tree> ::treesitter_types::FromNode<'tree> for ClassDefinition<'tree> {
1375 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1376 fn from_node(
1377 node: ::tree_sitter::Node<'tree>,
1378 src: &'tree [u8],
1379 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1380 debug_assert_eq!(node.kind(), "class_definition");
1381 Ok(Self {
1382 span: ::treesitter_types::Span::from(node),
1383 body: {
1384 let child = node
1385 .child_by_field_name("body")
1386 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
1387 <Block as ::treesitter_types::FromNode>::from_node(child, src)?
1388 },
1389 name: {
1390 let child = node
1391 .child_by_field_name("name")
1392 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
1393 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)?
1394 },
1395 superclasses: match node.child_by_field_name("superclasses") {
1396 Some(child) => Some(<ArgumentList as ::treesitter_types::FromNode>::from_node(
1397 child, src,
1398 )?),
1399 None => None,
1400 },
1401 type_parameters: match node.child_by_field_name("type_parameters") {
1402 Some(child) => Some(<TypeParameter as ::treesitter_types::FromNode>::from_node(
1403 child, src,
1404 )?),
1405 None => None,
1406 },
1407 })
1408 }
1409}
1410impl ::treesitter_types::Spanned for ClassDefinition<'_> {
1411 fn span(&self) -> ::treesitter_types::Span {
1412 self.span
1413 }
1414}
1415#[derive(Debug, Clone)]
1416pub struct ClassPattern<'tree> {
1417 pub span: ::treesitter_types::Span,
1418 pub children: ::std::vec::Vec<ClassPatternChildren<'tree>>,
1419}
1420impl<'tree> ::treesitter_types::FromNode<'tree> for ClassPattern<'tree> {
1421 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1422 fn from_node(
1423 node: ::tree_sitter::Node<'tree>,
1424 src: &'tree [u8],
1425 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1426 debug_assert_eq!(node.kind(), "class_pattern");
1427 Ok(Self {
1428 span: ::treesitter_types::Span::from(node),
1429 children: {
1430 #[allow(clippy::suspicious_else_formatting)]
1431 let non_field_children = {
1432 let mut cursor = node.walk();
1433 let mut result = ::std::vec::Vec::new();
1434 if cursor.goto_first_child() {
1435 loop {
1436 if cursor.field_name().is_none()
1437 && cursor.node().is_named()
1438 && !cursor.node().is_extra()
1439 {
1440 result.push(cursor.node());
1441 }
1442 if !cursor.goto_next_sibling() {
1443 break;
1444 }
1445 }
1446 }
1447 result
1448 };
1449 let mut items = ::std::vec::Vec::new();
1450 for child in non_field_children {
1451 items.push(
1452 <ClassPatternChildren as ::treesitter_types::FromNode>::from_node(
1453 child, src,
1454 )?,
1455 );
1456 }
1457 items
1458 },
1459 })
1460 }
1461}
1462impl ::treesitter_types::Spanned for ClassPattern<'_> {
1463 fn span(&self) -> ::treesitter_types::Span {
1464 self.span
1465 }
1466}
1467#[derive(Debug, Clone)]
1468pub struct ComparisonOperator<'tree> {
1469 pub span: ::treesitter_types::Span,
1470 pub operators: ::std::vec::Vec<ComparisonOperatorOperators>,
1471 pub children: ::std::vec::Vec<PrimaryExpression<'tree>>,
1472}
1473impl<'tree> ::treesitter_types::FromNode<'tree> for ComparisonOperator<'tree> {
1474 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1475 fn from_node(
1476 node: ::tree_sitter::Node<'tree>,
1477 src: &'tree [u8],
1478 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1479 debug_assert_eq!(node.kind(), "comparison_operator");
1480 Ok(Self {
1481 span: ::treesitter_types::Span::from(node),
1482 operators: {
1483 let mut cursor = node.walk();
1484 let mut items = ::std::vec::Vec::new();
1485 for child in node.children_by_field_name("operators", &mut cursor) {
1486 items.push(
1487 <ComparisonOperatorOperators as ::treesitter_types::FromNode>::from_node(
1488 child, src,
1489 )?,
1490 );
1491 }
1492 items
1493 },
1494 children: {
1495 #[allow(clippy::suspicious_else_formatting)]
1496 let non_field_children = {
1497 let mut cursor = node.walk();
1498 let mut result = ::std::vec::Vec::new();
1499 if cursor.goto_first_child() {
1500 loop {
1501 if cursor.field_name().is_none()
1502 && cursor.node().is_named()
1503 && !cursor.node().is_extra()
1504 {
1505 result.push(cursor.node());
1506 }
1507 if !cursor.goto_next_sibling() {
1508 break;
1509 }
1510 }
1511 }
1512 result
1513 };
1514 let mut items = ::std::vec::Vec::new();
1515 for child in non_field_children {
1516 items.push(
1517 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(child, src)?,
1518 );
1519 }
1520 items
1521 },
1522 })
1523 }
1524}
1525impl ::treesitter_types::Spanned for ComparisonOperator<'_> {
1526 fn span(&self) -> ::treesitter_types::Span {
1527 self.span
1528 }
1529}
1530#[derive(Debug, Clone)]
1531pub struct ComplexPattern<'tree> {
1532 pub span: ::treesitter_types::Span,
1533 pub children: ::std::vec::Vec<ComplexPatternChildren<'tree>>,
1534}
1535impl<'tree> ::treesitter_types::FromNode<'tree> for ComplexPattern<'tree> {
1536 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1537 fn from_node(
1538 node: ::tree_sitter::Node<'tree>,
1539 src: &'tree [u8],
1540 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1541 debug_assert_eq!(node.kind(), "complex_pattern");
1542 Ok(Self {
1543 span: ::treesitter_types::Span::from(node),
1544 children: {
1545 #[allow(clippy::suspicious_else_formatting)]
1546 let non_field_children = {
1547 let mut cursor = node.walk();
1548 let mut result = ::std::vec::Vec::new();
1549 if cursor.goto_first_child() {
1550 loop {
1551 if cursor.field_name().is_none()
1552 && cursor.node().is_named()
1553 && !cursor.node().is_extra()
1554 {
1555 result.push(cursor.node());
1556 }
1557 if !cursor.goto_next_sibling() {
1558 break;
1559 }
1560 }
1561 }
1562 result
1563 };
1564 let mut items = ::std::vec::Vec::new();
1565 for child in non_field_children {
1566 items.push(
1567 <ComplexPatternChildren as ::treesitter_types::FromNode>::from_node(
1568 child, src,
1569 )?,
1570 );
1571 }
1572 items
1573 },
1574 })
1575 }
1576}
1577impl ::treesitter_types::Spanned for ComplexPattern<'_> {
1578 fn span(&self) -> ::treesitter_types::Span {
1579 self.span
1580 }
1581}
1582#[derive(Debug, Clone)]
1583pub struct ConcatenatedString<'tree> {
1584 pub span: ::treesitter_types::Span,
1585 pub children: ::std::vec::Vec<String<'tree>>,
1586}
1587impl<'tree> ::treesitter_types::FromNode<'tree> for ConcatenatedString<'tree> {
1588 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1589 fn from_node(
1590 node: ::tree_sitter::Node<'tree>,
1591 src: &'tree [u8],
1592 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1593 debug_assert_eq!(node.kind(), "concatenated_string");
1594 Ok(Self {
1595 span: ::treesitter_types::Span::from(node),
1596 children: {
1597 #[allow(clippy::suspicious_else_formatting)]
1598 let non_field_children = {
1599 let mut cursor = node.walk();
1600 let mut result = ::std::vec::Vec::new();
1601 if cursor.goto_first_child() {
1602 loop {
1603 if cursor.field_name().is_none()
1604 && cursor.node().is_named()
1605 && !cursor.node().is_extra()
1606 {
1607 result.push(cursor.node());
1608 }
1609 if !cursor.goto_next_sibling() {
1610 break;
1611 }
1612 }
1613 }
1614 result
1615 };
1616 let mut items = ::std::vec::Vec::new();
1617 for child in non_field_children {
1618 items.push(<String as ::treesitter_types::FromNode>::from_node(
1619 child, src,
1620 )?);
1621 }
1622 items
1623 },
1624 })
1625 }
1626}
1627impl ::treesitter_types::Spanned for ConcatenatedString<'_> {
1628 fn span(&self) -> ::treesitter_types::Span {
1629 self.span
1630 }
1631}
1632#[derive(Debug, Clone)]
1633pub struct ConditionalExpression<'tree> {
1634 pub span: ::treesitter_types::Span,
1635 pub children: ::std::vec::Vec<Expression<'tree>>,
1636}
1637impl<'tree> ::treesitter_types::FromNode<'tree> for ConditionalExpression<'tree> {
1638 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1639 fn from_node(
1640 node: ::tree_sitter::Node<'tree>,
1641 src: &'tree [u8],
1642 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1643 debug_assert_eq!(node.kind(), "conditional_expression");
1644 Ok(Self {
1645 span: ::treesitter_types::Span::from(node),
1646 children: {
1647 #[allow(clippy::suspicious_else_formatting)]
1648 let non_field_children = {
1649 let mut cursor = node.walk();
1650 let mut result = ::std::vec::Vec::new();
1651 if cursor.goto_first_child() {
1652 loop {
1653 if cursor.field_name().is_none()
1654 && cursor.node().is_named()
1655 && !cursor.node().is_extra()
1656 {
1657 result.push(cursor.node());
1658 }
1659 if !cursor.goto_next_sibling() {
1660 break;
1661 }
1662 }
1663 }
1664 result
1665 };
1666 let mut items = ::std::vec::Vec::new();
1667 for child in non_field_children {
1668 items.push(<Expression as ::treesitter_types::FromNode>::from_node(
1669 child, src,
1670 )?);
1671 }
1672 items
1673 },
1674 })
1675 }
1676}
1677impl ::treesitter_types::Spanned for ConditionalExpression<'_> {
1678 fn span(&self) -> ::treesitter_types::Span {
1679 self.span
1680 }
1681}
1682#[derive(Debug, Clone)]
1683pub struct ConstrainedType<'tree> {
1684 pub span: ::treesitter_types::Span,
1685 pub children: ::std::vec::Vec<Type<'tree>>,
1686}
1687impl<'tree> ::treesitter_types::FromNode<'tree> for ConstrainedType<'tree> {
1688 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1689 fn from_node(
1690 node: ::tree_sitter::Node<'tree>,
1691 src: &'tree [u8],
1692 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1693 debug_assert_eq!(node.kind(), "constrained_type");
1694 Ok(Self {
1695 span: ::treesitter_types::Span::from(node),
1696 children: {
1697 #[allow(clippy::suspicious_else_formatting)]
1698 let non_field_children = {
1699 let mut cursor = node.walk();
1700 let mut result = ::std::vec::Vec::new();
1701 if cursor.goto_first_child() {
1702 loop {
1703 if cursor.field_name().is_none()
1704 && cursor.node().is_named()
1705 && !cursor.node().is_extra()
1706 {
1707 result.push(cursor.node());
1708 }
1709 if !cursor.goto_next_sibling() {
1710 break;
1711 }
1712 }
1713 }
1714 result
1715 };
1716 let mut items = ::std::vec::Vec::new();
1717 for child in non_field_children {
1718 items.push(<Type as ::treesitter_types::FromNode>::from_node(
1719 child, src,
1720 )?);
1721 }
1722 items
1723 },
1724 })
1725 }
1726}
1727impl ::treesitter_types::Spanned for ConstrainedType<'_> {
1728 fn span(&self) -> ::treesitter_types::Span {
1729 self.span
1730 }
1731}
1732#[derive(Debug, Clone)]
1733pub struct ContinueStatement<'tree> {
1734 pub span: ::treesitter_types::Span,
1735 text: &'tree str,
1736}
1737impl<'tree> ::treesitter_types::FromNode<'tree> for ContinueStatement<'tree> {
1738 fn from_node(
1739 node: ::tree_sitter::Node<'tree>,
1740 src: &'tree [u8],
1741 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1742 debug_assert_eq!(node.kind(), "continue_statement");
1743 Ok(Self {
1744 span: ::treesitter_types::Span::from(node),
1745 text: node.utf8_text(src)?,
1746 })
1747 }
1748}
1749impl<'tree> ::treesitter_types::LeafNode<'tree> for ContinueStatement<'tree> {
1750 fn text(&self) -> &'tree str {
1751 self.text
1752 }
1753}
1754impl ::treesitter_types::Spanned for ContinueStatement<'_> {
1755 fn span(&self) -> ::treesitter_types::Span {
1756 self.span
1757 }
1758}
1759#[derive(Debug, Clone)]
1760pub struct DecoratedDefinition<'tree> {
1761 pub span: ::treesitter_types::Span,
1762 pub definition: DecoratedDefinitionDefinition<'tree>,
1763 pub children: ::std::vec::Vec<Decorator<'tree>>,
1764}
1765impl<'tree> ::treesitter_types::FromNode<'tree> for DecoratedDefinition<'tree> {
1766 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1767 fn from_node(
1768 node: ::tree_sitter::Node<'tree>,
1769 src: &'tree [u8],
1770 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1771 debug_assert_eq!(node.kind(), "decorated_definition");
1772 Ok(Self {
1773 span: ::treesitter_types::Span::from(node),
1774 definition: {
1775 let child = node.child_by_field_name("definition").ok_or_else(|| {
1776 ::treesitter_types::ParseError::missing_field("definition", node)
1777 })?;
1778 <DecoratedDefinitionDefinition as ::treesitter_types::FromNode>::from_node(
1779 child, src,
1780 )?
1781 },
1782 children: {
1783 #[allow(clippy::suspicious_else_formatting)]
1784 let non_field_children = {
1785 let mut cursor = node.walk();
1786 let mut result = ::std::vec::Vec::new();
1787 if cursor.goto_first_child() {
1788 loop {
1789 if cursor.field_name().is_none()
1790 && cursor.node().is_named()
1791 && !cursor.node().is_extra()
1792 {
1793 result.push(cursor.node());
1794 }
1795 if !cursor.goto_next_sibling() {
1796 break;
1797 }
1798 }
1799 }
1800 result
1801 };
1802 let mut items = ::std::vec::Vec::new();
1803 for child in non_field_children {
1804 items.push(<Decorator as ::treesitter_types::FromNode>::from_node(
1805 child, src,
1806 )?);
1807 }
1808 items
1809 },
1810 })
1811 }
1812}
1813impl ::treesitter_types::Spanned for DecoratedDefinition<'_> {
1814 fn span(&self) -> ::treesitter_types::Span {
1815 self.span
1816 }
1817}
1818#[derive(Debug, Clone)]
1819pub struct Decorator<'tree> {
1820 pub span: ::treesitter_types::Span,
1821 pub children: Expression<'tree>,
1822}
1823impl<'tree> ::treesitter_types::FromNode<'tree> for Decorator<'tree> {
1824 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1825 fn from_node(
1826 node: ::tree_sitter::Node<'tree>,
1827 src: &'tree [u8],
1828 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1829 debug_assert_eq!(node.kind(), "decorator");
1830 Ok(Self {
1831 span: ::treesitter_types::Span::from(node),
1832 children: {
1833 #[allow(clippy::suspicious_else_formatting)]
1834 let non_field_children = {
1835 let mut cursor = node.walk();
1836 let mut result = ::std::vec::Vec::new();
1837 if cursor.goto_first_child() {
1838 loop {
1839 if cursor.field_name().is_none()
1840 && cursor.node().is_named()
1841 && !cursor.node().is_extra()
1842 {
1843 result.push(cursor.node());
1844 }
1845 if !cursor.goto_next_sibling() {
1846 break;
1847 }
1848 }
1849 }
1850 result
1851 };
1852 let child = if let Some(&c) = non_field_children.first() {
1853 c
1854 } else {
1855 let mut fallback_cursor = node.walk();
1856 let mut fallback_child = None;
1857 if fallback_cursor.goto_first_child() {
1858 loop {
1859 if fallback_cursor.field_name().is_none()
1860 && !fallback_cursor.node().is_extra()
1861 {
1862 let candidate = fallback_cursor.node();
1863 #[allow(clippy::needless_question_mark)]
1864 if (|| -> ::core::result::Result<
1865 _,
1866 ::treesitter_types::ParseError,
1867 > {
1868 let child = candidate;
1869 Ok(
1870 <Expression as ::treesitter_types::FromNode>::from_node(
1871 child,
1872 src,
1873 )?,
1874 )
1875 })()
1876 .is_ok()
1877 {
1878 fallback_child = Some(candidate);
1879 break;
1880 }
1881 }
1882 if !fallback_cursor.goto_next_sibling() {
1883 break;
1884 }
1885 }
1886 }
1887 if fallback_child.is_none() {
1888 let mut cursor2 = node.walk();
1889 if cursor2.goto_first_child() {
1890 loop {
1891 if cursor2.node().is_named() && !cursor2.node().is_extra() {
1892 let candidate = cursor2.node();
1893 #[allow(clippy::needless_question_mark)]
1894 if (|| -> ::core::result::Result<
1895 _,
1896 ::treesitter_types::ParseError,
1897 > {
1898 let child = candidate;
1899 Ok(
1900 <Expression as ::treesitter_types::FromNode>::from_node(
1901 child,
1902 src,
1903 )?,
1904 )
1905 })()
1906 .is_ok()
1907 {
1908 fallback_child = Some(candidate);
1909 break;
1910 }
1911 }
1912 if !cursor2.goto_next_sibling() {
1913 break;
1914 }
1915 }
1916 }
1917 }
1918 fallback_child.ok_or_else(|| {
1919 ::treesitter_types::ParseError::missing_field("children", node)
1920 })?
1921 };
1922 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
1923 },
1924 })
1925 }
1926}
1927impl ::treesitter_types::Spanned for Decorator<'_> {
1928 fn span(&self) -> ::treesitter_types::Span {
1929 self.span
1930 }
1931}
1932#[derive(Debug, Clone)]
1933pub struct DefaultParameter<'tree> {
1934 pub span: ::treesitter_types::Span,
1935 pub name: DefaultParameterName<'tree>,
1936 pub value: Expression<'tree>,
1937}
1938impl<'tree> ::treesitter_types::FromNode<'tree> for DefaultParameter<'tree> {
1939 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1940 fn from_node(
1941 node: ::tree_sitter::Node<'tree>,
1942 src: &'tree [u8],
1943 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1944 debug_assert_eq!(node.kind(), "default_parameter");
1945 Ok(Self {
1946 span: ::treesitter_types::Span::from(node),
1947 name: {
1948 let child = node
1949 .child_by_field_name("name")
1950 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
1951 <DefaultParameterName as ::treesitter_types::FromNode>::from_node(child, src)?
1952 },
1953 value: {
1954 let child = node
1955 .child_by_field_name("value")
1956 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
1957 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
1958 },
1959 })
1960 }
1961}
1962impl ::treesitter_types::Spanned for DefaultParameter<'_> {
1963 fn span(&self) -> ::treesitter_types::Span {
1964 self.span
1965 }
1966}
1967#[derive(Debug, Clone)]
1968pub struct DeleteStatement<'tree> {
1969 pub span: ::treesitter_types::Span,
1970 pub children: DeleteStatementChildren<'tree>,
1971}
1972impl<'tree> ::treesitter_types::FromNode<'tree> for DeleteStatement<'tree> {
1973 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1974 fn from_node(
1975 node: ::tree_sitter::Node<'tree>,
1976 src: &'tree [u8],
1977 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1978 debug_assert_eq!(node.kind(), "delete_statement");
1979 Ok(Self {
1980 span: ::treesitter_types::Span::from(node),
1981 children: {
1982 #[allow(clippy::suspicious_else_formatting)]
1983 let non_field_children = {
1984 let mut cursor = node.walk();
1985 let mut result = ::std::vec::Vec::new();
1986 if cursor.goto_first_child() {
1987 loop {
1988 if cursor.field_name().is_none()
1989 && cursor.node().is_named()
1990 && !cursor.node().is_extra()
1991 {
1992 result.push(cursor.node());
1993 }
1994 if !cursor.goto_next_sibling() {
1995 break;
1996 }
1997 }
1998 }
1999 result
2000 };
2001 let child = if let Some(&c) = non_field_children.first() {
2002 c
2003 } else {
2004 let mut fallback_cursor = node.walk();
2005 let mut fallback_child = None;
2006 if fallback_cursor.goto_first_child() {
2007 loop {
2008 if fallback_cursor.field_name().is_none()
2009 && !fallback_cursor.node().is_extra()
2010 {
2011 let candidate = fallback_cursor.node();
2012 #[allow(clippy::needless_question_mark)]
2013 if (|| -> ::core::result::Result<
2014 _,
2015 ::treesitter_types::ParseError,
2016 > {
2017 let child = candidate;
2018 Ok(
2019 <DeleteStatementChildren as ::treesitter_types::FromNode>::from_node(
2020 child,
2021 src,
2022 )?,
2023 )
2024 })()
2025 .is_ok()
2026 {
2027 fallback_child = Some(candidate);
2028 break;
2029 }
2030 }
2031 if !fallback_cursor.goto_next_sibling() {
2032 break;
2033 }
2034 }
2035 }
2036 if fallback_child.is_none() {
2037 let mut cursor2 = node.walk();
2038 if cursor2.goto_first_child() {
2039 loop {
2040 if cursor2.node().is_named() && !cursor2.node().is_extra() {
2041 let candidate = cursor2.node();
2042 #[allow(clippy::needless_question_mark)]
2043 if (|| -> ::core::result::Result<
2044 _,
2045 ::treesitter_types::ParseError,
2046 > {
2047 let child = candidate;
2048 Ok(
2049 <DeleteStatementChildren as ::treesitter_types::FromNode>::from_node(
2050 child,
2051 src,
2052 )?,
2053 )
2054 })()
2055 .is_ok()
2056 {
2057 fallback_child = Some(candidate);
2058 break;
2059 }
2060 }
2061 if !cursor2.goto_next_sibling() {
2062 break;
2063 }
2064 }
2065 }
2066 }
2067 fallback_child.ok_or_else(|| {
2068 ::treesitter_types::ParseError::missing_field("children", node)
2069 })?
2070 };
2071 <DeleteStatementChildren as ::treesitter_types::FromNode>::from_node(child, src)?
2072 },
2073 })
2074 }
2075}
2076impl ::treesitter_types::Spanned for DeleteStatement<'_> {
2077 fn span(&self) -> ::treesitter_types::Span {
2078 self.span
2079 }
2080}
2081#[derive(Debug, Clone)]
2082pub struct DictPattern<'tree> {
2083 pub span: ::treesitter_types::Span,
2084 pub key: ::std::vec::Vec<DictPatternKey<'tree>>,
2085 pub value: ::std::vec::Vec<CasePattern<'tree>>,
2086 pub children: ::std::vec::Vec<SplatPattern<'tree>>,
2087}
2088impl<'tree> ::treesitter_types::FromNode<'tree> for DictPattern<'tree> {
2089 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2090 fn from_node(
2091 node: ::tree_sitter::Node<'tree>,
2092 src: &'tree [u8],
2093 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2094 debug_assert_eq!(node.kind(), "dict_pattern");
2095 Ok(Self {
2096 span: ::treesitter_types::Span::from(node),
2097 key: {
2098 let mut cursor = node.walk();
2099 let mut items = ::std::vec::Vec::new();
2100 for child in node.children_by_field_name("key", &mut cursor) {
2101 items.push(<DictPatternKey as ::treesitter_types::FromNode>::from_node(
2102 child, src,
2103 )?);
2104 }
2105 items
2106 },
2107 value: {
2108 let mut cursor = node.walk();
2109 let mut items = ::std::vec::Vec::new();
2110 for child in node.children_by_field_name("value", &mut cursor) {
2111 items.push(<CasePattern as ::treesitter_types::FromNode>::from_node(
2112 child, src,
2113 )?);
2114 }
2115 items
2116 },
2117 children: {
2118 #[allow(clippy::suspicious_else_formatting)]
2119 let non_field_children = {
2120 let mut cursor = node.walk();
2121 let mut result = ::std::vec::Vec::new();
2122 if cursor.goto_first_child() {
2123 loop {
2124 if cursor.field_name().is_none()
2125 && cursor.node().is_named()
2126 && !cursor.node().is_extra()
2127 {
2128 result.push(cursor.node());
2129 }
2130 if !cursor.goto_next_sibling() {
2131 break;
2132 }
2133 }
2134 }
2135 result
2136 };
2137 let mut items = ::std::vec::Vec::new();
2138 for child in non_field_children {
2139 items.push(<SplatPattern as ::treesitter_types::FromNode>::from_node(
2140 child, src,
2141 )?);
2142 }
2143 items
2144 },
2145 })
2146 }
2147}
2148impl ::treesitter_types::Spanned for DictPattern<'_> {
2149 fn span(&self) -> ::treesitter_types::Span {
2150 self.span
2151 }
2152}
2153#[derive(Debug, Clone)]
2154pub struct Dictionary<'tree> {
2155 pub span: ::treesitter_types::Span,
2156 pub children: ::std::vec::Vec<DictionaryChildren<'tree>>,
2157}
2158impl<'tree> ::treesitter_types::FromNode<'tree> for Dictionary<'tree> {
2159 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2160 fn from_node(
2161 node: ::tree_sitter::Node<'tree>,
2162 src: &'tree [u8],
2163 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2164 debug_assert_eq!(node.kind(), "dictionary");
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 mut items = ::std::vec::Vec::new();
2188 for child in non_field_children {
2189 items.push(
2190 <DictionaryChildren as ::treesitter_types::FromNode>::from_node(
2191 child, src,
2192 )?,
2193 );
2194 }
2195 items
2196 },
2197 })
2198 }
2199}
2200impl ::treesitter_types::Spanned for Dictionary<'_> {
2201 fn span(&self) -> ::treesitter_types::Span {
2202 self.span
2203 }
2204}
2205#[derive(Debug, Clone)]
2206pub struct DictionaryComprehension<'tree> {
2207 pub span: ::treesitter_types::Span,
2208 pub body: Pair<'tree>,
2209 pub children: ::std::vec::Vec<DictionaryComprehensionChildren<'tree>>,
2210}
2211impl<'tree> ::treesitter_types::FromNode<'tree> for DictionaryComprehension<'tree> {
2212 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2213 fn from_node(
2214 node: ::tree_sitter::Node<'tree>,
2215 src: &'tree [u8],
2216 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2217 debug_assert_eq!(node.kind(), "dictionary_comprehension");
2218 Ok(Self {
2219 span: ::treesitter_types::Span::from(node),
2220 body: {
2221 let child = node
2222 .child_by_field_name("body")
2223 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
2224 <Pair as ::treesitter_types::FromNode>::from_node(child, src)?
2225 },
2226 children: {
2227 #[allow(clippy::suspicious_else_formatting)]
2228 let non_field_children = {
2229 let mut cursor = node.walk();
2230 let mut result = ::std::vec::Vec::new();
2231 if cursor.goto_first_child() {
2232 loop {
2233 if cursor.field_name().is_none()
2234 && cursor.node().is_named()
2235 && !cursor.node().is_extra()
2236 {
2237 result.push(cursor.node());
2238 }
2239 if !cursor.goto_next_sibling() {
2240 break;
2241 }
2242 }
2243 }
2244 result
2245 };
2246 let mut items = ::std::vec::Vec::new();
2247 for child in non_field_children {
2248 items
2249 .push(
2250 <DictionaryComprehensionChildren as ::treesitter_types::FromNode>::from_node(
2251 child,
2252 src,
2253 )?,
2254 );
2255 }
2256 items
2257 },
2258 })
2259 }
2260}
2261impl ::treesitter_types::Spanned for DictionaryComprehension<'_> {
2262 fn span(&self) -> ::treesitter_types::Span {
2263 self.span
2264 }
2265}
2266#[derive(Debug, Clone)]
2267pub struct DictionarySplat<'tree> {
2268 pub span: ::treesitter_types::Span,
2269 pub children: Expression<'tree>,
2270}
2271impl<'tree> ::treesitter_types::FromNode<'tree> for DictionarySplat<'tree> {
2272 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2273 fn from_node(
2274 node: ::tree_sitter::Node<'tree>,
2275 src: &'tree [u8],
2276 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2277 debug_assert_eq!(node.kind(), "dictionary_splat");
2278 Ok(Self {
2279 span: ::treesitter_types::Span::from(node),
2280 children: {
2281 #[allow(clippy::suspicious_else_formatting)]
2282 let non_field_children = {
2283 let mut cursor = node.walk();
2284 let mut result = ::std::vec::Vec::new();
2285 if cursor.goto_first_child() {
2286 loop {
2287 if cursor.field_name().is_none()
2288 && cursor.node().is_named()
2289 && !cursor.node().is_extra()
2290 {
2291 result.push(cursor.node());
2292 }
2293 if !cursor.goto_next_sibling() {
2294 break;
2295 }
2296 }
2297 }
2298 result
2299 };
2300 let child = if let Some(&c) = non_field_children.first() {
2301 c
2302 } else {
2303 let mut fallback_cursor = node.walk();
2304 let mut fallback_child = None;
2305 if fallback_cursor.goto_first_child() {
2306 loop {
2307 if fallback_cursor.field_name().is_none()
2308 && !fallback_cursor.node().is_extra()
2309 {
2310 let candidate = fallback_cursor.node();
2311 #[allow(clippy::needless_question_mark)]
2312 if (|| -> ::core::result::Result<
2313 _,
2314 ::treesitter_types::ParseError,
2315 > {
2316 let child = candidate;
2317 Ok(
2318 <Expression as ::treesitter_types::FromNode>::from_node(
2319 child,
2320 src,
2321 )?,
2322 )
2323 })()
2324 .is_ok()
2325 {
2326 fallback_child = Some(candidate);
2327 break;
2328 }
2329 }
2330 if !fallback_cursor.goto_next_sibling() {
2331 break;
2332 }
2333 }
2334 }
2335 if fallback_child.is_none() {
2336 let mut cursor2 = node.walk();
2337 if cursor2.goto_first_child() {
2338 loop {
2339 if cursor2.node().is_named() && !cursor2.node().is_extra() {
2340 let candidate = cursor2.node();
2341 #[allow(clippy::needless_question_mark)]
2342 if (|| -> ::core::result::Result<
2343 _,
2344 ::treesitter_types::ParseError,
2345 > {
2346 let child = candidate;
2347 Ok(
2348 <Expression as ::treesitter_types::FromNode>::from_node(
2349 child,
2350 src,
2351 )?,
2352 )
2353 })()
2354 .is_ok()
2355 {
2356 fallback_child = Some(candidate);
2357 break;
2358 }
2359 }
2360 if !cursor2.goto_next_sibling() {
2361 break;
2362 }
2363 }
2364 }
2365 }
2366 fallback_child.ok_or_else(|| {
2367 ::treesitter_types::ParseError::missing_field("children", node)
2368 })?
2369 };
2370 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
2371 },
2372 })
2373 }
2374}
2375impl ::treesitter_types::Spanned for DictionarySplat<'_> {
2376 fn span(&self) -> ::treesitter_types::Span {
2377 self.span
2378 }
2379}
2380#[derive(Debug, Clone)]
2381pub struct DictionarySplatPattern<'tree> {
2382 pub span: ::treesitter_types::Span,
2383 pub children: DictionarySplatPatternChildren<'tree>,
2384}
2385impl<'tree> ::treesitter_types::FromNode<'tree> for DictionarySplatPattern<'tree> {
2386 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2387 fn from_node(
2388 node: ::tree_sitter::Node<'tree>,
2389 src: &'tree [u8],
2390 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2391 debug_assert_eq!(node.kind(), "dictionary_splat_pattern");
2392 Ok(Self {
2393 span: ::treesitter_types::Span::from(node),
2394 children: {
2395 #[allow(clippy::suspicious_else_formatting)]
2396 let non_field_children = {
2397 let mut cursor = node.walk();
2398 let mut result = ::std::vec::Vec::new();
2399 if cursor.goto_first_child() {
2400 loop {
2401 if cursor.field_name().is_none()
2402 && cursor.node().is_named()
2403 && !cursor.node().is_extra()
2404 {
2405 result.push(cursor.node());
2406 }
2407 if !cursor.goto_next_sibling() {
2408 break;
2409 }
2410 }
2411 }
2412 result
2413 };
2414 let child = if let Some(&c) = non_field_children.first() {
2415 c
2416 } else {
2417 let mut fallback_cursor = node.walk();
2418 let mut fallback_child = None;
2419 if fallback_cursor.goto_first_child() {
2420 loop {
2421 if fallback_cursor.field_name().is_none()
2422 && !fallback_cursor.node().is_extra()
2423 {
2424 let candidate = fallback_cursor.node();
2425 #[allow(clippy::needless_question_mark)]
2426 if (|| -> ::core::result::Result<
2427 _,
2428 ::treesitter_types::ParseError,
2429 > {
2430 let child = candidate;
2431 Ok(
2432 <DictionarySplatPatternChildren as ::treesitter_types::FromNode>::from_node(
2433 child,
2434 src,
2435 )?,
2436 )
2437 })()
2438 .is_ok()
2439 {
2440 fallback_child = Some(candidate);
2441 break;
2442 }
2443 }
2444 if !fallback_cursor.goto_next_sibling() {
2445 break;
2446 }
2447 }
2448 }
2449 if fallback_child.is_none() {
2450 let mut cursor2 = node.walk();
2451 if cursor2.goto_first_child() {
2452 loop {
2453 if cursor2.node().is_named() && !cursor2.node().is_extra() {
2454 let candidate = cursor2.node();
2455 #[allow(clippy::needless_question_mark)]
2456 if (|| -> ::core::result::Result<
2457 _,
2458 ::treesitter_types::ParseError,
2459 > {
2460 let child = candidate;
2461 Ok(
2462 <DictionarySplatPatternChildren as ::treesitter_types::FromNode>::from_node(
2463 child,
2464 src,
2465 )?,
2466 )
2467 })()
2468 .is_ok()
2469 {
2470 fallback_child = Some(candidate);
2471 break;
2472 }
2473 }
2474 if !cursor2.goto_next_sibling() {
2475 break;
2476 }
2477 }
2478 }
2479 }
2480 fallback_child.ok_or_else(|| {
2481 ::treesitter_types::ParseError::missing_field("children", node)
2482 })?
2483 };
2484 <DictionarySplatPatternChildren as ::treesitter_types::FromNode>::from_node(
2485 child, src,
2486 )?
2487 },
2488 })
2489 }
2490}
2491impl ::treesitter_types::Spanned for DictionarySplatPattern<'_> {
2492 fn span(&self) -> ::treesitter_types::Span {
2493 self.span
2494 }
2495}
2496#[derive(Debug, Clone)]
2497pub struct DottedName<'tree> {
2498 pub span: ::treesitter_types::Span,
2499 pub children: ::std::vec::Vec<Identifier<'tree>>,
2500}
2501impl<'tree> ::treesitter_types::FromNode<'tree> for DottedName<'tree> {
2502 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2503 fn from_node(
2504 node: ::tree_sitter::Node<'tree>,
2505 src: &'tree [u8],
2506 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2507 debug_assert_eq!(node.kind(), "dotted_name");
2508 Ok(Self {
2509 span: ::treesitter_types::Span::from(node),
2510 children: {
2511 #[allow(clippy::suspicious_else_formatting)]
2512 let non_field_children = {
2513 let mut cursor = node.walk();
2514 let mut result = ::std::vec::Vec::new();
2515 if cursor.goto_first_child() {
2516 loop {
2517 if cursor.field_name().is_none()
2518 && cursor.node().is_named()
2519 && !cursor.node().is_extra()
2520 {
2521 result.push(cursor.node());
2522 }
2523 if !cursor.goto_next_sibling() {
2524 break;
2525 }
2526 }
2527 }
2528 result
2529 };
2530 let mut items = ::std::vec::Vec::new();
2531 for child in non_field_children {
2532 items.push(<Identifier as ::treesitter_types::FromNode>::from_node(
2533 child, src,
2534 )?);
2535 }
2536 items
2537 },
2538 })
2539 }
2540}
2541impl ::treesitter_types::Spanned for DottedName<'_> {
2542 fn span(&self) -> ::treesitter_types::Span {
2543 self.span
2544 }
2545}
2546#[derive(Debug, Clone)]
2547pub struct ElifClause<'tree> {
2548 pub span: ::treesitter_types::Span,
2549 pub condition: Expression<'tree>,
2550 pub consequence: Block<'tree>,
2551}
2552impl<'tree> ::treesitter_types::FromNode<'tree> for ElifClause<'tree> {
2553 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2554 fn from_node(
2555 node: ::tree_sitter::Node<'tree>,
2556 src: &'tree [u8],
2557 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2558 debug_assert_eq!(node.kind(), "elif_clause");
2559 Ok(Self {
2560 span: ::treesitter_types::Span::from(node),
2561 condition: {
2562 let child = node.child_by_field_name("condition").ok_or_else(|| {
2563 ::treesitter_types::ParseError::missing_field("condition", node)
2564 })?;
2565 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
2566 },
2567 consequence: {
2568 let child = node.child_by_field_name("consequence").ok_or_else(|| {
2569 ::treesitter_types::ParseError::missing_field("consequence", node)
2570 })?;
2571 <Block as ::treesitter_types::FromNode>::from_node(child, src)?
2572 },
2573 })
2574 }
2575}
2576impl ::treesitter_types::Spanned for ElifClause<'_> {
2577 fn span(&self) -> ::treesitter_types::Span {
2578 self.span
2579 }
2580}
2581#[derive(Debug, Clone)]
2582pub struct ElseClause<'tree> {
2583 pub span: ::treesitter_types::Span,
2584 pub body: Block<'tree>,
2585}
2586impl<'tree> ::treesitter_types::FromNode<'tree> for ElseClause<'tree> {
2587 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2588 fn from_node(
2589 node: ::tree_sitter::Node<'tree>,
2590 src: &'tree [u8],
2591 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2592 debug_assert_eq!(node.kind(), "else_clause");
2593 Ok(Self {
2594 span: ::treesitter_types::Span::from(node),
2595 body: {
2596 let child = node
2597 .child_by_field_name("body")
2598 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
2599 <Block as ::treesitter_types::FromNode>::from_node(child, src)?
2600 },
2601 })
2602 }
2603}
2604impl ::treesitter_types::Spanned for ElseClause<'_> {
2605 fn span(&self) -> ::treesitter_types::Span {
2606 self.span
2607 }
2608}
2609#[derive(Debug, Clone)]
2610pub struct ExceptClause<'tree> {
2611 pub span: ::treesitter_types::Span,
2612 pub alias: ::core::option::Option<Expression<'tree>>,
2613 pub value: ::std::vec::Vec<Expression<'tree>>,
2614 pub children: Block<'tree>,
2615}
2616impl<'tree> ::treesitter_types::FromNode<'tree> for ExceptClause<'tree> {
2617 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2618 fn from_node(
2619 node: ::tree_sitter::Node<'tree>,
2620 src: &'tree [u8],
2621 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2622 debug_assert_eq!(node.kind(), "except_clause");
2623 Ok(Self {
2624 span: ::treesitter_types::Span::from(node),
2625 alias: match node.child_by_field_name("alias") {
2626 Some(child) => Some(<Expression as ::treesitter_types::FromNode>::from_node(
2627 child, src,
2628 )?),
2629 None => None,
2630 },
2631 value: {
2632 let mut cursor = node.walk();
2633 let mut items = ::std::vec::Vec::new();
2634 for child in node.children_by_field_name("value", &mut cursor) {
2635 items.push(<Expression as ::treesitter_types::FromNode>::from_node(
2636 child, src,
2637 )?);
2638 }
2639 items
2640 },
2641 children: {
2642 #[allow(clippy::suspicious_else_formatting)]
2643 let non_field_children = {
2644 let mut cursor = node.walk();
2645 let mut result = ::std::vec::Vec::new();
2646 if cursor.goto_first_child() {
2647 loop {
2648 if cursor.field_name().is_none()
2649 && cursor.node().is_named()
2650 && !cursor.node().is_extra()
2651 {
2652 result.push(cursor.node());
2653 }
2654 if !cursor.goto_next_sibling() {
2655 break;
2656 }
2657 }
2658 }
2659 result
2660 };
2661 let child = if let Some(&c) = non_field_children.first() {
2662 c
2663 } else {
2664 let mut fallback_cursor = node.walk();
2665 let mut fallback_child = None;
2666 if fallback_cursor.goto_first_child() {
2667 loop {
2668 if fallback_cursor.field_name().is_none()
2669 && !fallback_cursor.node().is_extra()
2670 {
2671 let candidate = fallback_cursor.node();
2672 #[allow(clippy::needless_question_mark)]
2673 if (|| -> ::core::result::Result<
2674 _,
2675 ::treesitter_types::ParseError,
2676 > {
2677 let child = candidate;
2678 Ok(
2679 <Block as ::treesitter_types::FromNode>::from_node(
2680 child,
2681 src,
2682 )?,
2683 )
2684 })()
2685 .is_ok()
2686 {
2687 fallback_child = Some(candidate);
2688 break;
2689 }
2690 }
2691 if !fallback_cursor.goto_next_sibling() {
2692 break;
2693 }
2694 }
2695 }
2696 if fallback_child.is_none() {
2697 let mut cursor2 = node.walk();
2698 if cursor2.goto_first_child() {
2699 loop {
2700 if cursor2.node().is_named() && !cursor2.node().is_extra() {
2701 let candidate = cursor2.node();
2702 #[allow(clippy::needless_question_mark)]
2703 if (|| -> ::core::result::Result<
2704 _,
2705 ::treesitter_types::ParseError,
2706 > {
2707 let child = candidate;
2708 Ok(
2709 <Block as ::treesitter_types::FromNode>::from_node(
2710 child,
2711 src,
2712 )?,
2713 )
2714 })()
2715 .is_ok()
2716 {
2717 fallback_child = Some(candidate);
2718 break;
2719 }
2720 }
2721 if !cursor2.goto_next_sibling() {
2722 break;
2723 }
2724 }
2725 }
2726 }
2727 fallback_child.ok_or_else(|| {
2728 ::treesitter_types::ParseError::missing_field("children", node)
2729 })?
2730 };
2731 <Block as ::treesitter_types::FromNode>::from_node(child, src)?
2732 },
2733 })
2734 }
2735}
2736impl ::treesitter_types::Spanned for ExceptClause<'_> {
2737 fn span(&self) -> ::treesitter_types::Span {
2738 self.span
2739 }
2740}
2741#[derive(Debug, Clone)]
2742pub struct ExecStatement<'tree> {
2743 pub span: ::treesitter_types::Span,
2744 pub code: ExecStatementCode<'tree>,
2745 pub children: ::std::vec::Vec<Expression<'tree>>,
2746}
2747impl<'tree> ::treesitter_types::FromNode<'tree> for ExecStatement<'tree> {
2748 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2749 fn from_node(
2750 node: ::tree_sitter::Node<'tree>,
2751 src: &'tree [u8],
2752 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2753 debug_assert_eq!(node.kind(), "exec_statement");
2754 Ok(Self {
2755 span: ::treesitter_types::Span::from(node),
2756 code: {
2757 let child = node
2758 .child_by_field_name("code")
2759 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("code", node))?;
2760 <ExecStatementCode as ::treesitter_types::FromNode>::from_node(child, src)?
2761 },
2762 children: {
2763 #[allow(clippy::suspicious_else_formatting)]
2764 let non_field_children = {
2765 let mut cursor = node.walk();
2766 let mut result = ::std::vec::Vec::new();
2767 if cursor.goto_first_child() {
2768 loop {
2769 if cursor.field_name().is_none()
2770 && cursor.node().is_named()
2771 && !cursor.node().is_extra()
2772 {
2773 result.push(cursor.node());
2774 }
2775 if !cursor.goto_next_sibling() {
2776 break;
2777 }
2778 }
2779 }
2780 result
2781 };
2782 let mut items = ::std::vec::Vec::new();
2783 for child in non_field_children {
2784 items.push(<Expression as ::treesitter_types::FromNode>::from_node(
2785 child, src,
2786 )?);
2787 }
2788 items
2789 },
2790 })
2791 }
2792}
2793impl ::treesitter_types::Spanned for ExecStatement<'_> {
2794 fn span(&self) -> ::treesitter_types::Span {
2795 self.span
2796 }
2797}
2798#[derive(Debug, Clone)]
2799pub struct ExpressionList<'tree> {
2800 pub span: ::treesitter_types::Span,
2801 pub children: ::std::vec::Vec<Expression<'tree>>,
2802}
2803impl<'tree> ::treesitter_types::FromNode<'tree> for ExpressionList<'tree> {
2804 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2805 fn from_node(
2806 node: ::tree_sitter::Node<'tree>,
2807 src: &'tree [u8],
2808 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2809 debug_assert_eq!(node.kind(), "expression_list");
2810 Ok(Self {
2811 span: ::treesitter_types::Span::from(node),
2812 children: {
2813 #[allow(clippy::suspicious_else_formatting)]
2814 let non_field_children = {
2815 let mut cursor = node.walk();
2816 let mut result = ::std::vec::Vec::new();
2817 if cursor.goto_first_child() {
2818 loop {
2819 if cursor.field_name().is_none()
2820 && cursor.node().is_named()
2821 && !cursor.node().is_extra()
2822 {
2823 result.push(cursor.node());
2824 }
2825 if !cursor.goto_next_sibling() {
2826 break;
2827 }
2828 }
2829 }
2830 result
2831 };
2832 let mut items = ::std::vec::Vec::new();
2833 for child in non_field_children {
2834 items.push(<Expression as ::treesitter_types::FromNode>::from_node(
2835 child, src,
2836 )?);
2837 }
2838 items
2839 },
2840 })
2841 }
2842}
2843impl ::treesitter_types::Spanned for ExpressionList<'_> {
2844 fn span(&self) -> ::treesitter_types::Span {
2845 self.span
2846 }
2847}
2848#[derive(Debug, Clone)]
2849pub struct ExpressionStatement<'tree> {
2850 pub span: ::treesitter_types::Span,
2851 pub children: ::std::vec::Vec<ExpressionStatementChildren<'tree>>,
2852}
2853impl<'tree> ::treesitter_types::FromNode<'tree> for ExpressionStatement<'tree> {
2854 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2855 fn from_node(
2856 node: ::tree_sitter::Node<'tree>,
2857 src: &'tree [u8],
2858 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2859 debug_assert_eq!(node.kind(), "expression_statement");
2860 Ok(Self {
2861 span: ::treesitter_types::Span::from(node),
2862 children: {
2863 #[allow(clippy::suspicious_else_formatting)]
2864 let non_field_children = {
2865 let mut cursor = node.walk();
2866 let mut result = ::std::vec::Vec::new();
2867 if cursor.goto_first_child() {
2868 loop {
2869 if cursor.field_name().is_none()
2870 && cursor.node().is_named()
2871 && !cursor.node().is_extra()
2872 {
2873 result.push(cursor.node());
2874 }
2875 if !cursor.goto_next_sibling() {
2876 break;
2877 }
2878 }
2879 }
2880 result
2881 };
2882 let mut items = ::std::vec::Vec::new();
2883 for child in non_field_children {
2884 items.push(
2885 <ExpressionStatementChildren as ::treesitter_types::FromNode>::from_node(
2886 child, src,
2887 )?,
2888 );
2889 }
2890 items
2891 },
2892 })
2893 }
2894}
2895impl ::treesitter_types::Spanned for ExpressionStatement<'_> {
2896 fn span(&self) -> ::treesitter_types::Span {
2897 self.span
2898 }
2899}
2900#[derive(Debug, Clone)]
2901pub struct FinallyClause<'tree> {
2902 pub span: ::treesitter_types::Span,
2903 pub children: Block<'tree>,
2904}
2905impl<'tree> ::treesitter_types::FromNode<'tree> for FinallyClause<'tree> {
2906 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2907 fn from_node(
2908 node: ::tree_sitter::Node<'tree>,
2909 src: &'tree [u8],
2910 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2911 debug_assert_eq!(node.kind(), "finally_clause");
2912 Ok(Self {
2913 span: ::treesitter_types::Span::from(node),
2914 children: {
2915 #[allow(clippy::suspicious_else_formatting)]
2916 let non_field_children = {
2917 let mut cursor = node.walk();
2918 let mut result = ::std::vec::Vec::new();
2919 if cursor.goto_first_child() {
2920 loop {
2921 if cursor.field_name().is_none()
2922 && cursor.node().is_named()
2923 && !cursor.node().is_extra()
2924 {
2925 result.push(cursor.node());
2926 }
2927 if !cursor.goto_next_sibling() {
2928 break;
2929 }
2930 }
2931 }
2932 result
2933 };
2934 let child = if let Some(&c) = non_field_children.first() {
2935 c
2936 } else {
2937 let mut fallback_cursor = node.walk();
2938 let mut fallback_child = None;
2939 if fallback_cursor.goto_first_child() {
2940 loop {
2941 if fallback_cursor.field_name().is_none()
2942 && !fallback_cursor.node().is_extra()
2943 {
2944 let candidate = fallback_cursor.node();
2945 #[allow(clippy::needless_question_mark)]
2946 if (|| -> ::core::result::Result<
2947 _,
2948 ::treesitter_types::ParseError,
2949 > {
2950 let child = candidate;
2951 Ok(
2952 <Block as ::treesitter_types::FromNode>::from_node(
2953 child,
2954 src,
2955 )?,
2956 )
2957 })()
2958 .is_ok()
2959 {
2960 fallback_child = Some(candidate);
2961 break;
2962 }
2963 }
2964 if !fallback_cursor.goto_next_sibling() {
2965 break;
2966 }
2967 }
2968 }
2969 if fallback_child.is_none() {
2970 let mut cursor2 = node.walk();
2971 if cursor2.goto_first_child() {
2972 loop {
2973 if cursor2.node().is_named() && !cursor2.node().is_extra() {
2974 let candidate = cursor2.node();
2975 #[allow(clippy::needless_question_mark)]
2976 if (|| -> ::core::result::Result<
2977 _,
2978 ::treesitter_types::ParseError,
2979 > {
2980 let child = candidate;
2981 Ok(
2982 <Block as ::treesitter_types::FromNode>::from_node(
2983 child,
2984 src,
2985 )?,
2986 )
2987 })()
2988 .is_ok()
2989 {
2990 fallback_child = Some(candidate);
2991 break;
2992 }
2993 }
2994 if !cursor2.goto_next_sibling() {
2995 break;
2996 }
2997 }
2998 }
2999 }
3000 fallback_child.ok_or_else(|| {
3001 ::treesitter_types::ParseError::missing_field("children", node)
3002 })?
3003 };
3004 <Block as ::treesitter_types::FromNode>::from_node(child, src)?
3005 },
3006 })
3007 }
3008}
3009impl ::treesitter_types::Spanned for FinallyClause<'_> {
3010 fn span(&self) -> ::treesitter_types::Span {
3011 self.span
3012 }
3013}
3014#[derive(Debug, Clone)]
3015pub struct ForInClause<'tree> {
3016 pub span: ::treesitter_types::Span,
3017 pub left: ForInClauseLeft<'tree>,
3018 pub right: ::std::vec::Vec<ForInClauseRight<'tree>>,
3019}
3020impl<'tree> ::treesitter_types::FromNode<'tree> for ForInClause<'tree> {
3021 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3022 fn from_node(
3023 node: ::tree_sitter::Node<'tree>,
3024 src: &'tree [u8],
3025 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3026 debug_assert_eq!(node.kind(), "for_in_clause");
3027 Ok(Self {
3028 span: ::treesitter_types::Span::from(node),
3029 left: {
3030 let child = node
3031 .child_by_field_name("left")
3032 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
3033 <ForInClauseLeft as ::treesitter_types::FromNode>::from_node(child, src)?
3034 },
3035 right: {
3036 let mut cursor = node.walk();
3037 let mut items = ::std::vec::Vec::new();
3038 for child in node.children_by_field_name("right", &mut cursor) {
3039 items.push(
3040 <ForInClauseRight as ::treesitter_types::FromNode>::from_node(child, src)?,
3041 );
3042 }
3043 items
3044 },
3045 })
3046 }
3047}
3048impl ::treesitter_types::Spanned for ForInClause<'_> {
3049 fn span(&self) -> ::treesitter_types::Span {
3050 self.span
3051 }
3052}
3053#[derive(Debug, Clone)]
3054pub struct ForStatement<'tree> {
3055 pub span: ::treesitter_types::Span,
3056 pub alternative: ::core::option::Option<ElseClause<'tree>>,
3057 pub body: Block<'tree>,
3058 pub left: ForStatementLeft<'tree>,
3059 pub right: ForStatementRight<'tree>,
3060}
3061impl<'tree> ::treesitter_types::FromNode<'tree> for ForStatement<'tree> {
3062 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3063 fn from_node(
3064 node: ::tree_sitter::Node<'tree>,
3065 src: &'tree [u8],
3066 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3067 debug_assert_eq!(node.kind(), "for_statement");
3068 Ok(Self {
3069 span: ::treesitter_types::Span::from(node),
3070 alternative: match node.child_by_field_name("alternative") {
3071 Some(child) => Some(<ElseClause as ::treesitter_types::FromNode>::from_node(
3072 child, src,
3073 )?),
3074 None => None,
3075 },
3076 body: {
3077 let child = node
3078 .child_by_field_name("body")
3079 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
3080 <Block as ::treesitter_types::FromNode>::from_node(child, src)?
3081 },
3082 left: {
3083 let child = node
3084 .child_by_field_name("left")
3085 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
3086 <ForStatementLeft as ::treesitter_types::FromNode>::from_node(child, src)?
3087 },
3088 right: {
3089 let child = node
3090 .child_by_field_name("right")
3091 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
3092 <ForStatementRight as ::treesitter_types::FromNode>::from_node(child, src)?
3093 },
3094 })
3095 }
3096}
3097impl ::treesitter_types::Spanned for ForStatement<'_> {
3098 fn span(&self) -> ::treesitter_types::Span {
3099 self.span
3100 }
3101}
3102#[derive(Debug, Clone)]
3103pub struct FormatExpression<'tree> {
3104 pub span: ::treesitter_types::Span,
3105 pub expression: FormatExpressionExpression<'tree>,
3106 pub format_specifier: ::core::option::Option<FormatSpecifier<'tree>>,
3107 pub type_conversion: ::core::option::Option<TypeConversion<'tree>>,
3108}
3109impl<'tree> ::treesitter_types::FromNode<'tree> for FormatExpression<'tree> {
3110 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3111 fn from_node(
3112 node: ::tree_sitter::Node<'tree>,
3113 src: &'tree [u8],
3114 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3115 debug_assert_eq!(node.kind(), "format_expression");
3116 Ok(Self {
3117 span: ::treesitter_types::Span::from(node),
3118 expression: {
3119 let child = node.child_by_field_name("expression").ok_or_else(|| {
3120 ::treesitter_types::ParseError::missing_field("expression", node)
3121 })?;
3122 <FormatExpressionExpression as ::treesitter_types::FromNode>::from_node(child, src)?
3123 },
3124 format_specifier: match node.child_by_field_name("format_specifier") {
3125 Some(child) => {
3126 Some(<FormatSpecifier as ::treesitter_types::FromNode>::from_node(child, src)?)
3127 }
3128 None => None,
3129 },
3130 type_conversion: match node.child_by_field_name("type_conversion") {
3131 Some(child) => Some(<TypeConversion as ::treesitter_types::FromNode>::from_node(
3132 child, src,
3133 )?),
3134 None => None,
3135 },
3136 })
3137 }
3138}
3139impl ::treesitter_types::Spanned for FormatExpression<'_> {
3140 fn span(&self) -> ::treesitter_types::Span {
3141 self.span
3142 }
3143}
3144#[derive(Debug, Clone)]
3145pub struct FormatSpecifier<'tree> {
3146 pub span: ::treesitter_types::Span,
3147 pub children: ::std::vec::Vec<FormatExpression<'tree>>,
3148}
3149impl<'tree> ::treesitter_types::FromNode<'tree> for FormatSpecifier<'tree> {
3150 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3151 fn from_node(
3152 node: ::tree_sitter::Node<'tree>,
3153 src: &'tree [u8],
3154 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3155 debug_assert_eq!(node.kind(), "format_specifier");
3156 Ok(Self {
3157 span: ::treesitter_types::Span::from(node),
3158 children: {
3159 #[allow(clippy::suspicious_else_formatting)]
3160 let non_field_children = {
3161 let mut cursor = node.walk();
3162 let mut result = ::std::vec::Vec::new();
3163 if cursor.goto_first_child() {
3164 loop {
3165 if cursor.field_name().is_none()
3166 && cursor.node().is_named()
3167 && !cursor.node().is_extra()
3168 {
3169 result.push(cursor.node());
3170 }
3171 if !cursor.goto_next_sibling() {
3172 break;
3173 }
3174 }
3175 }
3176 result
3177 };
3178 let mut items = ::std::vec::Vec::new();
3179 for child in non_field_children {
3180 items.push(
3181 <FormatExpression as ::treesitter_types::FromNode>::from_node(child, src)?,
3182 );
3183 }
3184 items
3185 },
3186 })
3187 }
3188}
3189impl ::treesitter_types::Spanned for FormatSpecifier<'_> {
3190 fn span(&self) -> ::treesitter_types::Span {
3191 self.span
3192 }
3193}
3194#[derive(Debug, Clone)]
3195pub struct FunctionDefinition<'tree> {
3196 pub span: ::treesitter_types::Span,
3197 pub body: Block<'tree>,
3198 pub name: Identifier<'tree>,
3199 pub parameters: Parameters<'tree>,
3200 pub return_type: ::core::option::Option<Type<'tree>>,
3201 pub type_parameters: ::core::option::Option<TypeParameter<'tree>>,
3202}
3203impl<'tree> ::treesitter_types::FromNode<'tree> for FunctionDefinition<'tree> {
3204 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3205 fn from_node(
3206 node: ::tree_sitter::Node<'tree>,
3207 src: &'tree [u8],
3208 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3209 debug_assert_eq!(node.kind(), "function_definition");
3210 Ok(Self {
3211 span: ::treesitter_types::Span::from(node),
3212 body: {
3213 let child = node
3214 .child_by_field_name("body")
3215 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
3216 <Block as ::treesitter_types::FromNode>::from_node(child, src)?
3217 },
3218 name: {
3219 let child = node
3220 .child_by_field_name("name")
3221 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
3222 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)?
3223 },
3224 parameters: {
3225 let child = node.child_by_field_name("parameters").ok_or_else(|| {
3226 ::treesitter_types::ParseError::missing_field("parameters", node)
3227 })?;
3228 <Parameters as ::treesitter_types::FromNode>::from_node(child, src)?
3229 },
3230 return_type: match node.child_by_field_name("return_type") {
3231 Some(child) => Some(<Type as ::treesitter_types::FromNode>::from_node(
3232 child, src,
3233 )?),
3234 None => None,
3235 },
3236 type_parameters: match node.child_by_field_name("type_parameters") {
3237 Some(child) => Some(<TypeParameter as ::treesitter_types::FromNode>::from_node(
3238 child, src,
3239 )?),
3240 None => None,
3241 },
3242 })
3243 }
3244}
3245impl ::treesitter_types::Spanned for FunctionDefinition<'_> {
3246 fn span(&self) -> ::treesitter_types::Span {
3247 self.span
3248 }
3249}
3250#[derive(Debug, Clone)]
3251pub struct FutureImportStatement<'tree> {
3252 pub span: ::treesitter_types::Span,
3253 pub name: ::std::vec::Vec<FutureImportStatementName<'tree>>,
3254}
3255impl<'tree> ::treesitter_types::FromNode<'tree> for FutureImportStatement<'tree> {
3256 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3257 fn from_node(
3258 node: ::tree_sitter::Node<'tree>,
3259 src: &'tree [u8],
3260 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3261 debug_assert_eq!(node.kind(), "future_import_statement");
3262 Ok(Self {
3263 span: ::treesitter_types::Span::from(node),
3264 name: {
3265 let mut cursor = node.walk();
3266 let mut items = ::std::vec::Vec::new();
3267 for child in node.children_by_field_name("name", &mut cursor) {
3268 items.push(
3269 <FutureImportStatementName as ::treesitter_types::FromNode>::from_node(
3270 child, src,
3271 )?,
3272 );
3273 }
3274 items
3275 },
3276 })
3277 }
3278}
3279impl ::treesitter_types::Spanned for FutureImportStatement<'_> {
3280 fn span(&self) -> ::treesitter_types::Span {
3281 self.span
3282 }
3283}
3284#[derive(Debug, Clone)]
3285pub struct GeneratorExpression<'tree> {
3286 pub span: ::treesitter_types::Span,
3287 pub body: Expression<'tree>,
3288 pub children: ::std::vec::Vec<GeneratorExpressionChildren<'tree>>,
3289}
3290impl<'tree> ::treesitter_types::FromNode<'tree> for GeneratorExpression<'tree> {
3291 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3292 fn from_node(
3293 node: ::tree_sitter::Node<'tree>,
3294 src: &'tree [u8],
3295 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3296 debug_assert_eq!(node.kind(), "generator_expression");
3297 Ok(Self {
3298 span: ::treesitter_types::Span::from(node),
3299 body: {
3300 let child = node
3301 .child_by_field_name("body")
3302 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
3303 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
3304 },
3305 children: {
3306 #[allow(clippy::suspicious_else_formatting)]
3307 let non_field_children = {
3308 let mut cursor = node.walk();
3309 let mut result = ::std::vec::Vec::new();
3310 if cursor.goto_first_child() {
3311 loop {
3312 if cursor.field_name().is_none()
3313 && cursor.node().is_named()
3314 && !cursor.node().is_extra()
3315 {
3316 result.push(cursor.node());
3317 }
3318 if !cursor.goto_next_sibling() {
3319 break;
3320 }
3321 }
3322 }
3323 result
3324 };
3325 let mut items = ::std::vec::Vec::new();
3326 for child in non_field_children {
3327 items.push(
3328 <GeneratorExpressionChildren as ::treesitter_types::FromNode>::from_node(
3329 child, src,
3330 )?,
3331 );
3332 }
3333 items
3334 },
3335 })
3336 }
3337}
3338impl ::treesitter_types::Spanned for GeneratorExpression<'_> {
3339 fn span(&self) -> ::treesitter_types::Span {
3340 self.span
3341 }
3342}
3343#[derive(Debug, Clone)]
3344pub struct GenericType<'tree> {
3345 pub span: ::treesitter_types::Span,
3346 pub children: ::std::vec::Vec<GenericTypeChildren<'tree>>,
3347}
3348impl<'tree> ::treesitter_types::FromNode<'tree> for GenericType<'tree> {
3349 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3350 fn from_node(
3351 node: ::tree_sitter::Node<'tree>,
3352 src: &'tree [u8],
3353 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3354 debug_assert_eq!(node.kind(), "generic_type");
3355 Ok(Self {
3356 span: ::treesitter_types::Span::from(node),
3357 children: {
3358 #[allow(clippy::suspicious_else_formatting)]
3359 let non_field_children = {
3360 let mut cursor = node.walk();
3361 let mut result = ::std::vec::Vec::new();
3362 if cursor.goto_first_child() {
3363 loop {
3364 if cursor.field_name().is_none()
3365 && cursor.node().is_named()
3366 && !cursor.node().is_extra()
3367 {
3368 result.push(cursor.node());
3369 }
3370 if !cursor.goto_next_sibling() {
3371 break;
3372 }
3373 }
3374 }
3375 result
3376 };
3377 let mut items = ::std::vec::Vec::new();
3378 for child in non_field_children {
3379 items.push(
3380 <GenericTypeChildren as ::treesitter_types::FromNode>::from_node(
3381 child, src,
3382 )?,
3383 );
3384 }
3385 items
3386 },
3387 })
3388 }
3389}
3390impl ::treesitter_types::Spanned for GenericType<'_> {
3391 fn span(&self) -> ::treesitter_types::Span {
3392 self.span
3393 }
3394}
3395#[derive(Debug, Clone)]
3396pub struct GlobalStatement<'tree> {
3397 pub span: ::treesitter_types::Span,
3398 pub children: ::std::vec::Vec<Identifier<'tree>>,
3399}
3400impl<'tree> ::treesitter_types::FromNode<'tree> for GlobalStatement<'tree> {
3401 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3402 fn from_node(
3403 node: ::tree_sitter::Node<'tree>,
3404 src: &'tree [u8],
3405 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3406 debug_assert_eq!(node.kind(), "global_statement");
3407 Ok(Self {
3408 span: ::treesitter_types::Span::from(node),
3409 children: {
3410 #[allow(clippy::suspicious_else_formatting)]
3411 let non_field_children = {
3412 let mut cursor = node.walk();
3413 let mut result = ::std::vec::Vec::new();
3414 if cursor.goto_first_child() {
3415 loop {
3416 if cursor.field_name().is_none()
3417 && cursor.node().is_named()
3418 && !cursor.node().is_extra()
3419 {
3420 result.push(cursor.node());
3421 }
3422 if !cursor.goto_next_sibling() {
3423 break;
3424 }
3425 }
3426 }
3427 result
3428 };
3429 let mut items = ::std::vec::Vec::new();
3430 for child in non_field_children {
3431 items.push(<Identifier as ::treesitter_types::FromNode>::from_node(
3432 child, src,
3433 )?);
3434 }
3435 items
3436 },
3437 })
3438 }
3439}
3440impl ::treesitter_types::Spanned for GlobalStatement<'_> {
3441 fn span(&self) -> ::treesitter_types::Span {
3442 self.span
3443 }
3444}
3445#[derive(Debug, Clone)]
3446pub struct IfClause<'tree> {
3447 pub span: ::treesitter_types::Span,
3448 pub children: Expression<'tree>,
3449}
3450impl<'tree> ::treesitter_types::FromNode<'tree> for IfClause<'tree> {
3451 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3452 fn from_node(
3453 node: ::tree_sitter::Node<'tree>,
3454 src: &'tree [u8],
3455 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3456 debug_assert_eq!(node.kind(), "if_clause");
3457 Ok(Self {
3458 span: ::treesitter_types::Span::from(node),
3459 children: {
3460 #[allow(clippy::suspicious_else_formatting)]
3461 let non_field_children = {
3462 let mut cursor = node.walk();
3463 let mut result = ::std::vec::Vec::new();
3464 if cursor.goto_first_child() {
3465 loop {
3466 if cursor.field_name().is_none()
3467 && cursor.node().is_named()
3468 && !cursor.node().is_extra()
3469 {
3470 result.push(cursor.node());
3471 }
3472 if !cursor.goto_next_sibling() {
3473 break;
3474 }
3475 }
3476 }
3477 result
3478 };
3479 let child = if let Some(&c) = non_field_children.first() {
3480 c
3481 } else {
3482 let mut fallback_cursor = node.walk();
3483 let mut fallback_child = None;
3484 if fallback_cursor.goto_first_child() {
3485 loop {
3486 if fallback_cursor.field_name().is_none()
3487 && !fallback_cursor.node().is_extra()
3488 {
3489 let candidate = fallback_cursor.node();
3490 #[allow(clippy::needless_question_mark)]
3491 if (|| -> ::core::result::Result<
3492 _,
3493 ::treesitter_types::ParseError,
3494 > {
3495 let child = candidate;
3496 Ok(
3497 <Expression as ::treesitter_types::FromNode>::from_node(
3498 child,
3499 src,
3500 )?,
3501 )
3502 })()
3503 .is_ok()
3504 {
3505 fallback_child = Some(candidate);
3506 break;
3507 }
3508 }
3509 if !fallback_cursor.goto_next_sibling() {
3510 break;
3511 }
3512 }
3513 }
3514 if fallback_child.is_none() {
3515 let mut cursor2 = node.walk();
3516 if cursor2.goto_first_child() {
3517 loop {
3518 if cursor2.node().is_named() && !cursor2.node().is_extra() {
3519 let candidate = cursor2.node();
3520 #[allow(clippy::needless_question_mark)]
3521 if (|| -> ::core::result::Result<
3522 _,
3523 ::treesitter_types::ParseError,
3524 > {
3525 let child = candidate;
3526 Ok(
3527 <Expression as ::treesitter_types::FromNode>::from_node(
3528 child,
3529 src,
3530 )?,
3531 )
3532 })()
3533 .is_ok()
3534 {
3535 fallback_child = Some(candidate);
3536 break;
3537 }
3538 }
3539 if !cursor2.goto_next_sibling() {
3540 break;
3541 }
3542 }
3543 }
3544 }
3545 fallback_child.ok_or_else(|| {
3546 ::treesitter_types::ParseError::missing_field("children", node)
3547 })?
3548 };
3549 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
3550 },
3551 })
3552 }
3553}
3554impl ::treesitter_types::Spanned for IfClause<'_> {
3555 fn span(&self) -> ::treesitter_types::Span {
3556 self.span
3557 }
3558}
3559#[derive(Debug, Clone)]
3560pub struct IfStatement<'tree> {
3561 pub span: ::treesitter_types::Span,
3562 pub alternative: ::std::vec::Vec<IfStatementAlternative<'tree>>,
3563 pub condition: Expression<'tree>,
3564 pub consequence: Block<'tree>,
3565}
3566impl<'tree> ::treesitter_types::FromNode<'tree> for IfStatement<'tree> {
3567 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3568 fn from_node(
3569 node: ::tree_sitter::Node<'tree>,
3570 src: &'tree [u8],
3571 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3572 debug_assert_eq!(node.kind(), "if_statement");
3573 Ok(Self {
3574 span: ::treesitter_types::Span::from(node),
3575 alternative: {
3576 let mut cursor = node.walk();
3577 let mut items = ::std::vec::Vec::new();
3578 for child in node.children_by_field_name("alternative", &mut cursor) {
3579 items.push(
3580 <IfStatementAlternative as ::treesitter_types::FromNode>::from_node(
3581 child, src,
3582 )?,
3583 );
3584 }
3585 items
3586 },
3587 condition: {
3588 let child = node.child_by_field_name("condition").ok_or_else(|| {
3589 ::treesitter_types::ParseError::missing_field("condition", node)
3590 })?;
3591 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
3592 },
3593 consequence: {
3594 let child = node.child_by_field_name("consequence").ok_or_else(|| {
3595 ::treesitter_types::ParseError::missing_field("consequence", node)
3596 })?;
3597 <Block as ::treesitter_types::FromNode>::from_node(child, src)?
3598 },
3599 })
3600 }
3601}
3602impl ::treesitter_types::Spanned for IfStatement<'_> {
3603 fn span(&self) -> ::treesitter_types::Span {
3604 self.span
3605 }
3606}
3607#[derive(Debug, Clone)]
3608pub struct ImportFromStatement<'tree> {
3609 pub span: ::treesitter_types::Span,
3610 pub module_name: ImportFromStatementModuleName<'tree>,
3611 pub name: ::std::vec::Vec<ImportFromStatementName<'tree>>,
3612 pub children: ::core::option::Option<WildcardImport<'tree>>,
3613}
3614impl<'tree> ::treesitter_types::FromNode<'tree> for ImportFromStatement<'tree> {
3615 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3616 fn from_node(
3617 node: ::tree_sitter::Node<'tree>,
3618 src: &'tree [u8],
3619 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3620 debug_assert_eq!(node.kind(), "import_from_statement");
3621 Ok(Self {
3622 span: ::treesitter_types::Span::from(node),
3623 module_name: {
3624 let child = node.child_by_field_name("module_name").ok_or_else(|| {
3625 ::treesitter_types::ParseError::missing_field("module_name", node)
3626 })?;
3627 <ImportFromStatementModuleName as ::treesitter_types::FromNode>::from_node(
3628 child, src,
3629 )?
3630 },
3631 name: {
3632 let mut cursor = node.walk();
3633 let mut items = ::std::vec::Vec::new();
3634 for child in node.children_by_field_name("name", &mut cursor) {
3635 items.push(
3636 <ImportFromStatementName as ::treesitter_types::FromNode>::from_node(
3637 child, src,
3638 )?,
3639 );
3640 }
3641 items
3642 },
3643 children: {
3644 #[allow(clippy::suspicious_else_formatting)]
3645 let non_field_children = {
3646 let mut cursor = node.walk();
3647 let mut result = ::std::vec::Vec::new();
3648 if cursor.goto_first_child() {
3649 loop {
3650 if cursor.field_name().is_none()
3651 && cursor.node().is_named()
3652 && !cursor.node().is_extra()
3653 {
3654 result.push(cursor.node());
3655 }
3656 if !cursor.goto_next_sibling() {
3657 break;
3658 }
3659 }
3660 }
3661 result
3662 };
3663 match non_field_children.first() {
3664 Some(&child) => Some(
3665 <WildcardImport as ::treesitter_types::FromNode>::from_node(child, src)?,
3666 ),
3667 None => None,
3668 }
3669 },
3670 })
3671 }
3672}
3673impl ::treesitter_types::Spanned for ImportFromStatement<'_> {
3674 fn span(&self) -> ::treesitter_types::Span {
3675 self.span
3676 }
3677}
3678#[derive(Debug, Clone)]
3679pub struct ImportPrefix<'tree> {
3680 pub span: ::treesitter_types::Span,
3681 text: &'tree str,
3682}
3683impl<'tree> ::treesitter_types::FromNode<'tree> for ImportPrefix<'tree> {
3684 fn from_node(
3685 node: ::tree_sitter::Node<'tree>,
3686 src: &'tree [u8],
3687 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3688 debug_assert_eq!(node.kind(), "import_prefix");
3689 Ok(Self {
3690 span: ::treesitter_types::Span::from(node),
3691 text: node.utf8_text(src)?,
3692 })
3693 }
3694}
3695impl<'tree> ::treesitter_types::LeafNode<'tree> for ImportPrefix<'tree> {
3696 fn text(&self) -> &'tree str {
3697 self.text
3698 }
3699}
3700impl ::treesitter_types::Spanned for ImportPrefix<'_> {
3701 fn span(&self) -> ::treesitter_types::Span {
3702 self.span
3703 }
3704}
3705#[derive(Debug, Clone)]
3706pub struct ImportStatement<'tree> {
3707 pub span: ::treesitter_types::Span,
3708 pub name: ::std::vec::Vec<ImportStatementName<'tree>>,
3709}
3710impl<'tree> ::treesitter_types::FromNode<'tree> for ImportStatement<'tree> {
3711 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3712 fn from_node(
3713 node: ::tree_sitter::Node<'tree>,
3714 src: &'tree [u8],
3715 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3716 debug_assert_eq!(node.kind(), "import_statement");
3717 Ok(Self {
3718 span: ::treesitter_types::Span::from(node),
3719 name: {
3720 let mut cursor = node.walk();
3721 let mut items = ::std::vec::Vec::new();
3722 for child in node.children_by_field_name("name", &mut cursor) {
3723 items.push(
3724 <ImportStatementName as ::treesitter_types::FromNode>::from_node(
3725 child, src,
3726 )?,
3727 );
3728 }
3729 items
3730 },
3731 })
3732 }
3733}
3734impl ::treesitter_types::Spanned for ImportStatement<'_> {
3735 fn span(&self) -> ::treesitter_types::Span {
3736 self.span
3737 }
3738}
3739#[derive(Debug, Clone)]
3740pub struct Interpolation<'tree> {
3741 pub span: ::treesitter_types::Span,
3742 pub expression: InterpolationExpression<'tree>,
3743 pub format_specifier: ::core::option::Option<FormatSpecifier<'tree>>,
3744 pub type_conversion: ::core::option::Option<TypeConversion<'tree>>,
3745}
3746impl<'tree> ::treesitter_types::FromNode<'tree> for Interpolation<'tree> {
3747 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3748 fn from_node(
3749 node: ::tree_sitter::Node<'tree>,
3750 src: &'tree [u8],
3751 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3752 debug_assert_eq!(node.kind(), "interpolation");
3753 Ok(Self {
3754 span: ::treesitter_types::Span::from(node),
3755 expression: {
3756 let child = node.child_by_field_name("expression").ok_or_else(|| {
3757 ::treesitter_types::ParseError::missing_field("expression", node)
3758 })?;
3759 <InterpolationExpression as ::treesitter_types::FromNode>::from_node(child, src)?
3760 },
3761 format_specifier: match node.child_by_field_name("format_specifier") {
3762 Some(child) => {
3763 Some(<FormatSpecifier as ::treesitter_types::FromNode>::from_node(child, src)?)
3764 }
3765 None => None,
3766 },
3767 type_conversion: match node.child_by_field_name("type_conversion") {
3768 Some(child) => Some(<TypeConversion as ::treesitter_types::FromNode>::from_node(
3769 child, src,
3770 )?),
3771 None => None,
3772 },
3773 })
3774 }
3775}
3776impl ::treesitter_types::Spanned for Interpolation<'_> {
3777 fn span(&self) -> ::treesitter_types::Span {
3778 self.span
3779 }
3780}
3781#[derive(Debug, Clone)]
3782pub struct KeywordArgument<'tree> {
3783 pub span: ::treesitter_types::Span,
3784 pub name: Identifier<'tree>,
3785 pub value: Expression<'tree>,
3786}
3787impl<'tree> ::treesitter_types::FromNode<'tree> for KeywordArgument<'tree> {
3788 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3789 fn from_node(
3790 node: ::tree_sitter::Node<'tree>,
3791 src: &'tree [u8],
3792 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3793 debug_assert_eq!(node.kind(), "keyword_argument");
3794 Ok(Self {
3795 span: ::treesitter_types::Span::from(node),
3796 name: {
3797 let child = node
3798 .child_by_field_name("name")
3799 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
3800 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)?
3801 },
3802 value: {
3803 let child = node
3804 .child_by_field_name("value")
3805 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
3806 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
3807 },
3808 })
3809 }
3810}
3811impl ::treesitter_types::Spanned for KeywordArgument<'_> {
3812 fn span(&self) -> ::treesitter_types::Span {
3813 self.span
3814 }
3815}
3816#[derive(Debug, Clone)]
3817pub struct KeywordPattern<'tree> {
3818 pub span: ::treesitter_types::Span,
3819 pub children: ::std::vec::Vec<KeywordPatternChildren<'tree>>,
3820}
3821impl<'tree> ::treesitter_types::FromNode<'tree> for KeywordPattern<'tree> {
3822 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3823 fn from_node(
3824 node: ::tree_sitter::Node<'tree>,
3825 src: &'tree [u8],
3826 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3827 debug_assert_eq!(node.kind(), "keyword_pattern");
3828 Ok(Self {
3829 span: ::treesitter_types::Span::from(node),
3830 children: {
3831 #[allow(clippy::suspicious_else_formatting)]
3832 let non_field_children = {
3833 let mut cursor = node.walk();
3834 let mut result = ::std::vec::Vec::new();
3835 if cursor.goto_first_child() {
3836 loop {
3837 if cursor.field_name().is_none()
3838 && cursor.node().is_named()
3839 && !cursor.node().is_extra()
3840 {
3841 result.push(cursor.node());
3842 }
3843 if !cursor.goto_next_sibling() {
3844 break;
3845 }
3846 }
3847 }
3848 result
3849 };
3850 let mut items = ::std::vec::Vec::new();
3851 for child in non_field_children {
3852 items.push(
3853 <KeywordPatternChildren as ::treesitter_types::FromNode>::from_node(
3854 child, src,
3855 )?,
3856 );
3857 }
3858 items
3859 },
3860 })
3861 }
3862}
3863impl ::treesitter_types::Spanned for KeywordPattern<'_> {
3864 fn span(&self) -> ::treesitter_types::Span {
3865 self.span
3866 }
3867}
3868#[derive(Debug, Clone)]
3869pub struct KeywordSeparator<'tree> {
3870 pub span: ::treesitter_types::Span,
3871 text: &'tree str,
3872}
3873impl<'tree> ::treesitter_types::FromNode<'tree> for KeywordSeparator<'tree> {
3874 fn from_node(
3875 node: ::tree_sitter::Node<'tree>,
3876 src: &'tree [u8],
3877 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3878 debug_assert_eq!(node.kind(), "keyword_separator");
3879 Ok(Self {
3880 span: ::treesitter_types::Span::from(node),
3881 text: node.utf8_text(src)?,
3882 })
3883 }
3884}
3885impl<'tree> ::treesitter_types::LeafNode<'tree> for KeywordSeparator<'tree> {
3886 fn text(&self) -> &'tree str {
3887 self.text
3888 }
3889}
3890impl ::treesitter_types::Spanned for KeywordSeparator<'_> {
3891 fn span(&self) -> ::treesitter_types::Span {
3892 self.span
3893 }
3894}
3895#[derive(Debug, Clone)]
3896pub struct Lambda<'tree> {
3897 pub span: ::treesitter_types::Span,
3898 pub body: Expression<'tree>,
3899 pub parameters: ::core::option::Option<LambdaParameters<'tree>>,
3900}
3901impl<'tree> ::treesitter_types::FromNode<'tree> for Lambda<'tree> {
3902 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3903 fn from_node(
3904 node: ::tree_sitter::Node<'tree>,
3905 src: &'tree [u8],
3906 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3907 debug_assert_eq!(node.kind(), "lambda");
3908 Ok(Self {
3909 span: ::treesitter_types::Span::from(node),
3910 body: {
3911 let child = node
3912 .child_by_field_name("body")
3913 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
3914 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
3915 },
3916 parameters: match node.child_by_field_name("parameters") {
3917 Some(child) => {
3918 Some(<LambdaParameters as ::treesitter_types::FromNode>::from_node(child, src)?)
3919 }
3920 None => None,
3921 },
3922 })
3923 }
3924}
3925impl ::treesitter_types::Spanned for Lambda<'_> {
3926 fn span(&self) -> ::treesitter_types::Span {
3927 self.span
3928 }
3929}
3930#[derive(Debug, Clone)]
3931pub struct LambdaParameters<'tree> {
3932 pub span: ::treesitter_types::Span,
3933 pub children: ::std::vec::Vec<Parameter<'tree>>,
3934}
3935impl<'tree> ::treesitter_types::FromNode<'tree> for LambdaParameters<'tree> {
3936 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3937 fn from_node(
3938 node: ::tree_sitter::Node<'tree>,
3939 src: &'tree [u8],
3940 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3941 debug_assert_eq!(node.kind(), "lambda_parameters");
3942 Ok(Self {
3943 span: ::treesitter_types::Span::from(node),
3944 children: {
3945 #[allow(clippy::suspicious_else_formatting)]
3946 let non_field_children = {
3947 let mut cursor = node.walk();
3948 let mut result = ::std::vec::Vec::new();
3949 if cursor.goto_first_child() {
3950 loop {
3951 if cursor.field_name().is_none()
3952 && cursor.node().is_named()
3953 && !cursor.node().is_extra()
3954 {
3955 result.push(cursor.node());
3956 }
3957 if !cursor.goto_next_sibling() {
3958 break;
3959 }
3960 }
3961 }
3962 result
3963 };
3964 let mut items = ::std::vec::Vec::new();
3965 for child in non_field_children {
3966 items.push(<Parameter as ::treesitter_types::FromNode>::from_node(
3967 child, src,
3968 )?);
3969 }
3970 items
3971 },
3972 })
3973 }
3974}
3975impl ::treesitter_types::Spanned for LambdaParameters<'_> {
3976 fn span(&self) -> ::treesitter_types::Span {
3977 self.span
3978 }
3979}
3980#[derive(Debug, Clone)]
3981pub struct List<'tree> {
3982 pub span: ::treesitter_types::Span,
3983 pub children: ::std::vec::Vec<ListChildren<'tree>>,
3984}
3985impl<'tree> ::treesitter_types::FromNode<'tree> for List<'tree> {
3986 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3987 fn from_node(
3988 node: ::tree_sitter::Node<'tree>,
3989 src: &'tree [u8],
3990 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3991 debug_assert_eq!(node.kind(), "list");
3992 Ok(Self {
3993 span: ::treesitter_types::Span::from(node),
3994 children: {
3995 #[allow(clippy::suspicious_else_formatting)]
3996 let non_field_children = {
3997 let mut cursor = node.walk();
3998 let mut result = ::std::vec::Vec::new();
3999 if cursor.goto_first_child() {
4000 loop {
4001 if cursor.field_name().is_none()
4002 && cursor.node().is_named()
4003 && !cursor.node().is_extra()
4004 {
4005 result.push(cursor.node());
4006 }
4007 if !cursor.goto_next_sibling() {
4008 break;
4009 }
4010 }
4011 }
4012 result
4013 };
4014 let mut items = ::std::vec::Vec::new();
4015 for child in non_field_children {
4016 items.push(<ListChildren as ::treesitter_types::FromNode>::from_node(
4017 child, src,
4018 )?);
4019 }
4020 items
4021 },
4022 })
4023 }
4024}
4025impl ::treesitter_types::Spanned for List<'_> {
4026 fn span(&self) -> ::treesitter_types::Span {
4027 self.span
4028 }
4029}
4030#[derive(Debug, Clone)]
4031pub struct ListComprehension<'tree> {
4032 pub span: ::treesitter_types::Span,
4033 pub body: Expression<'tree>,
4034 pub children: ::std::vec::Vec<ListComprehensionChildren<'tree>>,
4035}
4036impl<'tree> ::treesitter_types::FromNode<'tree> for ListComprehension<'tree> {
4037 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4038 fn from_node(
4039 node: ::tree_sitter::Node<'tree>,
4040 src: &'tree [u8],
4041 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4042 debug_assert_eq!(node.kind(), "list_comprehension");
4043 Ok(Self {
4044 span: ::treesitter_types::Span::from(node),
4045 body: {
4046 let child = node
4047 .child_by_field_name("body")
4048 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
4049 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
4050 },
4051 children: {
4052 #[allow(clippy::suspicious_else_formatting)]
4053 let non_field_children = {
4054 let mut cursor = node.walk();
4055 let mut result = ::std::vec::Vec::new();
4056 if cursor.goto_first_child() {
4057 loop {
4058 if cursor.field_name().is_none()
4059 && cursor.node().is_named()
4060 && !cursor.node().is_extra()
4061 {
4062 result.push(cursor.node());
4063 }
4064 if !cursor.goto_next_sibling() {
4065 break;
4066 }
4067 }
4068 }
4069 result
4070 };
4071 let mut items = ::std::vec::Vec::new();
4072 for child in non_field_children {
4073 items.push(
4074 <ListComprehensionChildren as ::treesitter_types::FromNode>::from_node(
4075 child, src,
4076 )?,
4077 );
4078 }
4079 items
4080 },
4081 })
4082 }
4083}
4084impl ::treesitter_types::Spanned for ListComprehension<'_> {
4085 fn span(&self) -> ::treesitter_types::Span {
4086 self.span
4087 }
4088}
4089#[derive(Debug, Clone)]
4090pub struct ListPattern<'tree> {
4091 pub span: ::treesitter_types::Span,
4092 pub children: ::std::vec::Vec<ListPatternChildren<'tree>>,
4093}
4094impl<'tree> ::treesitter_types::FromNode<'tree> for ListPattern<'tree> {
4095 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4096 fn from_node(
4097 node: ::tree_sitter::Node<'tree>,
4098 src: &'tree [u8],
4099 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4100 debug_assert_eq!(node.kind(), "list_pattern");
4101 Ok(Self {
4102 span: ::treesitter_types::Span::from(node),
4103 children: {
4104 #[allow(clippy::suspicious_else_formatting)]
4105 let non_field_children = {
4106 let mut cursor = node.walk();
4107 let mut result = ::std::vec::Vec::new();
4108 if cursor.goto_first_child() {
4109 loop {
4110 if cursor.field_name().is_none()
4111 && cursor.node().is_named()
4112 && !cursor.node().is_extra()
4113 {
4114 result.push(cursor.node());
4115 }
4116 if !cursor.goto_next_sibling() {
4117 break;
4118 }
4119 }
4120 }
4121 result
4122 };
4123 let mut items = ::std::vec::Vec::new();
4124 for child in non_field_children {
4125 items.push(
4126 <ListPatternChildren as ::treesitter_types::FromNode>::from_node(
4127 child, src,
4128 )?,
4129 );
4130 }
4131 items
4132 },
4133 })
4134 }
4135}
4136impl ::treesitter_types::Spanned for ListPattern<'_> {
4137 fn span(&self) -> ::treesitter_types::Span {
4138 self.span
4139 }
4140}
4141#[derive(Debug, Clone)]
4142pub struct ListSplat<'tree> {
4143 pub span: ::treesitter_types::Span,
4144 pub children: ListSplatChildren<'tree>,
4145}
4146impl<'tree> ::treesitter_types::FromNode<'tree> for ListSplat<'tree> {
4147 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4148 fn from_node(
4149 node: ::tree_sitter::Node<'tree>,
4150 src: &'tree [u8],
4151 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4152 debug_assert_eq!(node.kind(), "list_splat");
4153 Ok(Self {
4154 span: ::treesitter_types::Span::from(node),
4155 children: {
4156 #[allow(clippy::suspicious_else_formatting)]
4157 let non_field_children = {
4158 let mut cursor = node.walk();
4159 let mut result = ::std::vec::Vec::new();
4160 if cursor.goto_first_child() {
4161 loop {
4162 if cursor.field_name().is_none()
4163 && cursor.node().is_named()
4164 && !cursor.node().is_extra()
4165 {
4166 result.push(cursor.node());
4167 }
4168 if !cursor.goto_next_sibling() {
4169 break;
4170 }
4171 }
4172 }
4173 result
4174 };
4175 let child = if let Some(&c) = non_field_children.first() {
4176 c
4177 } else {
4178 let mut fallback_cursor = node.walk();
4179 let mut fallback_child = None;
4180 if fallback_cursor.goto_first_child() {
4181 loop {
4182 if fallback_cursor.field_name().is_none()
4183 && !fallback_cursor.node().is_extra()
4184 {
4185 let candidate = fallback_cursor.node();
4186 #[allow(clippy::needless_question_mark)]
4187 if (|| -> ::core::result::Result<
4188 _,
4189 ::treesitter_types::ParseError,
4190 > {
4191 let child = candidate;
4192 Ok(
4193 <ListSplatChildren as ::treesitter_types::FromNode>::from_node(
4194 child,
4195 src,
4196 )?,
4197 )
4198 })()
4199 .is_ok()
4200 {
4201 fallback_child = Some(candidate);
4202 break;
4203 }
4204 }
4205 if !fallback_cursor.goto_next_sibling() {
4206 break;
4207 }
4208 }
4209 }
4210 if fallback_child.is_none() {
4211 let mut cursor2 = node.walk();
4212 if cursor2.goto_first_child() {
4213 loop {
4214 if cursor2.node().is_named() && !cursor2.node().is_extra() {
4215 let candidate = cursor2.node();
4216 #[allow(clippy::needless_question_mark)]
4217 if (|| -> ::core::result::Result<
4218 _,
4219 ::treesitter_types::ParseError,
4220 > {
4221 let child = candidate;
4222 Ok(
4223 <ListSplatChildren as ::treesitter_types::FromNode>::from_node(
4224 child,
4225 src,
4226 )?,
4227 )
4228 })()
4229 .is_ok()
4230 {
4231 fallback_child = Some(candidate);
4232 break;
4233 }
4234 }
4235 if !cursor2.goto_next_sibling() {
4236 break;
4237 }
4238 }
4239 }
4240 }
4241 fallback_child.ok_or_else(|| {
4242 ::treesitter_types::ParseError::missing_field("children", node)
4243 })?
4244 };
4245 <ListSplatChildren as ::treesitter_types::FromNode>::from_node(child, src)?
4246 },
4247 })
4248 }
4249}
4250impl ::treesitter_types::Spanned for ListSplat<'_> {
4251 fn span(&self) -> ::treesitter_types::Span {
4252 self.span
4253 }
4254}
4255#[derive(Debug, Clone)]
4256pub struct ListSplatPattern<'tree> {
4257 pub span: ::treesitter_types::Span,
4258 pub children: ListSplatPatternChildren<'tree>,
4259}
4260impl<'tree> ::treesitter_types::FromNode<'tree> for ListSplatPattern<'tree> {
4261 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4262 fn from_node(
4263 node: ::tree_sitter::Node<'tree>,
4264 src: &'tree [u8],
4265 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4266 debug_assert_eq!(node.kind(), "list_splat_pattern");
4267 Ok(Self {
4268 span: ::treesitter_types::Span::from(node),
4269 children: {
4270 #[allow(clippy::suspicious_else_formatting)]
4271 let non_field_children = {
4272 let mut cursor = node.walk();
4273 let mut result = ::std::vec::Vec::new();
4274 if cursor.goto_first_child() {
4275 loop {
4276 if cursor.field_name().is_none()
4277 && cursor.node().is_named()
4278 && !cursor.node().is_extra()
4279 {
4280 result.push(cursor.node());
4281 }
4282 if !cursor.goto_next_sibling() {
4283 break;
4284 }
4285 }
4286 }
4287 result
4288 };
4289 let child = if let Some(&c) = non_field_children.first() {
4290 c
4291 } else {
4292 let mut fallback_cursor = node.walk();
4293 let mut fallback_child = None;
4294 if fallback_cursor.goto_first_child() {
4295 loop {
4296 if fallback_cursor.field_name().is_none()
4297 && !fallback_cursor.node().is_extra()
4298 {
4299 let candidate = fallback_cursor.node();
4300 #[allow(clippy::needless_question_mark)]
4301 if (|| -> ::core::result::Result<
4302 _,
4303 ::treesitter_types::ParseError,
4304 > {
4305 let child = candidate;
4306 Ok(
4307 <ListSplatPatternChildren as ::treesitter_types::FromNode>::from_node(
4308 child,
4309 src,
4310 )?,
4311 )
4312 })()
4313 .is_ok()
4314 {
4315 fallback_child = Some(candidate);
4316 break;
4317 }
4318 }
4319 if !fallback_cursor.goto_next_sibling() {
4320 break;
4321 }
4322 }
4323 }
4324 if fallback_child.is_none() {
4325 let mut cursor2 = node.walk();
4326 if cursor2.goto_first_child() {
4327 loop {
4328 if cursor2.node().is_named() && !cursor2.node().is_extra() {
4329 let candidate = cursor2.node();
4330 #[allow(clippy::needless_question_mark)]
4331 if (|| -> ::core::result::Result<
4332 _,
4333 ::treesitter_types::ParseError,
4334 > {
4335 let child = candidate;
4336 Ok(
4337 <ListSplatPatternChildren as ::treesitter_types::FromNode>::from_node(
4338 child,
4339 src,
4340 )?,
4341 )
4342 })()
4343 .is_ok()
4344 {
4345 fallback_child = Some(candidate);
4346 break;
4347 }
4348 }
4349 if !cursor2.goto_next_sibling() {
4350 break;
4351 }
4352 }
4353 }
4354 }
4355 fallback_child.ok_or_else(|| {
4356 ::treesitter_types::ParseError::missing_field("children", node)
4357 })?
4358 };
4359 <ListSplatPatternChildren as ::treesitter_types::FromNode>::from_node(child, src)?
4360 },
4361 })
4362 }
4363}
4364impl ::treesitter_types::Spanned for ListSplatPattern<'_> {
4365 fn span(&self) -> ::treesitter_types::Span {
4366 self.span
4367 }
4368}
4369#[derive(Debug, Clone)]
4370pub struct MatchStatement<'tree> {
4371 pub span: ::treesitter_types::Span,
4372 pub body: Block<'tree>,
4373 pub subject: ::std::vec::Vec<Expression<'tree>>,
4374}
4375impl<'tree> ::treesitter_types::FromNode<'tree> for MatchStatement<'tree> {
4376 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4377 fn from_node(
4378 node: ::tree_sitter::Node<'tree>,
4379 src: &'tree [u8],
4380 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4381 debug_assert_eq!(node.kind(), "match_statement");
4382 Ok(Self {
4383 span: ::treesitter_types::Span::from(node),
4384 body: {
4385 let child = node
4386 .child_by_field_name("body")
4387 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
4388 <Block as ::treesitter_types::FromNode>::from_node(child, src)?
4389 },
4390 subject: {
4391 let mut cursor = node.walk();
4392 let mut items = ::std::vec::Vec::new();
4393 for child in node.children_by_field_name("subject", &mut cursor) {
4394 items.push(<Expression as ::treesitter_types::FromNode>::from_node(
4395 child, src,
4396 )?);
4397 }
4398 items
4399 },
4400 })
4401 }
4402}
4403impl ::treesitter_types::Spanned for MatchStatement<'_> {
4404 fn span(&self) -> ::treesitter_types::Span {
4405 self.span
4406 }
4407}
4408#[derive(Debug, Clone)]
4409pub struct MemberType<'tree> {
4410 pub span: ::treesitter_types::Span,
4411 pub children: ::std::vec::Vec<MemberTypeChildren<'tree>>,
4412}
4413impl<'tree> ::treesitter_types::FromNode<'tree> for MemberType<'tree> {
4414 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4415 fn from_node(
4416 node: ::tree_sitter::Node<'tree>,
4417 src: &'tree [u8],
4418 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4419 debug_assert_eq!(node.kind(), "member_type");
4420 Ok(Self {
4421 span: ::treesitter_types::Span::from(node),
4422 children: {
4423 #[allow(clippy::suspicious_else_formatting)]
4424 let non_field_children = {
4425 let mut cursor = node.walk();
4426 let mut result = ::std::vec::Vec::new();
4427 if cursor.goto_first_child() {
4428 loop {
4429 if cursor.field_name().is_none()
4430 && cursor.node().is_named()
4431 && !cursor.node().is_extra()
4432 {
4433 result.push(cursor.node());
4434 }
4435 if !cursor.goto_next_sibling() {
4436 break;
4437 }
4438 }
4439 }
4440 result
4441 };
4442 let mut items = ::std::vec::Vec::new();
4443 for child in non_field_children {
4444 items.push(
4445 <MemberTypeChildren as ::treesitter_types::FromNode>::from_node(
4446 child, src,
4447 )?,
4448 );
4449 }
4450 items
4451 },
4452 })
4453 }
4454}
4455impl ::treesitter_types::Spanned for MemberType<'_> {
4456 fn span(&self) -> ::treesitter_types::Span {
4457 self.span
4458 }
4459}
4460#[derive(Debug, Clone)]
4461pub struct Module<'tree> {
4462 pub span: ::treesitter_types::Span,
4463 pub children: ::std::vec::Vec<ModuleChildren<'tree>>,
4464}
4465impl<'tree> ::treesitter_types::FromNode<'tree> for Module<'tree> {
4466 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4467 fn from_node(
4468 node: ::tree_sitter::Node<'tree>,
4469 src: &'tree [u8],
4470 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4471 debug_assert_eq!(node.kind(), "module");
4472 Ok(Self {
4473 span: ::treesitter_types::Span::from(node),
4474 children: {
4475 #[allow(clippy::suspicious_else_formatting)]
4476 let non_field_children = {
4477 let mut cursor = node.walk();
4478 let mut result = ::std::vec::Vec::new();
4479 if cursor.goto_first_child() {
4480 loop {
4481 if cursor.field_name().is_none()
4482 && cursor.node().is_named()
4483 && !cursor.node().is_extra()
4484 {
4485 result.push(cursor.node());
4486 }
4487 if !cursor.goto_next_sibling() {
4488 break;
4489 }
4490 }
4491 }
4492 result
4493 };
4494 let mut items = ::std::vec::Vec::new();
4495 for child in non_field_children {
4496 items.push(<ModuleChildren as ::treesitter_types::FromNode>::from_node(
4497 child, src,
4498 )?);
4499 }
4500 items
4501 },
4502 })
4503 }
4504}
4505impl ::treesitter_types::Spanned for Module<'_> {
4506 fn span(&self) -> ::treesitter_types::Span {
4507 self.span
4508 }
4509}
4510#[derive(Debug, Clone)]
4511pub struct NamedExpression<'tree> {
4512 pub span: ::treesitter_types::Span,
4513 pub name: Identifier<'tree>,
4514 pub value: Expression<'tree>,
4515}
4516impl<'tree> ::treesitter_types::FromNode<'tree> for NamedExpression<'tree> {
4517 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4518 fn from_node(
4519 node: ::tree_sitter::Node<'tree>,
4520 src: &'tree [u8],
4521 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4522 debug_assert_eq!(node.kind(), "named_expression");
4523 Ok(Self {
4524 span: ::treesitter_types::Span::from(node),
4525 name: {
4526 let child = node
4527 .child_by_field_name("name")
4528 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
4529 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)?
4530 },
4531 value: {
4532 let child = node
4533 .child_by_field_name("value")
4534 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
4535 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
4536 },
4537 })
4538 }
4539}
4540impl ::treesitter_types::Spanned for NamedExpression<'_> {
4541 fn span(&self) -> ::treesitter_types::Span {
4542 self.span
4543 }
4544}
4545#[derive(Debug, Clone)]
4546pub struct NonlocalStatement<'tree> {
4547 pub span: ::treesitter_types::Span,
4548 pub children: ::std::vec::Vec<Identifier<'tree>>,
4549}
4550impl<'tree> ::treesitter_types::FromNode<'tree> for NonlocalStatement<'tree> {
4551 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4552 fn from_node(
4553 node: ::tree_sitter::Node<'tree>,
4554 src: &'tree [u8],
4555 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4556 debug_assert_eq!(node.kind(), "nonlocal_statement");
4557 Ok(Self {
4558 span: ::treesitter_types::Span::from(node),
4559 children: {
4560 #[allow(clippy::suspicious_else_formatting)]
4561 let non_field_children = {
4562 let mut cursor = node.walk();
4563 let mut result = ::std::vec::Vec::new();
4564 if cursor.goto_first_child() {
4565 loop {
4566 if cursor.field_name().is_none()
4567 && cursor.node().is_named()
4568 && !cursor.node().is_extra()
4569 {
4570 result.push(cursor.node());
4571 }
4572 if !cursor.goto_next_sibling() {
4573 break;
4574 }
4575 }
4576 }
4577 result
4578 };
4579 let mut items = ::std::vec::Vec::new();
4580 for child in non_field_children {
4581 items.push(<Identifier as ::treesitter_types::FromNode>::from_node(
4582 child, src,
4583 )?);
4584 }
4585 items
4586 },
4587 })
4588 }
4589}
4590impl ::treesitter_types::Spanned for NonlocalStatement<'_> {
4591 fn span(&self) -> ::treesitter_types::Span {
4592 self.span
4593 }
4594}
4595#[derive(Debug, Clone)]
4596pub struct NotOperator<'tree> {
4597 pub span: ::treesitter_types::Span,
4598 pub argument: Expression<'tree>,
4599}
4600impl<'tree> ::treesitter_types::FromNode<'tree> for NotOperator<'tree> {
4601 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4602 fn from_node(
4603 node: ::tree_sitter::Node<'tree>,
4604 src: &'tree [u8],
4605 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4606 debug_assert_eq!(node.kind(), "not_operator");
4607 Ok(Self {
4608 span: ::treesitter_types::Span::from(node),
4609 argument: {
4610 let child = node.child_by_field_name("argument").ok_or_else(|| {
4611 ::treesitter_types::ParseError::missing_field("argument", node)
4612 })?;
4613 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
4614 },
4615 })
4616 }
4617}
4618impl ::treesitter_types::Spanned for NotOperator<'_> {
4619 fn span(&self) -> ::treesitter_types::Span {
4620 self.span
4621 }
4622}
4623#[derive(Debug, Clone)]
4624pub struct Pair<'tree> {
4625 pub span: ::treesitter_types::Span,
4626 pub key: Expression<'tree>,
4627 pub value: Expression<'tree>,
4628}
4629impl<'tree> ::treesitter_types::FromNode<'tree> for Pair<'tree> {
4630 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4631 fn from_node(
4632 node: ::tree_sitter::Node<'tree>,
4633 src: &'tree [u8],
4634 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4635 debug_assert_eq!(node.kind(), "pair");
4636 Ok(Self {
4637 span: ::treesitter_types::Span::from(node),
4638 key: {
4639 let child = node
4640 .child_by_field_name("key")
4641 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("key", node))?;
4642 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
4643 },
4644 value: {
4645 let child = node
4646 .child_by_field_name("value")
4647 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
4648 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
4649 },
4650 })
4651 }
4652}
4653impl ::treesitter_types::Spanned for Pair<'_> {
4654 fn span(&self) -> ::treesitter_types::Span {
4655 self.span
4656 }
4657}
4658#[derive(Debug, Clone)]
4659pub struct Parameters<'tree> {
4660 pub span: ::treesitter_types::Span,
4661 pub children: ::std::vec::Vec<Parameter<'tree>>,
4662}
4663impl<'tree> ::treesitter_types::FromNode<'tree> for Parameters<'tree> {
4664 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4665 fn from_node(
4666 node: ::tree_sitter::Node<'tree>,
4667 src: &'tree [u8],
4668 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4669 debug_assert_eq!(node.kind(), "parameters");
4670 Ok(Self {
4671 span: ::treesitter_types::Span::from(node),
4672 children: {
4673 #[allow(clippy::suspicious_else_formatting)]
4674 let non_field_children = {
4675 let mut cursor = node.walk();
4676 let mut result = ::std::vec::Vec::new();
4677 if cursor.goto_first_child() {
4678 loop {
4679 if cursor.field_name().is_none()
4680 && cursor.node().is_named()
4681 && !cursor.node().is_extra()
4682 {
4683 result.push(cursor.node());
4684 }
4685 if !cursor.goto_next_sibling() {
4686 break;
4687 }
4688 }
4689 }
4690 result
4691 };
4692 let mut items = ::std::vec::Vec::new();
4693 for child in non_field_children {
4694 items.push(<Parameter as ::treesitter_types::FromNode>::from_node(
4695 child, src,
4696 )?);
4697 }
4698 items
4699 },
4700 })
4701 }
4702}
4703impl ::treesitter_types::Spanned for Parameters<'_> {
4704 fn span(&self) -> ::treesitter_types::Span {
4705 self.span
4706 }
4707}
4708#[derive(Debug, Clone)]
4709pub struct ParenthesizedExpression<'tree> {
4710 pub span: ::treesitter_types::Span,
4711 pub children: ParenthesizedExpressionChildren<'tree>,
4712}
4713impl<'tree> ::treesitter_types::FromNode<'tree> for ParenthesizedExpression<'tree> {
4714 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4715 fn from_node(
4716 node: ::tree_sitter::Node<'tree>,
4717 src: &'tree [u8],
4718 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4719 debug_assert_eq!(node.kind(), "parenthesized_expression");
4720 Ok(Self {
4721 span: ::treesitter_types::Span::from(node),
4722 children: {
4723 #[allow(clippy::suspicious_else_formatting)]
4724 let non_field_children = {
4725 let mut cursor = node.walk();
4726 let mut result = ::std::vec::Vec::new();
4727 if cursor.goto_first_child() {
4728 loop {
4729 if cursor.field_name().is_none()
4730 && cursor.node().is_named()
4731 && !cursor.node().is_extra()
4732 {
4733 result.push(cursor.node());
4734 }
4735 if !cursor.goto_next_sibling() {
4736 break;
4737 }
4738 }
4739 }
4740 result
4741 };
4742 let child = if let Some(&c) = non_field_children.first() {
4743 c
4744 } else {
4745 let mut fallback_cursor = node.walk();
4746 let mut fallback_child = None;
4747 if fallback_cursor.goto_first_child() {
4748 loop {
4749 if fallback_cursor.field_name().is_none()
4750 && !fallback_cursor.node().is_extra()
4751 {
4752 let candidate = fallback_cursor.node();
4753 #[allow(clippy::needless_question_mark)]
4754 if (|| -> ::core::result::Result<
4755 _,
4756 ::treesitter_types::ParseError,
4757 > {
4758 let child = candidate;
4759 Ok(
4760 <ParenthesizedExpressionChildren as ::treesitter_types::FromNode>::from_node(
4761 child,
4762 src,
4763 )?,
4764 )
4765 })()
4766 .is_ok()
4767 {
4768 fallback_child = Some(candidate);
4769 break;
4770 }
4771 }
4772 if !fallback_cursor.goto_next_sibling() {
4773 break;
4774 }
4775 }
4776 }
4777 if fallback_child.is_none() {
4778 let mut cursor2 = node.walk();
4779 if cursor2.goto_first_child() {
4780 loop {
4781 if cursor2.node().is_named() && !cursor2.node().is_extra() {
4782 let candidate = cursor2.node();
4783 #[allow(clippy::needless_question_mark)]
4784 if (|| -> ::core::result::Result<
4785 _,
4786 ::treesitter_types::ParseError,
4787 > {
4788 let child = candidate;
4789 Ok(
4790 <ParenthesizedExpressionChildren as ::treesitter_types::FromNode>::from_node(
4791 child,
4792 src,
4793 )?,
4794 )
4795 })()
4796 .is_ok()
4797 {
4798 fallback_child = Some(candidate);
4799 break;
4800 }
4801 }
4802 if !cursor2.goto_next_sibling() {
4803 break;
4804 }
4805 }
4806 }
4807 }
4808 fallback_child.ok_or_else(|| {
4809 ::treesitter_types::ParseError::missing_field("children", node)
4810 })?
4811 };
4812 <ParenthesizedExpressionChildren as ::treesitter_types::FromNode>::from_node(
4813 child, src,
4814 )?
4815 },
4816 })
4817 }
4818}
4819impl ::treesitter_types::Spanned for ParenthesizedExpression<'_> {
4820 fn span(&self) -> ::treesitter_types::Span {
4821 self.span
4822 }
4823}
4824#[derive(Debug, Clone)]
4825pub struct ParenthesizedListSplat<'tree> {
4826 pub span: ::treesitter_types::Span,
4827 pub children: ParenthesizedListSplatChildren<'tree>,
4828}
4829impl<'tree> ::treesitter_types::FromNode<'tree> for ParenthesizedListSplat<'tree> {
4830 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4831 fn from_node(
4832 node: ::tree_sitter::Node<'tree>,
4833 src: &'tree [u8],
4834 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4835 debug_assert_eq!(node.kind(), "parenthesized_list_splat");
4836 Ok(Self {
4837 span: ::treesitter_types::Span::from(node),
4838 children: {
4839 #[allow(clippy::suspicious_else_formatting)]
4840 let non_field_children = {
4841 let mut cursor = node.walk();
4842 let mut result = ::std::vec::Vec::new();
4843 if cursor.goto_first_child() {
4844 loop {
4845 if cursor.field_name().is_none()
4846 && cursor.node().is_named()
4847 && !cursor.node().is_extra()
4848 {
4849 result.push(cursor.node());
4850 }
4851 if !cursor.goto_next_sibling() {
4852 break;
4853 }
4854 }
4855 }
4856 result
4857 };
4858 let child = if let Some(&c) = non_field_children.first() {
4859 c
4860 } else {
4861 let mut fallback_cursor = node.walk();
4862 let mut fallback_child = None;
4863 if fallback_cursor.goto_first_child() {
4864 loop {
4865 if fallback_cursor.field_name().is_none()
4866 && !fallback_cursor.node().is_extra()
4867 {
4868 let candidate = fallback_cursor.node();
4869 #[allow(clippy::needless_question_mark)]
4870 if (|| -> ::core::result::Result<
4871 _,
4872 ::treesitter_types::ParseError,
4873 > {
4874 let child = candidate;
4875 Ok(
4876 <ParenthesizedListSplatChildren as ::treesitter_types::FromNode>::from_node(
4877 child,
4878 src,
4879 )?,
4880 )
4881 })()
4882 .is_ok()
4883 {
4884 fallback_child = Some(candidate);
4885 break;
4886 }
4887 }
4888 if !fallback_cursor.goto_next_sibling() {
4889 break;
4890 }
4891 }
4892 }
4893 if fallback_child.is_none() {
4894 let mut cursor2 = node.walk();
4895 if cursor2.goto_first_child() {
4896 loop {
4897 if cursor2.node().is_named() && !cursor2.node().is_extra() {
4898 let candidate = cursor2.node();
4899 #[allow(clippy::needless_question_mark)]
4900 if (|| -> ::core::result::Result<
4901 _,
4902 ::treesitter_types::ParseError,
4903 > {
4904 let child = candidate;
4905 Ok(
4906 <ParenthesizedListSplatChildren as ::treesitter_types::FromNode>::from_node(
4907 child,
4908 src,
4909 )?,
4910 )
4911 })()
4912 .is_ok()
4913 {
4914 fallback_child = Some(candidate);
4915 break;
4916 }
4917 }
4918 if !cursor2.goto_next_sibling() {
4919 break;
4920 }
4921 }
4922 }
4923 }
4924 fallback_child.ok_or_else(|| {
4925 ::treesitter_types::ParseError::missing_field("children", node)
4926 })?
4927 };
4928 <ParenthesizedListSplatChildren as ::treesitter_types::FromNode>::from_node(
4929 child, src,
4930 )?
4931 },
4932 })
4933 }
4934}
4935impl ::treesitter_types::Spanned for ParenthesizedListSplat<'_> {
4936 fn span(&self) -> ::treesitter_types::Span {
4937 self.span
4938 }
4939}
4940#[derive(Debug, Clone)]
4941pub struct PassStatement<'tree> {
4942 pub span: ::treesitter_types::Span,
4943 text: &'tree str,
4944}
4945impl<'tree> ::treesitter_types::FromNode<'tree> for PassStatement<'tree> {
4946 fn from_node(
4947 node: ::tree_sitter::Node<'tree>,
4948 src: &'tree [u8],
4949 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4950 debug_assert_eq!(node.kind(), "pass_statement");
4951 Ok(Self {
4952 span: ::treesitter_types::Span::from(node),
4953 text: node.utf8_text(src)?,
4954 })
4955 }
4956}
4957impl<'tree> ::treesitter_types::LeafNode<'tree> for PassStatement<'tree> {
4958 fn text(&self) -> &'tree str {
4959 self.text
4960 }
4961}
4962impl ::treesitter_types::Spanned for PassStatement<'_> {
4963 fn span(&self) -> ::treesitter_types::Span {
4964 self.span
4965 }
4966}
4967#[derive(Debug, Clone)]
4968pub struct PatternList<'tree> {
4969 pub span: ::treesitter_types::Span,
4970 pub children: ::std::vec::Vec<Pattern<'tree>>,
4971}
4972impl<'tree> ::treesitter_types::FromNode<'tree> for PatternList<'tree> {
4973 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4974 fn from_node(
4975 node: ::tree_sitter::Node<'tree>,
4976 src: &'tree [u8],
4977 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4978 debug_assert_eq!(node.kind(), "pattern_list");
4979 Ok(Self {
4980 span: ::treesitter_types::Span::from(node),
4981 children: {
4982 #[allow(clippy::suspicious_else_formatting)]
4983 let non_field_children = {
4984 let mut cursor = node.walk();
4985 let mut result = ::std::vec::Vec::new();
4986 if cursor.goto_first_child() {
4987 loop {
4988 if cursor.field_name().is_none()
4989 && cursor.node().is_named()
4990 && !cursor.node().is_extra()
4991 {
4992 result.push(cursor.node());
4993 }
4994 if !cursor.goto_next_sibling() {
4995 break;
4996 }
4997 }
4998 }
4999 result
5000 };
5001 let mut items = ::std::vec::Vec::new();
5002 for child in non_field_children {
5003 items.push(<Pattern as ::treesitter_types::FromNode>::from_node(
5004 child, src,
5005 )?);
5006 }
5007 items
5008 },
5009 })
5010 }
5011}
5012impl ::treesitter_types::Spanned for PatternList<'_> {
5013 fn span(&self) -> ::treesitter_types::Span {
5014 self.span
5015 }
5016}
5017#[derive(Debug, Clone)]
5018pub struct PositionalSeparator<'tree> {
5019 pub span: ::treesitter_types::Span,
5020 text: &'tree str,
5021}
5022impl<'tree> ::treesitter_types::FromNode<'tree> for PositionalSeparator<'tree> {
5023 fn from_node(
5024 node: ::tree_sitter::Node<'tree>,
5025 src: &'tree [u8],
5026 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5027 debug_assert_eq!(node.kind(), "positional_separator");
5028 Ok(Self {
5029 span: ::treesitter_types::Span::from(node),
5030 text: node.utf8_text(src)?,
5031 })
5032 }
5033}
5034impl<'tree> ::treesitter_types::LeafNode<'tree> for PositionalSeparator<'tree> {
5035 fn text(&self) -> &'tree str {
5036 self.text
5037 }
5038}
5039impl ::treesitter_types::Spanned for PositionalSeparator<'_> {
5040 fn span(&self) -> ::treesitter_types::Span {
5041 self.span
5042 }
5043}
5044#[derive(Debug, Clone)]
5045pub struct PrintStatement<'tree> {
5046 pub span: ::treesitter_types::Span,
5047 pub argument: ::std::vec::Vec<Expression<'tree>>,
5048 pub children: ::core::option::Option<Chevron<'tree>>,
5049}
5050impl<'tree> ::treesitter_types::FromNode<'tree> for PrintStatement<'tree> {
5051 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5052 fn from_node(
5053 node: ::tree_sitter::Node<'tree>,
5054 src: &'tree [u8],
5055 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5056 debug_assert_eq!(node.kind(), "print_statement");
5057 Ok(Self {
5058 span: ::treesitter_types::Span::from(node),
5059 argument: {
5060 let mut cursor = node.walk();
5061 let mut items = ::std::vec::Vec::new();
5062 for child in node.children_by_field_name("argument", &mut cursor) {
5063 items.push(<Expression as ::treesitter_types::FromNode>::from_node(
5064 child, src,
5065 )?);
5066 }
5067 items
5068 },
5069 children: {
5070 #[allow(clippy::suspicious_else_formatting)]
5071 let non_field_children = {
5072 let mut cursor = node.walk();
5073 let mut result = ::std::vec::Vec::new();
5074 if cursor.goto_first_child() {
5075 loop {
5076 if cursor.field_name().is_none()
5077 && cursor.node().is_named()
5078 && !cursor.node().is_extra()
5079 {
5080 result.push(cursor.node());
5081 }
5082 if !cursor.goto_next_sibling() {
5083 break;
5084 }
5085 }
5086 }
5087 result
5088 };
5089 match non_field_children.first() {
5090 Some(&child) => Some(<Chevron as ::treesitter_types::FromNode>::from_node(
5091 child, src,
5092 )?),
5093 None => None,
5094 }
5095 },
5096 })
5097 }
5098}
5099impl ::treesitter_types::Spanned for PrintStatement<'_> {
5100 fn span(&self) -> ::treesitter_types::Span {
5101 self.span
5102 }
5103}
5104#[derive(Debug, Clone)]
5105pub struct RaiseStatement<'tree> {
5106 pub span: ::treesitter_types::Span,
5107 pub cause: ::core::option::Option<Expression<'tree>>,
5108 pub children: ::core::option::Option<RaiseStatementChildren<'tree>>,
5109}
5110impl<'tree> ::treesitter_types::FromNode<'tree> for RaiseStatement<'tree> {
5111 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5112 fn from_node(
5113 node: ::tree_sitter::Node<'tree>,
5114 src: &'tree [u8],
5115 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5116 debug_assert_eq!(node.kind(), "raise_statement");
5117 Ok(Self {
5118 span: ::treesitter_types::Span::from(node),
5119 cause: match node.child_by_field_name("cause") {
5120 Some(child) => Some(<Expression as ::treesitter_types::FromNode>::from_node(
5121 child, src,
5122 )?),
5123 None => None,
5124 },
5125 children: {
5126 #[allow(clippy::suspicious_else_formatting)]
5127 let non_field_children = {
5128 let mut cursor = node.walk();
5129 let mut result = ::std::vec::Vec::new();
5130 if cursor.goto_first_child() {
5131 loop {
5132 if cursor.field_name().is_none()
5133 && cursor.node().is_named()
5134 && !cursor.node().is_extra()
5135 {
5136 result.push(cursor.node());
5137 }
5138 if !cursor.goto_next_sibling() {
5139 break;
5140 }
5141 }
5142 }
5143 result
5144 };
5145 match non_field_children.first() {
5146 Some(&child) => Some(
5147 <RaiseStatementChildren as ::treesitter_types::FromNode>::from_node(
5148 child, src,
5149 )?,
5150 ),
5151 None => None,
5152 }
5153 },
5154 })
5155 }
5156}
5157impl ::treesitter_types::Spanned for RaiseStatement<'_> {
5158 fn span(&self) -> ::treesitter_types::Span {
5159 self.span
5160 }
5161}
5162#[derive(Debug, Clone)]
5163pub struct RelativeImport<'tree> {
5164 pub span: ::treesitter_types::Span,
5165 pub children: ::std::vec::Vec<RelativeImportChildren<'tree>>,
5166}
5167impl<'tree> ::treesitter_types::FromNode<'tree> for RelativeImport<'tree> {
5168 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5169 fn from_node(
5170 node: ::tree_sitter::Node<'tree>,
5171 src: &'tree [u8],
5172 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5173 debug_assert_eq!(node.kind(), "relative_import");
5174 Ok(Self {
5175 span: ::treesitter_types::Span::from(node),
5176 children: {
5177 #[allow(clippy::suspicious_else_formatting)]
5178 let non_field_children = {
5179 let mut cursor = node.walk();
5180 let mut result = ::std::vec::Vec::new();
5181 if cursor.goto_first_child() {
5182 loop {
5183 if cursor.field_name().is_none()
5184 && cursor.node().is_named()
5185 && !cursor.node().is_extra()
5186 {
5187 result.push(cursor.node());
5188 }
5189 if !cursor.goto_next_sibling() {
5190 break;
5191 }
5192 }
5193 }
5194 result
5195 };
5196 let mut items = ::std::vec::Vec::new();
5197 for child in non_field_children {
5198 items.push(
5199 <RelativeImportChildren as ::treesitter_types::FromNode>::from_node(
5200 child, src,
5201 )?,
5202 );
5203 }
5204 items
5205 },
5206 })
5207 }
5208}
5209impl ::treesitter_types::Spanned for RelativeImport<'_> {
5210 fn span(&self) -> ::treesitter_types::Span {
5211 self.span
5212 }
5213}
5214#[derive(Debug, Clone)]
5215pub struct ReturnStatement<'tree> {
5216 pub span: ::treesitter_types::Span,
5217 pub children: ::core::option::Option<ReturnStatementChildren<'tree>>,
5218}
5219impl<'tree> ::treesitter_types::FromNode<'tree> for ReturnStatement<'tree> {
5220 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5221 fn from_node(
5222 node: ::tree_sitter::Node<'tree>,
5223 src: &'tree [u8],
5224 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5225 debug_assert_eq!(node.kind(), "return_statement");
5226 Ok(Self {
5227 span: ::treesitter_types::Span::from(node),
5228 children: {
5229 #[allow(clippy::suspicious_else_formatting)]
5230 let non_field_children = {
5231 let mut cursor = node.walk();
5232 let mut result = ::std::vec::Vec::new();
5233 if cursor.goto_first_child() {
5234 loop {
5235 if cursor.field_name().is_none()
5236 && cursor.node().is_named()
5237 && !cursor.node().is_extra()
5238 {
5239 result.push(cursor.node());
5240 }
5241 if !cursor.goto_next_sibling() {
5242 break;
5243 }
5244 }
5245 }
5246 result
5247 };
5248 match non_field_children.first() {
5249 Some(&child) => Some(
5250 <ReturnStatementChildren as ::treesitter_types::FromNode>::from_node(
5251 child, src,
5252 )?,
5253 ),
5254 None => None,
5255 }
5256 },
5257 })
5258 }
5259}
5260impl ::treesitter_types::Spanned for ReturnStatement<'_> {
5261 fn span(&self) -> ::treesitter_types::Span {
5262 self.span
5263 }
5264}
5265#[derive(Debug, Clone)]
5266pub struct Set<'tree> {
5267 pub span: ::treesitter_types::Span,
5268 pub children: ::std::vec::Vec<SetChildren<'tree>>,
5269}
5270impl<'tree> ::treesitter_types::FromNode<'tree> for Set<'tree> {
5271 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5272 fn from_node(
5273 node: ::tree_sitter::Node<'tree>,
5274 src: &'tree [u8],
5275 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5276 debug_assert_eq!(node.kind(), "set");
5277 Ok(Self {
5278 span: ::treesitter_types::Span::from(node),
5279 children: {
5280 #[allow(clippy::suspicious_else_formatting)]
5281 let non_field_children = {
5282 let mut cursor = node.walk();
5283 let mut result = ::std::vec::Vec::new();
5284 if cursor.goto_first_child() {
5285 loop {
5286 if cursor.field_name().is_none()
5287 && cursor.node().is_named()
5288 && !cursor.node().is_extra()
5289 {
5290 result.push(cursor.node());
5291 }
5292 if !cursor.goto_next_sibling() {
5293 break;
5294 }
5295 }
5296 }
5297 result
5298 };
5299 let mut items = ::std::vec::Vec::new();
5300 for child in non_field_children {
5301 items.push(<SetChildren as ::treesitter_types::FromNode>::from_node(
5302 child, src,
5303 )?);
5304 }
5305 items
5306 },
5307 })
5308 }
5309}
5310impl ::treesitter_types::Spanned for Set<'_> {
5311 fn span(&self) -> ::treesitter_types::Span {
5312 self.span
5313 }
5314}
5315#[derive(Debug, Clone)]
5316pub struct SetComprehension<'tree> {
5317 pub span: ::treesitter_types::Span,
5318 pub body: Expression<'tree>,
5319 pub children: ::std::vec::Vec<SetComprehensionChildren<'tree>>,
5320}
5321impl<'tree> ::treesitter_types::FromNode<'tree> for SetComprehension<'tree> {
5322 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5323 fn from_node(
5324 node: ::tree_sitter::Node<'tree>,
5325 src: &'tree [u8],
5326 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5327 debug_assert_eq!(node.kind(), "set_comprehension");
5328 Ok(Self {
5329 span: ::treesitter_types::Span::from(node),
5330 body: {
5331 let child = node
5332 .child_by_field_name("body")
5333 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
5334 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
5335 },
5336 children: {
5337 #[allow(clippy::suspicious_else_formatting)]
5338 let non_field_children = {
5339 let mut cursor = node.walk();
5340 let mut result = ::std::vec::Vec::new();
5341 if cursor.goto_first_child() {
5342 loop {
5343 if cursor.field_name().is_none()
5344 && cursor.node().is_named()
5345 && !cursor.node().is_extra()
5346 {
5347 result.push(cursor.node());
5348 }
5349 if !cursor.goto_next_sibling() {
5350 break;
5351 }
5352 }
5353 }
5354 result
5355 };
5356 let mut items = ::std::vec::Vec::new();
5357 for child in non_field_children {
5358 items.push(
5359 <SetComprehensionChildren as ::treesitter_types::FromNode>::from_node(
5360 child, src,
5361 )?,
5362 );
5363 }
5364 items
5365 },
5366 })
5367 }
5368}
5369impl ::treesitter_types::Spanned for SetComprehension<'_> {
5370 fn span(&self) -> ::treesitter_types::Span {
5371 self.span
5372 }
5373}
5374#[derive(Debug, Clone)]
5375pub struct Slice<'tree> {
5376 pub span: ::treesitter_types::Span,
5377 pub children: ::std::vec::Vec<Expression<'tree>>,
5378}
5379impl<'tree> ::treesitter_types::FromNode<'tree> for Slice<'tree> {
5380 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5381 fn from_node(
5382 node: ::tree_sitter::Node<'tree>,
5383 src: &'tree [u8],
5384 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5385 debug_assert_eq!(node.kind(), "slice");
5386 Ok(Self {
5387 span: ::treesitter_types::Span::from(node),
5388 children: {
5389 #[allow(clippy::suspicious_else_formatting)]
5390 let non_field_children = {
5391 let mut cursor = node.walk();
5392 let mut result = ::std::vec::Vec::new();
5393 if cursor.goto_first_child() {
5394 loop {
5395 if cursor.field_name().is_none()
5396 && cursor.node().is_named()
5397 && !cursor.node().is_extra()
5398 {
5399 result.push(cursor.node());
5400 }
5401 if !cursor.goto_next_sibling() {
5402 break;
5403 }
5404 }
5405 }
5406 result
5407 };
5408 let mut items = ::std::vec::Vec::new();
5409 for child in non_field_children {
5410 items.push(<Expression as ::treesitter_types::FromNode>::from_node(
5411 child, src,
5412 )?);
5413 }
5414 items
5415 },
5416 })
5417 }
5418}
5419impl ::treesitter_types::Spanned for Slice<'_> {
5420 fn span(&self) -> ::treesitter_types::Span {
5421 self.span
5422 }
5423}
5424#[derive(Debug, Clone)]
5425pub struct SplatPattern<'tree> {
5426 pub span: ::treesitter_types::Span,
5427 pub children: ::core::option::Option<Identifier<'tree>>,
5428}
5429impl<'tree> ::treesitter_types::FromNode<'tree> for SplatPattern<'tree> {
5430 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5431 fn from_node(
5432 node: ::tree_sitter::Node<'tree>,
5433 src: &'tree [u8],
5434 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5435 debug_assert_eq!(node.kind(), "splat_pattern");
5436 Ok(Self {
5437 span: ::treesitter_types::Span::from(node),
5438 children: {
5439 #[allow(clippy::suspicious_else_formatting)]
5440 let non_field_children = {
5441 let mut cursor = node.walk();
5442 let mut result = ::std::vec::Vec::new();
5443 if cursor.goto_first_child() {
5444 loop {
5445 if cursor.field_name().is_none()
5446 && cursor.node().is_named()
5447 && !cursor.node().is_extra()
5448 {
5449 result.push(cursor.node());
5450 }
5451 if !cursor.goto_next_sibling() {
5452 break;
5453 }
5454 }
5455 }
5456 result
5457 };
5458 match non_field_children.first() {
5459 Some(&child) => Some(<Identifier as ::treesitter_types::FromNode>::from_node(
5460 child, src,
5461 )?),
5462 None => None,
5463 }
5464 },
5465 })
5466 }
5467}
5468impl ::treesitter_types::Spanned for SplatPattern<'_> {
5469 fn span(&self) -> ::treesitter_types::Span {
5470 self.span
5471 }
5472}
5473#[derive(Debug, Clone)]
5474pub struct SplatType<'tree> {
5475 pub span: ::treesitter_types::Span,
5476 pub children: Identifier<'tree>,
5477}
5478impl<'tree> ::treesitter_types::FromNode<'tree> for SplatType<'tree> {
5479 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5480 fn from_node(
5481 node: ::tree_sitter::Node<'tree>,
5482 src: &'tree [u8],
5483 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5484 debug_assert_eq!(node.kind(), "splat_type");
5485 Ok(Self {
5486 span: ::treesitter_types::Span::from(node),
5487 children: {
5488 #[allow(clippy::suspicious_else_formatting)]
5489 let non_field_children = {
5490 let mut cursor = node.walk();
5491 let mut result = ::std::vec::Vec::new();
5492 if cursor.goto_first_child() {
5493 loop {
5494 if cursor.field_name().is_none()
5495 && cursor.node().is_named()
5496 && !cursor.node().is_extra()
5497 {
5498 result.push(cursor.node());
5499 }
5500 if !cursor.goto_next_sibling() {
5501 break;
5502 }
5503 }
5504 }
5505 result
5506 };
5507 let child = if let Some(&c) = non_field_children.first() {
5508 c
5509 } else {
5510 let mut fallback_cursor = node.walk();
5511 let mut fallback_child = None;
5512 if fallback_cursor.goto_first_child() {
5513 loop {
5514 if fallback_cursor.field_name().is_none()
5515 && !fallback_cursor.node().is_extra()
5516 {
5517 let candidate = fallback_cursor.node();
5518 #[allow(clippy::needless_question_mark)]
5519 if (|| -> ::core::result::Result<
5520 _,
5521 ::treesitter_types::ParseError,
5522 > {
5523 let child = candidate;
5524 Ok(
5525 <Identifier as ::treesitter_types::FromNode>::from_node(
5526 child,
5527 src,
5528 )?,
5529 )
5530 })()
5531 .is_ok()
5532 {
5533 fallback_child = Some(candidate);
5534 break;
5535 }
5536 }
5537 if !fallback_cursor.goto_next_sibling() {
5538 break;
5539 }
5540 }
5541 }
5542 if fallback_child.is_none() {
5543 let mut cursor2 = node.walk();
5544 if cursor2.goto_first_child() {
5545 loop {
5546 if cursor2.node().is_named() && !cursor2.node().is_extra() {
5547 let candidate = cursor2.node();
5548 #[allow(clippy::needless_question_mark)]
5549 if (|| -> ::core::result::Result<
5550 _,
5551 ::treesitter_types::ParseError,
5552 > {
5553 let child = candidate;
5554 Ok(
5555 <Identifier as ::treesitter_types::FromNode>::from_node(
5556 child,
5557 src,
5558 )?,
5559 )
5560 })()
5561 .is_ok()
5562 {
5563 fallback_child = Some(candidate);
5564 break;
5565 }
5566 }
5567 if !cursor2.goto_next_sibling() {
5568 break;
5569 }
5570 }
5571 }
5572 }
5573 fallback_child.ok_or_else(|| {
5574 ::treesitter_types::ParseError::missing_field("children", node)
5575 })?
5576 };
5577 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)?
5578 },
5579 })
5580 }
5581}
5582impl ::treesitter_types::Spanned for SplatType<'_> {
5583 fn span(&self) -> ::treesitter_types::Span {
5584 self.span
5585 }
5586}
5587#[derive(Debug, Clone)]
5588pub struct String<'tree> {
5589 pub span: ::treesitter_types::Span,
5590 pub children: ::std::vec::Vec<StringChildren<'tree>>,
5591}
5592impl<'tree> ::treesitter_types::FromNode<'tree> for String<'tree> {
5593 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5594 fn from_node(
5595 node: ::tree_sitter::Node<'tree>,
5596 src: &'tree [u8],
5597 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5598 debug_assert_eq!(node.kind(), "string");
5599 Ok(Self {
5600 span: ::treesitter_types::Span::from(node),
5601 children: {
5602 #[allow(clippy::suspicious_else_formatting)]
5603 let non_field_children = {
5604 let mut cursor = node.walk();
5605 let mut result = ::std::vec::Vec::new();
5606 if cursor.goto_first_child() {
5607 loop {
5608 if cursor.field_name().is_none()
5609 && cursor.node().is_named()
5610 && !cursor.node().is_extra()
5611 {
5612 result.push(cursor.node());
5613 }
5614 if !cursor.goto_next_sibling() {
5615 break;
5616 }
5617 }
5618 }
5619 result
5620 };
5621 let mut items = ::std::vec::Vec::new();
5622 for child in non_field_children {
5623 items.push(<StringChildren as ::treesitter_types::FromNode>::from_node(
5624 child, src,
5625 )?);
5626 }
5627 items
5628 },
5629 })
5630 }
5631}
5632impl ::treesitter_types::Spanned for String<'_> {
5633 fn span(&self) -> ::treesitter_types::Span {
5634 self.span
5635 }
5636}
5637#[derive(Debug, Clone)]
5638pub struct StringContent<'tree> {
5639 pub span: ::treesitter_types::Span,
5640 pub children: ::std::vec::Vec<StringContentChildren<'tree>>,
5641}
5642impl<'tree> ::treesitter_types::FromNode<'tree> for StringContent<'tree> {
5643 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5644 fn from_node(
5645 node: ::tree_sitter::Node<'tree>,
5646 src: &'tree [u8],
5647 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5648 debug_assert_eq!(node.kind(), "string_content");
5649 Ok(Self {
5650 span: ::treesitter_types::Span::from(node),
5651 children: {
5652 #[allow(clippy::suspicious_else_formatting)]
5653 let non_field_children = {
5654 let mut cursor = node.walk();
5655 let mut result = ::std::vec::Vec::new();
5656 if cursor.goto_first_child() {
5657 loop {
5658 if cursor.field_name().is_none()
5659 && cursor.node().is_named()
5660 && !cursor.node().is_extra()
5661 {
5662 result.push(cursor.node());
5663 }
5664 if !cursor.goto_next_sibling() {
5665 break;
5666 }
5667 }
5668 }
5669 result
5670 };
5671 let mut items = ::std::vec::Vec::new();
5672 for child in non_field_children {
5673 items.push(
5674 <StringContentChildren as ::treesitter_types::FromNode>::from_node(
5675 child, src,
5676 )?,
5677 );
5678 }
5679 items
5680 },
5681 })
5682 }
5683}
5684impl ::treesitter_types::Spanned for StringContent<'_> {
5685 fn span(&self) -> ::treesitter_types::Span {
5686 self.span
5687 }
5688}
5689#[derive(Debug, Clone)]
5690pub struct Subscript<'tree> {
5691 pub span: ::treesitter_types::Span,
5692 pub subscript: ::std::vec::Vec<SubscriptSubscript<'tree>>,
5693 pub value: PrimaryExpression<'tree>,
5694}
5695impl<'tree> ::treesitter_types::FromNode<'tree> for Subscript<'tree> {
5696 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5697 fn from_node(
5698 node: ::tree_sitter::Node<'tree>,
5699 src: &'tree [u8],
5700 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5701 debug_assert_eq!(node.kind(), "subscript");
5702 Ok(Self {
5703 span: ::treesitter_types::Span::from(node),
5704 subscript: {
5705 let mut cursor = node.walk();
5706 let mut items = ::std::vec::Vec::new();
5707 for child in node.children_by_field_name("subscript", &mut cursor) {
5708 items.push(
5709 <SubscriptSubscript as ::treesitter_types::FromNode>::from_node(
5710 child, src,
5711 )?,
5712 );
5713 }
5714 items
5715 },
5716 value: {
5717 let child = node
5718 .child_by_field_name("value")
5719 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
5720 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(child, src)?
5721 },
5722 })
5723 }
5724}
5725impl ::treesitter_types::Spanned for Subscript<'_> {
5726 fn span(&self) -> ::treesitter_types::Span {
5727 self.span
5728 }
5729}
5730#[derive(Debug, Clone)]
5731pub struct TryStatement<'tree> {
5732 pub span: ::treesitter_types::Span,
5733 pub body: Block<'tree>,
5734 pub children: ::std::vec::Vec<TryStatementChildren<'tree>>,
5735}
5736impl<'tree> ::treesitter_types::FromNode<'tree> for TryStatement<'tree> {
5737 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5738 fn from_node(
5739 node: ::tree_sitter::Node<'tree>,
5740 src: &'tree [u8],
5741 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5742 debug_assert_eq!(node.kind(), "try_statement");
5743 Ok(Self {
5744 span: ::treesitter_types::Span::from(node),
5745 body: {
5746 let child = node
5747 .child_by_field_name("body")
5748 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
5749 <Block as ::treesitter_types::FromNode>::from_node(child, src)?
5750 },
5751 children: {
5752 #[allow(clippy::suspicious_else_formatting)]
5753 let non_field_children = {
5754 let mut cursor = node.walk();
5755 let mut result = ::std::vec::Vec::new();
5756 if cursor.goto_first_child() {
5757 loop {
5758 if cursor.field_name().is_none()
5759 && cursor.node().is_named()
5760 && !cursor.node().is_extra()
5761 {
5762 result.push(cursor.node());
5763 }
5764 if !cursor.goto_next_sibling() {
5765 break;
5766 }
5767 }
5768 }
5769 result
5770 };
5771 let mut items = ::std::vec::Vec::new();
5772 for child in non_field_children {
5773 items.push(
5774 <TryStatementChildren as ::treesitter_types::FromNode>::from_node(
5775 child, src,
5776 )?,
5777 );
5778 }
5779 items
5780 },
5781 })
5782 }
5783}
5784impl ::treesitter_types::Spanned for TryStatement<'_> {
5785 fn span(&self) -> ::treesitter_types::Span {
5786 self.span
5787 }
5788}
5789#[derive(Debug, Clone)]
5790pub struct Tuple<'tree> {
5791 pub span: ::treesitter_types::Span,
5792 pub children: ::std::vec::Vec<TupleChildren<'tree>>,
5793}
5794impl<'tree> ::treesitter_types::FromNode<'tree> for Tuple<'tree> {
5795 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5796 fn from_node(
5797 node: ::tree_sitter::Node<'tree>,
5798 src: &'tree [u8],
5799 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5800 debug_assert_eq!(node.kind(), "tuple");
5801 Ok(Self {
5802 span: ::treesitter_types::Span::from(node),
5803 children: {
5804 #[allow(clippy::suspicious_else_formatting)]
5805 let non_field_children = {
5806 let mut cursor = node.walk();
5807 let mut result = ::std::vec::Vec::new();
5808 if cursor.goto_first_child() {
5809 loop {
5810 if cursor.field_name().is_none()
5811 && cursor.node().is_named()
5812 && !cursor.node().is_extra()
5813 {
5814 result.push(cursor.node());
5815 }
5816 if !cursor.goto_next_sibling() {
5817 break;
5818 }
5819 }
5820 }
5821 result
5822 };
5823 let mut items = ::std::vec::Vec::new();
5824 for child in non_field_children {
5825 items.push(<TupleChildren as ::treesitter_types::FromNode>::from_node(
5826 child, src,
5827 )?);
5828 }
5829 items
5830 },
5831 })
5832 }
5833}
5834impl ::treesitter_types::Spanned for Tuple<'_> {
5835 fn span(&self) -> ::treesitter_types::Span {
5836 self.span
5837 }
5838}
5839#[derive(Debug, Clone)]
5840pub struct TuplePattern<'tree> {
5841 pub span: ::treesitter_types::Span,
5842 pub children: ::std::vec::Vec<TuplePatternChildren<'tree>>,
5843}
5844impl<'tree> ::treesitter_types::FromNode<'tree> for TuplePattern<'tree> {
5845 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5846 fn from_node(
5847 node: ::tree_sitter::Node<'tree>,
5848 src: &'tree [u8],
5849 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5850 debug_assert_eq!(node.kind(), "tuple_pattern");
5851 Ok(Self {
5852 span: ::treesitter_types::Span::from(node),
5853 children: {
5854 #[allow(clippy::suspicious_else_formatting)]
5855 let non_field_children = {
5856 let mut cursor = node.walk();
5857 let mut result = ::std::vec::Vec::new();
5858 if cursor.goto_first_child() {
5859 loop {
5860 if cursor.field_name().is_none()
5861 && cursor.node().is_named()
5862 && !cursor.node().is_extra()
5863 {
5864 result.push(cursor.node());
5865 }
5866 if !cursor.goto_next_sibling() {
5867 break;
5868 }
5869 }
5870 }
5871 result
5872 };
5873 let mut items = ::std::vec::Vec::new();
5874 for child in non_field_children {
5875 items.push(
5876 <TuplePatternChildren as ::treesitter_types::FromNode>::from_node(
5877 child, src,
5878 )?,
5879 );
5880 }
5881 items
5882 },
5883 })
5884 }
5885}
5886impl ::treesitter_types::Spanned for TuplePattern<'_> {
5887 fn span(&self) -> ::treesitter_types::Span {
5888 self.span
5889 }
5890}
5891#[derive(Debug, Clone)]
5892pub struct Type<'tree> {
5893 pub span: ::treesitter_types::Span,
5894 pub children: TypeChildren<'tree>,
5895}
5896impl<'tree> ::treesitter_types::FromNode<'tree> for Type<'tree> {
5897 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5898 fn from_node(
5899 node: ::tree_sitter::Node<'tree>,
5900 src: &'tree [u8],
5901 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5902 debug_assert_eq!(node.kind(), "type");
5903 Ok(Self {
5904 span: ::treesitter_types::Span::from(node),
5905 children: {
5906 #[allow(clippy::suspicious_else_formatting)]
5907 let non_field_children = {
5908 let mut cursor = node.walk();
5909 let mut result = ::std::vec::Vec::new();
5910 if cursor.goto_first_child() {
5911 loop {
5912 if cursor.field_name().is_none()
5913 && cursor.node().is_named()
5914 && !cursor.node().is_extra()
5915 {
5916 result.push(cursor.node());
5917 }
5918 if !cursor.goto_next_sibling() {
5919 break;
5920 }
5921 }
5922 }
5923 result
5924 };
5925 let child = if let Some(&c) = non_field_children.first() {
5926 c
5927 } else {
5928 let mut fallback_cursor = node.walk();
5929 let mut fallback_child = None;
5930 if fallback_cursor.goto_first_child() {
5931 loop {
5932 if fallback_cursor.field_name().is_none()
5933 && !fallback_cursor.node().is_extra()
5934 {
5935 let candidate = fallback_cursor.node();
5936 #[allow(clippy::needless_question_mark)]
5937 if (|| -> ::core::result::Result<
5938 _,
5939 ::treesitter_types::ParseError,
5940 > {
5941 let child = candidate;
5942 Ok(
5943 <TypeChildren as ::treesitter_types::FromNode>::from_node(
5944 child,
5945 src,
5946 )?,
5947 )
5948 })()
5949 .is_ok()
5950 {
5951 fallback_child = Some(candidate);
5952 break;
5953 }
5954 }
5955 if !fallback_cursor.goto_next_sibling() {
5956 break;
5957 }
5958 }
5959 }
5960 if fallback_child.is_none() {
5961 let mut cursor2 = node.walk();
5962 if cursor2.goto_first_child() {
5963 loop {
5964 if cursor2.node().is_named() && !cursor2.node().is_extra() {
5965 let candidate = cursor2.node();
5966 #[allow(clippy::needless_question_mark)]
5967 if (|| -> ::core::result::Result<
5968 _,
5969 ::treesitter_types::ParseError,
5970 > {
5971 let child = candidate;
5972 Ok(
5973 <TypeChildren as ::treesitter_types::FromNode>::from_node(
5974 child,
5975 src,
5976 )?,
5977 )
5978 })()
5979 .is_ok()
5980 {
5981 fallback_child = Some(candidate);
5982 break;
5983 }
5984 }
5985 if !cursor2.goto_next_sibling() {
5986 break;
5987 }
5988 }
5989 }
5990 }
5991 fallback_child.ok_or_else(|| {
5992 ::treesitter_types::ParseError::missing_field("children", node)
5993 })?
5994 };
5995 <TypeChildren as ::treesitter_types::FromNode>::from_node(child, src)?
5996 },
5997 })
5998 }
5999}
6000impl ::treesitter_types::Spanned for Type<'_> {
6001 fn span(&self) -> ::treesitter_types::Span {
6002 self.span
6003 }
6004}
6005#[derive(Debug, Clone)]
6006pub struct TypeAliasStatement<'tree> {
6007 pub span: ::treesitter_types::Span,
6008 pub left: Type<'tree>,
6009 pub right: Type<'tree>,
6010}
6011impl<'tree> ::treesitter_types::FromNode<'tree> for TypeAliasStatement<'tree> {
6012 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6013 fn from_node(
6014 node: ::tree_sitter::Node<'tree>,
6015 src: &'tree [u8],
6016 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6017 debug_assert_eq!(node.kind(), "type_alias_statement");
6018 Ok(Self {
6019 span: ::treesitter_types::Span::from(node),
6020 left: {
6021 let child = node
6022 .child_by_field_name("left")
6023 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
6024 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
6025 },
6026 right: {
6027 let child = node
6028 .child_by_field_name("right")
6029 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
6030 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
6031 },
6032 })
6033 }
6034}
6035impl ::treesitter_types::Spanned for TypeAliasStatement<'_> {
6036 fn span(&self) -> ::treesitter_types::Span {
6037 self.span
6038 }
6039}
6040#[derive(Debug, Clone)]
6041pub struct TypeParameter<'tree> {
6042 pub span: ::treesitter_types::Span,
6043 pub children: ::std::vec::Vec<Type<'tree>>,
6044}
6045impl<'tree> ::treesitter_types::FromNode<'tree> for TypeParameter<'tree> {
6046 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6047 fn from_node(
6048 node: ::tree_sitter::Node<'tree>,
6049 src: &'tree [u8],
6050 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6051 debug_assert_eq!(node.kind(), "type_parameter");
6052 Ok(Self {
6053 span: ::treesitter_types::Span::from(node),
6054 children: {
6055 #[allow(clippy::suspicious_else_formatting)]
6056 let non_field_children = {
6057 let mut cursor = node.walk();
6058 let mut result = ::std::vec::Vec::new();
6059 if cursor.goto_first_child() {
6060 loop {
6061 if cursor.field_name().is_none()
6062 && cursor.node().is_named()
6063 && !cursor.node().is_extra()
6064 {
6065 result.push(cursor.node());
6066 }
6067 if !cursor.goto_next_sibling() {
6068 break;
6069 }
6070 }
6071 }
6072 result
6073 };
6074 let mut items = ::std::vec::Vec::new();
6075 for child in non_field_children {
6076 items.push(<Type as ::treesitter_types::FromNode>::from_node(
6077 child, src,
6078 )?);
6079 }
6080 items
6081 },
6082 })
6083 }
6084}
6085impl ::treesitter_types::Spanned for TypeParameter<'_> {
6086 fn span(&self) -> ::treesitter_types::Span {
6087 self.span
6088 }
6089}
6090#[derive(Debug, Clone)]
6091pub struct TypedDefaultParameter<'tree> {
6092 pub span: ::treesitter_types::Span,
6093 pub name: Identifier<'tree>,
6094 pub r#type: Type<'tree>,
6095 pub value: Expression<'tree>,
6096}
6097impl<'tree> ::treesitter_types::FromNode<'tree> for TypedDefaultParameter<'tree> {
6098 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6099 fn from_node(
6100 node: ::tree_sitter::Node<'tree>,
6101 src: &'tree [u8],
6102 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6103 debug_assert_eq!(node.kind(), "typed_default_parameter");
6104 Ok(Self {
6105 span: ::treesitter_types::Span::from(node),
6106 name: {
6107 let child = node
6108 .child_by_field_name("name")
6109 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
6110 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)?
6111 },
6112 r#type: {
6113 let child = node
6114 .child_by_field_name("type")
6115 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("type", node))?;
6116 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
6117 },
6118 value: {
6119 let child = node
6120 .child_by_field_name("value")
6121 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
6122 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
6123 },
6124 })
6125 }
6126}
6127impl ::treesitter_types::Spanned for TypedDefaultParameter<'_> {
6128 fn span(&self) -> ::treesitter_types::Span {
6129 self.span
6130 }
6131}
6132#[derive(Debug, Clone)]
6133pub struct TypedParameter<'tree> {
6134 pub span: ::treesitter_types::Span,
6135 pub r#type: Type<'tree>,
6136 pub children: TypedParameterChildren<'tree>,
6137}
6138impl<'tree> ::treesitter_types::FromNode<'tree> for TypedParameter<'tree> {
6139 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6140 fn from_node(
6141 node: ::tree_sitter::Node<'tree>,
6142 src: &'tree [u8],
6143 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6144 debug_assert_eq!(node.kind(), "typed_parameter");
6145 Ok(Self {
6146 span: ::treesitter_types::Span::from(node),
6147 r#type: {
6148 let child = node
6149 .child_by_field_name("type")
6150 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("type", node))?;
6151 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
6152 },
6153 children: {
6154 #[allow(clippy::suspicious_else_formatting)]
6155 let non_field_children = {
6156 let mut cursor = node.walk();
6157 let mut result = ::std::vec::Vec::new();
6158 if cursor.goto_first_child() {
6159 loop {
6160 if cursor.field_name().is_none()
6161 && cursor.node().is_named()
6162 && !cursor.node().is_extra()
6163 {
6164 result.push(cursor.node());
6165 }
6166 if !cursor.goto_next_sibling() {
6167 break;
6168 }
6169 }
6170 }
6171 result
6172 };
6173 let child = if let Some(&c) = non_field_children.first() {
6174 c
6175 } else {
6176 let mut fallback_cursor = node.walk();
6177 let mut fallback_child = None;
6178 if fallback_cursor.goto_first_child() {
6179 loop {
6180 if fallback_cursor.field_name().is_none()
6181 && !fallback_cursor.node().is_extra()
6182 {
6183 let candidate = fallback_cursor.node();
6184 #[allow(clippy::needless_question_mark)]
6185 if (|| -> ::core::result::Result<
6186 _,
6187 ::treesitter_types::ParseError,
6188 > {
6189 let child = candidate;
6190 Ok(
6191 <TypedParameterChildren as ::treesitter_types::FromNode>::from_node(
6192 child,
6193 src,
6194 )?,
6195 )
6196 })()
6197 .is_ok()
6198 {
6199 fallback_child = Some(candidate);
6200 break;
6201 }
6202 }
6203 if !fallback_cursor.goto_next_sibling() {
6204 break;
6205 }
6206 }
6207 }
6208 if fallback_child.is_none() {
6209 let mut cursor2 = node.walk();
6210 if cursor2.goto_first_child() {
6211 loop {
6212 if cursor2.node().is_named() && !cursor2.node().is_extra() {
6213 let candidate = cursor2.node();
6214 #[allow(clippy::needless_question_mark)]
6215 if (|| -> ::core::result::Result<
6216 _,
6217 ::treesitter_types::ParseError,
6218 > {
6219 let child = candidate;
6220 Ok(
6221 <TypedParameterChildren as ::treesitter_types::FromNode>::from_node(
6222 child,
6223 src,
6224 )?,
6225 )
6226 })()
6227 .is_ok()
6228 {
6229 fallback_child = Some(candidate);
6230 break;
6231 }
6232 }
6233 if !cursor2.goto_next_sibling() {
6234 break;
6235 }
6236 }
6237 }
6238 }
6239 fallback_child.ok_or_else(|| {
6240 ::treesitter_types::ParseError::missing_field("children", node)
6241 })?
6242 };
6243 <TypedParameterChildren as ::treesitter_types::FromNode>::from_node(child, src)?
6244 },
6245 })
6246 }
6247}
6248impl ::treesitter_types::Spanned for TypedParameter<'_> {
6249 fn span(&self) -> ::treesitter_types::Span {
6250 self.span
6251 }
6252}
6253#[derive(Debug, Clone)]
6254pub struct UnaryOperator<'tree> {
6255 pub span: ::treesitter_types::Span,
6256 pub argument: PrimaryExpression<'tree>,
6257 pub operator: UnaryOperatorOperator,
6258}
6259impl<'tree> ::treesitter_types::FromNode<'tree> for UnaryOperator<'tree> {
6260 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6261 fn from_node(
6262 node: ::tree_sitter::Node<'tree>,
6263 src: &'tree [u8],
6264 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6265 debug_assert_eq!(node.kind(), "unary_operator");
6266 Ok(Self {
6267 span: ::treesitter_types::Span::from(node),
6268 argument: {
6269 let child = node.child_by_field_name("argument").ok_or_else(|| {
6270 ::treesitter_types::ParseError::missing_field("argument", node)
6271 })?;
6272 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(child, src)?
6273 },
6274 operator: {
6275 let child = node.child_by_field_name("operator").ok_or_else(|| {
6276 ::treesitter_types::ParseError::missing_field("operator", node)
6277 })?;
6278 <UnaryOperatorOperator as ::treesitter_types::FromNode>::from_node(child, src)?
6279 },
6280 })
6281 }
6282}
6283impl ::treesitter_types::Spanned for UnaryOperator<'_> {
6284 fn span(&self) -> ::treesitter_types::Span {
6285 self.span
6286 }
6287}
6288#[derive(Debug, Clone)]
6289pub struct UnionPattern<'tree> {
6290 pub span: ::treesitter_types::Span,
6291 pub children: ::std::vec::Vec<UnionPatternChildren<'tree>>,
6292}
6293impl<'tree> ::treesitter_types::FromNode<'tree> for UnionPattern<'tree> {
6294 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6295 fn from_node(
6296 node: ::tree_sitter::Node<'tree>,
6297 src: &'tree [u8],
6298 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6299 debug_assert_eq!(node.kind(), "union_pattern");
6300 Ok(Self {
6301 span: ::treesitter_types::Span::from(node),
6302 children: {
6303 #[allow(clippy::suspicious_else_formatting)]
6304 let non_field_children = {
6305 let mut cursor = node.walk();
6306 let mut result = ::std::vec::Vec::new();
6307 if cursor.goto_first_child() {
6308 loop {
6309 if cursor.field_name().is_none()
6310 && cursor.node().is_named()
6311 && !cursor.node().is_extra()
6312 {
6313 result.push(cursor.node());
6314 }
6315 if !cursor.goto_next_sibling() {
6316 break;
6317 }
6318 }
6319 }
6320 result
6321 };
6322 let mut items = ::std::vec::Vec::new();
6323 for child in non_field_children {
6324 items.push(
6325 <UnionPatternChildren as ::treesitter_types::FromNode>::from_node(
6326 child, src,
6327 )?,
6328 );
6329 }
6330 items
6331 },
6332 })
6333 }
6334}
6335impl ::treesitter_types::Spanned for UnionPattern<'_> {
6336 fn span(&self) -> ::treesitter_types::Span {
6337 self.span
6338 }
6339}
6340#[derive(Debug, Clone)]
6341pub struct UnionType<'tree> {
6342 pub span: ::treesitter_types::Span,
6343 pub children: ::std::vec::Vec<Type<'tree>>,
6344}
6345impl<'tree> ::treesitter_types::FromNode<'tree> for UnionType<'tree> {
6346 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6347 fn from_node(
6348 node: ::tree_sitter::Node<'tree>,
6349 src: &'tree [u8],
6350 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6351 debug_assert_eq!(node.kind(), "union_type");
6352 Ok(Self {
6353 span: ::treesitter_types::Span::from(node),
6354 children: {
6355 #[allow(clippy::suspicious_else_formatting)]
6356 let non_field_children = {
6357 let mut cursor = node.walk();
6358 let mut result = ::std::vec::Vec::new();
6359 if cursor.goto_first_child() {
6360 loop {
6361 if cursor.field_name().is_none()
6362 && cursor.node().is_named()
6363 && !cursor.node().is_extra()
6364 {
6365 result.push(cursor.node());
6366 }
6367 if !cursor.goto_next_sibling() {
6368 break;
6369 }
6370 }
6371 }
6372 result
6373 };
6374 let mut items = ::std::vec::Vec::new();
6375 for child in non_field_children {
6376 items.push(<Type as ::treesitter_types::FromNode>::from_node(
6377 child, src,
6378 )?);
6379 }
6380 items
6381 },
6382 })
6383 }
6384}
6385impl ::treesitter_types::Spanned for UnionType<'_> {
6386 fn span(&self) -> ::treesitter_types::Span {
6387 self.span
6388 }
6389}
6390#[derive(Debug, Clone)]
6391pub struct WhileStatement<'tree> {
6392 pub span: ::treesitter_types::Span,
6393 pub alternative: ::core::option::Option<ElseClause<'tree>>,
6394 pub body: Block<'tree>,
6395 pub condition: Expression<'tree>,
6396}
6397impl<'tree> ::treesitter_types::FromNode<'tree> for WhileStatement<'tree> {
6398 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6399 fn from_node(
6400 node: ::tree_sitter::Node<'tree>,
6401 src: &'tree [u8],
6402 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6403 debug_assert_eq!(node.kind(), "while_statement");
6404 Ok(Self {
6405 span: ::treesitter_types::Span::from(node),
6406 alternative: match node.child_by_field_name("alternative") {
6407 Some(child) => Some(<ElseClause as ::treesitter_types::FromNode>::from_node(
6408 child, src,
6409 )?),
6410 None => None,
6411 },
6412 body: {
6413 let child = node
6414 .child_by_field_name("body")
6415 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
6416 <Block as ::treesitter_types::FromNode>::from_node(child, src)?
6417 },
6418 condition: {
6419 let child = node.child_by_field_name("condition").ok_or_else(|| {
6420 ::treesitter_types::ParseError::missing_field("condition", node)
6421 })?;
6422 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
6423 },
6424 })
6425 }
6426}
6427impl ::treesitter_types::Spanned for WhileStatement<'_> {
6428 fn span(&self) -> ::treesitter_types::Span {
6429 self.span
6430 }
6431}
6432#[derive(Debug, Clone)]
6433pub struct WildcardImport<'tree> {
6434 pub span: ::treesitter_types::Span,
6435 text: &'tree str,
6436}
6437impl<'tree> ::treesitter_types::FromNode<'tree> for WildcardImport<'tree> {
6438 fn from_node(
6439 node: ::tree_sitter::Node<'tree>,
6440 src: &'tree [u8],
6441 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6442 debug_assert_eq!(node.kind(), "wildcard_import");
6443 Ok(Self {
6444 span: ::treesitter_types::Span::from(node),
6445 text: node.utf8_text(src)?,
6446 })
6447 }
6448}
6449impl<'tree> ::treesitter_types::LeafNode<'tree> for WildcardImport<'tree> {
6450 fn text(&self) -> &'tree str {
6451 self.text
6452 }
6453}
6454impl ::treesitter_types::Spanned for WildcardImport<'_> {
6455 fn span(&self) -> ::treesitter_types::Span {
6456 self.span
6457 }
6458}
6459#[derive(Debug, Clone)]
6460pub struct WithClause<'tree> {
6461 pub span: ::treesitter_types::Span,
6462 pub children: ::std::vec::Vec<WithItem<'tree>>,
6463}
6464impl<'tree> ::treesitter_types::FromNode<'tree> for WithClause<'tree> {
6465 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6466 fn from_node(
6467 node: ::tree_sitter::Node<'tree>,
6468 src: &'tree [u8],
6469 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6470 debug_assert_eq!(node.kind(), "with_clause");
6471 Ok(Self {
6472 span: ::treesitter_types::Span::from(node),
6473 children: {
6474 #[allow(clippy::suspicious_else_formatting)]
6475 let non_field_children = {
6476 let mut cursor = node.walk();
6477 let mut result = ::std::vec::Vec::new();
6478 if cursor.goto_first_child() {
6479 loop {
6480 if cursor.field_name().is_none()
6481 && cursor.node().is_named()
6482 && !cursor.node().is_extra()
6483 {
6484 result.push(cursor.node());
6485 }
6486 if !cursor.goto_next_sibling() {
6487 break;
6488 }
6489 }
6490 }
6491 result
6492 };
6493 let mut items = ::std::vec::Vec::new();
6494 for child in non_field_children {
6495 items.push(<WithItem as ::treesitter_types::FromNode>::from_node(
6496 child, src,
6497 )?);
6498 }
6499 items
6500 },
6501 })
6502 }
6503}
6504impl ::treesitter_types::Spanned for WithClause<'_> {
6505 fn span(&self) -> ::treesitter_types::Span {
6506 self.span
6507 }
6508}
6509#[derive(Debug, Clone)]
6510pub struct WithItem<'tree> {
6511 pub span: ::treesitter_types::Span,
6512 pub value: Expression<'tree>,
6513}
6514impl<'tree> ::treesitter_types::FromNode<'tree> for WithItem<'tree> {
6515 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6516 fn from_node(
6517 node: ::tree_sitter::Node<'tree>,
6518 src: &'tree [u8],
6519 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6520 debug_assert_eq!(node.kind(), "with_item");
6521 Ok(Self {
6522 span: ::treesitter_types::Span::from(node),
6523 value: {
6524 let child = node
6525 .child_by_field_name("value")
6526 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
6527 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
6528 },
6529 })
6530 }
6531}
6532impl ::treesitter_types::Spanned for WithItem<'_> {
6533 fn span(&self) -> ::treesitter_types::Span {
6534 self.span
6535 }
6536}
6537#[derive(Debug, Clone)]
6538pub struct WithStatement<'tree> {
6539 pub span: ::treesitter_types::Span,
6540 pub body: Block<'tree>,
6541 pub children: WithClause<'tree>,
6542}
6543impl<'tree> ::treesitter_types::FromNode<'tree> for WithStatement<'tree> {
6544 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6545 fn from_node(
6546 node: ::tree_sitter::Node<'tree>,
6547 src: &'tree [u8],
6548 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6549 debug_assert_eq!(node.kind(), "with_statement");
6550 Ok(Self {
6551 span: ::treesitter_types::Span::from(node),
6552 body: {
6553 let child = node
6554 .child_by_field_name("body")
6555 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
6556 <Block as ::treesitter_types::FromNode>::from_node(child, src)?
6557 },
6558 children: {
6559 #[allow(clippy::suspicious_else_formatting)]
6560 let non_field_children = {
6561 let mut cursor = node.walk();
6562 let mut result = ::std::vec::Vec::new();
6563 if cursor.goto_first_child() {
6564 loop {
6565 if cursor.field_name().is_none()
6566 && cursor.node().is_named()
6567 && !cursor.node().is_extra()
6568 {
6569 result.push(cursor.node());
6570 }
6571 if !cursor.goto_next_sibling() {
6572 break;
6573 }
6574 }
6575 }
6576 result
6577 };
6578 let child = if let Some(&c) = non_field_children.first() {
6579 c
6580 } else {
6581 let mut fallback_cursor = node.walk();
6582 let mut fallback_child = None;
6583 if fallback_cursor.goto_first_child() {
6584 loop {
6585 if fallback_cursor.field_name().is_none()
6586 && !fallback_cursor.node().is_extra()
6587 {
6588 let candidate = fallback_cursor.node();
6589 #[allow(clippy::needless_question_mark)]
6590 if (|| -> ::core::result::Result<
6591 _,
6592 ::treesitter_types::ParseError,
6593 > {
6594 let child = candidate;
6595 Ok(
6596 <WithClause as ::treesitter_types::FromNode>::from_node(
6597 child,
6598 src,
6599 )?,
6600 )
6601 })()
6602 .is_ok()
6603 {
6604 fallback_child = Some(candidate);
6605 break;
6606 }
6607 }
6608 if !fallback_cursor.goto_next_sibling() {
6609 break;
6610 }
6611 }
6612 }
6613 if fallback_child.is_none() {
6614 let mut cursor2 = node.walk();
6615 if cursor2.goto_first_child() {
6616 loop {
6617 if cursor2.node().is_named() && !cursor2.node().is_extra() {
6618 let candidate = cursor2.node();
6619 #[allow(clippy::needless_question_mark)]
6620 if (|| -> ::core::result::Result<
6621 _,
6622 ::treesitter_types::ParseError,
6623 > {
6624 let child = candidate;
6625 Ok(
6626 <WithClause as ::treesitter_types::FromNode>::from_node(
6627 child,
6628 src,
6629 )?,
6630 )
6631 })()
6632 .is_ok()
6633 {
6634 fallback_child = Some(candidate);
6635 break;
6636 }
6637 }
6638 if !cursor2.goto_next_sibling() {
6639 break;
6640 }
6641 }
6642 }
6643 }
6644 fallback_child.ok_or_else(|| {
6645 ::treesitter_types::ParseError::missing_field("children", node)
6646 })?
6647 };
6648 <WithClause as ::treesitter_types::FromNode>::from_node(child, src)?
6649 },
6650 })
6651 }
6652}
6653impl ::treesitter_types::Spanned for WithStatement<'_> {
6654 fn span(&self) -> ::treesitter_types::Span {
6655 self.span
6656 }
6657}
6658#[derive(Debug, Clone)]
6659pub struct Yield<'tree> {
6660 pub span: ::treesitter_types::Span,
6661 pub children: ::core::option::Option<YieldChildren<'tree>>,
6662}
6663impl<'tree> ::treesitter_types::FromNode<'tree> for Yield<'tree> {
6664 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6665 fn from_node(
6666 node: ::tree_sitter::Node<'tree>,
6667 src: &'tree [u8],
6668 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6669 debug_assert_eq!(node.kind(), "yield");
6670 Ok(Self {
6671 span: ::treesitter_types::Span::from(node),
6672 children: {
6673 #[allow(clippy::suspicious_else_formatting)]
6674 let non_field_children = {
6675 let mut cursor = node.walk();
6676 let mut result = ::std::vec::Vec::new();
6677 if cursor.goto_first_child() {
6678 loop {
6679 if cursor.field_name().is_none()
6680 && cursor.node().is_named()
6681 && !cursor.node().is_extra()
6682 {
6683 result.push(cursor.node());
6684 }
6685 if !cursor.goto_next_sibling() {
6686 break;
6687 }
6688 }
6689 }
6690 result
6691 };
6692 match non_field_children.first() {
6693 Some(&child) => Some(
6694 <YieldChildren as ::treesitter_types::FromNode>::from_node(child, src)?,
6695 ),
6696 None => None,
6697 }
6698 },
6699 })
6700 }
6701}
6702impl ::treesitter_types::Spanned for Yield<'_> {
6703 fn span(&self) -> ::treesitter_types::Span {
6704 self.span
6705 }
6706}
6707#[derive(Debug, Clone)]
6708pub struct Comment<'tree> {
6709 pub span: ::treesitter_types::Span,
6710 text: &'tree str,
6711}
6712impl<'tree> ::treesitter_types::FromNode<'tree> for Comment<'tree> {
6713 fn from_node(
6714 node: ::tree_sitter::Node<'tree>,
6715 src: &'tree [u8],
6716 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6717 debug_assert_eq!(node.kind(), "comment");
6718 Ok(Self {
6719 span: ::treesitter_types::Span::from(node),
6720 text: node.utf8_text(src)?,
6721 })
6722 }
6723}
6724impl<'tree> ::treesitter_types::LeafNode<'tree> for Comment<'tree> {
6725 fn text(&self) -> &'tree str {
6726 self.text
6727 }
6728}
6729impl ::treesitter_types::Spanned for Comment<'_> {
6730 fn span(&self) -> ::treesitter_types::Span {
6731 self.span
6732 }
6733}
6734#[derive(Debug, Clone)]
6735pub struct Ellipsis<'tree> {
6736 pub span: ::treesitter_types::Span,
6737 text: &'tree str,
6738}
6739impl<'tree> ::treesitter_types::FromNode<'tree> for Ellipsis<'tree> {
6740 fn from_node(
6741 node: ::tree_sitter::Node<'tree>,
6742 src: &'tree [u8],
6743 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6744 debug_assert_eq!(node.kind(), "ellipsis");
6745 Ok(Self {
6746 span: ::treesitter_types::Span::from(node),
6747 text: node.utf8_text(src)?,
6748 })
6749 }
6750}
6751impl<'tree> ::treesitter_types::LeafNode<'tree> for Ellipsis<'tree> {
6752 fn text(&self) -> &'tree str {
6753 self.text
6754 }
6755}
6756impl ::treesitter_types::Spanned for Ellipsis<'_> {
6757 fn span(&self) -> ::treesitter_types::Span {
6758 self.span
6759 }
6760}
6761#[derive(Debug, Clone)]
6762pub struct EscapeInterpolation<'tree> {
6763 pub span: ::treesitter_types::Span,
6764 text: &'tree str,
6765}
6766impl<'tree> ::treesitter_types::FromNode<'tree> for EscapeInterpolation<'tree> {
6767 fn from_node(
6768 node: ::tree_sitter::Node<'tree>,
6769 src: &'tree [u8],
6770 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6771 debug_assert_eq!(node.kind(), "escape_interpolation");
6772 Ok(Self {
6773 span: ::treesitter_types::Span::from(node),
6774 text: node.utf8_text(src)?,
6775 })
6776 }
6777}
6778impl<'tree> ::treesitter_types::LeafNode<'tree> for EscapeInterpolation<'tree> {
6779 fn text(&self) -> &'tree str {
6780 self.text
6781 }
6782}
6783impl ::treesitter_types::Spanned for EscapeInterpolation<'_> {
6784 fn span(&self) -> ::treesitter_types::Span {
6785 self.span
6786 }
6787}
6788#[derive(Debug, Clone)]
6789pub struct EscapeSequence<'tree> {
6790 pub span: ::treesitter_types::Span,
6791 text: &'tree str,
6792}
6793impl<'tree> ::treesitter_types::FromNode<'tree> for EscapeSequence<'tree> {
6794 fn from_node(
6795 node: ::tree_sitter::Node<'tree>,
6796 src: &'tree [u8],
6797 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6798 debug_assert_eq!(node.kind(), "escape_sequence");
6799 Ok(Self {
6800 span: ::treesitter_types::Span::from(node),
6801 text: node.utf8_text(src)?,
6802 })
6803 }
6804}
6805impl<'tree> ::treesitter_types::LeafNode<'tree> for EscapeSequence<'tree> {
6806 fn text(&self) -> &'tree str {
6807 self.text
6808 }
6809}
6810impl ::treesitter_types::Spanned for EscapeSequence<'_> {
6811 fn span(&self) -> ::treesitter_types::Span {
6812 self.span
6813 }
6814}
6815#[derive(Debug, Clone)]
6816pub struct False<'tree> {
6817 pub span: ::treesitter_types::Span,
6818 text: &'tree str,
6819}
6820impl<'tree> ::treesitter_types::FromNode<'tree> for False<'tree> {
6821 fn from_node(
6822 node: ::tree_sitter::Node<'tree>,
6823 src: &'tree [u8],
6824 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6825 debug_assert_eq!(node.kind(), "false");
6826 Ok(Self {
6827 span: ::treesitter_types::Span::from(node),
6828 text: node.utf8_text(src)?,
6829 })
6830 }
6831}
6832impl<'tree> ::treesitter_types::LeafNode<'tree> for False<'tree> {
6833 fn text(&self) -> &'tree str {
6834 self.text
6835 }
6836}
6837impl ::treesitter_types::Spanned for False<'_> {
6838 fn span(&self) -> ::treesitter_types::Span {
6839 self.span
6840 }
6841}
6842#[derive(Debug, Clone)]
6843pub struct Float<'tree> {
6844 pub span: ::treesitter_types::Span,
6845 text: &'tree str,
6846}
6847impl<'tree> ::treesitter_types::FromNode<'tree> for Float<'tree> {
6848 fn from_node(
6849 node: ::tree_sitter::Node<'tree>,
6850 src: &'tree [u8],
6851 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6852 debug_assert_eq!(node.kind(), "float");
6853 Ok(Self {
6854 span: ::treesitter_types::Span::from(node),
6855 text: node.utf8_text(src)?,
6856 })
6857 }
6858}
6859impl<'tree> ::treesitter_types::LeafNode<'tree> for Float<'tree> {
6860 fn text(&self) -> &'tree str {
6861 self.text
6862 }
6863}
6864impl ::treesitter_types::Spanned for Float<'_> {
6865 fn span(&self) -> ::treesitter_types::Span {
6866 self.span
6867 }
6868}
6869#[derive(Debug, Clone)]
6870pub struct Identifier<'tree> {
6871 pub span: ::treesitter_types::Span,
6872 text: &'tree str,
6873}
6874impl<'tree> ::treesitter_types::FromNode<'tree> for Identifier<'tree> {
6875 fn from_node(
6876 node: ::tree_sitter::Node<'tree>,
6877 src: &'tree [u8],
6878 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6879 debug_assert_eq!(node.kind(), "identifier");
6880 Ok(Self {
6881 span: ::treesitter_types::Span::from(node),
6882 text: node.utf8_text(src)?,
6883 })
6884 }
6885}
6886impl<'tree> ::treesitter_types::LeafNode<'tree> for Identifier<'tree> {
6887 fn text(&self) -> &'tree str {
6888 self.text
6889 }
6890}
6891impl ::treesitter_types::Spanned for Identifier<'_> {
6892 fn span(&self) -> ::treesitter_types::Span {
6893 self.span
6894 }
6895}
6896#[derive(Debug, Clone)]
6897pub struct Integer<'tree> {
6898 pub span: ::treesitter_types::Span,
6899 text: &'tree str,
6900}
6901impl<'tree> ::treesitter_types::FromNode<'tree> for Integer<'tree> {
6902 fn from_node(
6903 node: ::tree_sitter::Node<'tree>,
6904 src: &'tree [u8],
6905 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6906 debug_assert_eq!(node.kind(), "integer");
6907 Ok(Self {
6908 span: ::treesitter_types::Span::from(node),
6909 text: node.utf8_text(src)?,
6910 })
6911 }
6912}
6913impl<'tree> ::treesitter_types::LeafNode<'tree> for Integer<'tree> {
6914 fn text(&self) -> &'tree str {
6915 self.text
6916 }
6917}
6918impl ::treesitter_types::Spanned for Integer<'_> {
6919 fn span(&self) -> ::treesitter_types::Span {
6920 self.span
6921 }
6922}
6923#[derive(Debug, Clone)]
6924pub struct LineContinuation<'tree> {
6925 pub span: ::treesitter_types::Span,
6926 text: &'tree str,
6927}
6928impl<'tree> ::treesitter_types::FromNode<'tree> for LineContinuation<'tree> {
6929 fn from_node(
6930 node: ::tree_sitter::Node<'tree>,
6931 src: &'tree [u8],
6932 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6933 debug_assert_eq!(node.kind(), "line_continuation");
6934 Ok(Self {
6935 span: ::treesitter_types::Span::from(node),
6936 text: node.utf8_text(src)?,
6937 })
6938 }
6939}
6940impl<'tree> ::treesitter_types::LeafNode<'tree> for LineContinuation<'tree> {
6941 fn text(&self) -> &'tree str {
6942 self.text
6943 }
6944}
6945impl ::treesitter_types::Spanned for LineContinuation<'_> {
6946 fn span(&self) -> ::treesitter_types::Span {
6947 self.span
6948 }
6949}
6950#[derive(Debug, Clone)]
6951pub struct None<'tree> {
6952 pub span: ::treesitter_types::Span,
6953 text: &'tree str,
6954}
6955impl<'tree> ::treesitter_types::FromNode<'tree> for None<'tree> {
6956 fn from_node(
6957 node: ::tree_sitter::Node<'tree>,
6958 src: &'tree [u8],
6959 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6960 debug_assert_eq!(node.kind(), "none");
6961 Ok(Self {
6962 span: ::treesitter_types::Span::from(node),
6963 text: node.utf8_text(src)?,
6964 })
6965 }
6966}
6967impl<'tree> ::treesitter_types::LeafNode<'tree> for None<'tree> {
6968 fn text(&self) -> &'tree str {
6969 self.text
6970 }
6971}
6972impl ::treesitter_types::Spanned for None<'_> {
6973 fn span(&self) -> ::treesitter_types::Span {
6974 self.span
6975 }
6976}
6977#[derive(Debug, Clone)]
6978pub struct StringEnd<'tree> {
6979 pub span: ::treesitter_types::Span,
6980 text: &'tree str,
6981}
6982impl<'tree> ::treesitter_types::FromNode<'tree> for StringEnd<'tree> {
6983 fn from_node(
6984 node: ::tree_sitter::Node<'tree>,
6985 src: &'tree [u8],
6986 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6987 debug_assert_eq!(node.kind(), "string_end");
6988 Ok(Self {
6989 span: ::treesitter_types::Span::from(node),
6990 text: node.utf8_text(src)?,
6991 })
6992 }
6993}
6994impl<'tree> ::treesitter_types::LeafNode<'tree> for StringEnd<'tree> {
6995 fn text(&self) -> &'tree str {
6996 self.text
6997 }
6998}
6999impl ::treesitter_types::Spanned for StringEnd<'_> {
7000 fn span(&self) -> ::treesitter_types::Span {
7001 self.span
7002 }
7003}
7004#[derive(Debug, Clone)]
7005pub struct StringStart<'tree> {
7006 pub span: ::treesitter_types::Span,
7007 text: &'tree str,
7008}
7009impl<'tree> ::treesitter_types::FromNode<'tree> for StringStart<'tree> {
7010 fn from_node(
7011 node: ::tree_sitter::Node<'tree>,
7012 src: &'tree [u8],
7013 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7014 debug_assert_eq!(node.kind(), "string_start");
7015 Ok(Self {
7016 span: ::treesitter_types::Span::from(node),
7017 text: node.utf8_text(src)?,
7018 })
7019 }
7020}
7021impl<'tree> ::treesitter_types::LeafNode<'tree> for StringStart<'tree> {
7022 fn text(&self) -> &'tree str {
7023 self.text
7024 }
7025}
7026impl ::treesitter_types::Spanned for StringStart<'_> {
7027 fn span(&self) -> ::treesitter_types::Span {
7028 self.span
7029 }
7030}
7031#[derive(Debug, Clone)]
7032pub struct True<'tree> {
7033 pub span: ::treesitter_types::Span,
7034 text: &'tree str,
7035}
7036impl<'tree> ::treesitter_types::FromNode<'tree> for True<'tree> {
7037 fn from_node(
7038 node: ::tree_sitter::Node<'tree>,
7039 src: &'tree [u8],
7040 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7041 debug_assert_eq!(node.kind(), "true");
7042 Ok(Self {
7043 span: ::treesitter_types::Span::from(node),
7044 text: node.utf8_text(src)?,
7045 })
7046 }
7047}
7048impl<'tree> ::treesitter_types::LeafNode<'tree> for True<'tree> {
7049 fn text(&self) -> &'tree str {
7050 self.text
7051 }
7052}
7053impl ::treesitter_types::Spanned for True<'_> {
7054 fn span(&self) -> ::treesitter_types::Span {
7055 self.span
7056 }
7057}
7058#[derive(Debug, Clone)]
7059pub struct TypeConversion<'tree> {
7060 pub span: ::treesitter_types::Span,
7061 text: &'tree str,
7062}
7063impl<'tree> ::treesitter_types::FromNode<'tree> for TypeConversion<'tree> {
7064 fn from_node(
7065 node: ::tree_sitter::Node<'tree>,
7066 src: &'tree [u8],
7067 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7068 debug_assert_eq!(node.kind(), "type_conversion");
7069 Ok(Self {
7070 span: ::treesitter_types::Span::from(node),
7071 text: node.utf8_text(src)?,
7072 })
7073 }
7074}
7075impl<'tree> ::treesitter_types::LeafNode<'tree> for TypeConversion<'tree> {
7076 fn text(&self) -> &'tree str {
7077 self.text
7078 }
7079}
7080impl ::treesitter_types::Spanned for TypeConversion<'_> {
7081 fn span(&self) -> ::treesitter_types::Span {
7082 self.span
7083 }
7084}
7085#[derive(Debug, Clone)]
7086pub struct AsPatternTarget<'tree> {
7087 pub span: ::treesitter_types::Span,
7088 text: &'tree str,
7089}
7090impl<'tree> ::treesitter_types::FromNode<'tree> for AsPatternTarget<'tree> {
7091 fn from_node(
7092 node: ::tree_sitter::Node<'tree>,
7093 src: &'tree [u8],
7094 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7095 debug_assert_eq!(node.kind(), "as_pattern_target");
7096 Ok(Self {
7097 span: ::treesitter_types::Span::from(node),
7098 text: node.utf8_text(src)?,
7099 })
7100 }
7101}
7102impl<'tree> ::treesitter_types::LeafNode<'tree> for AsPatternTarget<'tree> {
7103 fn text(&self) -> &'tree str {
7104 self.text
7105 }
7106}
7107impl ::treesitter_types::Spanned for AsPatternTarget<'_> {
7108 fn span(&self) -> ::treesitter_types::Span {
7109 self.span
7110 }
7111}
7112#[derive(Debug, Clone)]
7113pub enum ArgumentListChildren<'tree> {
7114 DictionarySplat(::std::boxed::Box<DictionarySplat<'tree>>),
7115 Expression(::std::boxed::Box<Expression<'tree>>),
7116 KeywordArgument(::std::boxed::Box<KeywordArgument<'tree>>),
7117 ListSplat(::std::boxed::Box<ListSplat<'tree>>),
7118 ParenthesizedExpression(::std::boxed::Box<ParenthesizedExpression<'tree>>),
7119}
7120impl<'tree> ::treesitter_types::FromNode<'tree> for ArgumentListChildren<'tree> {
7121 #[allow(clippy::collapsible_else_if)]
7122 fn from_node(
7123 node: ::tree_sitter::Node<'tree>,
7124 src: &'tree [u8],
7125 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7126 match node.kind() {
7127 "dictionary_splat" => Ok(Self::DictionarySplat(::std::boxed::Box::new(
7128 <DictionarySplat as ::treesitter_types::FromNode>::from_node(node, src)?,
7129 ))),
7130 "keyword_argument" => Ok(Self::KeywordArgument(::std::boxed::Box::new(
7131 <KeywordArgument as ::treesitter_types::FromNode>::from_node(node, src)?,
7132 ))),
7133 "list_splat" => Ok(Self::ListSplat(::std::boxed::Box::new(
7134 <ListSplat as ::treesitter_types::FromNode>::from_node(node, src)?,
7135 ))),
7136 "parenthesized_expression" => {
7137 Ok(Self::ParenthesizedExpression(::std::boxed::Box::new(
7138 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(
7139 node, src,
7140 )?,
7141 )))
7142 }
7143 _other => {
7144 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
7145 Ok(Self::Expression(::std::boxed::Box::new(v)))
7146 } else {
7147 Err(::treesitter_types::ParseError::unexpected_kind(
7148 _other, node,
7149 ))
7150 }
7151 }
7152 }
7153 }
7154}
7155impl ::treesitter_types::Spanned for ArgumentListChildren<'_> {
7156 fn span(&self) -> ::treesitter_types::Span {
7157 match self {
7158 Self::DictionarySplat(inner) => inner.span(),
7159 Self::Expression(inner) => inner.span(),
7160 Self::KeywordArgument(inner) => inner.span(),
7161 Self::ListSplat(inner) => inner.span(),
7162 Self::ParenthesizedExpression(inner) => inner.span(),
7163 }
7164 }
7165}
7166#[derive(Debug, Clone)]
7167pub enum AsPatternChildren<'tree> {
7168 CasePattern(::std::boxed::Box<CasePattern<'tree>>),
7169 Expression(::std::boxed::Box<Expression<'tree>>),
7170 Identifier(::std::boxed::Box<Identifier<'tree>>),
7171}
7172impl<'tree> ::treesitter_types::FromNode<'tree> for AsPatternChildren<'tree> {
7173 #[allow(clippy::collapsible_else_if)]
7174 fn from_node(
7175 node: ::tree_sitter::Node<'tree>,
7176 src: &'tree [u8],
7177 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7178 match node.kind() {
7179 "case_pattern" => Ok(Self::CasePattern(::std::boxed::Box::new(
7180 <CasePattern as ::treesitter_types::FromNode>::from_node(node, src)?,
7181 ))),
7182 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
7183 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
7184 ))),
7185 _other => {
7186 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
7187 Ok(Self::Expression(::std::boxed::Box::new(v)))
7188 } else {
7189 Err(::treesitter_types::ParseError::unexpected_kind(
7190 _other, node,
7191 ))
7192 }
7193 }
7194 }
7195 }
7196}
7197impl ::treesitter_types::Spanned for AsPatternChildren<'_> {
7198 fn span(&self) -> ::treesitter_types::Span {
7199 match self {
7200 Self::CasePattern(inner) => inner.span(),
7201 Self::Expression(inner) => inner.span(),
7202 Self::Identifier(inner) => inner.span(),
7203 }
7204 }
7205}
7206#[derive(Debug, Clone)]
7207pub enum AssignmentLeft<'tree> {
7208 Pattern(::std::boxed::Box<Pattern<'tree>>),
7209 PatternList(::std::boxed::Box<PatternList<'tree>>),
7210}
7211impl<'tree> ::treesitter_types::FromNode<'tree> for AssignmentLeft<'tree> {
7212 #[allow(clippy::collapsible_else_if)]
7213 fn from_node(
7214 node: ::tree_sitter::Node<'tree>,
7215 src: &'tree [u8],
7216 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7217 match node.kind() {
7218 "pattern_list" => Ok(Self::PatternList(::std::boxed::Box::new(
7219 <PatternList as ::treesitter_types::FromNode>::from_node(node, src)?,
7220 ))),
7221 _other => {
7222 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
7223 Ok(Self::Pattern(::std::boxed::Box::new(v)))
7224 } else {
7225 Err(::treesitter_types::ParseError::unexpected_kind(
7226 _other, node,
7227 ))
7228 }
7229 }
7230 }
7231 }
7232}
7233impl ::treesitter_types::Spanned for AssignmentLeft<'_> {
7234 fn span(&self) -> ::treesitter_types::Span {
7235 match self {
7236 Self::Pattern(inner) => inner.span(),
7237 Self::PatternList(inner) => inner.span(),
7238 }
7239 }
7240}
7241#[derive(Debug, Clone)]
7242pub enum AssignmentRight<'tree> {
7243 Assignment(::std::boxed::Box<Assignment<'tree>>),
7244 AugmentedAssignment(::std::boxed::Box<AugmentedAssignment<'tree>>),
7245 Expression(::std::boxed::Box<Expression<'tree>>),
7246 ExpressionList(::std::boxed::Box<ExpressionList<'tree>>),
7247 PatternList(::std::boxed::Box<PatternList<'tree>>),
7248 Yield(::std::boxed::Box<Yield<'tree>>),
7249}
7250impl<'tree> ::treesitter_types::FromNode<'tree> for AssignmentRight<'tree> {
7251 #[allow(clippy::collapsible_else_if)]
7252 fn from_node(
7253 node: ::tree_sitter::Node<'tree>,
7254 src: &'tree [u8],
7255 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7256 match node.kind() {
7257 "assignment" => Ok(Self::Assignment(::std::boxed::Box::new(
7258 <Assignment as ::treesitter_types::FromNode>::from_node(node, src)?,
7259 ))),
7260 "augmented_assignment" => Ok(Self::AugmentedAssignment(::std::boxed::Box::new(
7261 <AugmentedAssignment as ::treesitter_types::FromNode>::from_node(node, src)?,
7262 ))),
7263 "expression_list" => Ok(Self::ExpressionList(::std::boxed::Box::new(
7264 <ExpressionList as ::treesitter_types::FromNode>::from_node(node, src)?,
7265 ))),
7266 "pattern_list" => Ok(Self::PatternList(::std::boxed::Box::new(
7267 <PatternList as ::treesitter_types::FromNode>::from_node(node, src)?,
7268 ))),
7269 "yield" => Ok(Self::Yield(::std::boxed::Box::new(
7270 <Yield as ::treesitter_types::FromNode>::from_node(node, src)?,
7271 ))),
7272 _other => {
7273 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
7274 Ok(Self::Expression(::std::boxed::Box::new(v)))
7275 } else {
7276 Err(::treesitter_types::ParseError::unexpected_kind(
7277 _other, node,
7278 ))
7279 }
7280 }
7281 }
7282 }
7283}
7284impl ::treesitter_types::Spanned for AssignmentRight<'_> {
7285 fn span(&self) -> ::treesitter_types::Span {
7286 match self {
7287 Self::Assignment(inner) => inner.span(),
7288 Self::AugmentedAssignment(inner) => inner.span(),
7289 Self::Expression(inner) => inner.span(),
7290 Self::ExpressionList(inner) => inner.span(),
7291 Self::PatternList(inner) => inner.span(),
7292 Self::Yield(inner) => inner.span(),
7293 }
7294 }
7295}
7296#[derive(Debug, Clone)]
7297pub enum AugmentedAssignmentLeft<'tree> {
7298 Pattern(::std::boxed::Box<Pattern<'tree>>),
7299 PatternList(::std::boxed::Box<PatternList<'tree>>),
7300}
7301impl<'tree> ::treesitter_types::FromNode<'tree> for AugmentedAssignmentLeft<'tree> {
7302 #[allow(clippy::collapsible_else_if)]
7303 fn from_node(
7304 node: ::tree_sitter::Node<'tree>,
7305 src: &'tree [u8],
7306 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7307 match node.kind() {
7308 "pattern_list" => Ok(Self::PatternList(::std::boxed::Box::new(
7309 <PatternList as ::treesitter_types::FromNode>::from_node(node, src)?,
7310 ))),
7311 _other => {
7312 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
7313 Ok(Self::Pattern(::std::boxed::Box::new(v)))
7314 } else {
7315 Err(::treesitter_types::ParseError::unexpected_kind(
7316 _other, node,
7317 ))
7318 }
7319 }
7320 }
7321 }
7322}
7323impl ::treesitter_types::Spanned for AugmentedAssignmentLeft<'_> {
7324 fn span(&self) -> ::treesitter_types::Span {
7325 match self {
7326 Self::Pattern(inner) => inner.span(),
7327 Self::PatternList(inner) => inner.span(),
7328 }
7329 }
7330}
7331#[derive(Debug, Clone)]
7332pub enum AugmentedAssignmentOperator {
7333 PercentEq(::treesitter_types::Span),
7334 AmpEq(::treesitter_types::Span),
7335 StarStarEq(::treesitter_types::Span),
7336 StarEq(::treesitter_types::Span),
7337 PlusEq(::treesitter_types::Span),
7338 MinusEq(::treesitter_types::Span),
7339 SlashSlashEq(::treesitter_types::Span),
7340 SlashEq(::treesitter_types::Span),
7341 ShlEq(::treesitter_types::Span),
7342 ShrEq(::treesitter_types::Span),
7343 AtEq(::treesitter_types::Span),
7344 CaretEq(::treesitter_types::Span),
7345 PipeEq(::treesitter_types::Span),
7346}
7347impl<'tree> ::treesitter_types::FromNode<'tree> for AugmentedAssignmentOperator {
7348 #[allow(clippy::collapsible_else_if)]
7349 fn from_node(
7350 node: ::tree_sitter::Node<'tree>,
7351 _src: &'tree [u8],
7352 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7353 match node.kind() {
7354 "%=" => Ok(Self::PercentEq(::treesitter_types::Span::from(node))),
7355 "&=" => Ok(Self::AmpEq(::treesitter_types::Span::from(node))),
7356 "**=" => Ok(Self::StarStarEq(::treesitter_types::Span::from(node))),
7357 "*=" => Ok(Self::StarEq(::treesitter_types::Span::from(node))),
7358 "+=" => Ok(Self::PlusEq(::treesitter_types::Span::from(node))),
7359 "-=" => Ok(Self::MinusEq(::treesitter_types::Span::from(node))),
7360 "//=" => Ok(Self::SlashSlashEq(::treesitter_types::Span::from(node))),
7361 "/=" => Ok(Self::SlashEq(::treesitter_types::Span::from(node))),
7362 "<<=" => Ok(Self::ShlEq(::treesitter_types::Span::from(node))),
7363 ">>=" => Ok(Self::ShrEq(::treesitter_types::Span::from(node))),
7364 "@=" => Ok(Self::AtEq(::treesitter_types::Span::from(node))),
7365 "^=" => Ok(Self::CaretEq(::treesitter_types::Span::from(node))),
7366 "|=" => Ok(Self::PipeEq(::treesitter_types::Span::from(node))),
7367 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7368 }
7369 }
7370}
7371impl ::treesitter_types::Spanned for AugmentedAssignmentOperator {
7372 fn span(&self) -> ::treesitter_types::Span {
7373 match self {
7374 Self::PercentEq(span) => *span,
7375 Self::AmpEq(span) => *span,
7376 Self::StarStarEq(span) => *span,
7377 Self::StarEq(span) => *span,
7378 Self::PlusEq(span) => *span,
7379 Self::MinusEq(span) => *span,
7380 Self::SlashSlashEq(span) => *span,
7381 Self::SlashEq(span) => *span,
7382 Self::ShlEq(span) => *span,
7383 Self::ShrEq(span) => *span,
7384 Self::AtEq(span) => *span,
7385 Self::CaretEq(span) => *span,
7386 Self::PipeEq(span) => *span,
7387 }
7388 }
7389}
7390#[derive(Debug, Clone)]
7391pub enum AugmentedAssignmentRight<'tree> {
7392 Assignment(::std::boxed::Box<Assignment<'tree>>),
7393 AugmentedAssignment(::std::boxed::Box<AugmentedAssignment<'tree>>),
7394 Expression(::std::boxed::Box<Expression<'tree>>),
7395 ExpressionList(::std::boxed::Box<ExpressionList<'tree>>),
7396 PatternList(::std::boxed::Box<PatternList<'tree>>),
7397 Yield(::std::boxed::Box<Yield<'tree>>),
7398}
7399impl<'tree> ::treesitter_types::FromNode<'tree> for AugmentedAssignmentRight<'tree> {
7400 #[allow(clippy::collapsible_else_if)]
7401 fn from_node(
7402 node: ::tree_sitter::Node<'tree>,
7403 src: &'tree [u8],
7404 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7405 match node.kind() {
7406 "assignment" => Ok(Self::Assignment(::std::boxed::Box::new(
7407 <Assignment as ::treesitter_types::FromNode>::from_node(node, src)?,
7408 ))),
7409 "augmented_assignment" => Ok(Self::AugmentedAssignment(::std::boxed::Box::new(
7410 <AugmentedAssignment as ::treesitter_types::FromNode>::from_node(node, src)?,
7411 ))),
7412 "expression_list" => Ok(Self::ExpressionList(::std::boxed::Box::new(
7413 <ExpressionList as ::treesitter_types::FromNode>::from_node(node, src)?,
7414 ))),
7415 "pattern_list" => Ok(Self::PatternList(::std::boxed::Box::new(
7416 <PatternList as ::treesitter_types::FromNode>::from_node(node, src)?,
7417 ))),
7418 "yield" => Ok(Self::Yield(::std::boxed::Box::new(
7419 <Yield as ::treesitter_types::FromNode>::from_node(node, src)?,
7420 ))),
7421 _other => {
7422 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
7423 Ok(Self::Expression(::std::boxed::Box::new(v)))
7424 } else {
7425 Err(::treesitter_types::ParseError::unexpected_kind(
7426 _other, node,
7427 ))
7428 }
7429 }
7430 }
7431 }
7432}
7433impl ::treesitter_types::Spanned for AugmentedAssignmentRight<'_> {
7434 fn span(&self) -> ::treesitter_types::Span {
7435 match self {
7436 Self::Assignment(inner) => inner.span(),
7437 Self::AugmentedAssignment(inner) => inner.span(),
7438 Self::Expression(inner) => inner.span(),
7439 Self::ExpressionList(inner) => inner.span(),
7440 Self::PatternList(inner) => inner.span(),
7441 Self::Yield(inner) => inner.span(),
7442 }
7443 }
7444}
7445#[derive(Debug, Clone)]
7446pub enum BinaryOperatorOperator {
7447 Percent(::treesitter_types::Span),
7448 Amp(::treesitter_types::Span),
7449 Star(::treesitter_types::Span),
7450 StarStar(::treesitter_types::Span),
7451 Plus(::treesitter_types::Span),
7452 Minus(::treesitter_types::Span),
7453 Slash(::treesitter_types::Span),
7454 SlashSlash(::treesitter_types::Span),
7455 Shl(::treesitter_types::Span),
7456 Shr(::treesitter_types::Span),
7457 At(::treesitter_types::Span),
7458 Caret(::treesitter_types::Span),
7459 Pipe(::treesitter_types::Span),
7460}
7461impl<'tree> ::treesitter_types::FromNode<'tree> for BinaryOperatorOperator {
7462 #[allow(clippy::collapsible_else_if)]
7463 fn from_node(
7464 node: ::tree_sitter::Node<'tree>,
7465 _src: &'tree [u8],
7466 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7467 match node.kind() {
7468 "%" => Ok(Self::Percent(::treesitter_types::Span::from(node))),
7469 "&" => Ok(Self::Amp(::treesitter_types::Span::from(node))),
7470 "*" => Ok(Self::Star(::treesitter_types::Span::from(node))),
7471 "**" => Ok(Self::StarStar(::treesitter_types::Span::from(node))),
7472 "+" => Ok(Self::Plus(::treesitter_types::Span::from(node))),
7473 "-" => Ok(Self::Minus(::treesitter_types::Span::from(node))),
7474 "/" => Ok(Self::Slash(::treesitter_types::Span::from(node))),
7475 "//" => Ok(Self::SlashSlash(::treesitter_types::Span::from(node))),
7476 "<<" => Ok(Self::Shl(::treesitter_types::Span::from(node))),
7477 ">>" => Ok(Self::Shr(::treesitter_types::Span::from(node))),
7478 "@" => Ok(Self::At(::treesitter_types::Span::from(node))),
7479 "^" => Ok(Self::Caret(::treesitter_types::Span::from(node))),
7480 "|" => Ok(Self::Pipe(::treesitter_types::Span::from(node))),
7481 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7482 }
7483 }
7484}
7485impl ::treesitter_types::Spanned for BinaryOperatorOperator {
7486 fn span(&self) -> ::treesitter_types::Span {
7487 match self {
7488 Self::Percent(span) => *span,
7489 Self::Amp(span) => *span,
7490 Self::Star(span) => *span,
7491 Self::StarStar(span) => *span,
7492 Self::Plus(span) => *span,
7493 Self::Minus(span) => *span,
7494 Self::Slash(span) => *span,
7495 Self::SlashSlash(span) => *span,
7496 Self::Shl(span) => *span,
7497 Self::Shr(span) => *span,
7498 Self::At(span) => *span,
7499 Self::Caret(span) => *span,
7500 Self::Pipe(span) => *span,
7501 }
7502 }
7503}
7504#[derive(Debug, Clone)]
7505pub enum BlockChildren<'tree> {
7506 CompoundStatement(::std::boxed::Box<CompoundStatement<'tree>>),
7507 SimpleStatement(::std::boxed::Box<SimpleStatement<'tree>>),
7508}
7509impl<'tree> ::treesitter_types::FromNode<'tree> for BlockChildren<'tree> {
7510 #[allow(clippy::collapsible_else_if)]
7511 fn from_node(
7512 node: ::tree_sitter::Node<'tree>,
7513 src: &'tree [u8],
7514 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7515 if let Ok(v) = <CompoundStatement as ::treesitter_types::FromNode>::from_node(node, src) {
7516 Ok(Self::CompoundStatement(::std::boxed::Box::new(v)))
7517 } else {
7518 if let Ok(v) = <SimpleStatement as ::treesitter_types::FromNode>::from_node(node, src) {
7519 Ok(Self::SimpleStatement(::std::boxed::Box::new(v)))
7520 } else {
7521 Err(::treesitter_types::ParseError::unexpected_kind(
7522 node.kind(),
7523 node,
7524 ))
7525 }
7526 }
7527 }
7528}
7529impl ::treesitter_types::Spanned for BlockChildren<'_> {
7530 fn span(&self) -> ::treesitter_types::Span {
7531 match self {
7532 Self::CompoundStatement(inner) => inner.span(),
7533 Self::SimpleStatement(inner) => inner.span(),
7534 }
7535 }
7536}
7537#[derive(Debug, Clone)]
7538pub enum BooleanOperatorOperator {
7539 And(::treesitter_types::Span),
7540 Or(::treesitter_types::Span),
7541}
7542impl<'tree> ::treesitter_types::FromNode<'tree> for BooleanOperatorOperator {
7543 #[allow(clippy::collapsible_else_if)]
7544 fn from_node(
7545 node: ::tree_sitter::Node<'tree>,
7546 _src: &'tree [u8],
7547 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7548 match node.kind() {
7549 "and" => Ok(Self::And(::treesitter_types::Span::from(node))),
7550 "or" => Ok(Self::Or(::treesitter_types::Span::from(node))),
7551 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7552 }
7553 }
7554}
7555impl ::treesitter_types::Spanned for BooleanOperatorOperator {
7556 fn span(&self) -> ::treesitter_types::Span {
7557 match self {
7558 Self::And(span) => *span,
7559 Self::Or(span) => *span,
7560 }
7561 }
7562}
7563#[derive(Debug, Clone)]
7564pub enum CallArguments<'tree> {
7565 ArgumentList(::std::boxed::Box<ArgumentList<'tree>>),
7566 GeneratorExpression(::std::boxed::Box<GeneratorExpression<'tree>>),
7567}
7568impl<'tree> ::treesitter_types::FromNode<'tree> for CallArguments<'tree> {
7569 #[allow(clippy::collapsible_else_if)]
7570 fn from_node(
7571 node: ::tree_sitter::Node<'tree>,
7572 src: &'tree [u8],
7573 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7574 match node.kind() {
7575 "argument_list" => Ok(Self::ArgumentList(::std::boxed::Box::new(
7576 <ArgumentList as ::treesitter_types::FromNode>::from_node(node, src)?,
7577 ))),
7578 "generator_expression" => Ok(Self::GeneratorExpression(::std::boxed::Box::new(
7579 <GeneratorExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
7580 ))),
7581 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7582 }
7583 }
7584}
7585impl ::treesitter_types::Spanned for CallArguments<'_> {
7586 fn span(&self) -> ::treesitter_types::Span {
7587 match self {
7588 Self::ArgumentList(inner) => inner.span(),
7589 Self::GeneratorExpression(inner) => inner.span(),
7590 }
7591 }
7592}
7593#[derive(Debug, Clone)]
7594pub enum CasePatternChildren<'tree> {
7595 AsPattern(::std::boxed::Box<AsPattern<'tree>>),
7596 ClassPattern(::std::boxed::Box<ClassPattern<'tree>>),
7597 ComplexPattern(::std::boxed::Box<ComplexPattern<'tree>>),
7598 ConcatenatedString(::std::boxed::Box<ConcatenatedString<'tree>>),
7599 DictPattern(::std::boxed::Box<DictPattern<'tree>>),
7600 DottedName(::std::boxed::Box<DottedName<'tree>>),
7601 False(::std::boxed::Box<False<'tree>>),
7602 Float(::std::boxed::Box<Float<'tree>>),
7603 Integer(::std::boxed::Box<Integer<'tree>>),
7604 KeywordPattern(::std::boxed::Box<KeywordPattern<'tree>>),
7605 ListPattern(::std::boxed::Box<ListPattern<'tree>>),
7606 None(::std::boxed::Box<None<'tree>>),
7607 SplatPattern(::std::boxed::Box<SplatPattern<'tree>>),
7608 String(::std::boxed::Box<String<'tree>>),
7609 True(::std::boxed::Box<True<'tree>>),
7610 TuplePattern(::std::boxed::Box<TuplePattern<'tree>>),
7611 UnionPattern(::std::boxed::Box<UnionPattern<'tree>>),
7612}
7613impl<'tree> ::treesitter_types::FromNode<'tree> for CasePatternChildren<'tree> {
7614 #[allow(clippy::collapsible_else_if)]
7615 fn from_node(
7616 node: ::tree_sitter::Node<'tree>,
7617 src: &'tree [u8],
7618 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7619 match node.kind() {
7620 "as_pattern" => Ok(Self::AsPattern(::std::boxed::Box::new(
7621 <AsPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
7622 ))),
7623 "class_pattern" => Ok(Self::ClassPattern(::std::boxed::Box::new(
7624 <ClassPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
7625 ))),
7626 "complex_pattern" => Ok(Self::ComplexPattern(::std::boxed::Box::new(
7627 <ComplexPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
7628 ))),
7629 "concatenated_string" => Ok(Self::ConcatenatedString(::std::boxed::Box::new(
7630 <ConcatenatedString as ::treesitter_types::FromNode>::from_node(node, src)?,
7631 ))),
7632 "dict_pattern" => Ok(Self::DictPattern(::std::boxed::Box::new(
7633 <DictPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
7634 ))),
7635 "dotted_name" => Ok(Self::DottedName(::std::boxed::Box::new(
7636 <DottedName as ::treesitter_types::FromNode>::from_node(node, src)?,
7637 ))),
7638 "false" => Ok(Self::False(::std::boxed::Box::new(
7639 <False as ::treesitter_types::FromNode>::from_node(node, src)?,
7640 ))),
7641 "float" => Ok(Self::Float(::std::boxed::Box::new(
7642 <Float as ::treesitter_types::FromNode>::from_node(node, src)?,
7643 ))),
7644 "integer" => Ok(Self::Integer(::std::boxed::Box::new(
7645 <Integer as ::treesitter_types::FromNode>::from_node(node, src)?,
7646 ))),
7647 "keyword_pattern" => Ok(Self::KeywordPattern(::std::boxed::Box::new(
7648 <KeywordPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
7649 ))),
7650 "list_pattern" => Ok(Self::ListPattern(::std::boxed::Box::new(
7651 <ListPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
7652 ))),
7653 "none" => Ok(Self::None(::std::boxed::Box::new(
7654 <None as ::treesitter_types::FromNode>::from_node(node, src)?,
7655 ))),
7656 "splat_pattern" => Ok(Self::SplatPattern(::std::boxed::Box::new(
7657 <SplatPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
7658 ))),
7659 "string" => Ok(Self::String(::std::boxed::Box::new(
7660 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
7661 ))),
7662 "true" => Ok(Self::True(::std::boxed::Box::new(
7663 <True as ::treesitter_types::FromNode>::from_node(node, src)?,
7664 ))),
7665 "tuple_pattern" => Ok(Self::TuplePattern(::std::boxed::Box::new(
7666 <TuplePattern as ::treesitter_types::FromNode>::from_node(node, src)?,
7667 ))),
7668 "union_pattern" => Ok(Self::UnionPattern(::std::boxed::Box::new(
7669 <UnionPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
7670 ))),
7671 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7672 }
7673 }
7674}
7675impl ::treesitter_types::Spanned for CasePatternChildren<'_> {
7676 fn span(&self) -> ::treesitter_types::Span {
7677 match self {
7678 Self::AsPattern(inner) => inner.span(),
7679 Self::ClassPattern(inner) => inner.span(),
7680 Self::ComplexPattern(inner) => inner.span(),
7681 Self::ConcatenatedString(inner) => inner.span(),
7682 Self::DictPattern(inner) => inner.span(),
7683 Self::DottedName(inner) => inner.span(),
7684 Self::False(inner) => inner.span(),
7685 Self::Float(inner) => inner.span(),
7686 Self::Integer(inner) => inner.span(),
7687 Self::KeywordPattern(inner) => inner.span(),
7688 Self::ListPattern(inner) => inner.span(),
7689 Self::None(inner) => inner.span(),
7690 Self::SplatPattern(inner) => inner.span(),
7691 Self::String(inner) => inner.span(),
7692 Self::True(inner) => inner.span(),
7693 Self::TuplePattern(inner) => inner.span(),
7694 Self::UnionPattern(inner) => inner.span(),
7695 }
7696 }
7697}
7698#[derive(Debug, Clone)]
7699pub enum ClassPatternChildren<'tree> {
7700 CasePattern(::std::boxed::Box<CasePattern<'tree>>),
7701 DottedName(::std::boxed::Box<DottedName<'tree>>),
7702}
7703impl<'tree> ::treesitter_types::FromNode<'tree> for ClassPatternChildren<'tree> {
7704 #[allow(clippy::collapsible_else_if)]
7705 fn from_node(
7706 node: ::tree_sitter::Node<'tree>,
7707 src: &'tree [u8],
7708 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7709 match node.kind() {
7710 "case_pattern" => Ok(Self::CasePattern(::std::boxed::Box::new(
7711 <CasePattern as ::treesitter_types::FromNode>::from_node(node, src)?,
7712 ))),
7713 "dotted_name" => Ok(Self::DottedName(::std::boxed::Box::new(
7714 <DottedName as ::treesitter_types::FromNode>::from_node(node, src)?,
7715 ))),
7716 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7717 }
7718 }
7719}
7720impl ::treesitter_types::Spanned for ClassPatternChildren<'_> {
7721 fn span(&self) -> ::treesitter_types::Span {
7722 match self {
7723 Self::CasePattern(inner) => inner.span(),
7724 Self::DottedName(inner) => inner.span(),
7725 }
7726 }
7727}
7728#[derive(Debug, Clone)]
7729pub enum ComparisonOperatorOperators {
7730 NotEq(::treesitter_types::Span),
7731 Lt(::treesitter_types::Span),
7732 LtEq(::treesitter_types::Span),
7733 LtGt(::treesitter_types::Span),
7734 EqEq(::treesitter_types::Span),
7735 Gt(::treesitter_types::Span),
7736 GtEq(::treesitter_types::Span),
7737 In(::treesitter_types::Span),
7738 Is(::treesitter_types::Span),
7739 ISXNOT(::treesitter_types::Span),
7740 NOTXIN(::treesitter_types::Span),
7741}
7742impl<'tree> ::treesitter_types::FromNode<'tree> for ComparisonOperatorOperators {
7743 #[allow(clippy::collapsible_else_if)]
7744 fn from_node(
7745 node: ::tree_sitter::Node<'tree>,
7746 _src: &'tree [u8],
7747 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7748 match node.kind() {
7749 "!=" => Ok(Self::NotEq(::treesitter_types::Span::from(node))),
7750 "<" => Ok(Self::Lt(::treesitter_types::Span::from(node))),
7751 "<=" => Ok(Self::LtEq(::treesitter_types::Span::from(node))),
7752 "<>" => Ok(Self::LtGt(::treesitter_types::Span::from(node))),
7753 "==" => Ok(Self::EqEq(::treesitter_types::Span::from(node))),
7754 ">" => Ok(Self::Gt(::treesitter_types::Span::from(node))),
7755 ">=" => Ok(Self::GtEq(::treesitter_types::Span::from(node))),
7756 "in" => Ok(Self::In(::treesitter_types::Span::from(node))),
7757 "is" => Ok(Self::Is(::treesitter_types::Span::from(node))),
7758 "is not" => Ok(Self::ISXNOT(::treesitter_types::Span::from(node))),
7759 "not in" => Ok(Self::NOTXIN(::treesitter_types::Span::from(node))),
7760 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7761 }
7762 }
7763}
7764impl ::treesitter_types::Spanned for ComparisonOperatorOperators {
7765 fn span(&self) -> ::treesitter_types::Span {
7766 match self {
7767 Self::NotEq(span) => *span,
7768 Self::Lt(span) => *span,
7769 Self::LtEq(span) => *span,
7770 Self::LtGt(span) => *span,
7771 Self::EqEq(span) => *span,
7772 Self::Gt(span) => *span,
7773 Self::GtEq(span) => *span,
7774 Self::In(span) => *span,
7775 Self::Is(span) => *span,
7776 Self::ISXNOT(span) => *span,
7777 Self::NOTXIN(span) => *span,
7778 }
7779 }
7780}
7781#[derive(Debug, Clone)]
7782pub enum ComplexPatternChildren<'tree> {
7783 Float(::std::boxed::Box<Float<'tree>>),
7784 Integer(::std::boxed::Box<Integer<'tree>>),
7785}
7786impl<'tree> ::treesitter_types::FromNode<'tree> for ComplexPatternChildren<'tree> {
7787 #[allow(clippy::collapsible_else_if)]
7788 fn from_node(
7789 node: ::tree_sitter::Node<'tree>,
7790 src: &'tree [u8],
7791 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7792 match node.kind() {
7793 "float" => Ok(Self::Float(::std::boxed::Box::new(
7794 <Float as ::treesitter_types::FromNode>::from_node(node, src)?,
7795 ))),
7796 "integer" => Ok(Self::Integer(::std::boxed::Box::new(
7797 <Integer as ::treesitter_types::FromNode>::from_node(node, src)?,
7798 ))),
7799 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7800 }
7801 }
7802}
7803impl ::treesitter_types::Spanned for ComplexPatternChildren<'_> {
7804 fn span(&self) -> ::treesitter_types::Span {
7805 match self {
7806 Self::Float(inner) => inner.span(),
7807 Self::Integer(inner) => inner.span(),
7808 }
7809 }
7810}
7811#[derive(Debug, Clone)]
7812pub enum DecoratedDefinitionDefinition<'tree> {
7813 ClassDefinition(::std::boxed::Box<ClassDefinition<'tree>>),
7814 FunctionDefinition(::std::boxed::Box<FunctionDefinition<'tree>>),
7815}
7816impl<'tree> ::treesitter_types::FromNode<'tree> for DecoratedDefinitionDefinition<'tree> {
7817 #[allow(clippy::collapsible_else_if)]
7818 fn from_node(
7819 node: ::tree_sitter::Node<'tree>,
7820 src: &'tree [u8],
7821 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7822 match node.kind() {
7823 "class_definition" => Ok(Self::ClassDefinition(::std::boxed::Box::new(
7824 <ClassDefinition as ::treesitter_types::FromNode>::from_node(node, src)?,
7825 ))),
7826 "function_definition" => Ok(Self::FunctionDefinition(::std::boxed::Box::new(
7827 <FunctionDefinition as ::treesitter_types::FromNode>::from_node(node, src)?,
7828 ))),
7829 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7830 }
7831 }
7832}
7833impl ::treesitter_types::Spanned for DecoratedDefinitionDefinition<'_> {
7834 fn span(&self) -> ::treesitter_types::Span {
7835 match self {
7836 Self::ClassDefinition(inner) => inner.span(),
7837 Self::FunctionDefinition(inner) => inner.span(),
7838 }
7839 }
7840}
7841#[derive(Debug, Clone)]
7842pub enum DefaultParameterName<'tree> {
7843 Identifier(::std::boxed::Box<Identifier<'tree>>),
7844 TuplePattern(::std::boxed::Box<TuplePattern<'tree>>),
7845}
7846impl<'tree> ::treesitter_types::FromNode<'tree> for DefaultParameterName<'tree> {
7847 #[allow(clippy::collapsible_else_if)]
7848 fn from_node(
7849 node: ::tree_sitter::Node<'tree>,
7850 src: &'tree [u8],
7851 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7852 match node.kind() {
7853 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
7854 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
7855 ))),
7856 "tuple_pattern" => Ok(Self::TuplePattern(::std::boxed::Box::new(
7857 <TuplePattern as ::treesitter_types::FromNode>::from_node(node, src)?,
7858 ))),
7859 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7860 }
7861 }
7862}
7863impl ::treesitter_types::Spanned for DefaultParameterName<'_> {
7864 fn span(&self) -> ::treesitter_types::Span {
7865 match self {
7866 Self::Identifier(inner) => inner.span(),
7867 Self::TuplePattern(inner) => inner.span(),
7868 }
7869 }
7870}
7871#[derive(Debug, Clone)]
7872pub enum DeleteStatementChildren<'tree> {
7873 Expression(::std::boxed::Box<Expression<'tree>>),
7874 ExpressionList(::std::boxed::Box<ExpressionList<'tree>>),
7875}
7876impl<'tree> ::treesitter_types::FromNode<'tree> for DeleteStatementChildren<'tree> {
7877 #[allow(clippy::collapsible_else_if)]
7878 fn from_node(
7879 node: ::tree_sitter::Node<'tree>,
7880 src: &'tree [u8],
7881 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7882 match node.kind() {
7883 "expression_list" => Ok(Self::ExpressionList(::std::boxed::Box::new(
7884 <ExpressionList as ::treesitter_types::FromNode>::from_node(node, src)?,
7885 ))),
7886 _other => {
7887 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
7888 Ok(Self::Expression(::std::boxed::Box::new(v)))
7889 } else {
7890 Err(::treesitter_types::ParseError::unexpected_kind(
7891 _other, node,
7892 ))
7893 }
7894 }
7895 }
7896 }
7897}
7898impl ::treesitter_types::Spanned for DeleteStatementChildren<'_> {
7899 fn span(&self) -> ::treesitter_types::Span {
7900 match self {
7901 Self::Expression(inner) => inner.span(),
7902 Self::ExpressionList(inner) => inner.span(),
7903 }
7904 }
7905}
7906#[derive(Debug, Clone)]
7907pub enum DictPatternKey<'tree> {
7908 Minus(::treesitter_types::Span),
7909 Blank(::treesitter_types::Span),
7910 ClassPattern(::std::boxed::Box<ClassPattern<'tree>>),
7911 ComplexPattern(::std::boxed::Box<ComplexPattern<'tree>>),
7912 ConcatenatedString(::std::boxed::Box<ConcatenatedString<'tree>>),
7913 DictPattern(::std::boxed::Box<DictPattern<'tree>>),
7914 DottedName(::std::boxed::Box<DottedName<'tree>>),
7915 False(::std::boxed::Box<False<'tree>>),
7916 Float(::std::boxed::Box<Float<'tree>>),
7917 Integer(::std::boxed::Box<Integer<'tree>>),
7918 ListPattern(::std::boxed::Box<ListPattern<'tree>>),
7919 None(::std::boxed::Box<None<'tree>>),
7920 SplatPattern(::std::boxed::Box<SplatPattern<'tree>>),
7921 String(::std::boxed::Box<String<'tree>>),
7922 True(::std::boxed::Box<True<'tree>>),
7923 TuplePattern(::std::boxed::Box<TuplePattern<'tree>>),
7924 UnionPattern(::std::boxed::Box<UnionPattern<'tree>>),
7925}
7926impl<'tree> ::treesitter_types::FromNode<'tree> for DictPatternKey<'tree> {
7927 #[allow(clippy::collapsible_else_if)]
7928 fn from_node(
7929 node: ::tree_sitter::Node<'tree>,
7930 src: &'tree [u8],
7931 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7932 match node.kind() {
7933 "-" => Ok(Self::Minus(::treesitter_types::Span::from(node))),
7934 "_" => Ok(Self::Blank(::treesitter_types::Span::from(node))),
7935 "class_pattern" => Ok(Self::ClassPattern(::std::boxed::Box::new(
7936 <ClassPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
7937 ))),
7938 "complex_pattern" => Ok(Self::ComplexPattern(::std::boxed::Box::new(
7939 <ComplexPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
7940 ))),
7941 "concatenated_string" => Ok(Self::ConcatenatedString(::std::boxed::Box::new(
7942 <ConcatenatedString as ::treesitter_types::FromNode>::from_node(node, src)?,
7943 ))),
7944 "dict_pattern" => Ok(Self::DictPattern(::std::boxed::Box::new(
7945 <DictPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
7946 ))),
7947 "dotted_name" => Ok(Self::DottedName(::std::boxed::Box::new(
7948 <DottedName as ::treesitter_types::FromNode>::from_node(node, src)?,
7949 ))),
7950 "false" => Ok(Self::False(::std::boxed::Box::new(
7951 <False as ::treesitter_types::FromNode>::from_node(node, src)?,
7952 ))),
7953 "float" => Ok(Self::Float(::std::boxed::Box::new(
7954 <Float as ::treesitter_types::FromNode>::from_node(node, src)?,
7955 ))),
7956 "integer" => Ok(Self::Integer(::std::boxed::Box::new(
7957 <Integer as ::treesitter_types::FromNode>::from_node(node, src)?,
7958 ))),
7959 "list_pattern" => Ok(Self::ListPattern(::std::boxed::Box::new(
7960 <ListPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
7961 ))),
7962 "none" => Ok(Self::None(::std::boxed::Box::new(
7963 <None as ::treesitter_types::FromNode>::from_node(node, src)?,
7964 ))),
7965 "splat_pattern" => Ok(Self::SplatPattern(::std::boxed::Box::new(
7966 <SplatPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
7967 ))),
7968 "string" => Ok(Self::String(::std::boxed::Box::new(
7969 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
7970 ))),
7971 "true" => Ok(Self::True(::std::boxed::Box::new(
7972 <True as ::treesitter_types::FromNode>::from_node(node, src)?,
7973 ))),
7974 "tuple_pattern" => Ok(Self::TuplePattern(::std::boxed::Box::new(
7975 <TuplePattern as ::treesitter_types::FromNode>::from_node(node, src)?,
7976 ))),
7977 "union_pattern" => Ok(Self::UnionPattern(::std::boxed::Box::new(
7978 <UnionPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
7979 ))),
7980 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7981 }
7982 }
7983}
7984impl ::treesitter_types::Spanned for DictPatternKey<'_> {
7985 fn span(&self) -> ::treesitter_types::Span {
7986 match self {
7987 Self::Minus(span) => *span,
7988 Self::Blank(span) => *span,
7989 Self::ClassPattern(inner) => inner.span(),
7990 Self::ComplexPattern(inner) => inner.span(),
7991 Self::ConcatenatedString(inner) => inner.span(),
7992 Self::DictPattern(inner) => inner.span(),
7993 Self::DottedName(inner) => inner.span(),
7994 Self::False(inner) => inner.span(),
7995 Self::Float(inner) => inner.span(),
7996 Self::Integer(inner) => inner.span(),
7997 Self::ListPattern(inner) => inner.span(),
7998 Self::None(inner) => inner.span(),
7999 Self::SplatPattern(inner) => inner.span(),
8000 Self::String(inner) => inner.span(),
8001 Self::True(inner) => inner.span(),
8002 Self::TuplePattern(inner) => inner.span(),
8003 Self::UnionPattern(inner) => inner.span(),
8004 }
8005 }
8006}
8007#[derive(Debug, Clone)]
8008pub enum DictionaryChildren<'tree> {
8009 DictionarySplat(::std::boxed::Box<DictionarySplat<'tree>>),
8010 Pair(::std::boxed::Box<Pair<'tree>>),
8011}
8012impl<'tree> ::treesitter_types::FromNode<'tree> for DictionaryChildren<'tree> {
8013 #[allow(clippy::collapsible_else_if)]
8014 fn from_node(
8015 node: ::tree_sitter::Node<'tree>,
8016 src: &'tree [u8],
8017 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8018 match node.kind() {
8019 "dictionary_splat" => Ok(Self::DictionarySplat(::std::boxed::Box::new(
8020 <DictionarySplat as ::treesitter_types::FromNode>::from_node(node, src)?,
8021 ))),
8022 "pair" => Ok(Self::Pair(::std::boxed::Box::new(
8023 <Pair as ::treesitter_types::FromNode>::from_node(node, src)?,
8024 ))),
8025 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8026 }
8027 }
8028}
8029impl ::treesitter_types::Spanned for DictionaryChildren<'_> {
8030 fn span(&self) -> ::treesitter_types::Span {
8031 match self {
8032 Self::DictionarySplat(inner) => inner.span(),
8033 Self::Pair(inner) => inner.span(),
8034 }
8035 }
8036}
8037#[derive(Debug, Clone)]
8038pub enum DictionaryComprehensionChildren<'tree> {
8039 ForInClause(::std::boxed::Box<ForInClause<'tree>>),
8040 IfClause(::std::boxed::Box<IfClause<'tree>>),
8041}
8042impl<'tree> ::treesitter_types::FromNode<'tree> for DictionaryComprehensionChildren<'tree> {
8043 #[allow(clippy::collapsible_else_if)]
8044 fn from_node(
8045 node: ::tree_sitter::Node<'tree>,
8046 src: &'tree [u8],
8047 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8048 match node.kind() {
8049 "for_in_clause" => Ok(Self::ForInClause(::std::boxed::Box::new(
8050 <ForInClause as ::treesitter_types::FromNode>::from_node(node, src)?,
8051 ))),
8052 "if_clause" => Ok(Self::IfClause(::std::boxed::Box::new(
8053 <IfClause as ::treesitter_types::FromNode>::from_node(node, src)?,
8054 ))),
8055 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8056 }
8057 }
8058}
8059impl ::treesitter_types::Spanned for DictionaryComprehensionChildren<'_> {
8060 fn span(&self) -> ::treesitter_types::Span {
8061 match self {
8062 Self::ForInClause(inner) => inner.span(),
8063 Self::IfClause(inner) => inner.span(),
8064 }
8065 }
8066}
8067#[derive(Debug, Clone)]
8068pub enum DictionarySplatPatternChildren<'tree> {
8069 Attribute(::std::boxed::Box<Attribute<'tree>>),
8070 Identifier(::std::boxed::Box<Identifier<'tree>>),
8071 Subscript(::std::boxed::Box<Subscript<'tree>>),
8072}
8073impl<'tree> ::treesitter_types::FromNode<'tree> for DictionarySplatPatternChildren<'tree> {
8074 #[allow(clippy::collapsible_else_if)]
8075 fn from_node(
8076 node: ::tree_sitter::Node<'tree>,
8077 src: &'tree [u8],
8078 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8079 match node.kind() {
8080 "attribute" => Ok(Self::Attribute(::std::boxed::Box::new(
8081 <Attribute as ::treesitter_types::FromNode>::from_node(node, src)?,
8082 ))),
8083 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
8084 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
8085 ))),
8086 "subscript" => Ok(Self::Subscript(::std::boxed::Box::new(
8087 <Subscript as ::treesitter_types::FromNode>::from_node(node, src)?,
8088 ))),
8089 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8090 }
8091 }
8092}
8093impl ::treesitter_types::Spanned for DictionarySplatPatternChildren<'_> {
8094 fn span(&self) -> ::treesitter_types::Span {
8095 match self {
8096 Self::Attribute(inner) => inner.span(),
8097 Self::Identifier(inner) => inner.span(),
8098 Self::Subscript(inner) => inner.span(),
8099 }
8100 }
8101}
8102#[derive(Debug, Clone)]
8103pub enum ExecStatementCode<'tree> {
8104 Identifier(::std::boxed::Box<Identifier<'tree>>),
8105 String(::std::boxed::Box<String<'tree>>),
8106}
8107impl<'tree> ::treesitter_types::FromNode<'tree> for ExecStatementCode<'tree> {
8108 #[allow(clippy::collapsible_else_if)]
8109 fn from_node(
8110 node: ::tree_sitter::Node<'tree>,
8111 src: &'tree [u8],
8112 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8113 match node.kind() {
8114 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
8115 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
8116 ))),
8117 "string" => Ok(Self::String(::std::boxed::Box::new(
8118 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
8119 ))),
8120 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8121 }
8122 }
8123}
8124impl ::treesitter_types::Spanned for ExecStatementCode<'_> {
8125 fn span(&self) -> ::treesitter_types::Span {
8126 match self {
8127 Self::Identifier(inner) => inner.span(),
8128 Self::String(inner) => inner.span(),
8129 }
8130 }
8131}
8132#[derive(Debug, Clone)]
8133pub enum ExpressionStatementChildren<'tree> {
8134 Assignment(::std::boxed::Box<Assignment<'tree>>),
8135 AugmentedAssignment(::std::boxed::Box<AugmentedAssignment<'tree>>),
8136 Expression(::std::boxed::Box<Expression<'tree>>),
8137 Yield(::std::boxed::Box<Yield<'tree>>),
8138}
8139impl<'tree> ::treesitter_types::FromNode<'tree> for ExpressionStatementChildren<'tree> {
8140 #[allow(clippy::collapsible_else_if)]
8141 fn from_node(
8142 node: ::tree_sitter::Node<'tree>,
8143 src: &'tree [u8],
8144 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8145 match node.kind() {
8146 "assignment" => Ok(Self::Assignment(::std::boxed::Box::new(
8147 <Assignment as ::treesitter_types::FromNode>::from_node(node, src)?,
8148 ))),
8149 "augmented_assignment" => Ok(Self::AugmentedAssignment(::std::boxed::Box::new(
8150 <AugmentedAssignment as ::treesitter_types::FromNode>::from_node(node, src)?,
8151 ))),
8152 "yield" => Ok(Self::Yield(::std::boxed::Box::new(
8153 <Yield as ::treesitter_types::FromNode>::from_node(node, src)?,
8154 ))),
8155 _other => {
8156 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
8157 Ok(Self::Expression(::std::boxed::Box::new(v)))
8158 } else {
8159 Err(::treesitter_types::ParseError::unexpected_kind(
8160 _other, node,
8161 ))
8162 }
8163 }
8164 }
8165 }
8166}
8167impl ::treesitter_types::Spanned for ExpressionStatementChildren<'_> {
8168 fn span(&self) -> ::treesitter_types::Span {
8169 match self {
8170 Self::Assignment(inner) => inner.span(),
8171 Self::AugmentedAssignment(inner) => inner.span(),
8172 Self::Expression(inner) => inner.span(),
8173 Self::Yield(inner) => inner.span(),
8174 }
8175 }
8176}
8177#[derive(Debug, Clone)]
8178pub enum ForInClauseLeft<'tree> {
8179 Pattern(::std::boxed::Box<Pattern<'tree>>),
8180 PatternList(::std::boxed::Box<PatternList<'tree>>),
8181}
8182impl<'tree> ::treesitter_types::FromNode<'tree> for ForInClauseLeft<'tree> {
8183 #[allow(clippy::collapsible_else_if)]
8184 fn from_node(
8185 node: ::tree_sitter::Node<'tree>,
8186 src: &'tree [u8],
8187 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8188 match node.kind() {
8189 "pattern_list" => Ok(Self::PatternList(::std::boxed::Box::new(
8190 <PatternList as ::treesitter_types::FromNode>::from_node(node, src)?,
8191 ))),
8192 _other => {
8193 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
8194 Ok(Self::Pattern(::std::boxed::Box::new(v)))
8195 } else {
8196 Err(::treesitter_types::ParseError::unexpected_kind(
8197 _other, node,
8198 ))
8199 }
8200 }
8201 }
8202 }
8203}
8204impl ::treesitter_types::Spanned for ForInClauseLeft<'_> {
8205 fn span(&self) -> ::treesitter_types::Span {
8206 match self {
8207 Self::Pattern(inner) => inner.span(),
8208 Self::PatternList(inner) => inner.span(),
8209 }
8210 }
8211}
8212#[derive(Debug, Clone)]
8213pub enum ForInClauseRight<'tree> {
8214 Comma(::treesitter_types::Span),
8215 Expression(::std::boxed::Box<Expression<'tree>>),
8216}
8217impl<'tree> ::treesitter_types::FromNode<'tree> for ForInClauseRight<'tree> {
8218 #[allow(clippy::collapsible_else_if)]
8219 fn from_node(
8220 node: ::tree_sitter::Node<'tree>,
8221 src: &'tree [u8],
8222 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8223 match node.kind() {
8224 "," => Ok(Self::Comma(::treesitter_types::Span::from(node))),
8225 _other => {
8226 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
8227 Ok(Self::Expression(::std::boxed::Box::new(v)))
8228 } else {
8229 Err(::treesitter_types::ParseError::unexpected_kind(
8230 _other, node,
8231 ))
8232 }
8233 }
8234 }
8235 }
8236}
8237impl ::treesitter_types::Spanned for ForInClauseRight<'_> {
8238 fn span(&self) -> ::treesitter_types::Span {
8239 match self {
8240 Self::Comma(span) => *span,
8241 Self::Expression(inner) => inner.span(),
8242 }
8243 }
8244}
8245#[derive(Debug, Clone)]
8246pub enum ForStatementLeft<'tree> {
8247 Pattern(::std::boxed::Box<Pattern<'tree>>),
8248 PatternList(::std::boxed::Box<PatternList<'tree>>),
8249}
8250impl<'tree> ::treesitter_types::FromNode<'tree> for ForStatementLeft<'tree> {
8251 #[allow(clippy::collapsible_else_if)]
8252 fn from_node(
8253 node: ::tree_sitter::Node<'tree>,
8254 src: &'tree [u8],
8255 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8256 match node.kind() {
8257 "pattern_list" => Ok(Self::PatternList(::std::boxed::Box::new(
8258 <PatternList as ::treesitter_types::FromNode>::from_node(node, src)?,
8259 ))),
8260 _other => {
8261 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
8262 Ok(Self::Pattern(::std::boxed::Box::new(v)))
8263 } else {
8264 Err(::treesitter_types::ParseError::unexpected_kind(
8265 _other, node,
8266 ))
8267 }
8268 }
8269 }
8270 }
8271}
8272impl ::treesitter_types::Spanned for ForStatementLeft<'_> {
8273 fn span(&self) -> ::treesitter_types::Span {
8274 match self {
8275 Self::Pattern(inner) => inner.span(),
8276 Self::PatternList(inner) => inner.span(),
8277 }
8278 }
8279}
8280#[derive(Debug, Clone)]
8281pub enum ForStatementRight<'tree> {
8282 Expression(::std::boxed::Box<Expression<'tree>>),
8283 ExpressionList(::std::boxed::Box<ExpressionList<'tree>>),
8284}
8285impl<'tree> ::treesitter_types::FromNode<'tree> for ForStatementRight<'tree> {
8286 #[allow(clippy::collapsible_else_if)]
8287 fn from_node(
8288 node: ::tree_sitter::Node<'tree>,
8289 src: &'tree [u8],
8290 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8291 match node.kind() {
8292 "expression_list" => Ok(Self::ExpressionList(::std::boxed::Box::new(
8293 <ExpressionList as ::treesitter_types::FromNode>::from_node(node, src)?,
8294 ))),
8295 _other => {
8296 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
8297 Ok(Self::Expression(::std::boxed::Box::new(v)))
8298 } else {
8299 Err(::treesitter_types::ParseError::unexpected_kind(
8300 _other, node,
8301 ))
8302 }
8303 }
8304 }
8305 }
8306}
8307impl ::treesitter_types::Spanned for ForStatementRight<'_> {
8308 fn span(&self) -> ::treesitter_types::Span {
8309 match self {
8310 Self::Expression(inner) => inner.span(),
8311 Self::ExpressionList(inner) => inner.span(),
8312 }
8313 }
8314}
8315#[derive(Debug, Clone)]
8316pub enum FormatExpressionExpression<'tree> {
8317 Expression(::std::boxed::Box<Expression<'tree>>),
8318 ExpressionList(::std::boxed::Box<ExpressionList<'tree>>),
8319 PatternList(::std::boxed::Box<PatternList<'tree>>),
8320 Yield(::std::boxed::Box<Yield<'tree>>),
8321}
8322impl<'tree> ::treesitter_types::FromNode<'tree> for FormatExpressionExpression<'tree> {
8323 #[allow(clippy::collapsible_else_if)]
8324 fn from_node(
8325 node: ::tree_sitter::Node<'tree>,
8326 src: &'tree [u8],
8327 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8328 match node.kind() {
8329 "expression_list" => Ok(Self::ExpressionList(::std::boxed::Box::new(
8330 <ExpressionList as ::treesitter_types::FromNode>::from_node(node, src)?,
8331 ))),
8332 "pattern_list" => Ok(Self::PatternList(::std::boxed::Box::new(
8333 <PatternList as ::treesitter_types::FromNode>::from_node(node, src)?,
8334 ))),
8335 "yield" => Ok(Self::Yield(::std::boxed::Box::new(
8336 <Yield as ::treesitter_types::FromNode>::from_node(node, src)?,
8337 ))),
8338 _other => {
8339 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
8340 Ok(Self::Expression(::std::boxed::Box::new(v)))
8341 } else {
8342 Err(::treesitter_types::ParseError::unexpected_kind(
8343 _other, node,
8344 ))
8345 }
8346 }
8347 }
8348 }
8349}
8350impl ::treesitter_types::Spanned for FormatExpressionExpression<'_> {
8351 fn span(&self) -> ::treesitter_types::Span {
8352 match self {
8353 Self::Expression(inner) => inner.span(),
8354 Self::ExpressionList(inner) => inner.span(),
8355 Self::PatternList(inner) => inner.span(),
8356 Self::Yield(inner) => inner.span(),
8357 }
8358 }
8359}
8360#[derive(Debug, Clone)]
8361pub enum FutureImportStatementName<'tree> {
8362 AliasedImport(::std::boxed::Box<AliasedImport<'tree>>),
8363 DottedName(::std::boxed::Box<DottedName<'tree>>),
8364}
8365impl<'tree> ::treesitter_types::FromNode<'tree> for FutureImportStatementName<'tree> {
8366 #[allow(clippy::collapsible_else_if)]
8367 fn from_node(
8368 node: ::tree_sitter::Node<'tree>,
8369 src: &'tree [u8],
8370 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8371 match node.kind() {
8372 "aliased_import" => Ok(Self::AliasedImport(::std::boxed::Box::new(
8373 <AliasedImport as ::treesitter_types::FromNode>::from_node(node, src)?,
8374 ))),
8375 "dotted_name" => Ok(Self::DottedName(::std::boxed::Box::new(
8376 <DottedName as ::treesitter_types::FromNode>::from_node(node, src)?,
8377 ))),
8378 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8379 }
8380 }
8381}
8382impl ::treesitter_types::Spanned for FutureImportStatementName<'_> {
8383 fn span(&self) -> ::treesitter_types::Span {
8384 match self {
8385 Self::AliasedImport(inner) => inner.span(),
8386 Self::DottedName(inner) => inner.span(),
8387 }
8388 }
8389}
8390#[derive(Debug, Clone)]
8391pub enum GeneratorExpressionChildren<'tree> {
8392 ForInClause(::std::boxed::Box<ForInClause<'tree>>),
8393 IfClause(::std::boxed::Box<IfClause<'tree>>),
8394}
8395impl<'tree> ::treesitter_types::FromNode<'tree> for GeneratorExpressionChildren<'tree> {
8396 #[allow(clippy::collapsible_else_if)]
8397 fn from_node(
8398 node: ::tree_sitter::Node<'tree>,
8399 src: &'tree [u8],
8400 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8401 match node.kind() {
8402 "for_in_clause" => Ok(Self::ForInClause(::std::boxed::Box::new(
8403 <ForInClause as ::treesitter_types::FromNode>::from_node(node, src)?,
8404 ))),
8405 "if_clause" => Ok(Self::IfClause(::std::boxed::Box::new(
8406 <IfClause as ::treesitter_types::FromNode>::from_node(node, src)?,
8407 ))),
8408 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8409 }
8410 }
8411}
8412impl ::treesitter_types::Spanned for GeneratorExpressionChildren<'_> {
8413 fn span(&self) -> ::treesitter_types::Span {
8414 match self {
8415 Self::ForInClause(inner) => inner.span(),
8416 Self::IfClause(inner) => inner.span(),
8417 }
8418 }
8419}
8420#[derive(Debug, Clone)]
8421pub enum GenericTypeChildren<'tree> {
8422 Identifier(::std::boxed::Box<Identifier<'tree>>),
8423 TypeParameter(::std::boxed::Box<TypeParameter<'tree>>),
8424}
8425impl<'tree> ::treesitter_types::FromNode<'tree> for GenericTypeChildren<'tree> {
8426 #[allow(clippy::collapsible_else_if)]
8427 fn from_node(
8428 node: ::tree_sitter::Node<'tree>,
8429 src: &'tree [u8],
8430 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8431 match node.kind() {
8432 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
8433 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
8434 ))),
8435 "type_parameter" => Ok(Self::TypeParameter(::std::boxed::Box::new(
8436 <TypeParameter as ::treesitter_types::FromNode>::from_node(node, src)?,
8437 ))),
8438 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8439 }
8440 }
8441}
8442impl ::treesitter_types::Spanned for GenericTypeChildren<'_> {
8443 fn span(&self) -> ::treesitter_types::Span {
8444 match self {
8445 Self::Identifier(inner) => inner.span(),
8446 Self::TypeParameter(inner) => inner.span(),
8447 }
8448 }
8449}
8450#[derive(Debug, Clone)]
8451pub enum IfStatementAlternative<'tree> {
8452 ElifClause(::std::boxed::Box<ElifClause<'tree>>),
8453 ElseClause(::std::boxed::Box<ElseClause<'tree>>),
8454}
8455impl<'tree> ::treesitter_types::FromNode<'tree> for IfStatementAlternative<'tree> {
8456 #[allow(clippy::collapsible_else_if)]
8457 fn from_node(
8458 node: ::tree_sitter::Node<'tree>,
8459 src: &'tree [u8],
8460 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8461 match node.kind() {
8462 "elif_clause" => Ok(Self::ElifClause(::std::boxed::Box::new(
8463 <ElifClause as ::treesitter_types::FromNode>::from_node(node, src)?,
8464 ))),
8465 "else_clause" => Ok(Self::ElseClause(::std::boxed::Box::new(
8466 <ElseClause as ::treesitter_types::FromNode>::from_node(node, src)?,
8467 ))),
8468 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8469 }
8470 }
8471}
8472impl ::treesitter_types::Spanned for IfStatementAlternative<'_> {
8473 fn span(&self) -> ::treesitter_types::Span {
8474 match self {
8475 Self::ElifClause(inner) => inner.span(),
8476 Self::ElseClause(inner) => inner.span(),
8477 }
8478 }
8479}
8480#[derive(Debug, Clone)]
8481pub enum ImportFromStatementModuleName<'tree> {
8482 DottedName(::std::boxed::Box<DottedName<'tree>>),
8483 RelativeImport(::std::boxed::Box<RelativeImport<'tree>>),
8484}
8485impl<'tree> ::treesitter_types::FromNode<'tree> for ImportFromStatementModuleName<'tree> {
8486 #[allow(clippy::collapsible_else_if)]
8487 fn from_node(
8488 node: ::tree_sitter::Node<'tree>,
8489 src: &'tree [u8],
8490 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8491 match node.kind() {
8492 "dotted_name" => Ok(Self::DottedName(::std::boxed::Box::new(
8493 <DottedName as ::treesitter_types::FromNode>::from_node(node, src)?,
8494 ))),
8495 "relative_import" => Ok(Self::RelativeImport(::std::boxed::Box::new(
8496 <RelativeImport as ::treesitter_types::FromNode>::from_node(node, src)?,
8497 ))),
8498 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8499 }
8500 }
8501}
8502impl ::treesitter_types::Spanned for ImportFromStatementModuleName<'_> {
8503 fn span(&self) -> ::treesitter_types::Span {
8504 match self {
8505 Self::DottedName(inner) => inner.span(),
8506 Self::RelativeImport(inner) => inner.span(),
8507 }
8508 }
8509}
8510#[derive(Debug, Clone)]
8511pub enum ImportFromStatementName<'tree> {
8512 AliasedImport(::std::boxed::Box<AliasedImport<'tree>>),
8513 DottedName(::std::boxed::Box<DottedName<'tree>>),
8514}
8515impl<'tree> ::treesitter_types::FromNode<'tree> for ImportFromStatementName<'tree> {
8516 #[allow(clippy::collapsible_else_if)]
8517 fn from_node(
8518 node: ::tree_sitter::Node<'tree>,
8519 src: &'tree [u8],
8520 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8521 match node.kind() {
8522 "aliased_import" => Ok(Self::AliasedImport(::std::boxed::Box::new(
8523 <AliasedImport as ::treesitter_types::FromNode>::from_node(node, src)?,
8524 ))),
8525 "dotted_name" => Ok(Self::DottedName(::std::boxed::Box::new(
8526 <DottedName as ::treesitter_types::FromNode>::from_node(node, src)?,
8527 ))),
8528 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8529 }
8530 }
8531}
8532impl ::treesitter_types::Spanned for ImportFromStatementName<'_> {
8533 fn span(&self) -> ::treesitter_types::Span {
8534 match self {
8535 Self::AliasedImport(inner) => inner.span(),
8536 Self::DottedName(inner) => inner.span(),
8537 }
8538 }
8539}
8540#[derive(Debug, Clone)]
8541pub enum ImportStatementName<'tree> {
8542 AliasedImport(::std::boxed::Box<AliasedImport<'tree>>),
8543 DottedName(::std::boxed::Box<DottedName<'tree>>),
8544}
8545impl<'tree> ::treesitter_types::FromNode<'tree> for ImportStatementName<'tree> {
8546 #[allow(clippy::collapsible_else_if)]
8547 fn from_node(
8548 node: ::tree_sitter::Node<'tree>,
8549 src: &'tree [u8],
8550 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8551 match node.kind() {
8552 "aliased_import" => Ok(Self::AliasedImport(::std::boxed::Box::new(
8553 <AliasedImport as ::treesitter_types::FromNode>::from_node(node, src)?,
8554 ))),
8555 "dotted_name" => Ok(Self::DottedName(::std::boxed::Box::new(
8556 <DottedName as ::treesitter_types::FromNode>::from_node(node, src)?,
8557 ))),
8558 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8559 }
8560 }
8561}
8562impl ::treesitter_types::Spanned for ImportStatementName<'_> {
8563 fn span(&self) -> ::treesitter_types::Span {
8564 match self {
8565 Self::AliasedImport(inner) => inner.span(),
8566 Self::DottedName(inner) => inner.span(),
8567 }
8568 }
8569}
8570#[derive(Debug, Clone)]
8571pub enum InterpolationExpression<'tree> {
8572 Expression(::std::boxed::Box<Expression<'tree>>),
8573 ExpressionList(::std::boxed::Box<ExpressionList<'tree>>),
8574 PatternList(::std::boxed::Box<PatternList<'tree>>),
8575 Yield(::std::boxed::Box<Yield<'tree>>),
8576}
8577impl<'tree> ::treesitter_types::FromNode<'tree> for InterpolationExpression<'tree> {
8578 #[allow(clippy::collapsible_else_if)]
8579 fn from_node(
8580 node: ::tree_sitter::Node<'tree>,
8581 src: &'tree [u8],
8582 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8583 match node.kind() {
8584 "expression_list" => Ok(Self::ExpressionList(::std::boxed::Box::new(
8585 <ExpressionList as ::treesitter_types::FromNode>::from_node(node, src)?,
8586 ))),
8587 "pattern_list" => Ok(Self::PatternList(::std::boxed::Box::new(
8588 <PatternList as ::treesitter_types::FromNode>::from_node(node, src)?,
8589 ))),
8590 "yield" => Ok(Self::Yield(::std::boxed::Box::new(
8591 <Yield as ::treesitter_types::FromNode>::from_node(node, src)?,
8592 ))),
8593 _other => {
8594 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
8595 Ok(Self::Expression(::std::boxed::Box::new(v)))
8596 } else {
8597 Err(::treesitter_types::ParseError::unexpected_kind(
8598 _other, node,
8599 ))
8600 }
8601 }
8602 }
8603 }
8604}
8605impl ::treesitter_types::Spanned for InterpolationExpression<'_> {
8606 fn span(&self) -> ::treesitter_types::Span {
8607 match self {
8608 Self::Expression(inner) => inner.span(),
8609 Self::ExpressionList(inner) => inner.span(),
8610 Self::PatternList(inner) => inner.span(),
8611 Self::Yield(inner) => inner.span(),
8612 }
8613 }
8614}
8615#[derive(Debug, Clone)]
8616pub enum KeywordPatternChildren<'tree> {
8617 ClassPattern(::std::boxed::Box<ClassPattern<'tree>>),
8618 ComplexPattern(::std::boxed::Box<ComplexPattern<'tree>>),
8619 ConcatenatedString(::std::boxed::Box<ConcatenatedString<'tree>>),
8620 DictPattern(::std::boxed::Box<DictPattern<'tree>>),
8621 DottedName(::std::boxed::Box<DottedName<'tree>>),
8622 False(::std::boxed::Box<False<'tree>>),
8623 Float(::std::boxed::Box<Float<'tree>>),
8624 Identifier(::std::boxed::Box<Identifier<'tree>>),
8625 Integer(::std::boxed::Box<Integer<'tree>>),
8626 ListPattern(::std::boxed::Box<ListPattern<'tree>>),
8627 None(::std::boxed::Box<None<'tree>>),
8628 SplatPattern(::std::boxed::Box<SplatPattern<'tree>>),
8629 String(::std::boxed::Box<String<'tree>>),
8630 True(::std::boxed::Box<True<'tree>>),
8631 TuplePattern(::std::boxed::Box<TuplePattern<'tree>>),
8632 UnionPattern(::std::boxed::Box<UnionPattern<'tree>>),
8633}
8634impl<'tree> ::treesitter_types::FromNode<'tree> for KeywordPatternChildren<'tree> {
8635 #[allow(clippy::collapsible_else_if)]
8636 fn from_node(
8637 node: ::tree_sitter::Node<'tree>,
8638 src: &'tree [u8],
8639 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8640 match node.kind() {
8641 "class_pattern" => Ok(Self::ClassPattern(::std::boxed::Box::new(
8642 <ClassPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
8643 ))),
8644 "complex_pattern" => Ok(Self::ComplexPattern(::std::boxed::Box::new(
8645 <ComplexPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
8646 ))),
8647 "concatenated_string" => Ok(Self::ConcatenatedString(::std::boxed::Box::new(
8648 <ConcatenatedString as ::treesitter_types::FromNode>::from_node(node, src)?,
8649 ))),
8650 "dict_pattern" => Ok(Self::DictPattern(::std::boxed::Box::new(
8651 <DictPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
8652 ))),
8653 "dotted_name" => Ok(Self::DottedName(::std::boxed::Box::new(
8654 <DottedName as ::treesitter_types::FromNode>::from_node(node, src)?,
8655 ))),
8656 "false" => Ok(Self::False(::std::boxed::Box::new(
8657 <False as ::treesitter_types::FromNode>::from_node(node, src)?,
8658 ))),
8659 "float" => Ok(Self::Float(::std::boxed::Box::new(
8660 <Float as ::treesitter_types::FromNode>::from_node(node, src)?,
8661 ))),
8662 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
8663 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
8664 ))),
8665 "integer" => Ok(Self::Integer(::std::boxed::Box::new(
8666 <Integer as ::treesitter_types::FromNode>::from_node(node, src)?,
8667 ))),
8668 "list_pattern" => Ok(Self::ListPattern(::std::boxed::Box::new(
8669 <ListPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
8670 ))),
8671 "none" => Ok(Self::None(::std::boxed::Box::new(
8672 <None as ::treesitter_types::FromNode>::from_node(node, src)?,
8673 ))),
8674 "splat_pattern" => Ok(Self::SplatPattern(::std::boxed::Box::new(
8675 <SplatPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
8676 ))),
8677 "string" => Ok(Self::String(::std::boxed::Box::new(
8678 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
8679 ))),
8680 "true" => Ok(Self::True(::std::boxed::Box::new(
8681 <True as ::treesitter_types::FromNode>::from_node(node, src)?,
8682 ))),
8683 "tuple_pattern" => Ok(Self::TuplePattern(::std::boxed::Box::new(
8684 <TuplePattern as ::treesitter_types::FromNode>::from_node(node, src)?,
8685 ))),
8686 "union_pattern" => Ok(Self::UnionPattern(::std::boxed::Box::new(
8687 <UnionPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
8688 ))),
8689 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8690 }
8691 }
8692}
8693impl ::treesitter_types::Spanned for KeywordPatternChildren<'_> {
8694 fn span(&self) -> ::treesitter_types::Span {
8695 match self {
8696 Self::ClassPattern(inner) => inner.span(),
8697 Self::ComplexPattern(inner) => inner.span(),
8698 Self::ConcatenatedString(inner) => inner.span(),
8699 Self::DictPattern(inner) => inner.span(),
8700 Self::DottedName(inner) => inner.span(),
8701 Self::False(inner) => inner.span(),
8702 Self::Float(inner) => inner.span(),
8703 Self::Identifier(inner) => inner.span(),
8704 Self::Integer(inner) => inner.span(),
8705 Self::ListPattern(inner) => inner.span(),
8706 Self::None(inner) => inner.span(),
8707 Self::SplatPattern(inner) => inner.span(),
8708 Self::String(inner) => inner.span(),
8709 Self::True(inner) => inner.span(),
8710 Self::TuplePattern(inner) => inner.span(),
8711 Self::UnionPattern(inner) => inner.span(),
8712 }
8713 }
8714}
8715#[derive(Debug, Clone)]
8716pub enum ListChildren<'tree> {
8717 Expression(::std::boxed::Box<Expression<'tree>>),
8718 ListSplat(::std::boxed::Box<ListSplat<'tree>>),
8719 ParenthesizedListSplat(::std::boxed::Box<ParenthesizedListSplat<'tree>>),
8720 Yield(::std::boxed::Box<Yield<'tree>>),
8721}
8722impl<'tree> ::treesitter_types::FromNode<'tree> for ListChildren<'tree> {
8723 #[allow(clippy::collapsible_else_if)]
8724 fn from_node(
8725 node: ::tree_sitter::Node<'tree>,
8726 src: &'tree [u8],
8727 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8728 match node.kind() {
8729 "list_splat" => Ok(Self::ListSplat(::std::boxed::Box::new(
8730 <ListSplat as ::treesitter_types::FromNode>::from_node(node, src)?,
8731 ))),
8732 "parenthesized_list_splat" => Ok(Self::ParenthesizedListSplat(::std::boxed::Box::new(
8733 <ParenthesizedListSplat as ::treesitter_types::FromNode>::from_node(node, src)?,
8734 ))),
8735 "yield" => Ok(Self::Yield(::std::boxed::Box::new(
8736 <Yield as ::treesitter_types::FromNode>::from_node(node, src)?,
8737 ))),
8738 _other => {
8739 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
8740 Ok(Self::Expression(::std::boxed::Box::new(v)))
8741 } else {
8742 Err(::treesitter_types::ParseError::unexpected_kind(
8743 _other, node,
8744 ))
8745 }
8746 }
8747 }
8748 }
8749}
8750impl ::treesitter_types::Spanned for ListChildren<'_> {
8751 fn span(&self) -> ::treesitter_types::Span {
8752 match self {
8753 Self::Expression(inner) => inner.span(),
8754 Self::ListSplat(inner) => inner.span(),
8755 Self::ParenthesizedListSplat(inner) => inner.span(),
8756 Self::Yield(inner) => inner.span(),
8757 }
8758 }
8759}
8760#[derive(Debug, Clone)]
8761pub enum ListComprehensionChildren<'tree> {
8762 ForInClause(::std::boxed::Box<ForInClause<'tree>>),
8763 IfClause(::std::boxed::Box<IfClause<'tree>>),
8764}
8765impl<'tree> ::treesitter_types::FromNode<'tree> for ListComprehensionChildren<'tree> {
8766 #[allow(clippy::collapsible_else_if)]
8767 fn from_node(
8768 node: ::tree_sitter::Node<'tree>,
8769 src: &'tree [u8],
8770 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8771 match node.kind() {
8772 "for_in_clause" => Ok(Self::ForInClause(::std::boxed::Box::new(
8773 <ForInClause as ::treesitter_types::FromNode>::from_node(node, src)?,
8774 ))),
8775 "if_clause" => Ok(Self::IfClause(::std::boxed::Box::new(
8776 <IfClause as ::treesitter_types::FromNode>::from_node(node, src)?,
8777 ))),
8778 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8779 }
8780 }
8781}
8782impl ::treesitter_types::Spanned for ListComprehensionChildren<'_> {
8783 fn span(&self) -> ::treesitter_types::Span {
8784 match self {
8785 Self::ForInClause(inner) => inner.span(),
8786 Self::IfClause(inner) => inner.span(),
8787 }
8788 }
8789}
8790#[derive(Debug, Clone)]
8791pub enum ListPatternChildren<'tree> {
8792 CasePattern(::std::boxed::Box<CasePattern<'tree>>),
8793 Pattern(::std::boxed::Box<Pattern<'tree>>),
8794}
8795impl<'tree> ::treesitter_types::FromNode<'tree> for ListPatternChildren<'tree> {
8796 #[allow(clippy::collapsible_else_if)]
8797 fn from_node(
8798 node: ::tree_sitter::Node<'tree>,
8799 src: &'tree [u8],
8800 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8801 match node.kind() {
8802 "case_pattern" => Ok(Self::CasePattern(::std::boxed::Box::new(
8803 <CasePattern as ::treesitter_types::FromNode>::from_node(node, src)?,
8804 ))),
8805 _other => {
8806 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
8807 Ok(Self::Pattern(::std::boxed::Box::new(v)))
8808 } else {
8809 Err(::treesitter_types::ParseError::unexpected_kind(
8810 _other, node,
8811 ))
8812 }
8813 }
8814 }
8815 }
8816}
8817impl ::treesitter_types::Spanned for ListPatternChildren<'_> {
8818 fn span(&self) -> ::treesitter_types::Span {
8819 match self {
8820 Self::CasePattern(inner) => inner.span(),
8821 Self::Pattern(inner) => inner.span(),
8822 }
8823 }
8824}
8825#[derive(Debug, Clone)]
8826pub enum ListSplatChildren<'tree> {
8827 Attribute(::std::boxed::Box<Attribute<'tree>>),
8828 Expression(::std::boxed::Box<Expression<'tree>>),
8829 Identifier(::std::boxed::Box<Identifier<'tree>>),
8830 Subscript(::std::boxed::Box<Subscript<'tree>>),
8831}
8832impl<'tree> ::treesitter_types::FromNode<'tree> for ListSplatChildren<'tree> {
8833 #[allow(clippy::collapsible_else_if)]
8834 fn from_node(
8835 node: ::tree_sitter::Node<'tree>,
8836 src: &'tree [u8],
8837 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8838 match node.kind() {
8839 "attribute" => Ok(Self::Attribute(::std::boxed::Box::new(
8840 <Attribute as ::treesitter_types::FromNode>::from_node(node, src)?,
8841 ))),
8842 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
8843 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
8844 ))),
8845 "subscript" => Ok(Self::Subscript(::std::boxed::Box::new(
8846 <Subscript as ::treesitter_types::FromNode>::from_node(node, src)?,
8847 ))),
8848 _other => {
8849 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
8850 Ok(Self::Expression(::std::boxed::Box::new(v)))
8851 } else {
8852 Err(::treesitter_types::ParseError::unexpected_kind(
8853 _other, node,
8854 ))
8855 }
8856 }
8857 }
8858 }
8859}
8860impl ::treesitter_types::Spanned for ListSplatChildren<'_> {
8861 fn span(&self) -> ::treesitter_types::Span {
8862 match self {
8863 Self::Attribute(inner) => inner.span(),
8864 Self::Expression(inner) => inner.span(),
8865 Self::Identifier(inner) => inner.span(),
8866 Self::Subscript(inner) => inner.span(),
8867 }
8868 }
8869}
8870#[derive(Debug, Clone)]
8871pub enum ListSplatPatternChildren<'tree> {
8872 Attribute(::std::boxed::Box<Attribute<'tree>>),
8873 Identifier(::std::boxed::Box<Identifier<'tree>>),
8874 Subscript(::std::boxed::Box<Subscript<'tree>>),
8875}
8876impl<'tree> ::treesitter_types::FromNode<'tree> for ListSplatPatternChildren<'tree> {
8877 #[allow(clippy::collapsible_else_if)]
8878 fn from_node(
8879 node: ::tree_sitter::Node<'tree>,
8880 src: &'tree [u8],
8881 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8882 match node.kind() {
8883 "attribute" => Ok(Self::Attribute(::std::boxed::Box::new(
8884 <Attribute as ::treesitter_types::FromNode>::from_node(node, src)?,
8885 ))),
8886 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
8887 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
8888 ))),
8889 "subscript" => Ok(Self::Subscript(::std::boxed::Box::new(
8890 <Subscript as ::treesitter_types::FromNode>::from_node(node, src)?,
8891 ))),
8892 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8893 }
8894 }
8895}
8896impl ::treesitter_types::Spanned for ListSplatPatternChildren<'_> {
8897 fn span(&self) -> ::treesitter_types::Span {
8898 match self {
8899 Self::Attribute(inner) => inner.span(),
8900 Self::Identifier(inner) => inner.span(),
8901 Self::Subscript(inner) => inner.span(),
8902 }
8903 }
8904}
8905#[derive(Debug, Clone)]
8906pub enum MemberTypeChildren<'tree> {
8907 Identifier(::std::boxed::Box<Identifier<'tree>>),
8908 Type(::std::boxed::Box<Type<'tree>>),
8909}
8910impl<'tree> ::treesitter_types::FromNode<'tree> for MemberTypeChildren<'tree> {
8911 #[allow(clippy::collapsible_else_if)]
8912 fn from_node(
8913 node: ::tree_sitter::Node<'tree>,
8914 src: &'tree [u8],
8915 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8916 match node.kind() {
8917 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
8918 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
8919 ))),
8920 "type" => Ok(Self::Type(::std::boxed::Box::new(
8921 <Type as ::treesitter_types::FromNode>::from_node(node, src)?,
8922 ))),
8923 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
8924 }
8925 }
8926}
8927impl ::treesitter_types::Spanned for MemberTypeChildren<'_> {
8928 fn span(&self) -> ::treesitter_types::Span {
8929 match self {
8930 Self::Identifier(inner) => inner.span(),
8931 Self::Type(inner) => inner.span(),
8932 }
8933 }
8934}
8935#[derive(Debug, Clone)]
8936pub enum ModuleChildren<'tree> {
8937 CompoundStatement(::std::boxed::Box<CompoundStatement<'tree>>),
8938 SimpleStatement(::std::boxed::Box<SimpleStatement<'tree>>),
8939}
8940impl<'tree> ::treesitter_types::FromNode<'tree> for ModuleChildren<'tree> {
8941 #[allow(clippy::collapsible_else_if)]
8942 fn from_node(
8943 node: ::tree_sitter::Node<'tree>,
8944 src: &'tree [u8],
8945 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8946 if let Ok(v) = <CompoundStatement as ::treesitter_types::FromNode>::from_node(node, src) {
8947 Ok(Self::CompoundStatement(::std::boxed::Box::new(v)))
8948 } else {
8949 if let Ok(v) = <SimpleStatement as ::treesitter_types::FromNode>::from_node(node, src) {
8950 Ok(Self::SimpleStatement(::std::boxed::Box::new(v)))
8951 } else {
8952 Err(::treesitter_types::ParseError::unexpected_kind(
8953 node.kind(),
8954 node,
8955 ))
8956 }
8957 }
8958 }
8959}
8960impl ::treesitter_types::Spanned for ModuleChildren<'_> {
8961 fn span(&self) -> ::treesitter_types::Span {
8962 match self {
8963 Self::CompoundStatement(inner) => inner.span(),
8964 Self::SimpleStatement(inner) => inner.span(),
8965 }
8966 }
8967}
8968#[derive(Debug, Clone)]
8969pub enum ParenthesizedExpressionChildren<'tree> {
8970 Expression(::std::boxed::Box<Expression<'tree>>),
8971 ListSplat(::std::boxed::Box<ListSplat<'tree>>),
8972 ParenthesizedExpression(::std::boxed::Box<ParenthesizedExpression<'tree>>),
8973 Yield(::std::boxed::Box<Yield<'tree>>),
8974}
8975impl<'tree> ::treesitter_types::FromNode<'tree> for ParenthesizedExpressionChildren<'tree> {
8976 #[allow(clippy::collapsible_else_if)]
8977 fn from_node(
8978 node: ::tree_sitter::Node<'tree>,
8979 src: &'tree [u8],
8980 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8981 match node.kind() {
8982 "list_splat" => Ok(Self::ListSplat(::std::boxed::Box::new(
8983 <ListSplat as ::treesitter_types::FromNode>::from_node(node, src)?,
8984 ))),
8985 "parenthesized_expression" => {
8986 Ok(Self::ParenthesizedExpression(::std::boxed::Box::new(
8987 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(
8988 node, src,
8989 )?,
8990 )))
8991 }
8992 "yield" => Ok(Self::Yield(::std::boxed::Box::new(
8993 <Yield as ::treesitter_types::FromNode>::from_node(node, src)?,
8994 ))),
8995 _other => {
8996 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
8997 Ok(Self::Expression(::std::boxed::Box::new(v)))
8998 } else {
8999 Err(::treesitter_types::ParseError::unexpected_kind(
9000 _other, node,
9001 ))
9002 }
9003 }
9004 }
9005 }
9006}
9007impl ::treesitter_types::Spanned for ParenthesizedExpressionChildren<'_> {
9008 fn span(&self) -> ::treesitter_types::Span {
9009 match self {
9010 Self::Expression(inner) => inner.span(),
9011 Self::ListSplat(inner) => inner.span(),
9012 Self::ParenthesizedExpression(inner) => inner.span(),
9013 Self::Yield(inner) => inner.span(),
9014 }
9015 }
9016}
9017#[derive(Debug, Clone)]
9018pub enum ParenthesizedListSplatChildren<'tree> {
9019 ListSplat(::std::boxed::Box<ListSplat<'tree>>),
9020 ParenthesizedExpression(::std::boxed::Box<ParenthesizedExpression<'tree>>),
9021}
9022impl<'tree> ::treesitter_types::FromNode<'tree> for ParenthesizedListSplatChildren<'tree> {
9023 #[allow(clippy::collapsible_else_if)]
9024 fn from_node(
9025 node: ::tree_sitter::Node<'tree>,
9026 src: &'tree [u8],
9027 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9028 match node.kind() {
9029 "list_splat" => Ok(Self::ListSplat(::std::boxed::Box::new(
9030 <ListSplat as ::treesitter_types::FromNode>::from_node(node, src)?,
9031 ))),
9032 "parenthesized_expression" => {
9033 Ok(Self::ParenthesizedExpression(::std::boxed::Box::new(
9034 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(
9035 node, src,
9036 )?,
9037 )))
9038 }
9039 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
9040 }
9041 }
9042}
9043impl ::treesitter_types::Spanned for ParenthesizedListSplatChildren<'_> {
9044 fn span(&self) -> ::treesitter_types::Span {
9045 match self {
9046 Self::ListSplat(inner) => inner.span(),
9047 Self::ParenthesizedExpression(inner) => inner.span(),
9048 }
9049 }
9050}
9051#[derive(Debug, Clone)]
9052pub enum RaiseStatementChildren<'tree> {
9053 Expression(::std::boxed::Box<Expression<'tree>>),
9054 ExpressionList(::std::boxed::Box<ExpressionList<'tree>>),
9055}
9056impl<'tree> ::treesitter_types::FromNode<'tree> for RaiseStatementChildren<'tree> {
9057 #[allow(clippy::collapsible_else_if)]
9058 fn from_node(
9059 node: ::tree_sitter::Node<'tree>,
9060 src: &'tree [u8],
9061 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9062 match node.kind() {
9063 "expression_list" => Ok(Self::ExpressionList(::std::boxed::Box::new(
9064 <ExpressionList as ::treesitter_types::FromNode>::from_node(node, src)?,
9065 ))),
9066 _other => {
9067 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
9068 Ok(Self::Expression(::std::boxed::Box::new(v)))
9069 } else {
9070 Err(::treesitter_types::ParseError::unexpected_kind(
9071 _other, node,
9072 ))
9073 }
9074 }
9075 }
9076 }
9077}
9078impl ::treesitter_types::Spanned for RaiseStatementChildren<'_> {
9079 fn span(&self) -> ::treesitter_types::Span {
9080 match self {
9081 Self::Expression(inner) => inner.span(),
9082 Self::ExpressionList(inner) => inner.span(),
9083 }
9084 }
9085}
9086#[derive(Debug, Clone)]
9087pub enum RelativeImportChildren<'tree> {
9088 DottedName(::std::boxed::Box<DottedName<'tree>>),
9089 ImportPrefix(::std::boxed::Box<ImportPrefix<'tree>>),
9090}
9091impl<'tree> ::treesitter_types::FromNode<'tree> for RelativeImportChildren<'tree> {
9092 #[allow(clippy::collapsible_else_if)]
9093 fn from_node(
9094 node: ::tree_sitter::Node<'tree>,
9095 src: &'tree [u8],
9096 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9097 match node.kind() {
9098 "dotted_name" => Ok(Self::DottedName(::std::boxed::Box::new(
9099 <DottedName as ::treesitter_types::FromNode>::from_node(node, src)?,
9100 ))),
9101 "import_prefix" => Ok(Self::ImportPrefix(::std::boxed::Box::new(
9102 <ImportPrefix as ::treesitter_types::FromNode>::from_node(node, src)?,
9103 ))),
9104 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
9105 }
9106 }
9107}
9108impl ::treesitter_types::Spanned for RelativeImportChildren<'_> {
9109 fn span(&self) -> ::treesitter_types::Span {
9110 match self {
9111 Self::DottedName(inner) => inner.span(),
9112 Self::ImportPrefix(inner) => inner.span(),
9113 }
9114 }
9115}
9116#[derive(Debug, Clone)]
9117pub enum ReturnStatementChildren<'tree> {
9118 Expression(::std::boxed::Box<Expression<'tree>>),
9119 ExpressionList(::std::boxed::Box<ExpressionList<'tree>>),
9120}
9121impl<'tree> ::treesitter_types::FromNode<'tree> for ReturnStatementChildren<'tree> {
9122 #[allow(clippy::collapsible_else_if)]
9123 fn from_node(
9124 node: ::tree_sitter::Node<'tree>,
9125 src: &'tree [u8],
9126 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9127 match node.kind() {
9128 "expression_list" => Ok(Self::ExpressionList(::std::boxed::Box::new(
9129 <ExpressionList as ::treesitter_types::FromNode>::from_node(node, src)?,
9130 ))),
9131 _other => {
9132 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
9133 Ok(Self::Expression(::std::boxed::Box::new(v)))
9134 } else {
9135 Err(::treesitter_types::ParseError::unexpected_kind(
9136 _other, node,
9137 ))
9138 }
9139 }
9140 }
9141 }
9142}
9143impl ::treesitter_types::Spanned for ReturnStatementChildren<'_> {
9144 fn span(&self) -> ::treesitter_types::Span {
9145 match self {
9146 Self::Expression(inner) => inner.span(),
9147 Self::ExpressionList(inner) => inner.span(),
9148 }
9149 }
9150}
9151#[derive(Debug, Clone)]
9152pub enum SetChildren<'tree> {
9153 Expression(::std::boxed::Box<Expression<'tree>>),
9154 ListSplat(::std::boxed::Box<ListSplat<'tree>>),
9155 ParenthesizedListSplat(::std::boxed::Box<ParenthesizedListSplat<'tree>>),
9156 Yield(::std::boxed::Box<Yield<'tree>>),
9157}
9158impl<'tree> ::treesitter_types::FromNode<'tree> for SetChildren<'tree> {
9159 #[allow(clippy::collapsible_else_if)]
9160 fn from_node(
9161 node: ::tree_sitter::Node<'tree>,
9162 src: &'tree [u8],
9163 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9164 match node.kind() {
9165 "list_splat" => Ok(Self::ListSplat(::std::boxed::Box::new(
9166 <ListSplat as ::treesitter_types::FromNode>::from_node(node, src)?,
9167 ))),
9168 "parenthesized_list_splat" => Ok(Self::ParenthesizedListSplat(::std::boxed::Box::new(
9169 <ParenthesizedListSplat as ::treesitter_types::FromNode>::from_node(node, src)?,
9170 ))),
9171 "yield" => Ok(Self::Yield(::std::boxed::Box::new(
9172 <Yield as ::treesitter_types::FromNode>::from_node(node, src)?,
9173 ))),
9174 _other => {
9175 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
9176 Ok(Self::Expression(::std::boxed::Box::new(v)))
9177 } else {
9178 Err(::treesitter_types::ParseError::unexpected_kind(
9179 _other, node,
9180 ))
9181 }
9182 }
9183 }
9184 }
9185}
9186impl ::treesitter_types::Spanned for SetChildren<'_> {
9187 fn span(&self) -> ::treesitter_types::Span {
9188 match self {
9189 Self::Expression(inner) => inner.span(),
9190 Self::ListSplat(inner) => inner.span(),
9191 Self::ParenthesizedListSplat(inner) => inner.span(),
9192 Self::Yield(inner) => inner.span(),
9193 }
9194 }
9195}
9196#[derive(Debug, Clone)]
9197pub enum SetComprehensionChildren<'tree> {
9198 ForInClause(::std::boxed::Box<ForInClause<'tree>>),
9199 IfClause(::std::boxed::Box<IfClause<'tree>>),
9200}
9201impl<'tree> ::treesitter_types::FromNode<'tree> for SetComprehensionChildren<'tree> {
9202 #[allow(clippy::collapsible_else_if)]
9203 fn from_node(
9204 node: ::tree_sitter::Node<'tree>,
9205 src: &'tree [u8],
9206 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9207 match node.kind() {
9208 "for_in_clause" => Ok(Self::ForInClause(::std::boxed::Box::new(
9209 <ForInClause as ::treesitter_types::FromNode>::from_node(node, src)?,
9210 ))),
9211 "if_clause" => Ok(Self::IfClause(::std::boxed::Box::new(
9212 <IfClause as ::treesitter_types::FromNode>::from_node(node, src)?,
9213 ))),
9214 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
9215 }
9216 }
9217}
9218impl ::treesitter_types::Spanned for SetComprehensionChildren<'_> {
9219 fn span(&self) -> ::treesitter_types::Span {
9220 match self {
9221 Self::ForInClause(inner) => inner.span(),
9222 Self::IfClause(inner) => inner.span(),
9223 }
9224 }
9225}
9226#[derive(Debug, Clone)]
9227pub enum StringChildren<'tree> {
9228 Interpolation(::std::boxed::Box<Interpolation<'tree>>),
9229 StringContent(::std::boxed::Box<StringContent<'tree>>),
9230 StringEnd(::std::boxed::Box<StringEnd<'tree>>),
9231 StringStart(::std::boxed::Box<StringStart<'tree>>),
9232}
9233impl<'tree> ::treesitter_types::FromNode<'tree> for StringChildren<'tree> {
9234 #[allow(clippy::collapsible_else_if)]
9235 fn from_node(
9236 node: ::tree_sitter::Node<'tree>,
9237 src: &'tree [u8],
9238 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9239 match node.kind() {
9240 "interpolation" => Ok(Self::Interpolation(::std::boxed::Box::new(
9241 <Interpolation as ::treesitter_types::FromNode>::from_node(node, src)?,
9242 ))),
9243 "string_content" => Ok(Self::StringContent(::std::boxed::Box::new(
9244 <StringContent as ::treesitter_types::FromNode>::from_node(node, src)?,
9245 ))),
9246 "string_end" => Ok(Self::StringEnd(::std::boxed::Box::new(
9247 <StringEnd as ::treesitter_types::FromNode>::from_node(node, src)?,
9248 ))),
9249 "string_start" => Ok(Self::StringStart(::std::boxed::Box::new(
9250 <StringStart as ::treesitter_types::FromNode>::from_node(node, src)?,
9251 ))),
9252 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
9253 }
9254 }
9255}
9256impl ::treesitter_types::Spanned for StringChildren<'_> {
9257 fn span(&self) -> ::treesitter_types::Span {
9258 match self {
9259 Self::Interpolation(inner) => inner.span(),
9260 Self::StringContent(inner) => inner.span(),
9261 Self::StringEnd(inner) => inner.span(),
9262 Self::StringStart(inner) => inner.span(),
9263 }
9264 }
9265}
9266#[derive(Debug, Clone)]
9267pub enum StringContentChildren<'tree> {
9268 EscapeInterpolation(::std::boxed::Box<EscapeInterpolation<'tree>>),
9269 EscapeSequence(::std::boxed::Box<EscapeSequence<'tree>>),
9270}
9271impl<'tree> ::treesitter_types::FromNode<'tree> for StringContentChildren<'tree> {
9272 #[allow(clippy::collapsible_else_if)]
9273 fn from_node(
9274 node: ::tree_sitter::Node<'tree>,
9275 src: &'tree [u8],
9276 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9277 match node.kind() {
9278 "escape_interpolation" => Ok(Self::EscapeInterpolation(::std::boxed::Box::new(
9279 <EscapeInterpolation as ::treesitter_types::FromNode>::from_node(node, src)?,
9280 ))),
9281 "escape_sequence" => Ok(Self::EscapeSequence(::std::boxed::Box::new(
9282 <EscapeSequence as ::treesitter_types::FromNode>::from_node(node, src)?,
9283 ))),
9284 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
9285 }
9286 }
9287}
9288impl ::treesitter_types::Spanned for StringContentChildren<'_> {
9289 fn span(&self) -> ::treesitter_types::Span {
9290 match self {
9291 Self::EscapeInterpolation(inner) => inner.span(),
9292 Self::EscapeSequence(inner) => inner.span(),
9293 }
9294 }
9295}
9296#[derive(Debug, Clone)]
9297pub enum SubscriptSubscript<'tree> {
9298 Expression(::std::boxed::Box<Expression<'tree>>),
9299 Slice(::std::boxed::Box<Slice<'tree>>),
9300}
9301impl<'tree> ::treesitter_types::FromNode<'tree> for SubscriptSubscript<'tree> {
9302 #[allow(clippy::collapsible_else_if)]
9303 fn from_node(
9304 node: ::tree_sitter::Node<'tree>,
9305 src: &'tree [u8],
9306 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9307 match node.kind() {
9308 "slice" => Ok(Self::Slice(::std::boxed::Box::new(
9309 <Slice as ::treesitter_types::FromNode>::from_node(node, src)?,
9310 ))),
9311 _other => {
9312 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
9313 Ok(Self::Expression(::std::boxed::Box::new(v)))
9314 } else {
9315 Err(::treesitter_types::ParseError::unexpected_kind(
9316 _other, node,
9317 ))
9318 }
9319 }
9320 }
9321 }
9322}
9323impl ::treesitter_types::Spanned for SubscriptSubscript<'_> {
9324 fn span(&self) -> ::treesitter_types::Span {
9325 match self {
9326 Self::Expression(inner) => inner.span(),
9327 Self::Slice(inner) => inner.span(),
9328 }
9329 }
9330}
9331#[derive(Debug, Clone)]
9332pub enum TryStatementChildren<'tree> {
9333 ElseClause(::std::boxed::Box<ElseClause<'tree>>),
9334 ExceptClause(::std::boxed::Box<ExceptClause<'tree>>),
9335 FinallyClause(::std::boxed::Box<FinallyClause<'tree>>),
9336}
9337impl<'tree> ::treesitter_types::FromNode<'tree> for TryStatementChildren<'tree> {
9338 #[allow(clippy::collapsible_else_if)]
9339 fn from_node(
9340 node: ::tree_sitter::Node<'tree>,
9341 src: &'tree [u8],
9342 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9343 match node.kind() {
9344 "else_clause" => Ok(Self::ElseClause(::std::boxed::Box::new(
9345 <ElseClause as ::treesitter_types::FromNode>::from_node(node, src)?,
9346 ))),
9347 "except_clause" => Ok(Self::ExceptClause(::std::boxed::Box::new(
9348 <ExceptClause as ::treesitter_types::FromNode>::from_node(node, src)?,
9349 ))),
9350 "finally_clause" => Ok(Self::FinallyClause(::std::boxed::Box::new(
9351 <FinallyClause as ::treesitter_types::FromNode>::from_node(node, src)?,
9352 ))),
9353 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
9354 }
9355 }
9356}
9357impl ::treesitter_types::Spanned for TryStatementChildren<'_> {
9358 fn span(&self) -> ::treesitter_types::Span {
9359 match self {
9360 Self::ElseClause(inner) => inner.span(),
9361 Self::ExceptClause(inner) => inner.span(),
9362 Self::FinallyClause(inner) => inner.span(),
9363 }
9364 }
9365}
9366#[derive(Debug, Clone)]
9367pub enum TupleChildren<'tree> {
9368 Expression(::std::boxed::Box<Expression<'tree>>),
9369 ListSplat(::std::boxed::Box<ListSplat<'tree>>),
9370 ParenthesizedListSplat(::std::boxed::Box<ParenthesizedListSplat<'tree>>),
9371 Yield(::std::boxed::Box<Yield<'tree>>),
9372}
9373impl<'tree> ::treesitter_types::FromNode<'tree> for TupleChildren<'tree> {
9374 #[allow(clippy::collapsible_else_if)]
9375 fn from_node(
9376 node: ::tree_sitter::Node<'tree>,
9377 src: &'tree [u8],
9378 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9379 match node.kind() {
9380 "list_splat" => Ok(Self::ListSplat(::std::boxed::Box::new(
9381 <ListSplat as ::treesitter_types::FromNode>::from_node(node, src)?,
9382 ))),
9383 "parenthesized_list_splat" => Ok(Self::ParenthesizedListSplat(::std::boxed::Box::new(
9384 <ParenthesizedListSplat as ::treesitter_types::FromNode>::from_node(node, src)?,
9385 ))),
9386 "yield" => Ok(Self::Yield(::std::boxed::Box::new(
9387 <Yield as ::treesitter_types::FromNode>::from_node(node, src)?,
9388 ))),
9389 _other => {
9390 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
9391 Ok(Self::Expression(::std::boxed::Box::new(v)))
9392 } else {
9393 Err(::treesitter_types::ParseError::unexpected_kind(
9394 _other, node,
9395 ))
9396 }
9397 }
9398 }
9399 }
9400}
9401impl ::treesitter_types::Spanned for TupleChildren<'_> {
9402 fn span(&self) -> ::treesitter_types::Span {
9403 match self {
9404 Self::Expression(inner) => inner.span(),
9405 Self::ListSplat(inner) => inner.span(),
9406 Self::ParenthesizedListSplat(inner) => inner.span(),
9407 Self::Yield(inner) => inner.span(),
9408 }
9409 }
9410}
9411#[derive(Debug, Clone)]
9412pub enum TuplePatternChildren<'tree> {
9413 CasePattern(::std::boxed::Box<CasePattern<'tree>>),
9414 Pattern(::std::boxed::Box<Pattern<'tree>>),
9415}
9416impl<'tree> ::treesitter_types::FromNode<'tree> for TuplePatternChildren<'tree> {
9417 #[allow(clippy::collapsible_else_if)]
9418 fn from_node(
9419 node: ::tree_sitter::Node<'tree>,
9420 src: &'tree [u8],
9421 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9422 match node.kind() {
9423 "case_pattern" => Ok(Self::CasePattern(::std::boxed::Box::new(
9424 <CasePattern as ::treesitter_types::FromNode>::from_node(node, src)?,
9425 ))),
9426 _other => {
9427 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
9428 Ok(Self::Pattern(::std::boxed::Box::new(v)))
9429 } else {
9430 Err(::treesitter_types::ParseError::unexpected_kind(
9431 _other, node,
9432 ))
9433 }
9434 }
9435 }
9436 }
9437}
9438impl ::treesitter_types::Spanned for TuplePatternChildren<'_> {
9439 fn span(&self) -> ::treesitter_types::Span {
9440 match self {
9441 Self::CasePattern(inner) => inner.span(),
9442 Self::Pattern(inner) => inner.span(),
9443 }
9444 }
9445}
9446#[derive(Debug, Clone)]
9447pub enum TypeChildren<'tree> {
9448 ConstrainedType(::std::boxed::Box<ConstrainedType<'tree>>),
9449 Expression(::std::boxed::Box<Expression<'tree>>),
9450 GenericType(::std::boxed::Box<GenericType<'tree>>),
9451 MemberType(::std::boxed::Box<MemberType<'tree>>),
9452 SplatType(::std::boxed::Box<SplatType<'tree>>),
9453 UnionType(::std::boxed::Box<UnionType<'tree>>),
9454}
9455impl<'tree> ::treesitter_types::FromNode<'tree> for TypeChildren<'tree> {
9456 #[allow(clippy::collapsible_else_if)]
9457 fn from_node(
9458 node: ::tree_sitter::Node<'tree>,
9459 src: &'tree [u8],
9460 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9461 match node.kind() {
9462 "constrained_type" => Ok(Self::ConstrainedType(::std::boxed::Box::new(
9463 <ConstrainedType as ::treesitter_types::FromNode>::from_node(node, src)?,
9464 ))),
9465 "generic_type" => Ok(Self::GenericType(::std::boxed::Box::new(
9466 <GenericType as ::treesitter_types::FromNode>::from_node(node, src)?,
9467 ))),
9468 "member_type" => Ok(Self::MemberType(::std::boxed::Box::new(
9469 <MemberType as ::treesitter_types::FromNode>::from_node(node, src)?,
9470 ))),
9471 "splat_type" => Ok(Self::SplatType(::std::boxed::Box::new(
9472 <SplatType as ::treesitter_types::FromNode>::from_node(node, src)?,
9473 ))),
9474 "union_type" => Ok(Self::UnionType(::std::boxed::Box::new(
9475 <UnionType as ::treesitter_types::FromNode>::from_node(node, src)?,
9476 ))),
9477 _other => {
9478 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
9479 Ok(Self::Expression(::std::boxed::Box::new(v)))
9480 } else {
9481 Err(::treesitter_types::ParseError::unexpected_kind(
9482 _other, node,
9483 ))
9484 }
9485 }
9486 }
9487 }
9488}
9489impl ::treesitter_types::Spanned for TypeChildren<'_> {
9490 fn span(&self) -> ::treesitter_types::Span {
9491 match self {
9492 Self::ConstrainedType(inner) => inner.span(),
9493 Self::Expression(inner) => inner.span(),
9494 Self::GenericType(inner) => inner.span(),
9495 Self::MemberType(inner) => inner.span(),
9496 Self::SplatType(inner) => inner.span(),
9497 Self::UnionType(inner) => inner.span(),
9498 }
9499 }
9500}
9501#[derive(Debug, Clone)]
9502pub enum TypedParameterChildren<'tree> {
9503 DictionarySplatPattern(::std::boxed::Box<DictionarySplatPattern<'tree>>),
9504 Identifier(::std::boxed::Box<Identifier<'tree>>),
9505 ListSplatPattern(::std::boxed::Box<ListSplatPattern<'tree>>),
9506}
9507impl<'tree> ::treesitter_types::FromNode<'tree> for TypedParameterChildren<'tree> {
9508 #[allow(clippy::collapsible_else_if)]
9509 fn from_node(
9510 node: ::tree_sitter::Node<'tree>,
9511 src: &'tree [u8],
9512 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9513 match node.kind() {
9514 "dictionary_splat_pattern" => Ok(Self::DictionarySplatPattern(::std::boxed::Box::new(
9515 <DictionarySplatPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
9516 ))),
9517 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
9518 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
9519 ))),
9520 "list_splat_pattern" => Ok(Self::ListSplatPattern(::std::boxed::Box::new(
9521 <ListSplatPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
9522 ))),
9523 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
9524 }
9525 }
9526}
9527impl ::treesitter_types::Spanned for TypedParameterChildren<'_> {
9528 fn span(&self) -> ::treesitter_types::Span {
9529 match self {
9530 Self::DictionarySplatPattern(inner) => inner.span(),
9531 Self::Identifier(inner) => inner.span(),
9532 Self::ListSplatPattern(inner) => inner.span(),
9533 }
9534 }
9535}
9536#[derive(Debug, Clone)]
9537pub enum UnaryOperatorOperator {
9538 Plus(::treesitter_types::Span),
9539 Minus(::treesitter_types::Span),
9540 Tilde(::treesitter_types::Span),
9541}
9542impl<'tree> ::treesitter_types::FromNode<'tree> for UnaryOperatorOperator {
9543 #[allow(clippy::collapsible_else_if)]
9544 fn from_node(
9545 node: ::tree_sitter::Node<'tree>,
9546 _src: &'tree [u8],
9547 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9548 match node.kind() {
9549 "+" => Ok(Self::Plus(::treesitter_types::Span::from(node))),
9550 "-" => Ok(Self::Minus(::treesitter_types::Span::from(node))),
9551 "~" => Ok(Self::Tilde(::treesitter_types::Span::from(node))),
9552 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
9553 }
9554 }
9555}
9556impl ::treesitter_types::Spanned for UnaryOperatorOperator {
9557 fn span(&self) -> ::treesitter_types::Span {
9558 match self {
9559 Self::Plus(span) => *span,
9560 Self::Minus(span) => *span,
9561 Self::Tilde(span) => *span,
9562 }
9563 }
9564}
9565#[derive(Debug, Clone)]
9566pub enum UnionPatternChildren<'tree> {
9567 ClassPattern(::std::boxed::Box<ClassPattern<'tree>>),
9568 ComplexPattern(::std::boxed::Box<ComplexPattern<'tree>>),
9569 ConcatenatedString(::std::boxed::Box<ConcatenatedString<'tree>>),
9570 DictPattern(::std::boxed::Box<DictPattern<'tree>>),
9571 DottedName(::std::boxed::Box<DottedName<'tree>>),
9572 False(::std::boxed::Box<False<'tree>>),
9573 Float(::std::boxed::Box<Float<'tree>>),
9574 Integer(::std::boxed::Box<Integer<'tree>>),
9575 ListPattern(::std::boxed::Box<ListPattern<'tree>>),
9576 None(::std::boxed::Box<None<'tree>>),
9577 SplatPattern(::std::boxed::Box<SplatPattern<'tree>>),
9578 String(::std::boxed::Box<String<'tree>>),
9579 True(::std::boxed::Box<True<'tree>>),
9580 TuplePattern(::std::boxed::Box<TuplePattern<'tree>>),
9581 UnionPattern(::std::boxed::Box<UnionPattern<'tree>>),
9582}
9583impl<'tree> ::treesitter_types::FromNode<'tree> for UnionPatternChildren<'tree> {
9584 #[allow(clippy::collapsible_else_if)]
9585 fn from_node(
9586 node: ::tree_sitter::Node<'tree>,
9587 src: &'tree [u8],
9588 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9589 match node.kind() {
9590 "class_pattern" => Ok(Self::ClassPattern(::std::boxed::Box::new(
9591 <ClassPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
9592 ))),
9593 "complex_pattern" => Ok(Self::ComplexPattern(::std::boxed::Box::new(
9594 <ComplexPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
9595 ))),
9596 "concatenated_string" => Ok(Self::ConcatenatedString(::std::boxed::Box::new(
9597 <ConcatenatedString as ::treesitter_types::FromNode>::from_node(node, src)?,
9598 ))),
9599 "dict_pattern" => Ok(Self::DictPattern(::std::boxed::Box::new(
9600 <DictPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
9601 ))),
9602 "dotted_name" => Ok(Self::DottedName(::std::boxed::Box::new(
9603 <DottedName as ::treesitter_types::FromNode>::from_node(node, src)?,
9604 ))),
9605 "false" => Ok(Self::False(::std::boxed::Box::new(
9606 <False as ::treesitter_types::FromNode>::from_node(node, src)?,
9607 ))),
9608 "float" => Ok(Self::Float(::std::boxed::Box::new(
9609 <Float as ::treesitter_types::FromNode>::from_node(node, src)?,
9610 ))),
9611 "integer" => Ok(Self::Integer(::std::boxed::Box::new(
9612 <Integer as ::treesitter_types::FromNode>::from_node(node, src)?,
9613 ))),
9614 "list_pattern" => Ok(Self::ListPattern(::std::boxed::Box::new(
9615 <ListPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
9616 ))),
9617 "none" => Ok(Self::None(::std::boxed::Box::new(
9618 <None as ::treesitter_types::FromNode>::from_node(node, src)?,
9619 ))),
9620 "splat_pattern" => Ok(Self::SplatPattern(::std::boxed::Box::new(
9621 <SplatPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
9622 ))),
9623 "string" => Ok(Self::String(::std::boxed::Box::new(
9624 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
9625 ))),
9626 "true" => Ok(Self::True(::std::boxed::Box::new(
9627 <True as ::treesitter_types::FromNode>::from_node(node, src)?,
9628 ))),
9629 "tuple_pattern" => Ok(Self::TuplePattern(::std::boxed::Box::new(
9630 <TuplePattern as ::treesitter_types::FromNode>::from_node(node, src)?,
9631 ))),
9632 "union_pattern" => Ok(Self::UnionPattern(::std::boxed::Box::new(
9633 <UnionPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
9634 ))),
9635 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
9636 }
9637 }
9638}
9639impl ::treesitter_types::Spanned for UnionPatternChildren<'_> {
9640 fn span(&self) -> ::treesitter_types::Span {
9641 match self {
9642 Self::ClassPattern(inner) => inner.span(),
9643 Self::ComplexPattern(inner) => inner.span(),
9644 Self::ConcatenatedString(inner) => inner.span(),
9645 Self::DictPattern(inner) => inner.span(),
9646 Self::DottedName(inner) => inner.span(),
9647 Self::False(inner) => inner.span(),
9648 Self::Float(inner) => inner.span(),
9649 Self::Integer(inner) => inner.span(),
9650 Self::ListPattern(inner) => inner.span(),
9651 Self::None(inner) => inner.span(),
9652 Self::SplatPattern(inner) => inner.span(),
9653 Self::String(inner) => inner.span(),
9654 Self::True(inner) => inner.span(),
9655 Self::TuplePattern(inner) => inner.span(),
9656 Self::UnionPattern(inner) => inner.span(),
9657 }
9658 }
9659}
9660#[derive(Debug, Clone)]
9661pub enum YieldChildren<'tree> {
9662 Expression(::std::boxed::Box<Expression<'tree>>),
9663 ExpressionList(::std::boxed::Box<ExpressionList<'tree>>),
9664}
9665impl<'tree> ::treesitter_types::FromNode<'tree> for YieldChildren<'tree> {
9666 #[allow(clippy::collapsible_else_if)]
9667 fn from_node(
9668 node: ::tree_sitter::Node<'tree>,
9669 src: &'tree [u8],
9670 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9671 match node.kind() {
9672 "expression_list" => Ok(Self::ExpressionList(::std::boxed::Box::new(
9673 <ExpressionList as ::treesitter_types::FromNode>::from_node(node, src)?,
9674 ))),
9675 _other => {
9676 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
9677 Ok(Self::Expression(::std::boxed::Box::new(v)))
9678 } else {
9679 Err(::treesitter_types::ParseError::unexpected_kind(
9680 _other, node,
9681 ))
9682 }
9683 }
9684 }
9685 }
9686}
9687impl ::treesitter_types::Spanned for YieldChildren<'_> {
9688 fn span(&self) -> ::treesitter_types::Span {
9689 match self {
9690 Self::Expression(inner) => inner.span(),
9691 Self::ExpressionList(inner) => inner.span(),
9692 }
9693 }
9694}
9695#[derive(Debug, Clone)]
9696pub enum AnyNode<'tree> {
9697 CompoundStatement(CompoundStatement<'tree>),
9698 SimpleStatement(SimpleStatement<'tree>),
9699 Expression(Expression<'tree>),
9700 Parameter(Parameter<'tree>),
9701 Pattern(Pattern<'tree>),
9702 PrimaryExpression(PrimaryExpression<'tree>),
9703 AliasedImport(AliasedImport<'tree>),
9704 ArgumentList(ArgumentList<'tree>),
9705 AsPattern(AsPattern<'tree>),
9706 AssertStatement(AssertStatement<'tree>),
9707 Assignment(Assignment<'tree>),
9708 Attribute(Attribute<'tree>),
9709 AugmentedAssignment(AugmentedAssignment<'tree>),
9710 Await(Await<'tree>),
9711 BinaryOperator(BinaryOperator<'tree>),
9712 Block(Block<'tree>),
9713 BooleanOperator(BooleanOperator<'tree>),
9714 BreakStatement(BreakStatement<'tree>),
9715 Call(Call<'tree>),
9716 CaseClause(CaseClause<'tree>),
9717 CasePattern(CasePattern<'tree>),
9718 Chevron(Chevron<'tree>),
9719 ClassDefinition(ClassDefinition<'tree>),
9720 ClassPattern(ClassPattern<'tree>),
9721 ComparisonOperator(ComparisonOperator<'tree>),
9722 ComplexPattern(ComplexPattern<'tree>),
9723 ConcatenatedString(ConcatenatedString<'tree>),
9724 ConditionalExpression(ConditionalExpression<'tree>),
9725 ConstrainedType(ConstrainedType<'tree>),
9726 ContinueStatement(ContinueStatement<'tree>),
9727 DecoratedDefinition(DecoratedDefinition<'tree>),
9728 Decorator(Decorator<'tree>),
9729 DefaultParameter(DefaultParameter<'tree>),
9730 DeleteStatement(DeleteStatement<'tree>),
9731 DictPattern(DictPattern<'tree>),
9732 Dictionary(Dictionary<'tree>),
9733 DictionaryComprehension(DictionaryComprehension<'tree>),
9734 DictionarySplat(DictionarySplat<'tree>),
9735 DictionarySplatPattern(DictionarySplatPattern<'tree>),
9736 DottedName(DottedName<'tree>),
9737 ElifClause(ElifClause<'tree>),
9738 ElseClause(ElseClause<'tree>),
9739 ExceptClause(ExceptClause<'tree>),
9740 ExecStatement(ExecStatement<'tree>),
9741 ExpressionList(ExpressionList<'tree>),
9742 ExpressionStatement(ExpressionStatement<'tree>),
9743 FinallyClause(FinallyClause<'tree>),
9744 ForInClause(ForInClause<'tree>),
9745 ForStatement(ForStatement<'tree>),
9746 FormatExpression(FormatExpression<'tree>),
9747 FormatSpecifier(FormatSpecifier<'tree>),
9748 FunctionDefinition(FunctionDefinition<'tree>),
9749 FutureImportStatement(FutureImportStatement<'tree>),
9750 GeneratorExpression(GeneratorExpression<'tree>),
9751 GenericType(GenericType<'tree>),
9752 GlobalStatement(GlobalStatement<'tree>),
9753 IfClause(IfClause<'tree>),
9754 IfStatement(IfStatement<'tree>),
9755 ImportFromStatement(ImportFromStatement<'tree>),
9756 ImportPrefix(ImportPrefix<'tree>),
9757 ImportStatement(ImportStatement<'tree>),
9758 Interpolation(Interpolation<'tree>),
9759 KeywordArgument(KeywordArgument<'tree>),
9760 KeywordPattern(KeywordPattern<'tree>),
9761 KeywordSeparator(KeywordSeparator<'tree>),
9762 Lambda(Lambda<'tree>),
9763 LambdaParameters(LambdaParameters<'tree>),
9764 List(List<'tree>),
9765 ListComprehension(ListComprehension<'tree>),
9766 ListPattern(ListPattern<'tree>),
9767 ListSplat(ListSplat<'tree>),
9768 ListSplatPattern(ListSplatPattern<'tree>),
9769 MatchStatement(MatchStatement<'tree>),
9770 MemberType(MemberType<'tree>),
9771 Module(Module<'tree>),
9772 NamedExpression(NamedExpression<'tree>),
9773 NonlocalStatement(NonlocalStatement<'tree>),
9774 NotOperator(NotOperator<'tree>),
9775 Pair(Pair<'tree>),
9776 Parameters(Parameters<'tree>),
9777 ParenthesizedExpression(ParenthesizedExpression<'tree>),
9778 ParenthesizedListSplat(ParenthesizedListSplat<'tree>),
9779 PassStatement(PassStatement<'tree>),
9780 PatternList(PatternList<'tree>),
9781 PositionalSeparator(PositionalSeparator<'tree>),
9782 PrintStatement(PrintStatement<'tree>),
9783 RaiseStatement(RaiseStatement<'tree>),
9784 RelativeImport(RelativeImport<'tree>),
9785 ReturnStatement(ReturnStatement<'tree>),
9786 Set(Set<'tree>),
9787 SetComprehension(SetComprehension<'tree>),
9788 Slice(Slice<'tree>),
9789 SplatPattern(SplatPattern<'tree>),
9790 SplatType(SplatType<'tree>),
9791 String(String<'tree>),
9792 StringContent(StringContent<'tree>),
9793 Subscript(Subscript<'tree>),
9794 TryStatement(TryStatement<'tree>),
9795 Tuple(Tuple<'tree>),
9796 TuplePattern(TuplePattern<'tree>),
9797 Type(Type<'tree>),
9798 TypeAliasStatement(TypeAliasStatement<'tree>),
9799 TypeParameter(TypeParameter<'tree>),
9800 TypedDefaultParameter(TypedDefaultParameter<'tree>),
9801 TypedParameter(TypedParameter<'tree>),
9802 UnaryOperator(UnaryOperator<'tree>),
9803 UnionPattern(UnionPattern<'tree>),
9804 UnionType(UnionType<'tree>),
9805 WhileStatement(WhileStatement<'tree>),
9806 WildcardImport(WildcardImport<'tree>),
9807 WithClause(WithClause<'tree>),
9808 WithItem(WithItem<'tree>),
9809 WithStatement(WithStatement<'tree>),
9810 Yield(Yield<'tree>),
9811 Comment(Comment<'tree>),
9812 Ellipsis(Ellipsis<'tree>),
9813 EscapeInterpolation(EscapeInterpolation<'tree>),
9814 EscapeSequence(EscapeSequence<'tree>),
9815 False(False<'tree>),
9816 Float(Float<'tree>),
9817 Identifier(Identifier<'tree>),
9818 Integer(Integer<'tree>),
9819 LineContinuation(LineContinuation<'tree>),
9820 None(None<'tree>),
9821 StringEnd(StringEnd<'tree>),
9822 StringStart(StringStart<'tree>),
9823 True(True<'tree>),
9824 TypeConversion(TypeConversion<'tree>),
9825 AsPatternTarget(AsPatternTarget<'tree>),
9826 Unknown(::tree_sitter::Node<'tree>),
9827}
9828impl<'tree> AnyNode<'tree> {
9829 pub fn from_node(node: ::tree_sitter::Node<'tree>, src: &'tree [u8]) -> Self {
9830 match node.kind() {
9831 "_compound_statement" => {
9832 <CompoundStatement as ::treesitter_types::FromNode>::from_node(node, src)
9833 .map(Self::CompoundStatement)
9834 .unwrap_or(Self::Unknown(node))
9835 }
9836 "_simple_statement" => {
9837 <SimpleStatement as ::treesitter_types::FromNode>::from_node(node, src)
9838 .map(Self::SimpleStatement)
9839 .unwrap_or(Self::Unknown(node))
9840 }
9841 "expression" => <Expression as ::treesitter_types::FromNode>::from_node(node, src)
9842 .map(Self::Expression)
9843 .unwrap_or(Self::Unknown(node)),
9844 "parameter" => <Parameter as ::treesitter_types::FromNode>::from_node(node, src)
9845 .map(Self::Parameter)
9846 .unwrap_or(Self::Unknown(node)),
9847 "pattern" => <Pattern as ::treesitter_types::FromNode>::from_node(node, src)
9848 .map(Self::Pattern)
9849 .unwrap_or(Self::Unknown(node)),
9850 "primary_expression" => {
9851 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(node, src)
9852 .map(Self::PrimaryExpression)
9853 .unwrap_or(Self::Unknown(node))
9854 }
9855 "aliased_import" => {
9856 <AliasedImport as ::treesitter_types::FromNode>::from_node(node, src)
9857 .map(Self::AliasedImport)
9858 .unwrap_or(Self::Unknown(node))
9859 }
9860 "argument_list" => <ArgumentList as ::treesitter_types::FromNode>::from_node(node, src)
9861 .map(Self::ArgumentList)
9862 .unwrap_or(Self::Unknown(node)),
9863 "as_pattern" => <AsPattern as ::treesitter_types::FromNode>::from_node(node, src)
9864 .map(Self::AsPattern)
9865 .unwrap_or(Self::Unknown(node)),
9866 "assert_statement" => {
9867 <AssertStatement as ::treesitter_types::FromNode>::from_node(node, src)
9868 .map(Self::AssertStatement)
9869 .unwrap_or(Self::Unknown(node))
9870 }
9871 "assignment" => <Assignment as ::treesitter_types::FromNode>::from_node(node, src)
9872 .map(Self::Assignment)
9873 .unwrap_or(Self::Unknown(node)),
9874 "attribute" => <Attribute as ::treesitter_types::FromNode>::from_node(node, src)
9875 .map(Self::Attribute)
9876 .unwrap_or(Self::Unknown(node)),
9877 "augmented_assignment" => {
9878 <AugmentedAssignment as ::treesitter_types::FromNode>::from_node(node, src)
9879 .map(Self::AugmentedAssignment)
9880 .unwrap_or(Self::Unknown(node))
9881 }
9882 "await" => <Await as ::treesitter_types::FromNode>::from_node(node, src)
9883 .map(Self::Await)
9884 .unwrap_or(Self::Unknown(node)),
9885 "binary_operator" => {
9886 <BinaryOperator as ::treesitter_types::FromNode>::from_node(node, src)
9887 .map(Self::BinaryOperator)
9888 .unwrap_or(Self::Unknown(node))
9889 }
9890 "block" => <Block as ::treesitter_types::FromNode>::from_node(node, src)
9891 .map(Self::Block)
9892 .unwrap_or(Self::Unknown(node)),
9893 "boolean_operator" => {
9894 <BooleanOperator as ::treesitter_types::FromNode>::from_node(node, src)
9895 .map(Self::BooleanOperator)
9896 .unwrap_or(Self::Unknown(node))
9897 }
9898 "break_statement" => {
9899 <BreakStatement as ::treesitter_types::FromNode>::from_node(node, src)
9900 .map(Self::BreakStatement)
9901 .unwrap_or(Self::Unknown(node))
9902 }
9903 "call" => <Call as ::treesitter_types::FromNode>::from_node(node, src)
9904 .map(Self::Call)
9905 .unwrap_or(Self::Unknown(node)),
9906 "case_clause" => <CaseClause as ::treesitter_types::FromNode>::from_node(node, src)
9907 .map(Self::CaseClause)
9908 .unwrap_or(Self::Unknown(node)),
9909 "case_pattern" => <CasePattern as ::treesitter_types::FromNode>::from_node(node, src)
9910 .map(Self::CasePattern)
9911 .unwrap_or(Self::Unknown(node)),
9912 "chevron" => <Chevron as ::treesitter_types::FromNode>::from_node(node, src)
9913 .map(Self::Chevron)
9914 .unwrap_or(Self::Unknown(node)),
9915 "class_definition" => {
9916 <ClassDefinition as ::treesitter_types::FromNode>::from_node(node, src)
9917 .map(Self::ClassDefinition)
9918 .unwrap_or(Self::Unknown(node))
9919 }
9920 "class_pattern" => <ClassPattern as ::treesitter_types::FromNode>::from_node(node, src)
9921 .map(Self::ClassPattern)
9922 .unwrap_or(Self::Unknown(node)),
9923 "comparison_operator" => {
9924 <ComparisonOperator as ::treesitter_types::FromNode>::from_node(node, src)
9925 .map(Self::ComparisonOperator)
9926 .unwrap_or(Self::Unknown(node))
9927 }
9928 "complex_pattern" => {
9929 <ComplexPattern as ::treesitter_types::FromNode>::from_node(node, src)
9930 .map(Self::ComplexPattern)
9931 .unwrap_or(Self::Unknown(node))
9932 }
9933 "concatenated_string" => {
9934 <ConcatenatedString as ::treesitter_types::FromNode>::from_node(node, src)
9935 .map(Self::ConcatenatedString)
9936 .unwrap_or(Self::Unknown(node))
9937 }
9938 "conditional_expression" => {
9939 <ConditionalExpression as ::treesitter_types::FromNode>::from_node(node, src)
9940 .map(Self::ConditionalExpression)
9941 .unwrap_or(Self::Unknown(node))
9942 }
9943 "constrained_type" => {
9944 <ConstrainedType as ::treesitter_types::FromNode>::from_node(node, src)
9945 .map(Self::ConstrainedType)
9946 .unwrap_or(Self::Unknown(node))
9947 }
9948 "continue_statement" => {
9949 <ContinueStatement as ::treesitter_types::FromNode>::from_node(node, src)
9950 .map(Self::ContinueStatement)
9951 .unwrap_or(Self::Unknown(node))
9952 }
9953 "decorated_definition" => {
9954 <DecoratedDefinition as ::treesitter_types::FromNode>::from_node(node, src)
9955 .map(Self::DecoratedDefinition)
9956 .unwrap_or(Self::Unknown(node))
9957 }
9958 "decorator" => <Decorator as ::treesitter_types::FromNode>::from_node(node, src)
9959 .map(Self::Decorator)
9960 .unwrap_or(Self::Unknown(node)),
9961 "default_parameter" => {
9962 <DefaultParameter as ::treesitter_types::FromNode>::from_node(node, src)
9963 .map(Self::DefaultParameter)
9964 .unwrap_or(Self::Unknown(node))
9965 }
9966 "delete_statement" => {
9967 <DeleteStatement as ::treesitter_types::FromNode>::from_node(node, src)
9968 .map(Self::DeleteStatement)
9969 .unwrap_or(Self::Unknown(node))
9970 }
9971 "dict_pattern" => <DictPattern as ::treesitter_types::FromNode>::from_node(node, src)
9972 .map(Self::DictPattern)
9973 .unwrap_or(Self::Unknown(node)),
9974 "dictionary" => <Dictionary as ::treesitter_types::FromNode>::from_node(node, src)
9975 .map(Self::Dictionary)
9976 .unwrap_or(Self::Unknown(node)),
9977 "dictionary_comprehension" => {
9978 <DictionaryComprehension as ::treesitter_types::FromNode>::from_node(node, src)
9979 .map(Self::DictionaryComprehension)
9980 .unwrap_or(Self::Unknown(node))
9981 }
9982 "dictionary_splat" => {
9983 <DictionarySplat as ::treesitter_types::FromNode>::from_node(node, src)
9984 .map(Self::DictionarySplat)
9985 .unwrap_or(Self::Unknown(node))
9986 }
9987 "dictionary_splat_pattern" => {
9988 <DictionarySplatPattern as ::treesitter_types::FromNode>::from_node(node, src)
9989 .map(Self::DictionarySplatPattern)
9990 .unwrap_or(Self::Unknown(node))
9991 }
9992 "dotted_name" => <DottedName as ::treesitter_types::FromNode>::from_node(node, src)
9993 .map(Self::DottedName)
9994 .unwrap_or(Self::Unknown(node)),
9995 "elif_clause" => <ElifClause as ::treesitter_types::FromNode>::from_node(node, src)
9996 .map(Self::ElifClause)
9997 .unwrap_or(Self::Unknown(node)),
9998 "else_clause" => <ElseClause as ::treesitter_types::FromNode>::from_node(node, src)
9999 .map(Self::ElseClause)
10000 .unwrap_or(Self::Unknown(node)),
10001 "except_clause" => <ExceptClause as ::treesitter_types::FromNode>::from_node(node, src)
10002 .map(Self::ExceptClause)
10003 .unwrap_or(Self::Unknown(node)),
10004 "exec_statement" => {
10005 <ExecStatement as ::treesitter_types::FromNode>::from_node(node, src)
10006 .map(Self::ExecStatement)
10007 .unwrap_or(Self::Unknown(node))
10008 }
10009 "expression_list" => {
10010 <ExpressionList as ::treesitter_types::FromNode>::from_node(node, src)
10011 .map(Self::ExpressionList)
10012 .unwrap_or(Self::Unknown(node))
10013 }
10014 "expression_statement" => {
10015 <ExpressionStatement as ::treesitter_types::FromNode>::from_node(node, src)
10016 .map(Self::ExpressionStatement)
10017 .unwrap_or(Self::Unknown(node))
10018 }
10019 "finally_clause" => {
10020 <FinallyClause as ::treesitter_types::FromNode>::from_node(node, src)
10021 .map(Self::FinallyClause)
10022 .unwrap_or(Self::Unknown(node))
10023 }
10024 "for_in_clause" => <ForInClause as ::treesitter_types::FromNode>::from_node(node, src)
10025 .map(Self::ForInClause)
10026 .unwrap_or(Self::Unknown(node)),
10027 "for_statement" => <ForStatement as ::treesitter_types::FromNode>::from_node(node, src)
10028 .map(Self::ForStatement)
10029 .unwrap_or(Self::Unknown(node)),
10030 "format_expression" => {
10031 <FormatExpression as ::treesitter_types::FromNode>::from_node(node, src)
10032 .map(Self::FormatExpression)
10033 .unwrap_or(Self::Unknown(node))
10034 }
10035 "format_specifier" => {
10036 <FormatSpecifier as ::treesitter_types::FromNode>::from_node(node, src)
10037 .map(Self::FormatSpecifier)
10038 .unwrap_or(Self::Unknown(node))
10039 }
10040 "function_definition" => {
10041 <FunctionDefinition as ::treesitter_types::FromNode>::from_node(node, src)
10042 .map(Self::FunctionDefinition)
10043 .unwrap_or(Self::Unknown(node))
10044 }
10045 "future_import_statement" => {
10046 <FutureImportStatement as ::treesitter_types::FromNode>::from_node(node, src)
10047 .map(Self::FutureImportStatement)
10048 .unwrap_or(Self::Unknown(node))
10049 }
10050 "generator_expression" => {
10051 <GeneratorExpression as ::treesitter_types::FromNode>::from_node(node, src)
10052 .map(Self::GeneratorExpression)
10053 .unwrap_or(Self::Unknown(node))
10054 }
10055 "generic_type" => <GenericType as ::treesitter_types::FromNode>::from_node(node, src)
10056 .map(Self::GenericType)
10057 .unwrap_or(Self::Unknown(node)),
10058 "global_statement" => {
10059 <GlobalStatement as ::treesitter_types::FromNode>::from_node(node, src)
10060 .map(Self::GlobalStatement)
10061 .unwrap_or(Self::Unknown(node))
10062 }
10063 "if_clause" => <IfClause as ::treesitter_types::FromNode>::from_node(node, src)
10064 .map(Self::IfClause)
10065 .unwrap_or(Self::Unknown(node)),
10066 "if_statement" => <IfStatement as ::treesitter_types::FromNode>::from_node(node, src)
10067 .map(Self::IfStatement)
10068 .unwrap_or(Self::Unknown(node)),
10069 "import_from_statement" => {
10070 <ImportFromStatement as ::treesitter_types::FromNode>::from_node(node, src)
10071 .map(Self::ImportFromStatement)
10072 .unwrap_or(Self::Unknown(node))
10073 }
10074 "import_prefix" => <ImportPrefix as ::treesitter_types::FromNode>::from_node(node, src)
10075 .map(Self::ImportPrefix)
10076 .unwrap_or(Self::Unknown(node)),
10077 "import_statement" => {
10078 <ImportStatement as ::treesitter_types::FromNode>::from_node(node, src)
10079 .map(Self::ImportStatement)
10080 .unwrap_or(Self::Unknown(node))
10081 }
10082 "interpolation" => {
10083 <Interpolation as ::treesitter_types::FromNode>::from_node(node, src)
10084 .map(Self::Interpolation)
10085 .unwrap_or(Self::Unknown(node))
10086 }
10087 "keyword_argument" => {
10088 <KeywordArgument as ::treesitter_types::FromNode>::from_node(node, src)
10089 .map(Self::KeywordArgument)
10090 .unwrap_or(Self::Unknown(node))
10091 }
10092 "keyword_pattern" => {
10093 <KeywordPattern as ::treesitter_types::FromNode>::from_node(node, src)
10094 .map(Self::KeywordPattern)
10095 .unwrap_or(Self::Unknown(node))
10096 }
10097 "keyword_separator" => {
10098 <KeywordSeparator as ::treesitter_types::FromNode>::from_node(node, src)
10099 .map(Self::KeywordSeparator)
10100 .unwrap_or(Self::Unknown(node))
10101 }
10102 "lambda" => <Lambda as ::treesitter_types::FromNode>::from_node(node, src)
10103 .map(Self::Lambda)
10104 .unwrap_or(Self::Unknown(node)),
10105 "lambda_parameters" => {
10106 <LambdaParameters as ::treesitter_types::FromNode>::from_node(node, src)
10107 .map(Self::LambdaParameters)
10108 .unwrap_or(Self::Unknown(node))
10109 }
10110 "list" => <List as ::treesitter_types::FromNode>::from_node(node, src)
10111 .map(Self::List)
10112 .unwrap_or(Self::Unknown(node)),
10113 "list_comprehension" => {
10114 <ListComprehension as ::treesitter_types::FromNode>::from_node(node, src)
10115 .map(Self::ListComprehension)
10116 .unwrap_or(Self::Unknown(node))
10117 }
10118 "list_pattern" => <ListPattern as ::treesitter_types::FromNode>::from_node(node, src)
10119 .map(Self::ListPattern)
10120 .unwrap_or(Self::Unknown(node)),
10121 "list_splat" => <ListSplat as ::treesitter_types::FromNode>::from_node(node, src)
10122 .map(Self::ListSplat)
10123 .unwrap_or(Self::Unknown(node)),
10124 "list_splat_pattern" => {
10125 <ListSplatPattern as ::treesitter_types::FromNode>::from_node(node, src)
10126 .map(Self::ListSplatPattern)
10127 .unwrap_or(Self::Unknown(node))
10128 }
10129 "match_statement" => {
10130 <MatchStatement as ::treesitter_types::FromNode>::from_node(node, src)
10131 .map(Self::MatchStatement)
10132 .unwrap_or(Self::Unknown(node))
10133 }
10134 "member_type" => <MemberType as ::treesitter_types::FromNode>::from_node(node, src)
10135 .map(Self::MemberType)
10136 .unwrap_or(Self::Unknown(node)),
10137 "module" => <Module as ::treesitter_types::FromNode>::from_node(node, src)
10138 .map(Self::Module)
10139 .unwrap_or(Self::Unknown(node)),
10140 "named_expression" => {
10141 <NamedExpression as ::treesitter_types::FromNode>::from_node(node, src)
10142 .map(Self::NamedExpression)
10143 .unwrap_or(Self::Unknown(node))
10144 }
10145 "nonlocal_statement" => {
10146 <NonlocalStatement as ::treesitter_types::FromNode>::from_node(node, src)
10147 .map(Self::NonlocalStatement)
10148 .unwrap_or(Self::Unknown(node))
10149 }
10150 "not_operator" => <NotOperator as ::treesitter_types::FromNode>::from_node(node, src)
10151 .map(Self::NotOperator)
10152 .unwrap_or(Self::Unknown(node)),
10153 "pair" => <Pair as ::treesitter_types::FromNode>::from_node(node, src)
10154 .map(Self::Pair)
10155 .unwrap_or(Self::Unknown(node)),
10156 "parameters" => <Parameters as ::treesitter_types::FromNode>::from_node(node, src)
10157 .map(Self::Parameters)
10158 .unwrap_or(Self::Unknown(node)),
10159 "parenthesized_expression" => {
10160 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(node, src)
10161 .map(Self::ParenthesizedExpression)
10162 .unwrap_or(Self::Unknown(node))
10163 }
10164 "parenthesized_list_splat" => {
10165 <ParenthesizedListSplat as ::treesitter_types::FromNode>::from_node(node, src)
10166 .map(Self::ParenthesizedListSplat)
10167 .unwrap_or(Self::Unknown(node))
10168 }
10169 "pass_statement" => {
10170 <PassStatement as ::treesitter_types::FromNode>::from_node(node, src)
10171 .map(Self::PassStatement)
10172 .unwrap_or(Self::Unknown(node))
10173 }
10174 "pattern_list" => <PatternList as ::treesitter_types::FromNode>::from_node(node, src)
10175 .map(Self::PatternList)
10176 .unwrap_or(Self::Unknown(node)),
10177 "positional_separator" => {
10178 <PositionalSeparator as ::treesitter_types::FromNode>::from_node(node, src)
10179 .map(Self::PositionalSeparator)
10180 .unwrap_or(Self::Unknown(node))
10181 }
10182 "print_statement" => {
10183 <PrintStatement as ::treesitter_types::FromNode>::from_node(node, src)
10184 .map(Self::PrintStatement)
10185 .unwrap_or(Self::Unknown(node))
10186 }
10187 "raise_statement" => {
10188 <RaiseStatement as ::treesitter_types::FromNode>::from_node(node, src)
10189 .map(Self::RaiseStatement)
10190 .unwrap_or(Self::Unknown(node))
10191 }
10192 "relative_import" => {
10193 <RelativeImport as ::treesitter_types::FromNode>::from_node(node, src)
10194 .map(Self::RelativeImport)
10195 .unwrap_or(Self::Unknown(node))
10196 }
10197 "return_statement" => {
10198 <ReturnStatement as ::treesitter_types::FromNode>::from_node(node, src)
10199 .map(Self::ReturnStatement)
10200 .unwrap_or(Self::Unknown(node))
10201 }
10202 "set" => <Set as ::treesitter_types::FromNode>::from_node(node, src)
10203 .map(Self::Set)
10204 .unwrap_or(Self::Unknown(node)),
10205 "set_comprehension" => {
10206 <SetComprehension as ::treesitter_types::FromNode>::from_node(node, src)
10207 .map(Self::SetComprehension)
10208 .unwrap_or(Self::Unknown(node))
10209 }
10210 "slice" => <Slice as ::treesitter_types::FromNode>::from_node(node, src)
10211 .map(Self::Slice)
10212 .unwrap_or(Self::Unknown(node)),
10213 "splat_pattern" => <SplatPattern as ::treesitter_types::FromNode>::from_node(node, src)
10214 .map(Self::SplatPattern)
10215 .unwrap_or(Self::Unknown(node)),
10216 "splat_type" => <SplatType as ::treesitter_types::FromNode>::from_node(node, src)
10217 .map(Self::SplatType)
10218 .unwrap_or(Self::Unknown(node)),
10219 "string" => <String as ::treesitter_types::FromNode>::from_node(node, src)
10220 .map(Self::String)
10221 .unwrap_or(Self::Unknown(node)),
10222 "string_content" => {
10223 <StringContent as ::treesitter_types::FromNode>::from_node(node, src)
10224 .map(Self::StringContent)
10225 .unwrap_or(Self::Unknown(node))
10226 }
10227 "subscript" => <Subscript as ::treesitter_types::FromNode>::from_node(node, src)
10228 .map(Self::Subscript)
10229 .unwrap_or(Self::Unknown(node)),
10230 "try_statement" => <TryStatement as ::treesitter_types::FromNode>::from_node(node, src)
10231 .map(Self::TryStatement)
10232 .unwrap_or(Self::Unknown(node)),
10233 "tuple" => <Tuple as ::treesitter_types::FromNode>::from_node(node, src)
10234 .map(Self::Tuple)
10235 .unwrap_or(Self::Unknown(node)),
10236 "tuple_pattern" => <TuplePattern as ::treesitter_types::FromNode>::from_node(node, src)
10237 .map(Self::TuplePattern)
10238 .unwrap_or(Self::Unknown(node)),
10239 "type" => <Type as ::treesitter_types::FromNode>::from_node(node, src)
10240 .map(Self::Type)
10241 .unwrap_or(Self::Unknown(node)),
10242 "type_alias_statement" => {
10243 <TypeAliasStatement as ::treesitter_types::FromNode>::from_node(node, src)
10244 .map(Self::TypeAliasStatement)
10245 .unwrap_or(Self::Unknown(node))
10246 }
10247 "type_parameter" => {
10248 <TypeParameter as ::treesitter_types::FromNode>::from_node(node, src)
10249 .map(Self::TypeParameter)
10250 .unwrap_or(Self::Unknown(node))
10251 }
10252 "typed_default_parameter" => {
10253 <TypedDefaultParameter as ::treesitter_types::FromNode>::from_node(node, src)
10254 .map(Self::TypedDefaultParameter)
10255 .unwrap_or(Self::Unknown(node))
10256 }
10257 "typed_parameter" => {
10258 <TypedParameter as ::treesitter_types::FromNode>::from_node(node, src)
10259 .map(Self::TypedParameter)
10260 .unwrap_or(Self::Unknown(node))
10261 }
10262 "unary_operator" => {
10263 <UnaryOperator as ::treesitter_types::FromNode>::from_node(node, src)
10264 .map(Self::UnaryOperator)
10265 .unwrap_or(Self::Unknown(node))
10266 }
10267 "union_pattern" => <UnionPattern as ::treesitter_types::FromNode>::from_node(node, src)
10268 .map(Self::UnionPattern)
10269 .unwrap_or(Self::Unknown(node)),
10270 "union_type" => <UnionType as ::treesitter_types::FromNode>::from_node(node, src)
10271 .map(Self::UnionType)
10272 .unwrap_or(Self::Unknown(node)),
10273 "while_statement" => {
10274 <WhileStatement as ::treesitter_types::FromNode>::from_node(node, src)
10275 .map(Self::WhileStatement)
10276 .unwrap_or(Self::Unknown(node))
10277 }
10278 "wildcard_import" => {
10279 <WildcardImport as ::treesitter_types::FromNode>::from_node(node, src)
10280 .map(Self::WildcardImport)
10281 .unwrap_or(Self::Unknown(node))
10282 }
10283 "with_clause" => <WithClause as ::treesitter_types::FromNode>::from_node(node, src)
10284 .map(Self::WithClause)
10285 .unwrap_or(Self::Unknown(node)),
10286 "with_item" => <WithItem as ::treesitter_types::FromNode>::from_node(node, src)
10287 .map(Self::WithItem)
10288 .unwrap_or(Self::Unknown(node)),
10289 "with_statement" => {
10290 <WithStatement as ::treesitter_types::FromNode>::from_node(node, src)
10291 .map(Self::WithStatement)
10292 .unwrap_or(Self::Unknown(node))
10293 }
10294 "yield" => <Yield as ::treesitter_types::FromNode>::from_node(node, src)
10295 .map(Self::Yield)
10296 .unwrap_or(Self::Unknown(node)),
10297 "comment" => <Comment as ::treesitter_types::FromNode>::from_node(node, src)
10298 .map(Self::Comment)
10299 .unwrap_or(Self::Unknown(node)),
10300 "ellipsis" => <Ellipsis as ::treesitter_types::FromNode>::from_node(node, src)
10301 .map(Self::Ellipsis)
10302 .unwrap_or(Self::Unknown(node)),
10303 "escape_interpolation" => {
10304 <EscapeInterpolation as ::treesitter_types::FromNode>::from_node(node, src)
10305 .map(Self::EscapeInterpolation)
10306 .unwrap_or(Self::Unknown(node))
10307 }
10308 "escape_sequence" => {
10309 <EscapeSequence as ::treesitter_types::FromNode>::from_node(node, src)
10310 .map(Self::EscapeSequence)
10311 .unwrap_or(Self::Unknown(node))
10312 }
10313 "false" => <False as ::treesitter_types::FromNode>::from_node(node, src)
10314 .map(Self::False)
10315 .unwrap_or(Self::Unknown(node)),
10316 "float" => <Float as ::treesitter_types::FromNode>::from_node(node, src)
10317 .map(Self::Float)
10318 .unwrap_or(Self::Unknown(node)),
10319 "identifier" => <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
10320 .map(Self::Identifier)
10321 .unwrap_or(Self::Unknown(node)),
10322 "integer" => <Integer as ::treesitter_types::FromNode>::from_node(node, src)
10323 .map(Self::Integer)
10324 .unwrap_or(Self::Unknown(node)),
10325 "line_continuation" => {
10326 <LineContinuation as ::treesitter_types::FromNode>::from_node(node, src)
10327 .map(Self::LineContinuation)
10328 .unwrap_or(Self::Unknown(node))
10329 }
10330 "none" => <None as ::treesitter_types::FromNode>::from_node(node, src)
10331 .map(Self::None)
10332 .unwrap_or(Self::Unknown(node)),
10333 "string_end" => <StringEnd as ::treesitter_types::FromNode>::from_node(node, src)
10334 .map(Self::StringEnd)
10335 .unwrap_or(Self::Unknown(node)),
10336 "string_start" => <StringStart as ::treesitter_types::FromNode>::from_node(node, src)
10337 .map(Self::StringStart)
10338 .unwrap_or(Self::Unknown(node)),
10339 "true" => <True as ::treesitter_types::FromNode>::from_node(node, src)
10340 .map(Self::True)
10341 .unwrap_or(Self::Unknown(node)),
10342 "type_conversion" => {
10343 <TypeConversion as ::treesitter_types::FromNode>::from_node(node, src)
10344 .map(Self::TypeConversion)
10345 .unwrap_or(Self::Unknown(node))
10346 }
10347 "as_pattern_target" => {
10348 <AsPatternTarget as ::treesitter_types::FromNode>::from_node(node, src)
10349 .map(Self::AsPatternTarget)
10350 .unwrap_or(Self::Unknown(node))
10351 }
10352 _ => Self::Unknown(node),
10353 }
10354 }
10355}
10356impl ::treesitter_types::Spanned for AnyNode<'_> {
10357 fn span(&self) -> ::treesitter_types::Span {
10358 match self {
10359 Self::CompoundStatement(inner) => inner.span(),
10360 Self::SimpleStatement(inner) => inner.span(),
10361 Self::Expression(inner) => inner.span(),
10362 Self::Parameter(inner) => inner.span(),
10363 Self::Pattern(inner) => inner.span(),
10364 Self::PrimaryExpression(inner) => inner.span(),
10365 Self::AliasedImport(inner) => inner.span(),
10366 Self::ArgumentList(inner) => inner.span(),
10367 Self::AsPattern(inner) => inner.span(),
10368 Self::AssertStatement(inner) => inner.span(),
10369 Self::Assignment(inner) => inner.span(),
10370 Self::Attribute(inner) => inner.span(),
10371 Self::AugmentedAssignment(inner) => inner.span(),
10372 Self::Await(inner) => inner.span(),
10373 Self::BinaryOperator(inner) => inner.span(),
10374 Self::Block(inner) => inner.span(),
10375 Self::BooleanOperator(inner) => inner.span(),
10376 Self::BreakStatement(inner) => inner.span(),
10377 Self::Call(inner) => inner.span(),
10378 Self::CaseClause(inner) => inner.span(),
10379 Self::CasePattern(inner) => inner.span(),
10380 Self::Chevron(inner) => inner.span(),
10381 Self::ClassDefinition(inner) => inner.span(),
10382 Self::ClassPattern(inner) => inner.span(),
10383 Self::ComparisonOperator(inner) => inner.span(),
10384 Self::ComplexPattern(inner) => inner.span(),
10385 Self::ConcatenatedString(inner) => inner.span(),
10386 Self::ConditionalExpression(inner) => inner.span(),
10387 Self::ConstrainedType(inner) => inner.span(),
10388 Self::ContinueStatement(inner) => inner.span(),
10389 Self::DecoratedDefinition(inner) => inner.span(),
10390 Self::Decorator(inner) => inner.span(),
10391 Self::DefaultParameter(inner) => inner.span(),
10392 Self::DeleteStatement(inner) => inner.span(),
10393 Self::DictPattern(inner) => inner.span(),
10394 Self::Dictionary(inner) => inner.span(),
10395 Self::DictionaryComprehension(inner) => inner.span(),
10396 Self::DictionarySplat(inner) => inner.span(),
10397 Self::DictionarySplatPattern(inner) => inner.span(),
10398 Self::DottedName(inner) => inner.span(),
10399 Self::ElifClause(inner) => inner.span(),
10400 Self::ElseClause(inner) => inner.span(),
10401 Self::ExceptClause(inner) => inner.span(),
10402 Self::ExecStatement(inner) => inner.span(),
10403 Self::ExpressionList(inner) => inner.span(),
10404 Self::ExpressionStatement(inner) => inner.span(),
10405 Self::FinallyClause(inner) => inner.span(),
10406 Self::ForInClause(inner) => inner.span(),
10407 Self::ForStatement(inner) => inner.span(),
10408 Self::FormatExpression(inner) => inner.span(),
10409 Self::FormatSpecifier(inner) => inner.span(),
10410 Self::FunctionDefinition(inner) => inner.span(),
10411 Self::FutureImportStatement(inner) => inner.span(),
10412 Self::GeneratorExpression(inner) => inner.span(),
10413 Self::GenericType(inner) => inner.span(),
10414 Self::GlobalStatement(inner) => inner.span(),
10415 Self::IfClause(inner) => inner.span(),
10416 Self::IfStatement(inner) => inner.span(),
10417 Self::ImportFromStatement(inner) => inner.span(),
10418 Self::ImportPrefix(inner) => inner.span(),
10419 Self::ImportStatement(inner) => inner.span(),
10420 Self::Interpolation(inner) => inner.span(),
10421 Self::KeywordArgument(inner) => inner.span(),
10422 Self::KeywordPattern(inner) => inner.span(),
10423 Self::KeywordSeparator(inner) => inner.span(),
10424 Self::Lambda(inner) => inner.span(),
10425 Self::LambdaParameters(inner) => inner.span(),
10426 Self::List(inner) => inner.span(),
10427 Self::ListComprehension(inner) => inner.span(),
10428 Self::ListPattern(inner) => inner.span(),
10429 Self::ListSplat(inner) => inner.span(),
10430 Self::ListSplatPattern(inner) => inner.span(),
10431 Self::MatchStatement(inner) => inner.span(),
10432 Self::MemberType(inner) => inner.span(),
10433 Self::Module(inner) => inner.span(),
10434 Self::NamedExpression(inner) => inner.span(),
10435 Self::NonlocalStatement(inner) => inner.span(),
10436 Self::NotOperator(inner) => inner.span(),
10437 Self::Pair(inner) => inner.span(),
10438 Self::Parameters(inner) => inner.span(),
10439 Self::ParenthesizedExpression(inner) => inner.span(),
10440 Self::ParenthesizedListSplat(inner) => inner.span(),
10441 Self::PassStatement(inner) => inner.span(),
10442 Self::PatternList(inner) => inner.span(),
10443 Self::PositionalSeparator(inner) => inner.span(),
10444 Self::PrintStatement(inner) => inner.span(),
10445 Self::RaiseStatement(inner) => inner.span(),
10446 Self::RelativeImport(inner) => inner.span(),
10447 Self::ReturnStatement(inner) => inner.span(),
10448 Self::Set(inner) => inner.span(),
10449 Self::SetComprehension(inner) => inner.span(),
10450 Self::Slice(inner) => inner.span(),
10451 Self::SplatPattern(inner) => inner.span(),
10452 Self::SplatType(inner) => inner.span(),
10453 Self::String(inner) => inner.span(),
10454 Self::StringContent(inner) => inner.span(),
10455 Self::Subscript(inner) => inner.span(),
10456 Self::TryStatement(inner) => inner.span(),
10457 Self::Tuple(inner) => inner.span(),
10458 Self::TuplePattern(inner) => inner.span(),
10459 Self::Type(inner) => inner.span(),
10460 Self::TypeAliasStatement(inner) => inner.span(),
10461 Self::TypeParameter(inner) => inner.span(),
10462 Self::TypedDefaultParameter(inner) => inner.span(),
10463 Self::TypedParameter(inner) => inner.span(),
10464 Self::UnaryOperator(inner) => inner.span(),
10465 Self::UnionPattern(inner) => inner.span(),
10466 Self::UnionType(inner) => inner.span(),
10467 Self::WhileStatement(inner) => inner.span(),
10468 Self::WildcardImport(inner) => inner.span(),
10469 Self::WithClause(inner) => inner.span(),
10470 Self::WithItem(inner) => inner.span(),
10471 Self::WithStatement(inner) => inner.span(),
10472 Self::Yield(inner) => inner.span(),
10473 Self::Comment(inner) => inner.span(),
10474 Self::Ellipsis(inner) => inner.span(),
10475 Self::EscapeInterpolation(inner) => inner.span(),
10476 Self::EscapeSequence(inner) => inner.span(),
10477 Self::False(inner) => inner.span(),
10478 Self::Float(inner) => inner.span(),
10479 Self::Identifier(inner) => inner.span(),
10480 Self::Integer(inner) => inner.span(),
10481 Self::LineContinuation(inner) => inner.span(),
10482 Self::None(inner) => inner.span(),
10483 Self::StringEnd(inner) => inner.span(),
10484 Self::StringStart(inner) => inner.span(),
10485 Self::True(inner) => inner.span(),
10486 Self::TypeConversion(inner) => inner.span(),
10487 Self::AsPatternTarget(inner) => inner.span(),
10488 Self::Unknown(node) => ::treesitter_types::Span::from(*node),
10489 }
10490 }
10491}