1#[derive(Debug, Clone)]
2pub enum Declaration<'tree> {
3 ClassDeclaration(::std::boxed::Box<ClassDeclaration<'tree>>),
4 FunctionDeclaration(::std::boxed::Box<FunctionDeclaration<'tree>>),
5 GeneratorFunctionDeclaration(::std::boxed::Box<GeneratorFunctionDeclaration<'tree>>),
6 LexicalDeclaration(::std::boxed::Box<LexicalDeclaration<'tree>>),
7 UsingDeclaration(::std::boxed::Box<UsingDeclaration<'tree>>),
8 VariableDeclaration(::std::boxed::Box<VariableDeclaration<'tree>>),
9}
10impl<'tree> ::treesitter_types::FromNode<'tree> for Declaration<'tree> {
11 #[allow(clippy::collapsible_else_if)]
12 fn from_node(
13 node: ::tree_sitter::Node<'tree>,
14 src: &'tree [u8],
15 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
16 match node.kind() {
17 "class_declaration" => Ok(Self::ClassDeclaration(::std::boxed::Box::new(
18 <ClassDeclaration as ::treesitter_types::FromNode>::from_node(node, src)?,
19 ))),
20 "function_declaration" => Ok(Self::FunctionDeclaration(::std::boxed::Box::new(
21 <FunctionDeclaration as ::treesitter_types::FromNode>::from_node(node, src)?,
22 ))),
23 "generator_function_declaration" => {
24 Ok(Self::GeneratorFunctionDeclaration(::std::boxed::Box::new(
25 <GeneratorFunctionDeclaration as ::treesitter_types::FromNode>::from_node(
26 node, src,
27 )?,
28 )))
29 }
30 "lexical_declaration" => Ok(Self::LexicalDeclaration(::std::boxed::Box::new(
31 <LexicalDeclaration as ::treesitter_types::FromNode>::from_node(node, src)?,
32 ))),
33 "using_declaration" => Ok(Self::UsingDeclaration(::std::boxed::Box::new(
34 <UsingDeclaration as ::treesitter_types::FromNode>::from_node(node, src)?,
35 ))),
36 "variable_declaration" => Ok(Self::VariableDeclaration(::std::boxed::Box::new(
37 <VariableDeclaration as ::treesitter_types::FromNode>::from_node(node, src)?,
38 ))),
39 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
40 }
41 }
42}
43impl ::treesitter_types::Spanned for Declaration<'_> {
44 fn span(&self) -> ::treesitter_types::Span {
45 match self {
46 Self::ClassDeclaration(inner) => inner.span(),
47 Self::FunctionDeclaration(inner) => inner.span(),
48 Self::GeneratorFunctionDeclaration(inner) => inner.span(),
49 Self::LexicalDeclaration(inner) => inner.span(),
50 Self::UsingDeclaration(inner) => inner.span(),
51 Self::VariableDeclaration(inner) => inner.span(),
52 }
53 }
54}
55#[derive(Debug, Clone)]
56pub enum Expression<'tree> {
57 AssignmentExpression(::std::boxed::Box<AssignmentExpression<'tree>>),
58 AugmentedAssignmentExpression(::std::boxed::Box<AugmentedAssignmentExpression<'tree>>),
59 AwaitExpression(::std::boxed::Box<AwaitExpression<'tree>>),
60 BinaryExpression(::std::boxed::Box<BinaryExpression<'tree>>),
61 JsxElement(::std::boxed::Box<JsxElement<'tree>>),
62 JsxSelfClosingElement(::std::boxed::Box<JsxSelfClosingElement<'tree>>),
63 NewExpression(::std::boxed::Box<NewExpression<'tree>>),
64 PrimaryExpression(::std::boxed::Box<PrimaryExpression<'tree>>),
65 TernaryExpression(::std::boxed::Box<TernaryExpression<'tree>>),
66 UnaryExpression(::std::boxed::Box<UnaryExpression<'tree>>),
67 UpdateExpression(::std::boxed::Box<UpdateExpression<'tree>>),
68 YieldExpression(::std::boxed::Box<YieldExpression<'tree>>),
69}
70impl<'tree> ::treesitter_types::FromNode<'tree> for Expression<'tree> {
71 #[allow(clippy::collapsible_else_if)]
72 fn from_node(
73 node: ::tree_sitter::Node<'tree>,
74 src: &'tree [u8],
75 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
76 match node.kind() {
77 "assignment_expression" => Ok(Self::AssignmentExpression(::std::boxed::Box::new(
78 <AssignmentExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
79 ))),
80 "augmented_assignment_expression" => {
81 Ok(Self::AugmentedAssignmentExpression(::std::boxed::Box::new(
82 <AugmentedAssignmentExpression as ::treesitter_types::FromNode>::from_node(
83 node, src,
84 )?,
85 )))
86 }
87 "await_expression" => Ok(Self::AwaitExpression(::std::boxed::Box::new(
88 <AwaitExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
89 ))),
90 "binary_expression" => Ok(Self::BinaryExpression(::std::boxed::Box::new(
91 <BinaryExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
92 ))),
93 "jsx_element" => Ok(Self::JsxElement(::std::boxed::Box::new(
94 <JsxElement as ::treesitter_types::FromNode>::from_node(node, src)?,
95 ))),
96 "jsx_self_closing_element" => Ok(Self::JsxSelfClosingElement(::std::boxed::Box::new(
97 <JsxSelfClosingElement as ::treesitter_types::FromNode>::from_node(node, src)?,
98 ))),
99 "new_expression" => Ok(Self::NewExpression(::std::boxed::Box::new(
100 <NewExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
101 ))),
102 "ternary_expression" => Ok(Self::TernaryExpression(::std::boxed::Box::new(
103 <TernaryExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
104 ))),
105 "unary_expression" => Ok(Self::UnaryExpression(::std::boxed::Box::new(
106 <UnaryExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
107 ))),
108 "update_expression" => Ok(Self::UpdateExpression(::std::boxed::Box::new(
109 <UpdateExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
110 ))),
111 "yield_expression" => Ok(Self::YieldExpression(::std::boxed::Box::new(
112 <YieldExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
113 ))),
114 _other => {
115 if let Ok(v) =
116 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(node, src)
117 {
118 Ok(Self::PrimaryExpression(::std::boxed::Box::new(v)))
119 } else {
120 Err(::treesitter_types::ParseError::unexpected_kind(
121 _other, node,
122 ))
123 }
124 }
125 }
126 }
127}
128impl ::treesitter_types::Spanned for Expression<'_> {
129 fn span(&self) -> ::treesitter_types::Span {
130 match self {
131 Self::AssignmentExpression(inner) => inner.span(),
132 Self::AugmentedAssignmentExpression(inner) => inner.span(),
133 Self::AwaitExpression(inner) => inner.span(),
134 Self::BinaryExpression(inner) => inner.span(),
135 Self::JsxElement(inner) => inner.span(),
136 Self::JsxSelfClosingElement(inner) => inner.span(),
137 Self::NewExpression(inner) => inner.span(),
138 Self::PrimaryExpression(inner) => inner.span(),
139 Self::TernaryExpression(inner) => inner.span(),
140 Self::UnaryExpression(inner) => inner.span(),
141 Self::UpdateExpression(inner) => inner.span(),
142 Self::YieldExpression(inner) => inner.span(),
143 }
144 }
145}
146#[derive(Debug, Clone)]
147pub enum Pattern<'tree> {
148 ArrayPattern(::std::boxed::Box<ArrayPattern<'tree>>),
149 Identifier(::std::boxed::Box<Identifier<'tree>>),
150 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
151 ObjectPattern(::std::boxed::Box<ObjectPattern<'tree>>),
152 RestPattern(::std::boxed::Box<RestPattern<'tree>>),
153 SubscriptExpression(::std::boxed::Box<SubscriptExpression<'tree>>),
154 Undefined(::std::boxed::Box<Undefined<'tree>>),
155}
156impl<'tree> ::treesitter_types::FromNode<'tree> for Pattern<'tree> {
157 #[allow(clippy::collapsible_else_if)]
158 fn from_node(
159 node: ::tree_sitter::Node<'tree>,
160 src: &'tree [u8],
161 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
162 match node.kind() {
163 "array_pattern" => Ok(Self::ArrayPattern(::std::boxed::Box::new(
164 <ArrayPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
165 ))),
166 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
167 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
168 ))),
169 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
170 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
171 ))),
172 "object_pattern" => Ok(Self::ObjectPattern(::std::boxed::Box::new(
173 <ObjectPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
174 ))),
175 "rest_pattern" => Ok(Self::RestPattern(::std::boxed::Box::new(
176 <RestPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
177 ))),
178 "subscript_expression" => Ok(Self::SubscriptExpression(::std::boxed::Box::new(
179 <SubscriptExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
180 ))),
181 "undefined" => Ok(Self::Undefined(::std::boxed::Box::new(
182 <Undefined as ::treesitter_types::FromNode>::from_node(node, src)?,
183 ))),
184 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
185 }
186 }
187}
188impl ::treesitter_types::Spanned for Pattern<'_> {
189 fn span(&self) -> ::treesitter_types::Span {
190 match self {
191 Self::ArrayPattern(inner) => inner.span(),
192 Self::Identifier(inner) => inner.span(),
193 Self::MemberExpression(inner) => inner.span(),
194 Self::ObjectPattern(inner) => inner.span(),
195 Self::RestPattern(inner) => inner.span(),
196 Self::SubscriptExpression(inner) => inner.span(),
197 Self::Undefined(inner) => inner.span(),
198 }
199 }
200}
201#[derive(Debug, Clone)]
202pub enum PrimaryExpression<'tree> {
203 Array(::std::boxed::Box<Array<'tree>>),
204 ArrowFunction(::std::boxed::Box<ArrowFunction<'tree>>),
205 CallExpression(::std::boxed::Box<CallExpression<'tree>>),
206 Class(::std::boxed::Box<Class<'tree>>),
207 False(::std::boxed::Box<False<'tree>>),
208 FunctionExpression(::std::boxed::Box<FunctionExpression<'tree>>),
209 GeneratorFunction(::std::boxed::Box<GeneratorFunction<'tree>>),
210 Identifier(::std::boxed::Box<Identifier<'tree>>),
211 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
212 MetaProperty(::std::boxed::Box<MetaProperty<'tree>>),
213 Null(::std::boxed::Box<Null<'tree>>),
214 Number(::std::boxed::Box<Number<'tree>>),
215 Object(::std::boxed::Box<Object<'tree>>),
216 ParenthesizedExpression(::std::boxed::Box<ParenthesizedExpression<'tree>>),
217 Regex(::std::boxed::Box<Regex<'tree>>),
218 String(::std::boxed::Box<String<'tree>>),
219 SubscriptExpression(::std::boxed::Box<SubscriptExpression<'tree>>),
220 Super(::std::boxed::Box<Super<'tree>>),
221 TemplateString(::std::boxed::Box<TemplateString<'tree>>),
222 This(::std::boxed::Box<This<'tree>>),
223 True(::std::boxed::Box<True<'tree>>),
224 Undefined(::std::boxed::Box<Undefined<'tree>>),
225}
226impl<'tree> ::treesitter_types::FromNode<'tree> for PrimaryExpression<'tree> {
227 #[allow(clippy::collapsible_else_if)]
228 fn from_node(
229 node: ::tree_sitter::Node<'tree>,
230 src: &'tree [u8],
231 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
232 match node.kind() {
233 "array" => Ok(Self::Array(::std::boxed::Box::new(
234 <Array as ::treesitter_types::FromNode>::from_node(node, src)?,
235 ))),
236 "arrow_function" => Ok(Self::ArrowFunction(::std::boxed::Box::new(
237 <ArrowFunction as ::treesitter_types::FromNode>::from_node(node, src)?,
238 ))),
239 "call_expression" => Ok(Self::CallExpression(::std::boxed::Box::new(
240 <CallExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
241 ))),
242 "class" => Ok(Self::Class(::std::boxed::Box::new(
243 <Class as ::treesitter_types::FromNode>::from_node(node, src)?,
244 ))),
245 "false" => Ok(Self::False(::std::boxed::Box::new(
246 <False as ::treesitter_types::FromNode>::from_node(node, src)?,
247 ))),
248 "function_expression" => Ok(Self::FunctionExpression(::std::boxed::Box::new(
249 <FunctionExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
250 ))),
251 "generator_function" => Ok(Self::GeneratorFunction(::std::boxed::Box::new(
252 <GeneratorFunction as ::treesitter_types::FromNode>::from_node(node, src)?,
253 ))),
254 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
255 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
256 ))),
257 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
258 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
259 ))),
260 "meta_property" => Ok(Self::MetaProperty(::std::boxed::Box::new(
261 <MetaProperty as ::treesitter_types::FromNode>::from_node(node, src)?,
262 ))),
263 "null" => Ok(Self::Null(::std::boxed::Box::new(
264 <Null as ::treesitter_types::FromNode>::from_node(node, src)?,
265 ))),
266 "number" => Ok(Self::Number(::std::boxed::Box::new(
267 <Number as ::treesitter_types::FromNode>::from_node(node, src)?,
268 ))),
269 "object" => Ok(Self::Object(::std::boxed::Box::new(
270 <Object as ::treesitter_types::FromNode>::from_node(node, src)?,
271 ))),
272 "parenthesized_expression" => {
273 Ok(Self::ParenthesizedExpression(::std::boxed::Box::new(
274 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(
275 node, src,
276 )?,
277 )))
278 }
279 "regex" => Ok(Self::Regex(::std::boxed::Box::new(
280 <Regex as ::treesitter_types::FromNode>::from_node(node, src)?,
281 ))),
282 "string" => Ok(Self::String(::std::boxed::Box::new(
283 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
284 ))),
285 "subscript_expression" => Ok(Self::SubscriptExpression(::std::boxed::Box::new(
286 <SubscriptExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
287 ))),
288 "super" => Ok(Self::Super(::std::boxed::Box::new(
289 <Super as ::treesitter_types::FromNode>::from_node(node, src)?,
290 ))),
291 "template_string" => Ok(Self::TemplateString(::std::boxed::Box::new(
292 <TemplateString as ::treesitter_types::FromNode>::from_node(node, src)?,
293 ))),
294 "this" => Ok(Self::This(::std::boxed::Box::new(
295 <This as ::treesitter_types::FromNode>::from_node(node, src)?,
296 ))),
297 "true" => Ok(Self::True(::std::boxed::Box::new(
298 <True as ::treesitter_types::FromNode>::from_node(node, src)?,
299 ))),
300 "undefined" => Ok(Self::Undefined(::std::boxed::Box::new(
301 <Undefined as ::treesitter_types::FromNode>::from_node(node, src)?,
302 ))),
303 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
304 }
305 }
306}
307impl ::treesitter_types::Spanned for PrimaryExpression<'_> {
308 fn span(&self) -> ::treesitter_types::Span {
309 match self {
310 Self::Array(inner) => inner.span(),
311 Self::ArrowFunction(inner) => inner.span(),
312 Self::CallExpression(inner) => inner.span(),
313 Self::Class(inner) => inner.span(),
314 Self::False(inner) => inner.span(),
315 Self::FunctionExpression(inner) => inner.span(),
316 Self::GeneratorFunction(inner) => inner.span(),
317 Self::Identifier(inner) => inner.span(),
318 Self::MemberExpression(inner) => inner.span(),
319 Self::MetaProperty(inner) => inner.span(),
320 Self::Null(inner) => inner.span(),
321 Self::Number(inner) => inner.span(),
322 Self::Object(inner) => inner.span(),
323 Self::ParenthesizedExpression(inner) => inner.span(),
324 Self::Regex(inner) => inner.span(),
325 Self::String(inner) => inner.span(),
326 Self::SubscriptExpression(inner) => inner.span(),
327 Self::Super(inner) => inner.span(),
328 Self::TemplateString(inner) => inner.span(),
329 Self::This(inner) => inner.span(),
330 Self::True(inner) => inner.span(),
331 Self::Undefined(inner) => inner.span(),
332 }
333 }
334}
335#[derive(Debug, Clone)]
336pub enum Statement<'tree> {
337 BreakStatement(::std::boxed::Box<BreakStatement<'tree>>),
338 ContinueStatement(::std::boxed::Box<ContinueStatement<'tree>>),
339 DebuggerStatement(::std::boxed::Box<DebuggerStatement<'tree>>),
340 Declaration(::std::boxed::Box<Declaration<'tree>>),
341 DoStatement(::std::boxed::Box<DoStatement<'tree>>),
342 EmptyStatement(::std::boxed::Box<EmptyStatement<'tree>>),
343 ExportStatement(::std::boxed::Box<ExportStatement<'tree>>),
344 ExpressionStatement(::std::boxed::Box<ExpressionStatement<'tree>>),
345 ForInStatement(::std::boxed::Box<ForInStatement<'tree>>),
346 ForStatement(::std::boxed::Box<ForStatement<'tree>>),
347 IfStatement(::std::boxed::Box<IfStatement<'tree>>),
348 ImportStatement(::std::boxed::Box<ImportStatement<'tree>>),
349 LabeledStatement(::std::boxed::Box<LabeledStatement<'tree>>),
350 ReturnStatement(::std::boxed::Box<ReturnStatement<'tree>>),
351 StatementBlock(::std::boxed::Box<StatementBlock<'tree>>),
352 SwitchStatement(::std::boxed::Box<SwitchStatement<'tree>>),
353 ThrowStatement(::std::boxed::Box<ThrowStatement<'tree>>),
354 TryStatement(::std::boxed::Box<TryStatement<'tree>>),
355 WhileStatement(::std::boxed::Box<WhileStatement<'tree>>),
356 WithStatement(::std::boxed::Box<WithStatement<'tree>>),
357}
358impl<'tree> ::treesitter_types::FromNode<'tree> for Statement<'tree> {
359 #[allow(clippy::collapsible_else_if)]
360 fn from_node(
361 node: ::tree_sitter::Node<'tree>,
362 src: &'tree [u8],
363 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
364 match node.kind() {
365 "break_statement" => Ok(Self::BreakStatement(::std::boxed::Box::new(
366 <BreakStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
367 ))),
368 "continue_statement" => Ok(Self::ContinueStatement(::std::boxed::Box::new(
369 <ContinueStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
370 ))),
371 "debugger_statement" => Ok(Self::DebuggerStatement(::std::boxed::Box::new(
372 <DebuggerStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
373 ))),
374 "do_statement" => Ok(Self::DoStatement(::std::boxed::Box::new(
375 <DoStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
376 ))),
377 "empty_statement" => Ok(Self::EmptyStatement(::std::boxed::Box::new(
378 <EmptyStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
379 ))),
380 "export_statement" => Ok(Self::ExportStatement(::std::boxed::Box::new(
381 <ExportStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
382 ))),
383 "expression_statement" => Ok(Self::ExpressionStatement(::std::boxed::Box::new(
384 <ExpressionStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
385 ))),
386 "for_in_statement" => Ok(Self::ForInStatement(::std::boxed::Box::new(
387 <ForInStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
388 ))),
389 "for_statement" => Ok(Self::ForStatement(::std::boxed::Box::new(
390 <ForStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
391 ))),
392 "if_statement" => Ok(Self::IfStatement(::std::boxed::Box::new(
393 <IfStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
394 ))),
395 "import_statement" => Ok(Self::ImportStatement(::std::boxed::Box::new(
396 <ImportStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
397 ))),
398 "labeled_statement" => Ok(Self::LabeledStatement(::std::boxed::Box::new(
399 <LabeledStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
400 ))),
401 "return_statement" => Ok(Self::ReturnStatement(::std::boxed::Box::new(
402 <ReturnStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
403 ))),
404 "statement_block" => Ok(Self::StatementBlock(::std::boxed::Box::new(
405 <StatementBlock as ::treesitter_types::FromNode>::from_node(node, src)?,
406 ))),
407 "switch_statement" => Ok(Self::SwitchStatement(::std::boxed::Box::new(
408 <SwitchStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
409 ))),
410 "throw_statement" => Ok(Self::ThrowStatement(::std::boxed::Box::new(
411 <ThrowStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
412 ))),
413 "try_statement" => Ok(Self::TryStatement(::std::boxed::Box::new(
414 <TryStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
415 ))),
416 "while_statement" => Ok(Self::WhileStatement(::std::boxed::Box::new(
417 <WhileStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
418 ))),
419 "with_statement" => Ok(Self::WithStatement(::std::boxed::Box::new(
420 <WithStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
421 ))),
422 _other => {
423 if let Ok(v) = <Declaration as ::treesitter_types::FromNode>::from_node(node, src) {
424 Ok(Self::Declaration(::std::boxed::Box::new(v)))
425 } else {
426 Err(::treesitter_types::ParseError::unexpected_kind(
427 _other, node,
428 ))
429 }
430 }
431 }
432 }
433}
434impl ::treesitter_types::Spanned for Statement<'_> {
435 fn span(&self) -> ::treesitter_types::Span {
436 match self {
437 Self::BreakStatement(inner) => inner.span(),
438 Self::ContinueStatement(inner) => inner.span(),
439 Self::DebuggerStatement(inner) => inner.span(),
440 Self::Declaration(inner) => inner.span(),
441 Self::DoStatement(inner) => inner.span(),
442 Self::EmptyStatement(inner) => inner.span(),
443 Self::ExportStatement(inner) => inner.span(),
444 Self::ExpressionStatement(inner) => inner.span(),
445 Self::ForInStatement(inner) => inner.span(),
446 Self::ForStatement(inner) => inner.span(),
447 Self::IfStatement(inner) => inner.span(),
448 Self::ImportStatement(inner) => inner.span(),
449 Self::LabeledStatement(inner) => inner.span(),
450 Self::ReturnStatement(inner) => inner.span(),
451 Self::StatementBlock(inner) => inner.span(),
452 Self::SwitchStatement(inner) => inner.span(),
453 Self::ThrowStatement(inner) => inner.span(),
454 Self::TryStatement(inner) => inner.span(),
455 Self::WhileStatement(inner) => inner.span(),
456 Self::WithStatement(inner) => inner.span(),
457 }
458 }
459}
460#[derive(Debug, Clone)]
461pub struct Arguments<'tree> {
462 pub span: ::treesitter_types::Span,
463 pub children: ::std::vec::Vec<ArgumentsChildren<'tree>>,
464}
465impl<'tree> ::treesitter_types::FromNode<'tree> for Arguments<'tree> {
466 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
467 fn from_node(
468 node: ::tree_sitter::Node<'tree>,
469 src: &'tree [u8],
470 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
471 debug_assert_eq!(node.kind(), "arguments");
472 Ok(Self {
473 span: ::treesitter_types::Span::from(node),
474 children: {
475 #[allow(clippy::suspicious_else_formatting)]
476 let non_field_children = {
477 let mut cursor = node.walk();
478 let mut result = ::std::vec::Vec::new();
479 if cursor.goto_first_child() {
480 loop {
481 if cursor.field_name().is_none()
482 && cursor.node().is_named()
483 && !cursor.node().is_extra()
484 {
485 result.push(cursor.node());
486 }
487 if !cursor.goto_next_sibling() {
488 break;
489 }
490 }
491 }
492 result
493 };
494 let mut items = ::std::vec::Vec::new();
495 for child in non_field_children {
496 items.push(
497 <ArgumentsChildren as ::treesitter_types::FromNode>::from_node(child, src)?,
498 );
499 }
500 items
501 },
502 })
503 }
504}
505impl ::treesitter_types::Spanned for Arguments<'_> {
506 fn span(&self) -> ::treesitter_types::Span {
507 self.span
508 }
509}
510#[derive(Debug, Clone)]
511pub struct Array<'tree> {
512 pub span: ::treesitter_types::Span,
513 pub children: ::std::vec::Vec<ArrayChildren<'tree>>,
514}
515impl<'tree> ::treesitter_types::FromNode<'tree> for Array<'tree> {
516 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
517 fn from_node(
518 node: ::tree_sitter::Node<'tree>,
519 src: &'tree [u8],
520 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
521 debug_assert_eq!(node.kind(), "array");
522 Ok(Self {
523 span: ::treesitter_types::Span::from(node),
524 children: {
525 #[allow(clippy::suspicious_else_formatting)]
526 let non_field_children = {
527 let mut cursor = node.walk();
528 let mut result = ::std::vec::Vec::new();
529 if cursor.goto_first_child() {
530 loop {
531 if cursor.field_name().is_none()
532 && cursor.node().is_named()
533 && !cursor.node().is_extra()
534 {
535 result.push(cursor.node());
536 }
537 if !cursor.goto_next_sibling() {
538 break;
539 }
540 }
541 }
542 result
543 };
544 let mut items = ::std::vec::Vec::new();
545 for child in non_field_children {
546 items.push(<ArrayChildren as ::treesitter_types::FromNode>::from_node(
547 child, src,
548 )?);
549 }
550 items
551 },
552 })
553 }
554}
555impl ::treesitter_types::Spanned for Array<'_> {
556 fn span(&self) -> ::treesitter_types::Span {
557 self.span
558 }
559}
560#[derive(Debug, Clone)]
561pub struct ArrayPattern<'tree> {
562 pub span: ::treesitter_types::Span,
563 pub children: ::std::vec::Vec<ArrayPatternChildren<'tree>>,
564}
565impl<'tree> ::treesitter_types::FromNode<'tree> for ArrayPattern<'tree> {
566 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
567 fn from_node(
568 node: ::tree_sitter::Node<'tree>,
569 src: &'tree [u8],
570 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
571 debug_assert_eq!(node.kind(), "array_pattern");
572 Ok(Self {
573 span: ::treesitter_types::Span::from(node),
574 children: {
575 #[allow(clippy::suspicious_else_formatting)]
576 let non_field_children = {
577 let mut cursor = node.walk();
578 let mut result = ::std::vec::Vec::new();
579 if cursor.goto_first_child() {
580 loop {
581 if cursor.field_name().is_none()
582 && cursor.node().is_named()
583 && !cursor.node().is_extra()
584 {
585 result.push(cursor.node());
586 }
587 if !cursor.goto_next_sibling() {
588 break;
589 }
590 }
591 }
592 result
593 };
594 let mut items = ::std::vec::Vec::new();
595 for child in non_field_children {
596 items.push(
597 <ArrayPatternChildren as ::treesitter_types::FromNode>::from_node(
598 child, src,
599 )?,
600 );
601 }
602 items
603 },
604 })
605 }
606}
607impl ::treesitter_types::Spanned for ArrayPattern<'_> {
608 fn span(&self) -> ::treesitter_types::Span {
609 self.span
610 }
611}
612#[derive(Debug, Clone)]
613pub struct ArrowFunction<'tree> {
614 pub span: ::treesitter_types::Span,
615 pub body: ArrowFunctionBody<'tree>,
616 pub parameter: ::core::option::Option<Identifier<'tree>>,
617 pub parameters: ::core::option::Option<FormalParameters<'tree>>,
618}
619impl<'tree> ::treesitter_types::FromNode<'tree> for ArrowFunction<'tree> {
620 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
621 fn from_node(
622 node: ::tree_sitter::Node<'tree>,
623 src: &'tree [u8],
624 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
625 debug_assert_eq!(node.kind(), "arrow_function");
626 Ok(Self {
627 span: ::treesitter_types::Span::from(node),
628 body: {
629 let child = node
630 .child_by_field_name("body")
631 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
632 <ArrowFunctionBody as ::treesitter_types::FromNode>::from_node(child, src)?
633 },
634 parameter: match node.child_by_field_name("parameter") {
635 Some(child) => Some(<Identifier as ::treesitter_types::FromNode>::from_node(
636 child, src,
637 )?),
638 None => None,
639 },
640 parameters: match node.child_by_field_name("parameters") {
641 Some(child) => {
642 Some(<FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)?)
643 }
644 None => None,
645 },
646 })
647 }
648}
649impl ::treesitter_types::Spanned for ArrowFunction<'_> {
650 fn span(&self) -> ::treesitter_types::Span {
651 self.span
652 }
653}
654#[derive(Debug, Clone)]
655pub struct AssignmentExpression<'tree> {
656 pub span: ::treesitter_types::Span,
657 pub left: AssignmentExpressionLeft<'tree>,
658 pub right: Expression<'tree>,
659}
660impl<'tree> ::treesitter_types::FromNode<'tree> for AssignmentExpression<'tree> {
661 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
662 fn from_node(
663 node: ::tree_sitter::Node<'tree>,
664 src: &'tree [u8],
665 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
666 debug_assert_eq!(node.kind(), "assignment_expression");
667 Ok(Self {
668 span: ::treesitter_types::Span::from(node),
669 left: {
670 let child = node
671 .child_by_field_name("left")
672 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
673 <AssignmentExpressionLeft as ::treesitter_types::FromNode>::from_node(child, src)?
674 },
675 right: {
676 let child = node
677 .child_by_field_name("right")
678 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
679 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
680 },
681 })
682 }
683}
684impl ::treesitter_types::Spanned for AssignmentExpression<'_> {
685 fn span(&self) -> ::treesitter_types::Span {
686 self.span
687 }
688}
689#[derive(Debug, Clone)]
690pub struct AssignmentPattern<'tree> {
691 pub span: ::treesitter_types::Span,
692 pub left: Pattern<'tree>,
693 pub right: Expression<'tree>,
694}
695impl<'tree> ::treesitter_types::FromNode<'tree> for AssignmentPattern<'tree> {
696 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
697 fn from_node(
698 node: ::tree_sitter::Node<'tree>,
699 src: &'tree [u8],
700 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
701 debug_assert_eq!(node.kind(), "assignment_pattern");
702 Ok(Self {
703 span: ::treesitter_types::Span::from(node),
704 left: {
705 let child = node
706 .child_by_field_name("left")
707 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
708 <Pattern as ::treesitter_types::FromNode>::from_node(child, src)?
709 },
710 right: {
711 let child = node
712 .child_by_field_name("right")
713 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
714 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
715 },
716 })
717 }
718}
719impl ::treesitter_types::Spanned for AssignmentPattern<'_> {
720 fn span(&self) -> ::treesitter_types::Span {
721 self.span
722 }
723}
724#[derive(Debug, Clone)]
725pub struct AugmentedAssignmentExpression<'tree> {
726 pub span: ::treesitter_types::Span,
727 pub left: AugmentedAssignmentExpressionLeft<'tree>,
728 pub operator: AugmentedAssignmentExpressionOperator,
729 pub right: Expression<'tree>,
730}
731impl<'tree> ::treesitter_types::FromNode<'tree> for AugmentedAssignmentExpression<'tree> {
732 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
733 fn from_node(
734 node: ::tree_sitter::Node<'tree>,
735 src: &'tree [u8],
736 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
737 debug_assert_eq!(node.kind(), "augmented_assignment_expression");
738 Ok(Self {
739 span: ::treesitter_types::Span::from(node),
740 left: {
741 let child = node
742 .child_by_field_name("left")
743 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
744 <AugmentedAssignmentExpressionLeft as ::treesitter_types::FromNode>::from_node(
745 child, src,
746 )?
747 },
748 operator: {
749 let child = node.child_by_field_name("operator").ok_or_else(|| {
750 ::treesitter_types::ParseError::missing_field("operator", node)
751 })?;
752 <AugmentedAssignmentExpressionOperator as ::treesitter_types::FromNode>::from_node(
753 child, src,
754 )?
755 },
756 right: {
757 let child = node
758 .child_by_field_name("right")
759 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
760 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
761 },
762 })
763 }
764}
765impl ::treesitter_types::Spanned for AugmentedAssignmentExpression<'_> {
766 fn span(&self) -> ::treesitter_types::Span {
767 self.span
768 }
769}
770#[derive(Debug, Clone)]
771pub struct AwaitExpression<'tree> {
772 pub span: ::treesitter_types::Span,
773 pub children: Expression<'tree>,
774}
775impl<'tree> ::treesitter_types::FromNode<'tree> for AwaitExpression<'tree> {
776 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
777 fn from_node(
778 node: ::tree_sitter::Node<'tree>,
779 src: &'tree [u8],
780 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
781 debug_assert_eq!(node.kind(), "await_expression");
782 Ok(Self {
783 span: ::treesitter_types::Span::from(node),
784 children: {
785 #[allow(clippy::suspicious_else_formatting)]
786 let non_field_children = {
787 let mut cursor = node.walk();
788 let mut result = ::std::vec::Vec::new();
789 if cursor.goto_first_child() {
790 loop {
791 if cursor.field_name().is_none()
792 && cursor.node().is_named()
793 && !cursor.node().is_extra()
794 {
795 result.push(cursor.node());
796 }
797 if !cursor.goto_next_sibling() {
798 break;
799 }
800 }
801 }
802 result
803 };
804 let child = if let Some(&c) = non_field_children.first() {
805 c
806 } else {
807 let mut fallback_cursor = node.walk();
808 let mut fallback_child = None;
809 if fallback_cursor.goto_first_child() {
810 loop {
811 if fallback_cursor.field_name().is_none()
812 && !fallback_cursor.node().is_extra()
813 {
814 fallback_child = Some(fallback_cursor.node());
815 break;
816 }
817 if !fallback_cursor.goto_next_sibling() {
818 break;
819 }
820 }
821 }
822 fallback_child.ok_or_else(|| {
823 ::treesitter_types::ParseError::missing_field("children", node)
824 })?
825 };
826 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
827 },
828 })
829 }
830}
831impl ::treesitter_types::Spanned for AwaitExpression<'_> {
832 fn span(&self) -> ::treesitter_types::Span {
833 self.span
834 }
835}
836#[derive(Debug, Clone)]
837pub struct BinaryExpression<'tree> {
838 pub span: ::treesitter_types::Span,
839 pub left: BinaryExpressionLeft<'tree>,
840 pub operator: BinaryExpressionOperator,
841 pub right: Expression<'tree>,
842}
843impl<'tree> ::treesitter_types::FromNode<'tree> for BinaryExpression<'tree> {
844 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
845 fn from_node(
846 node: ::tree_sitter::Node<'tree>,
847 src: &'tree [u8],
848 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
849 debug_assert_eq!(node.kind(), "binary_expression");
850 Ok(Self {
851 span: ::treesitter_types::Span::from(node),
852 left: {
853 let child = node
854 .child_by_field_name("left")
855 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
856 <BinaryExpressionLeft as ::treesitter_types::FromNode>::from_node(child, src)?
857 },
858 operator: {
859 let child = node.child_by_field_name("operator").ok_or_else(|| {
860 ::treesitter_types::ParseError::missing_field("operator", node)
861 })?;
862 <BinaryExpressionOperator as ::treesitter_types::FromNode>::from_node(child, src)?
863 },
864 right: {
865 let child = node
866 .child_by_field_name("right")
867 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
868 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
869 },
870 })
871 }
872}
873impl ::treesitter_types::Spanned for BinaryExpression<'_> {
874 fn span(&self) -> ::treesitter_types::Span {
875 self.span
876 }
877}
878#[derive(Debug, Clone)]
879pub struct BreakStatement<'tree> {
880 pub span: ::treesitter_types::Span,
881 pub label: ::core::option::Option<StatementIdentifier<'tree>>,
882}
883impl<'tree> ::treesitter_types::FromNode<'tree> for BreakStatement<'tree> {
884 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
885 fn from_node(
886 node: ::tree_sitter::Node<'tree>,
887 src: &'tree [u8],
888 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
889 debug_assert_eq!(node.kind(), "break_statement");
890 Ok(Self {
891 span: ::treesitter_types::Span::from(node),
892 label: match node.child_by_field_name("label") {
893 Some(child) => Some(
894 <StatementIdentifier as ::treesitter_types::FromNode>::from_node(child, src)?,
895 ),
896 None => None,
897 },
898 })
899 }
900}
901impl ::treesitter_types::Spanned for BreakStatement<'_> {
902 fn span(&self) -> ::treesitter_types::Span {
903 self.span
904 }
905}
906#[derive(Debug, Clone)]
907pub struct CallExpression<'tree> {
908 pub span: ::treesitter_types::Span,
909 pub arguments: CallExpressionArguments<'tree>,
910 pub function: CallExpressionFunction<'tree>,
911 pub optional_chain: ::core::option::Option<OptionalChain<'tree>>,
912}
913impl<'tree> ::treesitter_types::FromNode<'tree> for CallExpression<'tree> {
914 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
915 fn from_node(
916 node: ::tree_sitter::Node<'tree>,
917 src: &'tree [u8],
918 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
919 debug_assert_eq!(node.kind(), "call_expression");
920 Ok(Self {
921 span: ::treesitter_types::Span::from(node),
922 arguments: {
923 let child = node.child_by_field_name("arguments").ok_or_else(|| {
924 ::treesitter_types::ParseError::missing_field("arguments", node)
925 })?;
926 <CallExpressionArguments as ::treesitter_types::FromNode>::from_node(child, src)?
927 },
928 function: {
929 let child = node.child_by_field_name("function").ok_or_else(|| {
930 ::treesitter_types::ParseError::missing_field("function", node)
931 })?;
932 <CallExpressionFunction as ::treesitter_types::FromNode>::from_node(child, src)?
933 },
934 optional_chain: match node.child_by_field_name("optional_chain") {
935 Some(child) => Some(<OptionalChain as ::treesitter_types::FromNode>::from_node(
936 child, src,
937 )?),
938 None => None,
939 },
940 })
941 }
942}
943impl ::treesitter_types::Spanned for CallExpression<'_> {
944 fn span(&self) -> ::treesitter_types::Span {
945 self.span
946 }
947}
948#[derive(Debug, Clone)]
949pub struct CatchClause<'tree> {
950 pub span: ::treesitter_types::Span,
951 pub body: StatementBlock<'tree>,
952 pub parameter: ::core::option::Option<CatchClauseParameter<'tree>>,
953}
954impl<'tree> ::treesitter_types::FromNode<'tree> for CatchClause<'tree> {
955 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
956 fn from_node(
957 node: ::tree_sitter::Node<'tree>,
958 src: &'tree [u8],
959 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
960 debug_assert_eq!(node.kind(), "catch_clause");
961 Ok(Self {
962 span: ::treesitter_types::Span::from(node),
963 body: {
964 let child = node
965 .child_by_field_name("body")
966 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
967 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)?
968 },
969 parameter: match node.child_by_field_name("parameter") {
970 Some(child) => Some(
971 <CatchClauseParameter as ::treesitter_types::FromNode>::from_node(child, src)?,
972 ),
973 None => None,
974 },
975 })
976 }
977}
978impl ::treesitter_types::Spanned for CatchClause<'_> {
979 fn span(&self) -> ::treesitter_types::Span {
980 self.span
981 }
982}
983#[derive(Debug, Clone)]
984pub struct Class<'tree> {
985 pub span: ::treesitter_types::Span,
986 pub body: ClassBody<'tree>,
987 pub decorator: ::std::vec::Vec<Decorator<'tree>>,
988 pub name: ::core::option::Option<Identifier<'tree>>,
989 pub children: ::core::option::Option<ClassHeritage<'tree>>,
990}
991impl<'tree> ::treesitter_types::FromNode<'tree> for Class<'tree> {
992 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
993 fn from_node(
994 node: ::tree_sitter::Node<'tree>,
995 src: &'tree [u8],
996 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
997 debug_assert_eq!(node.kind(), "class");
998 Ok(Self {
999 span: ::treesitter_types::Span::from(node),
1000 body: {
1001 let child = node
1002 .child_by_field_name("body")
1003 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
1004 <ClassBody as ::treesitter_types::FromNode>::from_node(child, src)?
1005 },
1006 decorator: {
1007 let mut cursor = node.walk();
1008 let mut items = ::std::vec::Vec::new();
1009 for child in node.children_by_field_name("decorator", &mut cursor) {
1010 items.push(<Decorator as ::treesitter_types::FromNode>::from_node(
1011 child, src,
1012 )?);
1013 }
1014 items
1015 },
1016 name: match node.child_by_field_name("name") {
1017 Some(child) => Some(<Identifier as ::treesitter_types::FromNode>::from_node(
1018 child, src,
1019 )?),
1020 None => None,
1021 },
1022 children: {
1023 #[allow(clippy::suspicious_else_formatting)]
1024 let non_field_children = {
1025 let mut cursor = node.walk();
1026 let mut result = ::std::vec::Vec::new();
1027 if cursor.goto_first_child() {
1028 loop {
1029 if cursor.field_name().is_none()
1030 && cursor.node().is_named()
1031 && !cursor.node().is_extra()
1032 {
1033 result.push(cursor.node());
1034 }
1035 if !cursor.goto_next_sibling() {
1036 break;
1037 }
1038 }
1039 }
1040 result
1041 };
1042 match non_field_children.first() {
1043 Some(&child) => Some(
1044 <ClassHeritage as ::treesitter_types::FromNode>::from_node(child, src)?,
1045 ),
1046 None => None,
1047 }
1048 },
1049 })
1050 }
1051}
1052impl ::treesitter_types::Spanned for Class<'_> {
1053 fn span(&self) -> ::treesitter_types::Span {
1054 self.span
1055 }
1056}
1057#[derive(Debug, Clone)]
1058pub struct ClassBody<'tree> {
1059 pub span: ::treesitter_types::Span,
1060 pub member: ::std::vec::Vec<ClassBodyMember<'tree>>,
1061}
1062impl<'tree> ::treesitter_types::FromNode<'tree> for ClassBody<'tree> {
1063 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1064 fn from_node(
1065 node: ::tree_sitter::Node<'tree>,
1066 src: &'tree [u8],
1067 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1068 debug_assert_eq!(node.kind(), "class_body");
1069 Ok(Self {
1070 span: ::treesitter_types::Span::from(node),
1071 member: {
1072 let mut cursor = node.walk();
1073 let mut items = ::std::vec::Vec::new();
1074 for child in node.children_by_field_name("member", &mut cursor) {
1075 items.push(
1076 <ClassBodyMember as ::treesitter_types::FromNode>::from_node(child, src)?,
1077 );
1078 }
1079 items
1080 },
1081 })
1082 }
1083}
1084impl ::treesitter_types::Spanned for ClassBody<'_> {
1085 fn span(&self) -> ::treesitter_types::Span {
1086 self.span
1087 }
1088}
1089#[derive(Debug, Clone)]
1090pub struct ClassDeclaration<'tree> {
1091 pub span: ::treesitter_types::Span,
1092 pub body: ClassBody<'tree>,
1093 pub decorator: ::std::vec::Vec<Decorator<'tree>>,
1094 pub name: Identifier<'tree>,
1095 pub children: ::core::option::Option<ClassHeritage<'tree>>,
1096}
1097impl<'tree> ::treesitter_types::FromNode<'tree> for ClassDeclaration<'tree> {
1098 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1099 fn from_node(
1100 node: ::tree_sitter::Node<'tree>,
1101 src: &'tree [u8],
1102 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1103 debug_assert_eq!(node.kind(), "class_declaration");
1104 Ok(Self {
1105 span: ::treesitter_types::Span::from(node),
1106 body: {
1107 let child = node
1108 .child_by_field_name("body")
1109 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
1110 <ClassBody as ::treesitter_types::FromNode>::from_node(child, src)?
1111 },
1112 decorator: {
1113 let mut cursor = node.walk();
1114 let mut items = ::std::vec::Vec::new();
1115 for child in node.children_by_field_name("decorator", &mut cursor) {
1116 items.push(<Decorator as ::treesitter_types::FromNode>::from_node(
1117 child, src,
1118 )?);
1119 }
1120 items
1121 },
1122 name: {
1123 let child = node
1124 .child_by_field_name("name")
1125 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
1126 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)?
1127 },
1128 children: {
1129 #[allow(clippy::suspicious_else_formatting)]
1130 let non_field_children = {
1131 let mut cursor = node.walk();
1132 let mut result = ::std::vec::Vec::new();
1133 if cursor.goto_first_child() {
1134 loop {
1135 if cursor.field_name().is_none()
1136 && cursor.node().is_named()
1137 && !cursor.node().is_extra()
1138 {
1139 result.push(cursor.node());
1140 }
1141 if !cursor.goto_next_sibling() {
1142 break;
1143 }
1144 }
1145 }
1146 result
1147 };
1148 match non_field_children.first() {
1149 Some(&child) => Some(
1150 <ClassHeritage as ::treesitter_types::FromNode>::from_node(child, src)?,
1151 ),
1152 None => None,
1153 }
1154 },
1155 })
1156 }
1157}
1158impl ::treesitter_types::Spanned for ClassDeclaration<'_> {
1159 fn span(&self) -> ::treesitter_types::Span {
1160 self.span
1161 }
1162}
1163#[derive(Debug, Clone)]
1164pub struct ClassHeritage<'tree> {
1165 pub span: ::treesitter_types::Span,
1166 pub children: Expression<'tree>,
1167}
1168impl<'tree> ::treesitter_types::FromNode<'tree> for ClassHeritage<'tree> {
1169 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1170 fn from_node(
1171 node: ::tree_sitter::Node<'tree>,
1172 src: &'tree [u8],
1173 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1174 debug_assert_eq!(node.kind(), "class_heritage");
1175 Ok(Self {
1176 span: ::treesitter_types::Span::from(node),
1177 children: {
1178 #[allow(clippy::suspicious_else_formatting)]
1179 let non_field_children = {
1180 let mut cursor = node.walk();
1181 let mut result = ::std::vec::Vec::new();
1182 if cursor.goto_first_child() {
1183 loop {
1184 if cursor.field_name().is_none()
1185 && cursor.node().is_named()
1186 && !cursor.node().is_extra()
1187 {
1188 result.push(cursor.node());
1189 }
1190 if !cursor.goto_next_sibling() {
1191 break;
1192 }
1193 }
1194 }
1195 result
1196 };
1197 let child = if let Some(&c) = non_field_children.first() {
1198 c
1199 } else {
1200 let mut fallback_cursor = node.walk();
1201 let mut fallback_child = None;
1202 if fallback_cursor.goto_first_child() {
1203 loop {
1204 if fallback_cursor.field_name().is_none()
1205 && !fallback_cursor.node().is_extra()
1206 {
1207 fallback_child = Some(fallback_cursor.node());
1208 break;
1209 }
1210 if !fallback_cursor.goto_next_sibling() {
1211 break;
1212 }
1213 }
1214 }
1215 fallback_child.ok_or_else(|| {
1216 ::treesitter_types::ParseError::missing_field("children", node)
1217 })?
1218 };
1219 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
1220 },
1221 })
1222 }
1223}
1224impl ::treesitter_types::Spanned for ClassHeritage<'_> {
1225 fn span(&self) -> ::treesitter_types::Span {
1226 self.span
1227 }
1228}
1229#[derive(Debug, Clone)]
1230pub struct ClassStaticBlock<'tree> {
1231 pub span: ::treesitter_types::Span,
1232 pub body: StatementBlock<'tree>,
1233}
1234impl<'tree> ::treesitter_types::FromNode<'tree> for ClassStaticBlock<'tree> {
1235 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1236 fn from_node(
1237 node: ::tree_sitter::Node<'tree>,
1238 src: &'tree [u8],
1239 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1240 debug_assert_eq!(node.kind(), "class_static_block");
1241 Ok(Self {
1242 span: ::treesitter_types::Span::from(node),
1243 body: {
1244 let child = node
1245 .child_by_field_name("body")
1246 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
1247 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)?
1248 },
1249 })
1250 }
1251}
1252impl ::treesitter_types::Spanned for ClassStaticBlock<'_> {
1253 fn span(&self) -> ::treesitter_types::Span {
1254 self.span
1255 }
1256}
1257#[derive(Debug, Clone)]
1258pub struct ComputedPropertyName<'tree> {
1259 pub span: ::treesitter_types::Span,
1260 pub children: Expression<'tree>,
1261}
1262impl<'tree> ::treesitter_types::FromNode<'tree> for ComputedPropertyName<'tree> {
1263 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1264 fn from_node(
1265 node: ::tree_sitter::Node<'tree>,
1266 src: &'tree [u8],
1267 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1268 debug_assert_eq!(node.kind(), "computed_property_name");
1269 Ok(Self {
1270 span: ::treesitter_types::Span::from(node),
1271 children: {
1272 #[allow(clippy::suspicious_else_formatting)]
1273 let non_field_children = {
1274 let mut cursor = node.walk();
1275 let mut result = ::std::vec::Vec::new();
1276 if cursor.goto_first_child() {
1277 loop {
1278 if cursor.field_name().is_none()
1279 && cursor.node().is_named()
1280 && !cursor.node().is_extra()
1281 {
1282 result.push(cursor.node());
1283 }
1284 if !cursor.goto_next_sibling() {
1285 break;
1286 }
1287 }
1288 }
1289 result
1290 };
1291 let child = if let Some(&c) = non_field_children.first() {
1292 c
1293 } else {
1294 let mut fallback_cursor = node.walk();
1295 let mut fallback_child = None;
1296 if fallback_cursor.goto_first_child() {
1297 loop {
1298 if fallback_cursor.field_name().is_none()
1299 && !fallback_cursor.node().is_extra()
1300 {
1301 fallback_child = Some(fallback_cursor.node());
1302 break;
1303 }
1304 if !fallback_cursor.goto_next_sibling() {
1305 break;
1306 }
1307 }
1308 }
1309 fallback_child.ok_or_else(|| {
1310 ::treesitter_types::ParseError::missing_field("children", node)
1311 })?
1312 };
1313 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
1314 },
1315 })
1316 }
1317}
1318impl ::treesitter_types::Spanned for ComputedPropertyName<'_> {
1319 fn span(&self) -> ::treesitter_types::Span {
1320 self.span
1321 }
1322}
1323#[derive(Debug, Clone)]
1324pub struct ContinueStatement<'tree> {
1325 pub span: ::treesitter_types::Span,
1326 pub label: ::core::option::Option<StatementIdentifier<'tree>>,
1327}
1328impl<'tree> ::treesitter_types::FromNode<'tree> for ContinueStatement<'tree> {
1329 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1330 fn from_node(
1331 node: ::tree_sitter::Node<'tree>,
1332 src: &'tree [u8],
1333 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1334 debug_assert_eq!(node.kind(), "continue_statement");
1335 Ok(Self {
1336 span: ::treesitter_types::Span::from(node),
1337 label: match node.child_by_field_name("label") {
1338 Some(child) => Some(
1339 <StatementIdentifier as ::treesitter_types::FromNode>::from_node(child, src)?,
1340 ),
1341 None => None,
1342 },
1343 })
1344 }
1345}
1346impl ::treesitter_types::Spanned for ContinueStatement<'_> {
1347 fn span(&self) -> ::treesitter_types::Span {
1348 self.span
1349 }
1350}
1351#[derive(Debug, Clone)]
1352pub struct DebuggerStatement<'tree> {
1353 pub span: ::treesitter_types::Span,
1354 text: &'tree str,
1355}
1356impl<'tree> ::treesitter_types::FromNode<'tree> for DebuggerStatement<'tree> {
1357 fn from_node(
1358 node: ::tree_sitter::Node<'tree>,
1359 src: &'tree [u8],
1360 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1361 debug_assert_eq!(node.kind(), "debugger_statement");
1362 Ok(Self {
1363 span: ::treesitter_types::Span::from(node),
1364 text: node.utf8_text(src)?,
1365 })
1366 }
1367}
1368impl<'tree> ::treesitter_types::LeafNode<'tree> for DebuggerStatement<'tree> {
1369 fn text(&self) -> &'tree str {
1370 self.text
1371 }
1372}
1373impl ::treesitter_types::Spanned for DebuggerStatement<'_> {
1374 fn span(&self) -> ::treesitter_types::Span {
1375 self.span
1376 }
1377}
1378#[derive(Debug, Clone)]
1379pub struct Decorator<'tree> {
1380 pub span: ::treesitter_types::Span,
1381 pub children: DecoratorChildren<'tree>,
1382}
1383impl<'tree> ::treesitter_types::FromNode<'tree> for Decorator<'tree> {
1384 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1385 fn from_node(
1386 node: ::tree_sitter::Node<'tree>,
1387 src: &'tree [u8],
1388 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1389 debug_assert_eq!(node.kind(), "decorator");
1390 Ok(Self {
1391 span: ::treesitter_types::Span::from(node),
1392 children: {
1393 #[allow(clippy::suspicious_else_formatting)]
1394 let non_field_children = {
1395 let mut cursor = node.walk();
1396 let mut result = ::std::vec::Vec::new();
1397 if cursor.goto_first_child() {
1398 loop {
1399 if cursor.field_name().is_none()
1400 && cursor.node().is_named()
1401 && !cursor.node().is_extra()
1402 {
1403 result.push(cursor.node());
1404 }
1405 if !cursor.goto_next_sibling() {
1406 break;
1407 }
1408 }
1409 }
1410 result
1411 };
1412 let child = if let Some(&c) = non_field_children.first() {
1413 c
1414 } else {
1415 let mut fallback_cursor = node.walk();
1416 let mut fallback_child = None;
1417 if fallback_cursor.goto_first_child() {
1418 loop {
1419 if fallback_cursor.field_name().is_none()
1420 && !fallback_cursor.node().is_extra()
1421 {
1422 fallback_child = Some(fallback_cursor.node());
1423 break;
1424 }
1425 if !fallback_cursor.goto_next_sibling() {
1426 break;
1427 }
1428 }
1429 }
1430 fallback_child.ok_or_else(|| {
1431 ::treesitter_types::ParseError::missing_field("children", node)
1432 })?
1433 };
1434 <DecoratorChildren as ::treesitter_types::FromNode>::from_node(child, src)?
1435 },
1436 })
1437 }
1438}
1439impl ::treesitter_types::Spanned for Decorator<'_> {
1440 fn span(&self) -> ::treesitter_types::Span {
1441 self.span
1442 }
1443}
1444#[derive(Debug, Clone)]
1445pub struct DoStatement<'tree> {
1446 pub span: ::treesitter_types::Span,
1447 pub body: Statement<'tree>,
1448 pub condition: ParenthesizedExpression<'tree>,
1449}
1450impl<'tree> ::treesitter_types::FromNode<'tree> for DoStatement<'tree> {
1451 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1452 fn from_node(
1453 node: ::tree_sitter::Node<'tree>,
1454 src: &'tree [u8],
1455 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1456 debug_assert_eq!(node.kind(), "do_statement");
1457 Ok(Self {
1458 span: ::treesitter_types::Span::from(node),
1459 body: {
1460 let child = node
1461 .child_by_field_name("body")
1462 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
1463 <Statement as ::treesitter_types::FromNode>::from_node(child, src)?
1464 },
1465 condition: {
1466 let child = node.child_by_field_name("condition").ok_or_else(|| {
1467 ::treesitter_types::ParseError::missing_field("condition", node)
1468 })?;
1469 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(child, src)?
1470 },
1471 })
1472 }
1473}
1474impl ::treesitter_types::Spanned for DoStatement<'_> {
1475 fn span(&self) -> ::treesitter_types::Span {
1476 self.span
1477 }
1478}
1479#[derive(Debug, Clone)]
1480pub struct ElseClause<'tree> {
1481 pub span: ::treesitter_types::Span,
1482 pub children: Statement<'tree>,
1483}
1484impl<'tree> ::treesitter_types::FromNode<'tree> for ElseClause<'tree> {
1485 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1486 fn from_node(
1487 node: ::tree_sitter::Node<'tree>,
1488 src: &'tree [u8],
1489 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1490 debug_assert_eq!(node.kind(), "else_clause");
1491 Ok(Self {
1492 span: ::treesitter_types::Span::from(node),
1493 children: {
1494 #[allow(clippy::suspicious_else_formatting)]
1495 let non_field_children = {
1496 let mut cursor = node.walk();
1497 let mut result = ::std::vec::Vec::new();
1498 if cursor.goto_first_child() {
1499 loop {
1500 if cursor.field_name().is_none()
1501 && cursor.node().is_named()
1502 && !cursor.node().is_extra()
1503 {
1504 result.push(cursor.node());
1505 }
1506 if !cursor.goto_next_sibling() {
1507 break;
1508 }
1509 }
1510 }
1511 result
1512 };
1513 let child = if let Some(&c) = non_field_children.first() {
1514 c
1515 } else {
1516 let mut fallback_cursor = node.walk();
1517 let mut fallback_child = None;
1518 if fallback_cursor.goto_first_child() {
1519 loop {
1520 if fallback_cursor.field_name().is_none()
1521 && !fallback_cursor.node().is_extra()
1522 {
1523 fallback_child = Some(fallback_cursor.node());
1524 break;
1525 }
1526 if !fallback_cursor.goto_next_sibling() {
1527 break;
1528 }
1529 }
1530 }
1531 fallback_child.ok_or_else(|| {
1532 ::treesitter_types::ParseError::missing_field("children", node)
1533 })?
1534 };
1535 <Statement as ::treesitter_types::FromNode>::from_node(child, src)?
1536 },
1537 })
1538 }
1539}
1540impl ::treesitter_types::Spanned for ElseClause<'_> {
1541 fn span(&self) -> ::treesitter_types::Span {
1542 self.span
1543 }
1544}
1545#[derive(Debug, Clone)]
1546pub struct EmptyStatement<'tree> {
1547 pub span: ::treesitter_types::Span,
1548 text: &'tree str,
1549}
1550impl<'tree> ::treesitter_types::FromNode<'tree> for EmptyStatement<'tree> {
1551 fn from_node(
1552 node: ::tree_sitter::Node<'tree>,
1553 src: &'tree [u8],
1554 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1555 debug_assert_eq!(node.kind(), "empty_statement");
1556 Ok(Self {
1557 span: ::treesitter_types::Span::from(node),
1558 text: node.utf8_text(src)?,
1559 })
1560 }
1561}
1562impl<'tree> ::treesitter_types::LeafNode<'tree> for EmptyStatement<'tree> {
1563 fn text(&self) -> &'tree str {
1564 self.text
1565 }
1566}
1567impl ::treesitter_types::Spanned for EmptyStatement<'_> {
1568 fn span(&self) -> ::treesitter_types::Span {
1569 self.span
1570 }
1571}
1572#[derive(Debug, Clone)]
1573pub struct ExportClause<'tree> {
1574 pub span: ::treesitter_types::Span,
1575 pub children: ::std::vec::Vec<ExportSpecifier<'tree>>,
1576}
1577impl<'tree> ::treesitter_types::FromNode<'tree> for ExportClause<'tree> {
1578 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1579 fn from_node(
1580 node: ::tree_sitter::Node<'tree>,
1581 src: &'tree [u8],
1582 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1583 debug_assert_eq!(node.kind(), "export_clause");
1584 Ok(Self {
1585 span: ::treesitter_types::Span::from(node),
1586 children: {
1587 #[allow(clippy::suspicious_else_formatting)]
1588 let non_field_children = {
1589 let mut cursor = node.walk();
1590 let mut result = ::std::vec::Vec::new();
1591 if cursor.goto_first_child() {
1592 loop {
1593 if cursor.field_name().is_none()
1594 && cursor.node().is_named()
1595 && !cursor.node().is_extra()
1596 {
1597 result.push(cursor.node());
1598 }
1599 if !cursor.goto_next_sibling() {
1600 break;
1601 }
1602 }
1603 }
1604 result
1605 };
1606 let mut items = ::std::vec::Vec::new();
1607 for child in non_field_children {
1608 items.push(
1609 <ExportSpecifier as ::treesitter_types::FromNode>::from_node(child, src)?,
1610 );
1611 }
1612 items
1613 },
1614 })
1615 }
1616}
1617impl ::treesitter_types::Spanned for ExportClause<'_> {
1618 fn span(&self) -> ::treesitter_types::Span {
1619 self.span
1620 }
1621}
1622#[derive(Debug, Clone)]
1623pub struct ExportSpecifier<'tree> {
1624 pub span: ::treesitter_types::Span,
1625 pub alias: ::core::option::Option<ExportSpecifierAlias<'tree>>,
1626 pub name: ExportSpecifierName<'tree>,
1627}
1628impl<'tree> ::treesitter_types::FromNode<'tree> for ExportSpecifier<'tree> {
1629 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1630 fn from_node(
1631 node: ::tree_sitter::Node<'tree>,
1632 src: &'tree [u8],
1633 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1634 debug_assert_eq!(node.kind(), "export_specifier");
1635 Ok(Self {
1636 span: ::treesitter_types::Span::from(node),
1637 alias: match node.child_by_field_name("alias") {
1638 Some(child) => Some(
1639 <ExportSpecifierAlias as ::treesitter_types::FromNode>::from_node(child, src)?,
1640 ),
1641 None => None,
1642 },
1643 name: {
1644 let child = node
1645 .child_by_field_name("name")
1646 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
1647 <ExportSpecifierName as ::treesitter_types::FromNode>::from_node(child, src)?
1648 },
1649 })
1650 }
1651}
1652impl ::treesitter_types::Spanned for ExportSpecifier<'_> {
1653 fn span(&self) -> ::treesitter_types::Span {
1654 self.span
1655 }
1656}
1657#[derive(Debug, Clone)]
1658pub struct ExportStatement<'tree> {
1659 pub span: ::treesitter_types::Span,
1660 pub declaration: ::core::option::Option<Declaration<'tree>>,
1661 pub decorator: ::std::vec::Vec<Decorator<'tree>>,
1662 pub source: ::core::option::Option<String<'tree>>,
1663 pub value: ::core::option::Option<Expression<'tree>>,
1664 pub children: ::core::option::Option<ExportStatementChildren<'tree>>,
1665}
1666impl<'tree> ::treesitter_types::FromNode<'tree> for ExportStatement<'tree> {
1667 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1668 fn from_node(
1669 node: ::tree_sitter::Node<'tree>,
1670 src: &'tree [u8],
1671 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1672 debug_assert_eq!(node.kind(), "export_statement");
1673 Ok(Self {
1674 span: ::treesitter_types::Span::from(node),
1675 declaration: match node.child_by_field_name("declaration") {
1676 Some(child) => Some(<Declaration as ::treesitter_types::FromNode>::from_node(
1677 child, src,
1678 )?),
1679 None => None,
1680 },
1681 decorator: {
1682 let mut cursor = node.walk();
1683 let mut items = ::std::vec::Vec::new();
1684 for child in node.children_by_field_name("decorator", &mut cursor) {
1685 items.push(<Decorator as ::treesitter_types::FromNode>::from_node(
1686 child, src,
1687 )?);
1688 }
1689 items
1690 },
1691 source: match node.child_by_field_name("source") {
1692 Some(child) => Some(<String as ::treesitter_types::FromNode>::from_node(
1693 child, src,
1694 )?),
1695 None => None,
1696 },
1697 value: match node.child_by_field_name("value") {
1698 Some(child) => Some(<Expression as ::treesitter_types::FromNode>::from_node(
1699 child, src,
1700 )?),
1701 None => None,
1702 },
1703 children: {
1704 #[allow(clippy::suspicious_else_formatting)]
1705 let non_field_children = {
1706 let mut cursor = node.walk();
1707 let mut result = ::std::vec::Vec::new();
1708 if cursor.goto_first_child() {
1709 loop {
1710 if cursor.field_name().is_none()
1711 && cursor.node().is_named()
1712 && !cursor.node().is_extra()
1713 {
1714 result.push(cursor.node());
1715 }
1716 if !cursor.goto_next_sibling() {
1717 break;
1718 }
1719 }
1720 }
1721 result
1722 };
1723 match non_field_children.first() {
1724 Some(&child) => Some(
1725 <ExportStatementChildren as ::treesitter_types::FromNode>::from_node(
1726 child, src,
1727 )?,
1728 ),
1729 None => None,
1730 }
1731 },
1732 })
1733 }
1734}
1735impl ::treesitter_types::Spanned for ExportStatement<'_> {
1736 fn span(&self) -> ::treesitter_types::Span {
1737 self.span
1738 }
1739}
1740#[derive(Debug, Clone)]
1741pub struct ExpressionStatement<'tree> {
1742 pub span: ::treesitter_types::Span,
1743 pub children: ExpressionStatementChildren<'tree>,
1744}
1745impl<'tree> ::treesitter_types::FromNode<'tree> for ExpressionStatement<'tree> {
1746 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1747 fn from_node(
1748 node: ::tree_sitter::Node<'tree>,
1749 src: &'tree [u8],
1750 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1751 debug_assert_eq!(node.kind(), "expression_statement");
1752 Ok(Self {
1753 span: ::treesitter_types::Span::from(node),
1754 children: {
1755 #[allow(clippy::suspicious_else_formatting)]
1756 let non_field_children = {
1757 let mut cursor = node.walk();
1758 let mut result = ::std::vec::Vec::new();
1759 if cursor.goto_first_child() {
1760 loop {
1761 if cursor.field_name().is_none()
1762 && cursor.node().is_named()
1763 && !cursor.node().is_extra()
1764 {
1765 result.push(cursor.node());
1766 }
1767 if !cursor.goto_next_sibling() {
1768 break;
1769 }
1770 }
1771 }
1772 result
1773 };
1774 let child = if let Some(&c) = non_field_children.first() {
1775 c
1776 } else {
1777 let mut fallback_cursor = node.walk();
1778 let mut fallback_child = None;
1779 if fallback_cursor.goto_first_child() {
1780 loop {
1781 if fallback_cursor.field_name().is_none()
1782 && !fallback_cursor.node().is_extra()
1783 {
1784 fallback_child = Some(fallback_cursor.node());
1785 break;
1786 }
1787 if !fallback_cursor.goto_next_sibling() {
1788 break;
1789 }
1790 }
1791 }
1792 fallback_child.ok_or_else(|| {
1793 ::treesitter_types::ParseError::missing_field("children", node)
1794 })?
1795 };
1796 <ExpressionStatementChildren as ::treesitter_types::FromNode>::from_node(
1797 child, src,
1798 )?
1799 },
1800 })
1801 }
1802}
1803impl ::treesitter_types::Spanned for ExpressionStatement<'_> {
1804 fn span(&self) -> ::treesitter_types::Span {
1805 self.span
1806 }
1807}
1808#[derive(Debug, Clone)]
1809pub struct FieldDefinition<'tree> {
1810 pub span: ::treesitter_types::Span,
1811 pub decorator: ::std::vec::Vec<Decorator<'tree>>,
1812 pub property: FieldDefinitionProperty<'tree>,
1813 pub value: ::core::option::Option<Expression<'tree>>,
1814}
1815impl<'tree> ::treesitter_types::FromNode<'tree> for FieldDefinition<'tree> {
1816 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1817 fn from_node(
1818 node: ::tree_sitter::Node<'tree>,
1819 src: &'tree [u8],
1820 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1821 debug_assert_eq!(node.kind(), "field_definition");
1822 Ok(Self {
1823 span: ::treesitter_types::Span::from(node),
1824 decorator: {
1825 let mut cursor = node.walk();
1826 let mut items = ::std::vec::Vec::new();
1827 for child in node.children_by_field_name("decorator", &mut cursor) {
1828 items.push(<Decorator as ::treesitter_types::FromNode>::from_node(
1829 child, src,
1830 )?);
1831 }
1832 items
1833 },
1834 property: {
1835 let child = node.child_by_field_name("property").ok_or_else(|| {
1836 ::treesitter_types::ParseError::missing_field("property", node)
1837 })?;
1838 <FieldDefinitionProperty as ::treesitter_types::FromNode>::from_node(child, src)?
1839 },
1840 value: match node.child_by_field_name("value") {
1841 Some(child) => Some(<Expression as ::treesitter_types::FromNode>::from_node(
1842 child, src,
1843 )?),
1844 None => None,
1845 },
1846 })
1847 }
1848}
1849impl ::treesitter_types::Spanned for FieldDefinition<'_> {
1850 fn span(&self) -> ::treesitter_types::Span {
1851 self.span
1852 }
1853}
1854#[derive(Debug, Clone)]
1855pub struct FinallyClause<'tree> {
1856 pub span: ::treesitter_types::Span,
1857 pub body: StatementBlock<'tree>,
1858}
1859impl<'tree> ::treesitter_types::FromNode<'tree> for FinallyClause<'tree> {
1860 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1861 fn from_node(
1862 node: ::tree_sitter::Node<'tree>,
1863 src: &'tree [u8],
1864 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1865 debug_assert_eq!(node.kind(), "finally_clause");
1866 Ok(Self {
1867 span: ::treesitter_types::Span::from(node),
1868 body: {
1869 let child = node
1870 .child_by_field_name("body")
1871 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
1872 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)?
1873 },
1874 })
1875 }
1876}
1877impl ::treesitter_types::Spanned for FinallyClause<'_> {
1878 fn span(&self) -> ::treesitter_types::Span {
1879 self.span
1880 }
1881}
1882#[derive(Debug, Clone)]
1883pub struct ForInStatement<'tree> {
1884 pub span: ::treesitter_types::Span,
1885 pub body: Statement<'tree>,
1886 pub kind: ::std::vec::Vec<ForInStatementKind>,
1887 pub left: ForInStatementLeft<'tree>,
1888 pub operator: ForInStatementOperator,
1889 pub right: ForInStatementRight<'tree>,
1890 pub value: ::core::option::Option<Expression<'tree>>,
1891}
1892impl<'tree> ::treesitter_types::FromNode<'tree> for ForInStatement<'tree> {
1893 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1894 fn from_node(
1895 node: ::tree_sitter::Node<'tree>,
1896 src: &'tree [u8],
1897 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1898 debug_assert_eq!(node.kind(), "for_in_statement");
1899 Ok(Self {
1900 span: ::treesitter_types::Span::from(node),
1901 body: {
1902 let child = node
1903 .child_by_field_name("body")
1904 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
1905 <Statement as ::treesitter_types::FromNode>::from_node(child, src)?
1906 },
1907 kind: {
1908 let mut cursor = node.walk();
1909 let mut items = ::std::vec::Vec::new();
1910 for child in node.children_by_field_name("kind", &mut cursor) {
1911 items.push(
1912 <ForInStatementKind as ::treesitter_types::FromNode>::from_node(
1913 child, src,
1914 )?,
1915 );
1916 }
1917 items
1918 },
1919 left: {
1920 let child = node
1921 .child_by_field_name("left")
1922 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
1923 <ForInStatementLeft as ::treesitter_types::FromNode>::from_node(child, src)?
1924 },
1925 operator: {
1926 let child = node.child_by_field_name("operator").ok_or_else(|| {
1927 ::treesitter_types::ParseError::missing_field("operator", node)
1928 })?;
1929 <ForInStatementOperator as ::treesitter_types::FromNode>::from_node(child, src)?
1930 },
1931 right: {
1932 let child = node
1933 .child_by_field_name("right")
1934 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
1935 <ForInStatementRight as ::treesitter_types::FromNode>::from_node(child, src)?
1936 },
1937 value: match node.child_by_field_name("value") {
1938 Some(child) => Some(<Expression as ::treesitter_types::FromNode>::from_node(
1939 child, src,
1940 )?),
1941 None => None,
1942 },
1943 })
1944 }
1945}
1946impl ::treesitter_types::Spanned for ForInStatement<'_> {
1947 fn span(&self) -> ::treesitter_types::Span {
1948 self.span
1949 }
1950}
1951#[derive(Debug, Clone)]
1952pub struct ForStatement<'tree> {
1953 pub span: ::treesitter_types::Span,
1954 pub body: Statement<'tree>,
1955 pub condition: ::std::vec::Vec<ForStatementCondition<'tree>>,
1956 pub increment: ::core::option::Option<ForStatementIncrement<'tree>>,
1957 pub initializer: ForStatementInitializer<'tree>,
1958}
1959impl<'tree> ::treesitter_types::FromNode<'tree> for ForStatement<'tree> {
1960 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1961 fn from_node(
1962 node: ::tree_sitter::Node<'tree>,
1963 src: &'tree [u8],
1964 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1965 debug_assert_eq!(node.kind(), "for_statement");
1966 Ok(Self {
1967 span: ::treesitter_types::Span::from(node),
1968 body: {
1969 let child = node
1970 .child_by_field_name("body")
1971 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
1972 <Statement as ::treesitter_types::FromNode>::from_node(child, src)?
1973 },
1974 condition: {
1975 let mut cursor = node.walk();
1976 let mut items = ::std::vec::Vec::new();
1977 for child in node.children_by_field_name("condition", &mut cursor) {
1978 items.push(
1979 <ForStatementCondition as ::treesitter_types::FromNode>::from_node(
1980 child, src,
1981 )?,
1982 );
1983 }
1984 items
1985 },
1986 increment: match node.child_by_field_name("increment") {
1987 Some(child) => Some(
1988 <ForStatementIncrement as ::treesitter_types::FromNode>::from_node(child, src)?,
1989 ),
1990 None => None,
1991 },
1992 initializer: {
1993 let child = node.child_by_field_name("initializer").ok_or_else(|| {
1994 ::treesitter_types::ParseError::missing_field("initializer", node)
1995 })?;
1996 <ForStatementInitializer as ::treesitter_types::FromNode>::from_node(child, src)?
1997 },
1998 })
1999 }
2000}
2001impl ::treesitter_types::Spanned for ForStatement<'_> {
2002 fn span(&self) -> ::treesitter_types::Span {
2003 self.span
2004 }
2005}
2006#[derive(Debug, Clone)]
2007pub struct FormalParameters<'tree> {
2008 pub span: ::treesitter_types::Span,
2009 pub children: ::std::vec::Vec<FormalParametersChildren<'tree>>,
2010}
2011impl<'tree> ::treesitter_types::FromNode<'tree> for FormalParameters<'tree> {
2012 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2013 fn from_node(
2014 node: ::tree_sitter::Node<'tree>,
2015 src: &'tree [u8],
2016 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2017 debug_assert_eq!(node.kind(), "formal_parameters");
2018 Ok(Self {
2019 span: ::treesitter_types::Span::from(node),
2020 children: {
2021 #[allow(clippy::suspicious_else_formatting)]
2022 let non_field_children = {
2023 let mut cursor = node.walk();
2024 let mut result = ::std::vec::Vec::new();
2025 if cursor.goto_first_child() {
2026 loop {
2027 if cursor.field_name().is_none()
2028 && cursor.node().is_named()
2029 && !cursor.node().is_extra()
2030 {
2031 result.push(cursor.node());
2032 }
2033 if !cursor.goto_next_sibling() {
2034 break;
2035 }
2036 }
2037 }
2038 result
2039 };
2040 let mut items = ::std::vec::Vec::new();
2041 for child in non_field_children {
2042 items.push(
2043 <FormalParametersChildren as ::treesitter_types::FromNode>::from_node(
2044 child, src,
2045 )?,
2046 );
2047 }
2048 items
2049 },
2050 })
2051 }
2052}
2053impl ::treesitter_types::Spanned for FormalParameters<'_> {
2054 fn span(&self) -> ::treesitter_types::Span {
2055 self.span
2056 }
2057}
2058#[derive(Debug, Clone)]
2059pub struct FunctionDeclaration<'tree> {
2060 pub span: ::treesitter_types::Span,
2061 pub body: StatementBlock<'tree>,
2062 pub name: Identifier<'tree>,
2063 pub parameters: FormalParameters<'tree>,
2064}
2065impl<'tree> ::treesitter_types::FromNode<'tree> for FunctionDeclaration<'tree> {
2066 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2067 fn from_node(
2068 node: ::tree_sitter::Node<'tree>,
2069 src: &'tree [u8],
2070 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2071 debug_assert_eq!(node.kind(), "function_declaration");
2072 Ok(Self {
2073 span: ::treesitter_types::Span::from(node),
2074 body: {
2075 let child = node
2076 .child_by_field_name("body")
2077 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
2078 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)?
2079 },
2080 name: {
2081 let child = node
2082 .child_by_field_name("name")
2083 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
2084 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)?
2085 },
2086 parameters: {
2087 let child = node.child_by_field_name("parameters").ok_or_else(|| {
2088 ::treesitter_types::ParseError::missing_field("parameters", node)
2089 })?;
2090 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)?
2091 },
2092 })
2093 }
2094}
2095impl ::treesitter_types::Spanned for FunctionDeclaration<'_> {
2096 fn span(&self) -> ::treesitter_types::Span {
2097 self.span
2098 }
2099}
2100#[derive(Debug, Clone)]
2101pub struct FunctionExpression<'tree> {
2102 pub span: ::treesitter_types::Span,
2103 pub body: StatementBlock<'tree>,
2104 pub name: ::core::option::Option<Identifier<'tree>>,
2105 pub parameters: FormalParameters<'tree>,
2106}
2107impl<'tree> ::treesitter_types::FromNode<'tree> for FunctionExpression<'tree> {
2108 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2109 fn from_node(
2110 node: ::tree_sitter::Node<'tree>,
2111 src: &'tree [u8],
2112 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2113 debug_assert_eq!(node.kind(), "function_expression");
2114 Ok(Self {
2115 span: ::treesitter_types::Span::from(node),
2116 body: {
2117 let child = node
2118 .child_by_field_name("body")
2119 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
2120 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)?
2121 },
2122 name: match node.child_by_field_name("name") {
2123 Some(child) => Some(<Identifier as ::treesitter_types::FromNode>::from_node(
2124 child, src,
2125 )?),
2126 None => None,
2127 },
2128 parameters: {
2129 let child = node.child_by_field_name("parameters").ok_or_else(|| {
2130 ::treesitter_types::ParseError::missing_field("parameters", node)
2131 })?;
2132 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)?
2133 },
2134 })
2135 }
2136}
2137impl ::treesitter_types::Spanned for FunctionExpression<'_> {
2138 fn span(&self) -> ::treesitter_types::Span {
2139 self.span
2140 }
2141}
2142#[derive(Debug, Clone)]
2143pub struct GeneratorFunction<'tree> {
2144 pub span: ::treesitter_types::Span,
2145 pub body: StatementBlock<'tree>,
2146 pub name: ::core::option::Option<Identifier<'tree>>,
2147 pub parameters: FormalParameters<'tree>,
2148}
2149impl<'tree> ::treesitter_types::FromNode<'tree> for GeneratorFunction<'tree> {
2150 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2151 fn from_node(
2152 node: ::tree_sitter::Node<'tree>,
2153 src: &'tree [u8],
2154 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2155 debug_assert_eq!(node.kind(), "generator_function");
2156 Ok(Self {
2157 span: ::treesitter_types::Span::from(node),
2158 body: {
2159 let child = node
2160 .child_by_field_name("body")
2161 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
2162 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)?
2163 },
2164 name: match node.child_by_field_name("name") {
2165 Some(child) => Some(<Identifier as ::treesitter_types::FromNode>::from_node(
2166 child, src,
2167 )?),
2168 None => None,
2169 },
2170 parameters: {
2171 let child = node.child_by_field_name("parameters").ok_or_else(|| {
2172 ::treesitter_types::ParseError::missing_field("parameters", node)
2173 })?;
2174 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)?
2175 },
2176 })
2177 }
2178}
2179impl ::treesitter_types::Spanned for GeneratorFunction<'_> {
2180 fn span(&self) -> ::treesitter_types::Span {
2181 self.span
2182 }
2183}
2184#[derive(Debug, Clone)]
2185pub struct GeneratorFunctionDeclaration<'tree> {
2186 pub span: ::treesitter_types::Span,
2187 pub body: StatementBlock<'tree>,
2188 pub name: Identifier<'tree>,
2189 pub parameters: FormalParameters<'tree>,
2190}
2191impl<'tree> ::treesitter_types::FromNode<'tree> for GeneratorFunctionDeclaration<'tree> {
2192 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2193 fn from_node(
2194 node: ::tree_sitter::Node<'tree>,
2195 src: &'tree [u8],
2196 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2197 debug_assert_eq!(node.kind(), "generator_function_declaration");
2198 Ok(Self {
2199 span: ::treesitter_types::Span::from(node),
2200 body: {
2201 let child = node
2202 .child_by_field_name("body")
2203 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
2204 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)?
2205 },
2206 name: {
2207 let child = node
2208 .child_by_field_name("name")
2209 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
2210 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)?
2211 },
2212 parameters: {
2213 let child = node.child_by_field_name("parameters").ok_or_else(|| {
2214 ::treesitter_types::ParseError::missing_field("parameters", node)
2215 })?;
2216 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)?
2217 },
2218 })
2219 }
2220}
2221impl ::treesitter_types::Spanned for GeneratorFunctionDeclaration<'_> {
2222 fn span(&self) -> ::treesitter_types::Span {
2223 self.span
2224 }
2225}
2226#[derive(Debug, Clone)]
2227pub struct IfStatement<'tree> {
2228 pub span: ::treesitter_types::Span,
2229 pub alternative: ::core::option::Option<ElseClause<'tree>>,
2230 pub condition: ParenthesizedExpression<'tree>,
2231 pub consequence: Statement<'tree>,
2232}
2233impl<'tree> ::treesitter_types::FromNode<'tree> for IfStatement<'tree> {
2234 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2235 fn from_node(
2236 node: ::tree_sitter::Node<'tree>,
2237 src: &'tree [u8],
2238 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2239 debug_assert_eq!(node.kind(), "if_statement");
2240 Ok(Self {
2241 span: ::treesitter_types::Span::from(node),
2242 alternative: match node.child_by_field_name("alternative") {
2243 Some(child) => Some(<ElseClause as ::treesitter_types::FromNode>::from_node(
2244 child, src,
2245 )?),
2246 None => None,
2247 },
2248 condition: {
2249 let child = node.child_by_field_name("condition").ok_or_else(|| {
2250 ::treesitter_types::ParseError::missing_field("condition", node)
2251 })?;
2252 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(child, src)?
2253 },
2254 consequence: {
2255 let child = node.child_by_field_name("consequence").ok_or_else(|| {
2256 ::treesitter_types::ParseError::missing_field("consequence", node)
2257 })?;
2258 <Statement as ::treesitter_types::FromNode>::from_node(child, src)?
2259 },
2260 })
2261 }
2262}
2263impl ::treesitter_types::Spanned for IfStatement<'_> {
2264 fn span(&self) -> ::treesitter_types::Span {
2265 self.span
2266 }
2267}
2268#[derive(Debug, Clone)]
2269pub struct Import<'tree> {
2270 pub span: ::treesitter_types::Span,
2271 text: &'tree str,
2272}
2273impl<'tree> ::treesitter_types::FromNode<'tree> for Import<'tree> {
2274 fn from_node(
2275 node: ::tree_sitter::Node<'tree>,
2276 src: &'tree [u8],
2277 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2278 debug_assert_eq!(node.kind(), "import");
2279 Ok(Self {
2280 span: ::treesitter_types::Span::from(node),
2281 text: node.utf8_text(src)?,
2282 })
2283 }
2284}
2285impl<'tree> ::treesitter_types::LeafNode<'tree> for Import<'tree> {
2286 fn text(&self) -> &'tree str {
2287 self.text
2288 }
2289}
2290impl ::treesitter_types::Spanned for Import<'_> {
2291 fn span(&self) -> ::treesitter_types::Span {
2292 self.span
2293 }
2294}
2295#[derive(Debug, Clone)]
2296pub struct ImportAttribute<'tree> {
2297 pub span: ::treesitter_types::Span,
2298 pub children: Object<'tree>,
2299}
2300impl<'tree> ::treesitter_types::FromNode<'tree> for ImportAttribute<'tree> {
2301 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2302 fn from_node(
2303 node: ::tree_sitter::Node<'tree>,
2304 src: &'tree [u8],
2305 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2306 debug_assert_eq!(node.kind(), "import_attribute");
2307 Ok(Self {
2308 span: ::treesitter_types::Span::from(node),
2309 children: {
2310 #[allow(clippy::suspicious_else_formatting)]
2311 let non_field_children = {
2312 let mut cursor = node.walk();
2313 let mut result = ::std::vec::Vec::new();
2314 if cursor.goto_first_child() {
2315 loop {
2316 if cursor.field_name().is_none()
2317 && cursor.node().is_named()
2318 && !cursor.node().is_extra()
2319 {
2320 result.push(cursor.node());
2321 }
2322 if !cursor.goto_next_sibling() {
2323 break;
2324 }
2325 }
2326 }
2327 result
2328 };
2329 let child = if let Some(&c) = non_field_children.first() {
2330 c
2331 } else {
2332 let mut fallback_cursor = node.walk();
2333 let mut fallback_child = None;
2334 if fallback_cursor.goto_first_child() {
2335 loop {
2336 if fallback_cursor.field_name().is_none()
2337 && !fallback_cursor.node().is_extra()
2338 {
2339 fallback_child = Some(fallback_cursor.node());
2340 break;
2341 }
2342 if !fallback_cursor.goto_next_sibling() {
2343 break;
2344 }
2345 }
2346 }
2347 fallback_child.ok_or_else(|| {
2348 ::treesitter_types::ParseError::missing_field("children", node)
2349 })?
2350 };
2351 <Object as ::treesitter_types::FromNode>::from_node(child, src)?
2352 },
2353 })
2354 }
2355}
2356impl ::treesitter_types::Spanned for ImportAttribute<'_> {
2357 fn span(&self) -> ::treesitter_types::Span {
2358 self.span
2359 }
2360}
2361#[derive(Debug, Clone)]
2362pub struct ImportClause<'tree> {
2363 pub span: ::treesitter_types::Span,
2364 pub children: ::std::vec::Vec<ImportClauseChildren<'tree>>,
2365}
2366impl<'tree> ::treesitter_types::FromNode<'tree> for ImportClause<'tree> {
2367 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2368 fn from_node(
2369 node: ::tree_sitter::Node<'tree>,
2370 src: &'tree [u8],
2371 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2372 debug_assert_eq!(node.kind(), "import_clause");
2373 Ok(Self {
2374 span: ::treesitter_types::Span::from(node),
2375 children: {
2376 #[allow(clippy::suspicious_else_formatting)]
2377 let non_field_children = {
2378 let mut cursor = node.walk();
2379 let mut result = ::std::vec::Vec::new();
2380 if cursor.goto_first_child() {
2381 loop {
2382 if cursor.field_name().is_none()
2383 && cursor.node().is_named()
2384 && !cursor.node().is_extra()
2385 {
2386 result.push(cursor.node());
2387 }
2388 if !cursor.goto_next_sibling() {
2389 break;
2390 }
2391 }
2392 }
2393 result
2394 };
2395 let mut items = ::std::vec::Vec::new();
2396 for child in non_field_children {
2397 items.push(
2398 <ImportClauseChildren as ::treesitter_types::FromNode>::from_node(
2399 child, src,
2400 )?,
2401 );
2402 }
2403 items
2404 },
2405 })
2406 }
2407}
2408impl ::treesitter_types::Spanned for ImportClause<'_> {
2409 fn span(&self) -> ::treesitter_types::Span {
2410 self.span
2411 }
2412}
2413#[derive(Debug, Clone)]
2414pub struct ImportSpecifier<'tree> {
2415 pub span: ::treesitter_types::Span,
2416 pub alias: ::core::option::Option<Identifier<'tree>>,
2417 pub name: ImportSpecifierName<'tree>,
2418}
2419impl<'tree> ::treesitter_types::FromNode<'tree> for ImportSpecifier<'tree> {
2420 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2421 fn from_node(
2422 node: ::tree_sitter::Node<'tree>,
2423 src: &'tree [u8],
2424 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2425 debug_assert_eq!(node.kind(), "import_specifier");
2426 Ok(Self {
2427 span: ::treesitter_types::Span::from(node),
2428 alias: match node.child_by_field_name("alias") {
2429 Some(child) => Some(<Identifier as ::treesitter_types::FromNode>::from_node(
2430 child, src,
2431 )?),
2432 None => None,
2433 },
2434 name: {
2435 let child = node
2436 .child_by_field_name("name")
2437 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
2438 <ImportSpecifierName as ::treesitter_types::FromNode>::from_node(child, src)?
2439 },
2440 })
2441 }
2442}
2443impl ::treesitter_types::Spanned for ImportSpecifier<'_> {
2444 fn span(&self) -> ::treesitter_types::Span {
2445 self.span
2446 }
2447}
2448#[derive(Debug, Clone)]
2449pub struct ImportStatement<'tree> {
2450 pub span: ::treesitter_types::Span,
2451 pub source: String<'tree>,
2452 pub children: ::std::vec::Vec<ImportStatementChildren<'tree>>,
2453}
2454impl<'tree> ::treesitter_types::FromNode<'tree> for ImportStatement<'tree> {
2455 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2456 fn from_node(
2457 node: ::tree_sitter::Node<'tree>,
2458 src: &'tree [u8],
2459 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2460 debug_assert_eq!(node.kind(), "import_statement");
2461 Ok(Self {
2462 span: ::treesitter_types::Span::from(node),
2463 source: {
2464 let child = node
2465 .child_by_field_name("source")
2466 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("source", node))?;
2467 <String as ::treesitter_types::FromNode>::from_node(child, src)?
2468 },
2469 children: {
2470 #[allow(clippy::suspicious_else_formatting)]
2471 let non_field_children = {
2472 let mut cursor = node.walk();
2473 let mut result = ::std::vec::Vec::new();
2474 if cursor.goto_first_child() {
2475 loop {
2476 if cursor.field_name().is_none()
2477 && cursor.node().is_named()
2478 && !cursor.node().is_extra()
2479 {
2480 result.push(cursor.node());
2481 }
2482 if !cursor.goto_next_sibling() {
2483 break;
2484 }
2485 }
2486 }
2487 result
2488 };
2489 let mut items = ::std::vec::Vec::new();
2490 for child in non_field_children {
2491 items.push(
2492 <ImportStatementChildren as ::treesitter_types::FromNode>::from_node(
2493 child, src,
2494 )?,
2495 );
2496 }
2497 items
2498 },
2499 })
2500 }
2501}
2502impl ::treesitter_types::Spanned for ImportStatement<'_> {
2503 fn span(&self) -> ::treesitter_types::Span {
2504 self.span
2505 }
2506}
2507#[derive(Debug, Clone)]
2508pub struct JsxAttribute<'tree> {
2509 pub span: ::treesitter_types::Span,
2510 pub children: ::std::vec::Vec<JsxAttributeChildren<'tree>>,
2511}
2512impl<'tree> ::treesitter_types::FromNode<'tree> for JsxAttribute<'tree> {
2513 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2514 fn from_node(
2515 node: ::tree_sitter::Node<'tree>,
2516 src: &'tree [u8],
2517 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2518 debug_assert_eq!(node.kind(), "jsx_attribute");
2519 Ok(Self {
2520 span: ::treesitter_types::Span::from(node),
2521 children: {
2522 #[allow(clippy::suspicious_else_formatting)]
2523 let non_field_children = {
2524 let mut cursor = node.walk();
2525 let mut result = ::std::vec::Vec::new();
2526 if cursor.goto_first_child() {
2527 loop {
2528 if cursor.field_name().is_none()
2529 && cursor.node().is_named()
2530 && !cursor.node().is_extra()
2531 {
2532 result.push(cursor.node());
2533 }
2534 if !cursor.goto_next_sibling() {
2535 break;
2536 }
2537 }
2538 }
2539 result
2540 };
2541 let mut items = ::std::vec::Vec::new();
2542 for child in non_field_children {
2543 items.push(
2544 <JsxAttributeChildren as ::treesitter_types::FromNode>::from_node(
2545 child, src,
2546 )?,
2547 );
2548 }
2549 items
2550 },
2551 })
2552 }
2553}
2554impl ::treesitter_types::Spanned for JsxAttribute<'_> {
2555 fn span(&self) -> ::treesitter_types::Span {
2556 self.span
2557 }
2558}
2559#[derive(Debug, Clone)]
2560pub struct JsxClosingElement<'tree> {
2561 pub span: ::treesitter_types::Span,
2562 pub name: ::core::option::Option<JsxClosingElementName<'tree>>,
2563}
2564impl<'tree> ::treesitter_types::FromNode<'tree> for JsxClosingElement<'tree> {
2565 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2566 fn from_node(
2567 node: ::tree_sitter::Node<'tree>,
2568 src: &'tree [u8],
2569 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2570 debug_assert_eq!(node.kind(), "jsx_closing_element");
2571 Ok(Self {
2572 span: ::treesitter_types::Span::from(node),
2573 name: match node.child_by_field_name("name") {
2574 Some(child) => Some(
2575 <JsxClosingElementName as ::treesitter_types::FromNode>::from_node(child, src)?,
2576 ),
2577 None => None,
2578 },
2579 })
2580 }
2581}
2582impl ::treesitter_types::Spanned for JsxClosingElement<'_> {
2583 fn span(&self) -> ::treesitter_types::Span {
2584 self.span
2585 }
2586}
2587#[derive(Debug, Clone)]
2588pub struct JsxElement<'tree> {
2589 pub span: ::treesitter_types::Span,
2590 pub close_tag: JsxClosingElement<'tree>,
2591 pub open_tag: JsxOpeningElement<'tree>,
2592 pub children: ::std::vec::Vec<JsxElementChildren<'tree>>,
2593}
2594impl<'tree> ::treesitter_types::FromNode<'tree> for JsxElement<'tree> {
2595 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2596 fn from_node(
2597 node: ::tree_sitter::Node<'tree>,
2598 src: &'tree [u8],
2599 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2600 debug_assert_eq!(node.kind(), "jsx_element");
2601 Ok(Self {
2602 span: ::treesitter_types::Span::from(node),
2603 close_tag: {
2604 let child = node.child_by_field_name("close_tag").ok_or_else(|| {
2605 ::treesitter_types::ParseError::missing_field("close_tag", node)
2606 })?;
2607 <JsxClosingElement as ::treesitter_types::FromNode>::from_node(child, src)?
2608 },
2609 open_tag: {
2610 let child = node.child_by_field_name("open_tag").ok_or_else(|| {
2611 ::treesitter_types::ParseError::missing_field("open_tag", node)
2612 })?;
2613 <JsxOpeningElement as ::treesitter_types::FromNode>::from_node(child, src)?
2614 },
2615 children: {
2616 #[allow(clippy::suspicious_else_formatting)]
2617 let non_field_children = {
2618 let mut cursor = node.walk();
2619 let mut result = ::std::vec::Vec::new();
2620 if cursor.goto_first_child() {
2621 loop {
2622 if cursor.field_name().is_none()
2623 && cursor.node().is_named()
2624 && !cursor.node().is_extra()
2625 {
2626 result.push(cursor.node());
2627 }
2628 if !cursor.goto_next_sibling() {
2629 break;
2630 }
2631 }
2632 }
2633 result
2634 };
2635 let mut items = ::std::vec::Vec::new();
2636 for child in non_field_children {
2637 items.push(
2638 <JsxElementChildren as ::treesitter_types::FromNode>::from_node(
2639 child, src,
2640 )?,
2641 );
2642 }
2643 items
2644 },
2645 })
2646 }
2647}
2648impl ::treesitter_types::Spanned for JsxElement<'_> {
2649 fn span(&self) -> ::treesitter_types::Span {
2650 self.span
2651 }
2652}
2653#[derive(Debug, Clone)]
2654pub struct JsxExpression<'tree> {
2655 pub span: ::treesitter_types::Span,
2656 pub children: ::core::option::Option<JsxExpressionChildren<'tree>>,
2657}
2658impl<'tree> ::treesitter_types::FromNode<'tree> for JsxExpression<'tree> {
2659 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2660 fn from_node(
2661 node: ::tree_sitter::Node<'tree>,
2662 src: &'tree [u8],
2663 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2664 debug_assert_eq!(node.kind(), "jsx_expression");
2665 Ok(Self {
2666 span: ::treesitter_types::Span::from(node),
2667 children: {
2668 #[allow(clippy::suspicious_else_formatting)]
2669 let non_field_children = {
2670 let mut cursor = node.walk();
2671 let mut result = ::std::vec::Vec::new();
2672 if cursor.goto_first_child() {
2673 loop {
2674 if cursor.field_name().is_none()
2675 && cursor.node().is_named()
2676 && !cursor.node().is_extra()
2677 {
2678 result.push(cursor.node());
2679 }
2680 if !cursor.goto_next_sibling() {
2681 break;
2682 }
2683 }
2684 }
2685 result
2686 };
2687 match non_field_children.first() {
2688 Some(&child) => Some(
2689 <JsxExpressionChildren as ::treesitter_types::FromNode>::from_node(
2690 child, src,
2691 )?,
2692 ),
2693 None => None,
2694 }
2695 },
2696 })
2697 }
2698}
2699impl ::treesitter_types::Spanned for JsxExpression<'_> {
2700 fn span(&self) -> ::treesitter_types::Span {
2701 self.span
2702 }
2703}
2704#[derive(Debug, Clone)]
2705pub struct JsxNamespaceName<'tree> {
2706 pub span: ::treesitter_types::Span,
2707 pub children: ::std::vec::Vec<Identifier<'tree>>,
2708}
2709impl<'tree> ::treesitter_types::FromNode<'tree> for JsxNamespaceName<'tree> {
2710 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2711 fn from_node(
2712 node: ::tree_sitter::Node<'tree>,
2713 src: &'tree [u8],
2714 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2715 debug_assert_eq!(node.kind(), "jsx_namespace_name");
2716 Ok(Self {
2717 span: ::treesitter_types::Span::from(node),
2718 children: {
2719 #[allow(clippy::suspicious_else_formatting)]
2720 let non_field_children = {
2721 let mut cursor = node.walk();
2722 let mut result = ::std::vec::Vec::new();
2723 if cursor.goto_first_child() {
2724 loop {
2725 if cursor.field_name().is_none()
2726 && cursor.node().is_named()
2727 && !cursor.node().is_extra()
2728 {
2729 result.push(cursor.node());
2730 }
2731 if !cursor.goto_next_sibling() {
2732 break;
2733 }
2734 }
2735 }
2736 result
2737 };
2738 let mut items = ::std::vec::Vec::new();
2739 for child in non_field_children {
2740 items.push(<Identifier as ::treesitter_types::FromNode>::from_node(
2741 child, src,
2742 )?);
2743 }
2744 items
2745 },
2746 })
2747 }
2748}
2749impl ::treesitter_types::Spanned for JsxNamespaceName<'_> {
2750 fn span(&self) -> ::treesitter_types::Span {
2751 self.span
2752 }
2753}
2754#[derive(Debug, Clone)]
2755pub struct JsxOpeningElement<'tree> {
2756 pub span: ::treesitter_types::Span,
2757 pub attribute: ::std::vec::Vec<JsxOpeningElementAttribute<'tree>>,
2758 pub name: ::core::option::Option<JsxOpeningElementName<'tree>>,
2759}
2760impl<'tree> ::treesitter_types::FromNode<'tree> for JsxOpeningElement<'tree> {
2761 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2762 fn from_node(
2763 node: ::tree_sitter::Node<'tree>,
2764 src: &'tree [u8],
2765 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2766 debug_assert_eq!(node.kind(), "jsx_opening_element");
2767 Ok(Self {
2768 span: ::treesitter_types::Span::from(node),
2769 attribute: {
2770 let mut cursor = node.walk();
2771 let mut items = ::std::vec::Vec::new();
2772 for child in node.children_by_field_name("attribute", &mut cursor) {
2773 items.push(
2774 <JsxOpeningElementAttribute as ::treesitter_types::FromNode>::from_node(
2775 child, src,
2776 )?,
2777 );
2778 }
2779 items
2780 },
2781 name: match node.child_by_field_name("name") {
2782 Some(child) => Some(
2783 <JsxOpeningElementName as ::treesitter_types::FromNode>::from_node(child, src)?,
2784 ),
2785 None => None,
2786 },
2787 })
2788 }
2789}
2790impl ::treesitter_types::Spanned for JsxOpeningElement<'_> {
2791 fn span(&self) -> ::treesitter_types::Span {
2792 self.span
2793 }
2794}
2795#[derive(Debug, Clone)]
2796pub struct JsxSelfClosingElement<'tree> {
2797 pub span: ::treesitter_types::Span,
2798 pub attribute: ::std::vec::Vec<JsxSelfClosingElementAttribute<'tree>>,
2799 pub name: JsxSelfClosingElementName<'tree>,
2800}
2801impl<'tree> ::treesitter_types::FromNode<'tree> for JsxSelfClosingElement<'tree> {
2802 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2803 fn from_node(
2804 node: ::tree_sitter::Node<'tree>,
2805 src: &'tree [u8],
2806 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2807 debug_assert_eq!(node.kind(), "jsx_self_closing_element");
2808 Ok(Self {
2809 span: ::treesitter_types::Span::from(node),
2810 attribute: {
2811 let mut cursor = node.walk();
2812 let mut items = ::std::vec::Vec::new();
2813 for child in node.children_by_field_name("attribute", &mut cursor) {
2814 items
2815 .push(
2816 <JsxSelfClosingElementAttribute as ::treesitter_types::FromNode>::from_node(
2817 child,
2818 src,
2819 )?,
2820 );
2821 }
2822 items
2823 },
2824 name: {
2825 let child = node
2826 .child_by_field_name("name")
2827 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
2828 <JsxSelfClosingElementName as ::treesitter_types::FromNode>::from_node(child, src)?
2829 },
2830 })
2831 }
2832}
2833impl ::treesitter_types::Spanned for JsxSelfClosingElement<'_> {
2834 fn span(&self) -> ::treesitter_types::Span {
2835 self.span
2836 }
2837}
2838#[derive(Debug, Clone)]
2839pub struct LabeledStatement<'tree> {
2840 pub span: ::treesitter_types::Span,
2841 pub body: Statement<'tree>,
2842 pub label: StatementIdentifier<'tree>,
2843}
2844impl<'tree> ::treesitter_types::FromNode<'tree> for LabeledStatement<'tree> {
2845 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2846 fn from_node(
2847 node: ::tree_sitter::Node<'tree>,
2848 src: &'tree [u8],
2849 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2850 debug_assert_eq!(node.kind(), "labeled_statement");
2851 Ok(Self {
2852 span: ::treesitter_types::Span::from(node),
2853 body: {
2854 let child = node
2855 .child_by_field_name("body")
2856 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
2857 <Statement as ::treesitter_types::FromNode>::from_node(child, src)?
2858 },
2859 label: {
2860 let child = node
2861 .child_by_field_name("label")
2862 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("label", node))?;
2863 <StatementIdentifier as ::treesitter_types::FromNode>::from_node(child, src)?
2864 },
2865 })
2866 }
2867}
2868impl ::treesitter_types::Spanned for LabeledStatement<'_> {
2869 fn span(&self) -> ::treesitter_types::Span {
2870 self.span
2871 }
2872}
2873#[derive(Debug, Clone)]
2874pub struct LexicalDeclaration<'tree> {
2875 pub span: ::treesitter_types::Span,
2876 pub kind: LexicalDeclarationKind,
2877 pub children: ::std::vec::Vec<VariableDeclarator<'tree>>,
2878}
2879impl<'tree> ::treesitter_types::FromNode<'tree> for LexicalDeclaration<'tree> {
2880 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2881 fn from_node(
2882 node: ::tree_sitter::Node<'tree>,
2883 src: &'tree [u8],
2884 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2885 debug_assert_eq!(node.kind(), "lexical_declaration");
2886 Ok(Self {
2887 span: ::treesitter_types::Span::from(node),
2888 kind: {
2889 let child = node
2890 .child_by_field_name("kind")
2891 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("kind", node))?;
2892 <LexicalDeclarationKind as ::treesitter_types::FromNode>::from_node(child, src)?
2893 },
2894 children: {
2895 #[allow(clippy::suspicious_else_formatting)]
2896 let non_field_children = {
2897 let mut cursor = node.walk();
2898 let mut result = ::std::vec::Vec::new();
2899 if cursor.goto_first_child() {
2900 loop {
2901 if cursor.field_name().is_none()
2902 && cursor.node().is_named()
2903 && !cursor.node().is_extra()
2904 {
2905 result.push(cursor.node());
2906 }
2907 if !cursor.goto_next_sibling() {
2908 break;
2909 }
2910 }
2911 }
2912 result
2913 };
2914 let mut items = ::std::vec::Vec::new();
2915 for child in non_field_children {
2916 items.push(
2917 <VariableDeclarator as ::treesitter_types::FromNode>::from_node(
2918 child, src,
2919 )?,
2920 );
2921 }
2922 items
2923 },
2924 })
2925 }
2926}
2927impl ::treesitter_types::Spanned for LexicalDeclaration<'_> {
2928 fn span(&self) -> ::treesitter_types::Span {
2929 self.span
2930 }
2931}
2932#[derive(Debug, Clone)]
2933pub struct MemberExpression<'tree> {
2934 pub span: ::treesitter_types::Span,
2935 pub object: MemberExpressionObject<'tree>,
2936 pub optional_chain: ::core::option::Option<OptionalChain<'tree>>,
2937 pub property: MemberExpressionProperty<'tree>,
2938}
2939impl<'tree> ::treesitter_types::FromNode<'tree> for MemberExpression<'tree> {
2940 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2941 fn from_node(
2942 node: ::tree_sitter::Node<'tree>,
2943 src: &'tree [u8],
2944 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2945 debug_assert_eq!(node.kind(), "member_expression");
2946 Ok(Self {
2947 span: ::treesitter_types::Span::from(node),
2948 object: {
2949 let child = node
2950 .child_by_field_name("object")
2951 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("object", node))?;
2952 <MemberExpressionObject as ::treesitter_types::FromNode>::from_node(child, src)?
2953 },
2954 optional_chain: match node.child_by_field_name("optional_chain") {
2955 Some(child) => Some(<OptionalChain as ::treesitter_types::FromNode>::from_node(
2956 child, src,
2957 )?),
2958 None => None,
2959 },
2960 property: {
2961 let child = node.child_by_field_name("property").ok_or_else(|| {
2962 ::treesitter_types::ParseError::missing_field("property", node)
2963 })?;
2964 <MemberExpressionProperty as ::treesitter_types::FromNode>::from_node(child, src)?
2965 },
2966 })
2967 }
2968}
2969impl ::treesitter_types::Spanned for MemberExpression<'_> {
2970 fn span(&self) -> ::treesitter_types::Span {
2971 self.span
2972 }
2973}
2974#[derive(Debug, Clone)]
2975pub struct MetaProperty<'tree> {
2976 pub span: ::treesitter_types::Span,
2977 text: &'tree str,
2978}
2979impl<'tree> ::treesitter_types::FromNode<'tree> for MetaProperty<'tree> {
2980 fn from_node(
2981 node: ::tree_sitter::Node<'tree>,
2982 src: &'tree [u8],
2983 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2984 debug_assert_eq!(node.kind(), "meta_property");
2985 Ok(Self {
2986 span: ::treesitter_types::Span::from(node),
2987 text: node.utf8_text(src)?,
2988 })
2989 }
2990}
2991impl<'tree> ::treesitter_types::LeafNode<'tree> for MetaProperty<'tree> {
2992 fn text(&self) -> &'tree str {
2993 self.text
2994 }
2995}
2996impl ::treesitter_types::Spanned for MetaProperty<'_> {
2997 fn span(&self) -> ::treesitter_types::Span {
2998 self.span
2999 }
3000}
3001#[derive(Debug, Clone)]
3002pub struct MethodDefinition<'tree> {
3003 pub span: ::treesitter_types::Span,
3004 pub body: StatementBlock<'tree>,
3005 pub decorator: ::std::vec::Vec<Decorator<'tree>>,
3006 pub name: MethodDefinitionName<'tree>,
3007 pub parameters: FormalParameters<'tree>,
3008}
3009impl<'tree> ::treesitter_types::FromNode<'tree> for MethodDefinition<'tree> {
3010 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3011 fn from_node(
3012 node: ::tree_sitter::Node<'tree>,
3013 src: &'tree [u8],
3014 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3015 debug_assert_eq!(node.kind(), "method_definition");
3016 Ok(Self {
3017 span: ::treesitter_types::Span::from(node),
3018 body: {
3019 let child = node
3020 .child_by_field_name("body")
3021 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
3022 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)?
3023 },
3024 decorator: {
3025 let mut cursor = node.walk();
3026 let mut items = ::std::vec::Vec::new();
3027 for child in node.children_by_field_name("decorator", &mut cursor) {
3028 items.push(<Decorator as ::treesitter_types::FromNode>::from_node(
3029 child, src,
3030 )?);
3031 }
3032 items
3033 },
3034 name: {
3035 let child = node
3036 .child_by_field_name("name")
3037 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
3038 <MethodDefinitionName as ::treesitter_types::FromNode>::from_node(child, src)?
3039 },
3040 parameters: {
3041 let child = node.child_by_field_name("parameters").ok_or_else(|| {
3042 ::treesitter_types::ParseError::missing_field("parameters", node)
3043 })?;
3044 <FormalParameters as ::treesitter_types::FromNode>::from_node(child, src)?
3045 },
3046 })
3047 }
3048}
3049impl ::treesitter_types::Spanned for MethodDefinition<'_> {
3050 fn span(&self) -> ::treesitter_types::Span {
3051 self.span
3052 }
3053}
3054#[derive(Debug, Clone)]
3055pub struct NamedImports<'tree> {
3056 pub span: ::treesitter_types::Span,
3057 pub children: ::std::vec::Vec<ImportSpecifier<'tree>>,
3058}
3059impl<'tree> ::treesitter_types::FromNode<'tree> for NamedImports<'tree> {
3060 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3061 fn from_node(
3062 node: ::tree_sitter::Node<'tree>,
3063 src: &'tree [u8],
3064 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3065 debug_assert_eq!(node.kind(), "named_imports");
3066 Ok(Self {
3067 span: ::treesitter_types::Span::from(node),
3068 children: {
3069 #[allow(clippy::suspicious_else_formatting)]
3070 let non_field_children = {
3071 let mut cursor = node.walk();
3072 let mut result = ::std::vec::Vec::new();
3073 if cursor.goto_first_child() {
3074 loop {
3075 if cursor.field_name().is_none()
3076 && cursor.node().is_named()
3077 && !cursor.node().is_extra()
3078 {
3079 result.push(cursor.node());
3080 }
3081 if !cursor.goto_next_sibling() {
3082 break;
3083 }
3084 }
3085 }
3086 result
3087 };
3088 let mut items = ::std::vec::Vec::new();
3089 for child in non_field_children {
3090 items.push(
3091 <ImportSpecifier as ::treesitter_types::FromNode>::from_node(child, src)?,
3092 );
3093 }
3094 items
3095 },
3096 })
3097 }
3098}
3099impl ::treesitter_types::Spanned for NamedImports<'_> {
3100 fn span(&self) -> ::treesitter_types::Span {
3101 self.span
3102 }
3103}
3104#[derive(Debug, Clone)]
3105pub struct NamespaceExport<'tree> {
3106 pub span: ::treesitter_types::Span,
3107 pub children: ::core::option::Option<NamespaceExportChildren<'tree>>,
3108}
3109impl<'tree> ::treesitter_types::FromNode<'tree> for NamespaceExport<'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(), "namespace_export");
3116 Ok(Self {
3117 span: ::treesitter_types::Span::from(node),
3118 children: {
3119 #[allow(clippy::suspicious_else_formatting)]
3120 let non_field_children = {
3121 let mut cursor = node.walk();
3122 let mut result = ::std::vec::Vec::new();
3123 if cursor.goto_first_child() {
3124 loop {
3125 if cursor.field_name().is_none()
3126 && cursor.node().is_named()
3127 && !cursor.node().is_extra()
3128 {
3129 result.push(cursor.node());
3130 }
3131 if !cursor.goto_next_sibling() {
3132 break;
3133 }
3134 }
3135 }
3136 result
3137 };
3138 match non_field_children.first() {
3139 Some(&child) => Some(
3140 <NamespaceExportChildren as ::treesitter_types::FromNode>::from_node(
3141 child, src,
3142 )?,
3143 ),
3144 None => None,
3145 }
3146 },
3147 })
3148 }
3149}
3150impl ::treesitter_types::Spanned for NamespaceExport<'_> {
3151 fn span(&self) -> ::treesitter_types::Span {
3152 self.span
3153 }
3154}
3155#[derive(Debug, Clone)]
3156pub struct NamespaceImport<'tree> {
3157 pub span: ::treesitter_types::Span,
3158 pub children: Identifier<'tree>,
3159}
3160impl<'tree> ::treesitter_types::FromNode<'tree> for NamespaceImport<'tree> {
3161 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3162 fn from_node(
3163 node: ::tree_sitter::Node<'tree>,
3164 src: &'tree [u8],
3165 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3166 debug_assert_eq!(node.kind(), "namespace_import");
3167 Ok(Self {
3168 span: ::treesitter_types::Span::from(node),
3169 children: {
3170 #[allow(clippy::suspicious_else_formatting)]
3171 let non_field_children = {
3172 let mut cursor = node.walk();
3173 let mut result = ::std::vec::Vec::new();
3174 if cursor.goto_first_child() {
3175 loop {
3176 if cursor.field_name().is_none()
3177 && cursor.node().is_named()
3178 && !cursor.node().is_extra()
3179 {
3180 result.push(cursor.node());
3181 }
3182 if !cursor.goto_next_sibling() {
3183 break;
3184 }
3185 }
3186 }
3187 result
3188 };
3189 let child = if let Some(&c) = non_field_children.first() {
3190 c
3191 } else {
3192 let mut fallback_cursor = node.walk();
3193 let mut fallback_child = None;
3194 if fallback_cursor.goto_first_child() {
3195 loop {
3196 if fallback_cursor.field_name().is_none()
3197 && !fallback_cursor.node().is_extra()
3198 {
3199 fallback_child = Some(fallback_cursor.node());
3200 break;
3201 }
3202 if !fallback_cursor.goto_next_sibling() {
3203 break;
3204 }
3205 }
3206 }
3207 fallback_child.ok_or_else(|| {
3208 ::treesitter_types::ParseError::missing_field("children", node)
3209 })?
3210 };
3211 <Identifier as ::treesitter_types::FromNode>::from_node(child, src)?
3212 },
3213 })
3214 }
3215}
3216impl ::treesitter_types::Spanned for NamespaceImport<'_> {
3217 fn span(&self) -> ::treesitter_types::Span {
3218 self.span
3219 }
3220}
3221#[derive(Debug, Clone)]
3222pub struct NewExpression<'tree> {
3223 pub span: ::treesitter_types::Span,
3224 pub arguments: ::core::option::Option<Arguments<'tree>>,
3225 pub constructor: NewExpressionConstructor<'tree>,
3226}
3227impl<'tree> ::treesitter_types::FromNode<'tree> for NewExpression<'tree> {
3228 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3229 fn from_node(
3230 node: ::tree_sitter::Node<'tree>,
3231 src: &'tree [u8],
3232 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3233 debug_assert_eq!(node.kind(), "new_expression");
3234 Ok(Self {
3235 span: ::treesitter_types::Span::from(node),
3236 arguments: match node.child_by_field_name("arguments") {
3237 Some(child) => Some(<Arguments as ::treesitter_types::FromNode>::from_node(
3238 child, src,
3239 )?),
3240 None => None,
3241 },
3242 constructor: {
3243 let child = node.child_by_field_name("constructor").ok_or_else(|| {
3244 ::treesitter_types::ParseError::missing_field("constructor", node)
3245 })?;
3246 <NewExpressionConstructor as ::treesitter_types::FromNode>::from_node(child, src)?
3247 },
3248 })
3249 }
3250}
3251impl ::treesitter_types::Spanned for NewExpression<'_> {
3252 fn span(&self) -> ::treesitter_types::Span {
3253 self.span
3254 }
3255}
3256#[derive(Debug, Clone)]
3257pub struct Object<'tree> {
3258 pub span: ::treesitter_types::Span,
3259 pub children: ::std::vec::Vec<ObjectChildren<'tree>>,
3260}
3261impl<'tree> ::treesitter_types::FromNode<'tree> for Object<'tree> {
3262 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3263 fn from_node(
3264 node: ::tree_sitter::Node<'tree>,
3265 src: &'tree [u8],
3266 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3267 debug_assert_eq!(node.kind(), "object");
3268 Ok(Self {
3269 span: ::treesitter_types::Span::from(node),
3270 children: {
3271 #[allow(clippy::suspicious_else_formatting)]
3272 let non_field_children = {
3273 let mut cursor = node.walk();
3274 let mut result = ::std::vec::Vec::new();
3275 if cursor.goto_first_child() {
3276 loop {
3277 if cursor.field_name().is_none()
3278 && cursor.node().is_named()
3279 && !cursor.node().is_extra()
3280 {
3281 result.push(cursor.node());
3282 }
3283 if !cursor.goto_next_sibling() {
3284 break;
3285 }
3286 }
3287 }
3288 result
3289 };
3290 let mut items = ::std::vec::Vec::new();
3291 for child in non_field_children {
3292 items.push(<ObjectChildren as ::treesitter_types::FromNode>::from_node(
3293 child, src,
3294 )?);
3295 }
3296 items
3297 },
3298 })
3299 }
3300}
3301impl ::treesitter_types::Spanned for Object<'_> {
3302 fn span(&self) -> ::treesitter_types::Span {
3303 self.span
3304 }
3305}
3306#[derive(Debug, Clone)]
3307pub struct ObjectAssignmentPattern<'tree> {
3308 pub span: ::treesitter_types::Span,
3309 pub left: ObjectAssignmentPatternLeft<'tree>,
3310 pub right: Expression<'tree>,
3311}
3312impl<'tree> ::treesitter_types::FromNode<'tree> for ObjectAssignmentPattern<'tree> {
3313 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3314 fn from_node(
3315 node: ::tree_sitter::Node<'tree>,
3316 src: &'tree [u8],
3317 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3318 debug_assert_eq!(node.kind(), "object_assignment_pattern");
3319 Ok(Self {
3320 span: ::treesitter_types::Span::from(node),
3321 left: {
3322 let child = node
3323 .child_by_field_name("left")
3324 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("left", node))?;
3325 <ObjectAssignmentPatternLeft as ::treesitter_types::FromNode>::from_node(
3326 child, src,
3327 )?
3328 },
3329 right: {
3330 let child = node
3331 .child_by_field_name("right")
3332 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("right", node))?;
3333 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
3334 },
3335 })
3336 }
3337}
3338impl ::treesitter_types::Spanned for ObjectAssignmentPattern<'_> {
3339 fn span(&self) -> ::treesitter_types::Span {
3340 self.span
3341 }
3342}
3343#[derive(Debug, Clone)]
3344pub struct ObjectPattern<'tree> {
3345 pub span: ::treesitter_types::Span,
3346 pub children: ::std::vec::Vec<ObjectPatternChildren<'tree>>,
3347}
3348impl<'tree> ::treesitter_types::FromNode<'tree> for ObjectPattern<'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(), "object_pattern");
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 <ObjectPatternChildren as ::treesitter_types::FromNode>::from_node(
3381 child, src,
3382 )?,
3383 );
3384 }
3385 items
3386 },
3387 })
3388 }
3389}
3390impl ::treesitter_types::Spanned for ObjectPattern<'_> {
3391 fn span(&self) -> ::treesitter_types::Span {
3392 self.span
3393 }
3394}
3395#[derive(Debug, Clone)]
3396pub struct Pair<'tree> {
3397 pub span: ::treesitter_types::Span,
3398 pub key: PairKey<'tree>,
3399 pub value: Expression<'tree>,
3400}
3401impl<'tree> ::treesitter_types::FromNode<'tree> for Pair<'tree> {
3402 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3403 fn from_node(
3404 node: ::tree_sitter::Node<'tree>,
3405 src: &'tree [u8],
3406 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3407 debug_assert_eq!(node.kind(), "pair");
3408 Ok(Self {
3409 span: ::treesitter_types::Span::from(node),
3410 key: {
3411 let child = node
3412 .child_by_field_name("key")
3413 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("key", node))?;
3414 <PairKey as ::treesitter_types::FromNode>::from_node(child, src)?
3415 },
3416 value: {
3417 let child = node
3418 .child_by_field_name("value")
3419 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
3420 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
3421 },
3422 })
3423 }
3424}
3425impl ::treesitter_types::Spanned for Pair<'_> {
3426 fn span(&self) -> ::treesitter_types::Span {
3427 self.span
3428 }
3429}
3430#[derive(Debug, Clone)]
3431pub struct PairPattern<'tree> {
3432 pub span: ::treesitter_types::Span,
3433 pub key: PairPatternKey<'tree>,
3434 pub value: PairPatternValue<'tree>,
3435}
3436impl<'tree> ::treesitter_types::FromNode<'tree> for PairPattern<'tree> {
3437 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3438 fn from_node(
3439 node: ::tree_sitter::Node<'tree>,
3440 src: &'tree [u8],
3441 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3442 debug_assert_eq!(node.kind(), "pair_pattern");
3443 Ok(Self {
3444 span: ::treesitter_types::Span::from(node),
3445 key: {
3446 let child = node
3447 .child_by_field_name("key")
3448 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("key", node))?;
3449 <PairPatternKey as ::treesitter_types::FromNode>::from_node(child, src)?
3450 },
3451 value: {
3452 let child = node
3453 .child_by_field_name("value")
3454 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
3455 <PairPatternValue as ::treesitter_types::FromNode>::from_node(child, src)?
3456 },
3457 })
3458 }
3459}
3460impl ::treesitter_types::Spanned for PairPattern<'_> {
3461 fn span(&self) -> ::treesitter_types::Span {
3462 self.span
3463 }
3464}
3465#[derive(Debug, Clone)]
3466pub struct ParenthesizedExpression<'tree> {
3467 pub span: ::treesitter_types::Span,
3468 pub children: ParenthesizedExpressionChildren<'tree>,
3469}
3470impl<'tree> ::treesitter_types::FromNode<'tree> for ParenthesizedExpression<'tree> {
3471 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3472 fn from_node(
3473 node: ::tree_sitter::Node<'tree>,
3474 src: &'tree [u8],
3475 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3476 debug_assert_eq!(node.kind(), "parenthesized_expression");
3477 Ok(Self {
3478 span: ::treesitter_types::Span::from(node),
3479 children: {
3480 #[allow(clippy::suspicious_else_formatting)]
3481 let non_field_children = {
3482 let mut cursor = node.walk();
3483 let mut result = ::std::vec::Vec::new();
3484 if cursor.goto_first_child() {
3485 loop {
3486 if cursor.field_name().is_none()
3487 && cursor.node().is_named()
3488 && !cursor.node().is_extra()
3489 {
3490 result.push(cursor.node());
3491 }
3492 if !cursor.goto_next_sibling() {
3493 break;
3494 }
3495 }
3496 }
3497 result
3498 };
3499 let child = if let Some(&c) = non_field_children.first() {
3500 c
3501 } else {
3502 let mut fallback_cursor = node.walk();
3503 let mut fallback_child = None;
3504 if fallback_cursor.goto_first_child() {
3505 loop {
3506 if fallback_cursor.field_name().is_none()
3507 && !fallback_cursor.node().is_extra()
3508 {
3509 fallback_child = Some(fallback_cursor.node());
3510 break;
3511 }
3512 if !fallback_cursor.goto_next_sibling() {
3513 break;
3514 }
3515 }
3516 }
3517 fallback_child.ok_or_else(|| {
3518 ::treesitter_types::ParseError::missing_field("children", node)
3519 })?
3520 };
3521 <ParenthesizedExpressionChildren as ::treesitter_types::FromNode>::from_node(
3522 child, src,
3523 )?
3524 },
3525 })
3526 }
3527}
3528impl ::treesitter_types::Spanned for ParenthesizedExpression<'_> {
3529 fn span(&self) -> ::treesitter_types::Span {
3530 self.span
3531 }
3532}
3533#[derive(Debug, Clone)]
3534pub struct Program<'tree> {
3535 pub span: ::treesitter_types::Span,
3536 pub children: ::std::vec::Vec<ProgramChildren<'tree>>,
3537}
3538impl<'tree> ::treesitter_types::FromNode<'tree> for Program<'tree> {
3539 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3540 fn from_node(
3541 node: ::tree_sitter::Node<'tree>,
3542 src: &'tree [u8],
3543 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3544 debug_assert_eq!(node.kind(), "program");
3545 Ok(Self {
3546 span: ::treesitter_types::Span::from(node),
3547 children: {
3548 #[allow(clippy::suspicious_else_formatting)]
3549 let non_field_children = {
3550 let mut cursor = node.walk();
3551 let mut result = ::std::vec::Vec::new();
3552 if cursor.goto_first_child() {
3553 loop {
3554 if cursor.field_name().is_none()
3555 && cursor.node().is_named()
3556 && !cursor.node().is_extra()
3557 {
3558 result.push(cursor.node());
3559 }
3560 if !cursor.goto_next_sibling() {
3561 break;
3562 }
3563 }
3564 }
3565 result
3566 };
3567 let mut items = ::std::vec::Vec::new();
3568 for child in non_field_children {
3569 items.push(
3570 <ProgramChildren as ::treesitter_types::FromNode>::from_node(child, src)?,
3571 );
3572 }
3573 items
3574 },
3575 })
3576 }
3577}
3578impl ::treesitter_types::Spanned for Program<'_> {
3579 fn span(&self) -> ::treesitter_types::Span {
3580 self.span
3581 }
3582}
3583#[derive(Debug, Clone)]
3584pub struct Regex<'tree> {
3585 pub span: ::treesitter_types::Span,
3586 pub flags: ::core::option::Option<RegexFlags<'tree>>,
3587 pub pattern: RegexPattern<'tree>,
3588}
3589impl<'tree> ::treesitter_types::FromNode<'tree> for Regex<'tree> {
3590 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3591 fn from_node(
3592 node: ::tree_sitter::Node<'tree>,
3593 src: &'tree [u8],
3594 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3595 debug_assert_eq!(node.kind(), "regex");
3596 Ok(Self {
3597 span: ::treesitter_types::Span::from(node),
3598 flags: match node.child_by_field_name("flags") {
3599 Some(child) => Some(<RegexFlags as ::treesitter_types::FromNode>::from_node(
3600 child, src,
3601 )?),
3602 None => None,
3603 },
3604 pattern: {
3605 let child = node.child_by_field_name("pattern").ok_or_else(|| {
3606 ::treesitter_types::ParseError::missing_field("pattern", node)
3607 })?;
3608 <RegexPattern as ::treesitter_types::FromNode>::from_node(child, src)?
3609 },
3610 })
3611 }
3612}
3613impl ::treesitter_types::Spanned for Regex<'_> {
3614 fn span(&self) -> ::treesitter_types::Span {
3615 self.span
3616 }
3617}
3618#[derive(Debug, Clone)]
3619pub struct RestPattern<'tree> {
3620 pub span: ::treesitter_types::Span,
3621 pub children: RestPatternChildren<'tree>,
3622}
3623impl<'tree> ::treesitter_types::FromNode<'tree> for RestPattern<'tree> {
3624 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3625 fn from_node(
3626 node: ::tree_sitter::Node<'tree>,
3627 src: &'tree [u8],
3628 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3629 debug_assert_eq!(node.kind(), "rest_pattern");
3630 Ok(Self {
3631 span: ::treesitter_types::Span::from(node),
3632 children: {
3633 #[allow(clippy::suspicious_else_formatting)]
3634 let non_field_children = {
3635 let mut cursor = node.walk();
3636 let mut result = ::std::vec::Vec::new();
3637 if cursor.goto_first_child() {
3638 loop {
3639 if cursor.field_name().is_none()
3640 && cursor.node().is_named()
3641 && !cursor.node().is_extra()
3642 {
3643 result.push(cursor.node());
3644 }
3645 if !cursor.goto_next_sibling() {
3646 break;
3647 }
3648 }
3649 }
3650 result
3651 };
3652 let child = if let Some(&c) = non_field_children.first() {
3653 c
3654 } else {
3655 let mut fallback_cursor = node.walk();
3656 let mut fallback_child = None;
3657 if fallback_cursor.goto_first_child() {
3658 loop {
3659 if fallback_cursor.field_name().is_none()
3660 && !fallback_cursor.node().is_extra()
3661 {
3662 fallback_child = Some(fallback_cursor.node());
3663 break;
3664 }
3665 if !fallback_cursor.goto_next_sibling() {
3666 break;
3667 }
3668 }
3669 }
3670 fallback_child.ok_or_else(|| {
3671 ::treesitter_types::ParseError::missing_field("children", node)
3672 })?
3673 };
3674 <RestPatternChildren as ::treesitter_types::FromNode>::from_node(child, src)?
3675 },
3676 })
3677 }
3678}
3679impl ::treesitter_types::Spanned for RestPattern<'_> {
3680 fn span(&self) -> ::treesitter_types::Span {
3681 self.span
3682 }
3683}
3684#[derive(Debug, Clone)]
3685pub struct ReturnStatement<'tree> {
3686 pub span: ::treesitter_types::Span,
3687 pub children: ::core::option::Option<ReturnStatementChildren<'tree>>,
3688}
3689impl<'tree> ::treesitter_types::FromNode<'tree> for ReturnStatement<'tree> {
3690 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3691 fn from_node(
3692 node: ::tree_sitter::Node<'tree>,
3693 src: &'tree [u8],
3694 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3695 debug_assert_eq!(node.kind(), "return_statement");
3696 Ok(Self {
3697 span: ::treesitter_types::Span::from(node),
3698 children: {
3699 #[allow(clippy::suspicious_else_formatting)]
3700 let non_field_children = {
3701 let mut cursor = node.walk();
3702 let mut result = ::std::vec::Vec::new();
3703 if cursor.goto_first_child() {
3704 loop {
3705 if cursor.field_name().is_none()
3706 && cursor.node().is_named()
3707 && !cursor.node().is_extra()
3708 {
3709 result.push(cursor.node());
3710 }
3711 if !cursor.goto_next_sibling() {
3712 break;
3713 }
3714 }
3715 }
3716 result
3717 };
3718 match non_field_children.first() {
3719 Some(&child) => Some(
3720 <ReturnStatementChildren as ::treesitter_types::FromNode>::from_node(
3721 child, src,
3722 )?,
3723 ),
3724 None => None,
3725 }
3726 },
3727 })
3728 }
3729}
3730impl ::treesitter_types::Spanned for ReturnStatement<'_> {
3731 fn span(&self) -> ::treesitter_types::Span {
3732 self.span
3733 }
3734}
3735#[derive(Debug, Clone)]
3736pub struct SequenceExpression<'tree> {
3737 pub span: ::treesitter_types::Span,
3738 pub children: ::std::vec::Vec<Expression<'tree>>,
3739}
3740impl<'tree> ::treesitter_types::FromNode<'tree> for SequenceExpression<'tree> {
3741 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3742 fn from_node(
3743 node: ::tree_sitter::Node<'tree>,
3744 src: &'tree [u8],
3745 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3746 debug_assert_eq!(node.kind(), "sequence_expression");
3747 Ok(Self {
3748 span: ::treesitter_types::Span::from(node),
3749 children: {
3750 #[allow(clippy::suspicious_else_formatting)]
3751 let non_field_children = {
3752 let mut cursor = node.walk();
3753 let mut result = ::std::vec::Vec::new();
3754 if cursor.goto_first_child() {
3755 loop {
3756 if cursor.field_name().is_none()
3757 && cursor.node().is_named()
3758 && !cursor.node().is_extra()
3759 {
3760 result.push(cursor.node());
3761 }
3762 if !cursor.goto_next_sibling() {
3763 break;
3764 }
3765 }
3766 }
3767 result
3768 };
3769 let mut items = ::std::vec::Vec::new();
3770 for child in non_field_children {
3771 items.push(<Expression as ::treesitter_types::FromNode>::from_node(
3772 child, src,
3773 )?);
3774 }
3775 items
3776 },
3777 })
3778 }
3779}
3780impl ::treesitter_types::Spanned for SequenceExpression<'_> {
3781 fn span(&self) -> ::treesitter_types::Span {
3782 self.span
3783 }
3784}
3785#[derive(Debug, Clone)]
3786pub struct SpreadElement<'tree> {
3787 pub span: ::treesitter_types::Span,
3788 pub children: Expression<'tree>,
3789}
3790impl<'tree> ::treesitter_types::FromNode<'tree> for SpreadElement<'tree> {
3791 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3792 fn from_node(
3793 node: ::tree_sitter::Node<'tree>,
3794 src: &'tree [u8],
3795 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3796 debug_assert_eq!(node.kind(), "spread_element");
3797 Ok(Self {
3798 span: ::treesitter_types::Span::from(node),
3799 children: {
3800 #[allow(clippy::suspicious_else_formatting)]
3801 let non_field_children = {
3802 let mut cursor = node.walk();
3803 let mut result = ::std::vec::Vec::new();
3804 if cursor.goto_first_child() {
3805 loop {
3806 if cursor.field_name().is_none()
3807 && cursor.node().is_named()
3808 && !cursor.node().is_extra()
3809 {
3810 result.push(cursor.node());
3811 }
3812 if !cursor.goto_next_sibling() {
3813 break;
3814 }
3815 }
3816 }
3817 result
3818 };
3819 let child = if let Some(&c) = non_field_children.first() {
3820 c
3821 } else {
3822 let mut fallback_cursor = node.walk();
3823 let mut fallback_child = None;
3824 if fallback_cursor.goto_first_child() {
3825 loop {
3826 if fallback_cursor.field_name().is_none()
3827 && !fallback_cursor.node().is_extra()
3828 {
3829 fallback_child = Some(fallback_cursor.node());
3830 break;
3831 }
3832 if !fallback_cursor.goto_next_sibling() {
3833 break;
3834 }
3835 }
3836 }
3837 fallback_child.ok_or_else(|| {
3838 ::treesitter_types::ParseError::missing_field("children", node)
3839 })?
3840 };
3841 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
3842 },
3843 })
3844 }
3845}
3846impl ::treesitter_types::Spanned for SpreadElement<'_> {
3847 fn span(&self) -> ::treesitter_types::Span {
3848 self.span
3849 }
3850}
3851#[derive(Debug, Clone)]
3852pub struct StatementBlock<'tree> {
3853 pub span: ::treesitter_types::Span,
3854 pub children: ::std::vec::Vec<Statement<'tree>>,
3855}
3856impl<'tree> ::treesitter_types::FromNode<'tree> for StatementBlock<'tree> {
3857 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3858 fn from_node(
3859 node: ::tree_sitter::Node<'tree>,
3860 src: &'tree [u8],
3861 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3862 debug_assert_eq!(node.kind(), "statement_block");
3863 Ok(Self {
3864 span: ::treesitter_types::Span::from(node),
3865 children: {
3866 #[allow(clippy::suspicious_else_formatting)]
3867 let non_field_children = {
3868 let mut cursor = node.walk();
3869 let mut result = ::std::vec::Vec::new();
3870 if cursor.goto_first_child() {
3871 loop {
3872 if cursor.field_name().is_none()
3873 && cursor.node().is_named()
3874 && !cursor.node().is_extra()
3875 {
3876 result.push(cursor.node());
3877 }
3878 if !cursor.goto_next_sibling() {
3879 break;
3880 }
3881 }
3882 }
3883 result
3884 };
3885 let mut items = ::std::vec::Vec::new();
3886 for child in non_field_children {
3887 items.push(<Statement as ::treesitter_types::FromNode>::from_node(
3888 child, src,
3889 )?);
3890 }
3891 items
3892 },
3893 })
3894 }
3895}
3896impl ::treesitter_types::Spanned for StatementBlock<'_> {
3897 fn span(&self) -> ::treesitter_types::Span {
3898 self.span
3899 }
3900}
3901#[derive(Debug, Clone)]
3902pub struct String<'tree> {
3903 pub span: ::treesitter_types::Span,
3904 pub children: ::std::vec::Vec<StringChildren<'tree>>,
3905}
3906impl<'tree> ::treesitter_types::FromNode<'tree> for String<'tree> {
3907 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3908 fn from_node(
3909 node: ::tree_sitter::Node<'tree>,
3910 src: &'tree [u8],
3911 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3912 debug_assert_eq!(node.kind(), "string");
3913 Ok(Self {
3914 span: ::treesitter_types::Span::from(node),
3915 children: {
3916 #[allow(clippy::suspicious_else_formatting)]
3917 let non_field_children = {
3918 let mut cursor = node.walk();
3919 let mut result = ::std::vec::Vec::new();
3920 if cursor.goto_first_child() {
3921 loop {
3922 if cursor.field_name().is_none()
3923 && cursor.node().is_named()
3924 && !cursor.node().is_extra()
3925 {
3926 result.push(cursor.node());
3927 }
3928 if !cursor.goto_next_sibling() {
3929 break;
3930 }
3931 }
3932 }
3933 result
3934 };
3935 let mut items = ::std::vec::Vec::new();
3936 for child in non_field_children {
3937 items.push(<StringChildren as ::treesitter_types::FromNode>::from_node(
3938 child, src,
3939 )?);
3940 }
3941 items
3942 },
3943 })
3944 }
3945}
3946impl ::treesitter_types::Spanned for String<'_> {
3947 fn span(&self) -> ::treesitter_types::Span {
3948 self.span
3949 }
3950}
3951#[derive(Debug, Clone)]
3952pub struct SubscriptExpression<'tree> {
3953 pub span: ::treesitter_types::Span,
3954 pub index: SubscriptExpressionIndex<'tree>,
3955 pub object: Expression<'tree>,
3956 pub optional_chain: ::core::option::Option<OptionalChain<'tree>>,
3957}
3958impl<'tree> ::treesitter_types::FromNode<'tree> for SubscriptExpression<'tree> {
3959 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3960 fn from_node(
3961 node: ::tree_sitter::Node<'tree>,
3962 src: &'tree [u8],
3963 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3964 debug_assert_eq!(node.kind(), "subscript_expression");
3965 Ok(Self {
3966 span: ::treesitter_types::Span::from(node),
3967 index: {
3968 let child = node
3969 .child_by_field_name("index")
3970 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("index", node))?;
3971 <SubscriptExpressionIndex as ::treesitter_types::FromNode>::from_node(child, src)?
3972 },
3973 object: {
3974 let child = node
3975 .child_by_field_name("object")
3976 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("object", node))?;
3977 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
3978 },
3979 optional_chain: match node.child_by_field_name("optional_chain") {
3980 Some(child) => Some(<OptionalChain as ::treesitter_types::FromNode>::from_node(
3981 child, src,
3982 )?),
3983 None => None,
3984 },
3985 })
3986 }
3987}
3988impl ::treesitter_types::Spanned for SubscriptExpression<'_> {
3989 fn span(&self) -> ::treesitter_types::Span {
3990 self.span
3991 }
3992}
3993#[derive(Debug, Clone)]
3994pub struct SwitchBody<'tree> {
3995 pub span: ::treesitter_types::Span,
3996 pub children: ::std::vec::Vec<SwitchBodyChildren<'tree>>,
3997}
3998impl<'tree> ::treesitter_types::FromNode<'tree> for SwitchBody<'tree> {
3999 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4000 fn from_node(
4001 node: ::tree_sitter::Node<'tree>,
4002 src: &'tree [u8],
4003 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4004 debug_assert_eq!(node.kind(), "switch_body");
4005 Ok(Self {
4006 span: ::treesitter_types::Span::from(node),
4007 children: {
4008 #[allow(clippy::suspicious_else_formatting)]
4009 let non_field_children = {
4010 let mut cursor = node.walk();
4011 let mut result = ::std::vec::Vec::new();
4012 if cursor.goto_first_child() {
4013 loop {
4014 if cursor.field_name().is_none()
4015 && cursor.node().is_named()
4016 && !cursor.node().is_extra()
4017 {
4018 result.push(cursor.node());
4019 }
4020 if !cursor.goto_next_sibling() {
4021 break;
4022 }
4023 }
4024 }
4025 result
4026 };
4027 let mut items = ::std::vec::Vec::new();
4028 for child in non_field_children {
4029 items.push(
4030 <SwitchBodyChildren as ::treesitter_types::FromNode>::from_node(
4031 child, src,
4032 )?,
4033 );
4034 }
4035 items
4036 },
4037 })
4038 }
4039}
4040impl ::treesitter_types::Spanned for SwitchBody<'_> {
4041 fn span(&self) -> ::treesitter_types::Span {
4042 self.span
4043 }
4044}
4045#[derive(Debug, Clone)]
4046pub struct SwitchCase<'tree> {
4047 pub span: ::treesitter_types::Span,
4048 pub body: ::std::vec::Vec<Statement<'tree>>,
4049 pub value: SwitchCaseValue<'tree>,
4050}
4051impl<'tree> ::treesitter_types::FromNode<'tree> for SwitchCase<'tree> {
4052 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4053 fn from_node(
4054 node: ::tree_sitter::Node<'tree>,
4055 src: &'tree [u8],
4056 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4057 debug_assert_eq!(node.kind(), "switch_case");
4058 Ok(Self {
4059 span: ::treesitter_types::Span::from(node),
4060 body: {
4061 let mut cursor = node.walk();
4062 let mut items = ::std::vec::Vec::new();
4063 for child in node.children_by_field_name("body", &mut cursor) {
4064 items.push(<Statement as ::treesitter_types::FromNode>::from_node(
4065 child, src,
4066 )?);
4067 }
4068 items
4069 },
4070 value: {
4071 let child = node
4072 .child_by_field_name("value")
4073 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
4074 <SwitchCaseValue as ::treesitter_types::FromNode>::from_node(child, src)?
4075 },
4076 })
4077 }
4078}
4079impl ::treesitter_types::Spanned for SwitchCase<'_> {
4080 fn span(&self) -> ::treesitter_types::Span {
4081 self.span
4082 }
4083}
4084#[derive(Debug, Clone)]
4085pub struct SwitchDefault<'tree> {
4086 pub span: ::treesitter_types::Span,
4087 pub body: ::std::vec::Vec<Statement<'tree>>,
4088}
4089impl<'tree> ::treesitter_types::FromNode<'tree> for SwitchDefault<'tree> {
4090 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4091 fn from_node(
4092 node: ::tree_sitter::Node<'tree>,
4093 src: &'tree [u8],
4094 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4095 debug_assert_eq!(node.kind(), "switch_default");
4096 Ok(Self {
4097 span: ::treesitter_types::Span::from(node),
4098 body: {
4099 let mut cursor = node.walk();
4100 let mut items = ::std::vec::Vec::new();
4101 for child in node.children_by_field_name("body", &mut cursor) {
4102 items.push(<Statement as ::treesitter_types::FromNode>::from_node(
4103 child, src,
4104 )?);
4105 }
4106 items
4107 },
4108 })
4109 }
4110}
4111impl ::treesitter_types::Spanned for SwitchDefault<'_> {
4112 fn span(&self) -> ::treesitter_types::Span {
4113 self.span
4114 }
4115}
4116#[derive(Debug, Clone)]
4117pub struct SwitchStatement<'tree> {
4118 pub span: ::treesitter_types::Span,
4119 pub body: SwitchBody<'tree>,
4120 pub value: ParenthesizedExpression<'tree>,
4121}
4122impl<'tree> ::treesitter_types::FromNode<'tree> for SwitchStatement<'tree> {
4123 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4124 fn from_node(
4125 node: ::tree_sitter::Node<'tree>,
4126 src: &'tree [u8],
4127 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4128 debug_assert_eq!(node.kind(), "switch_statement");
4129 Ok(Self {
4130 span: ::treesitter_types::Span::from(node),
4131 body: {
4132 let child = node
4133 .child_by_field_name("body")
4134 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
4135 <SwitchBody as ::treesitter_types::FromNode>::from_node(child, src)?
4136 },
4137 value: {
4138 let child = node
4139 .child_by_field_name("value")
4140 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("value", node))?;
4141 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(child, src)?
4142 },
4143 })
4144 }
4145}
4146impl ::treesitter_types::Spanned for SwitchStatement<'_> {
4147 fn span(&self) -> ::treesitter_types::Span {
4148 self.span
4149 }
4150}
4151#[derive(Debug, Clone)]
4152pub struct TemplateString<'tree> {
4153 pub span: ::treesitter_types::Span,
4154 pub children: ::std::vec::Vec<TemplateStringChildren<'tree>>,
4155}
4156impl<'tree> ::treesitter_types::FromNode<'tree> for TemplateString<'tree> {
4157 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4158 fn from_node(
4159 node: ::tree_sitter::Node<'tree>,
4160 src: &'tree [u8],
4161 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4162 debug_assert_eq!(node.kind(), "template_string");
4163 Ok(Self {
4164 span: ::treesitter_types::Span::from(node),
4165 children: {
4166 #[allow(clippy::suspicious_else_formatting)]
4167 let non_field_children = {
4168 let mut cursor = node.walk();
4169 let mut result = ::std::vec::Vec::new();
4170 if cursor.goto_first_child() {
4171 loop {
4172 if cursor.field_name().is_none()
4173 && cursor.node().is_named()
4174 && !cursor.node().is_extra()
4175 {
4176 result.push(cursor.node());
4177 }
4178 if !cursor.goto_next_sibling() {
4179 break;
4180 }
4181 }
4182 }
4183 result
4184 };
4185 let mut items = ::std::vec::Vec::new();
4186 for child in non_field_children {
4187 items.push(
4188 <TemplateStringChildren as ::treesitter_types::FromNode>::from_node(
4189 child, src,
4190 )?,
4191 );
4192 }
4193 items
4194 },
4195 })
4196 }
4197}
4198impl ::treesitter_types::Spanned for TemplateString<'_> {
4199 fn span(&self) -> ::treesitter_types::Span {
4200 self.span
4201 }
4202}
4203#[derive(Debug, Clone)]
4204pub struct TemplateSubstitution<'tree> {
4205 pub span: ::treesitter_types::Span,
4206 pub children: TemplateSubstitutionChildren<'tree>,
4207}
4208impl<'tree> ::treesitter_types::FromNode<'tree> for TemplateSubstitution<'tree> {
4209 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4210 fn from_node(
4211 node: ::tree_sitter::Node<'tree>,
4212 src: &'tree [u8],
4213 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4214 debug_assert_eq!(node.kind(), "template_substitution");
4215 Ok(Self {
4216 span: ::treesitter_types::Span::from(node),
4217 children: {
4218 #[allow(clippy::suspicious_else_formatting)]
4219 let non_field_children = {
4220 let mut cursor = node.walk();
4221 let mut result = ::std::vec::Vec::new();
4222 if cursor.goto_first_child() {
4223 loop {
4224 if cursor.field_name().is_none()
4225 && cursor.node().is_named()
4226 && !cursor.node().is_extra()
4227 {
4228 result.push(cursor.node());
4229 }
4230 if !cursor.goto_next_sibling() {
4231 break;
4232 }
4233 }
4234 }
4235 result
4236 };
4237 let child = if let Some(&c) = non_field_children.first() {
4238 c
4239 } else {
4240 let mut fallback_cursor = node.walk();
4241 let mut fallback_child = None;
4242 if fallback_cursor.goto_first_child() {
4243 loop {
4244 if fallback_cursor.field_name().is_none()
4245 && !fallback_cursor.node().is_extra()
4246 {
4247 fallback_child = Some(fallback_cursor.node());
4248 break;
4249 }
4250 if !fallback_cursor.goto_next_sibling() {
4251 break;
4252 }
4253 }
4254 }
4255 fallback_child.ok_or_else(|| {
4256 ::treesitter_types::ParseError::missing_field("children", node)
4257 })?
4258 };
4259 <TemplateSubstitutionChildren as ::treesitter_types::FromNode>::from_node(
4260 child, src,
4261 )?
4262 },
4263 })
4264 }
4265}
4266impl ::treesitter_types::Spanned for TemplateSubstitution<'_> {
4267 fn span(&self) -> ::treesitter_types::Span {
4268 self.span
4269 }
4270}
4271#[derive(Debug, Clone)]
4272pub struct TernaryExpression<'tree> {
4273 pub span: ::treesitter_types::Span,
4274 pub alternative: Expression<'tree>,
4275 pub condition: Expression<'tree>,
4276 pub consequence: Expression<'tree>,
4277}
4278impl<'tree> ::treesitter_types::FromNode<'tree> for TernaryExpression<'tree> {
4279 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4280 fn from_node(
4281 node: ::tree_sitter::Node<'tree>,
4282 src: &'tree [u8],
4283 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4284 debug_assert_eq!(node.kind(), "ternary_expression");
4285 Ok(Self {
4286 span: ::treesitter_types::Span::from(node),
4287 alternative: {
4288 let child = node.child_by_field_name("alternative").ok_or_else(|| {
4289 ::treesitter_types::ParseError::missing_field("alternative", node)
4290 })?;
4291 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
4292 },
4293 condition: {
4294 let child = node.child_by_field_name("condition").ok_or_else(|| {
4295 ::treesitter_types::ParseError::missing_field("condition", node)
4296 })?;
4297 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
4298 },
4299 consequence: {
4300 let child = node.child_by_field_name("consequence").ok_or_else(|| {
4301 ::treesitter_types::ParseError::missing_field("consequence", node)
4302 })?;
4303 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
4304 },
4305 })
4306 }
4307}
4308impl ::treesitter_types::Spanned for TernaryExpression<'_> {
4309 fn span(&self) -> ::treesitter_types::Span {
4310 self.span
4311 }
4312}
4313#[derive(Debug, Clone)]
4314pub struct ThrowStatement<'tree> {
4315 pub span: ::treesitter_types::Span,
4316 pub children: ThrowStatementChildren<'tree>,
4317}
4318impl<'tree> ::treesitter_types::FromNode<'tree> for ThrowStatement<'tree> {
4319 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4320 fn from_node(
4321 node: ::tree_sitter::Node<'tree>,
4322 src: &'tree [u8],
4323 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4324 debug_assert_eq!(node.kind(), "throw_statement");
4325 Ok(Self {
4326 span: ::treesitter_types::Span::from(node),
4327 children: {
4328 #[allow(clippy::suspicious_else_formatting)]
4329 let non_field_children = {
4330 let mut cursor = node.walk();
4331 let mut result = ::std::vec::Vec::new();
4332 if cursor.goto_first_child() {
4333 loop {
4334 if cursor.field_name().is_none()
4335 && cursor.node().is_named()
4336 && !cursor.node().is_extra()
4337 {
4338 result.push(cursor.node());
4339 }
4340 if !cursor.goto_next_sibling() {
4341 break;
4342 }
4343 }
4344 }
4345 result
4346 };
4347 let child = if let Some(&c) = non_field_children.first() {
4348 c
4349 } else {
4350 let mut fallback_cursor = node.walk();
4351 let mut fallback_child = None;
4352 if fallback_cursor.goto_first_child() {
4353 loop {
4354 if fallback_cursor.field_name().is_none()
4355 && !fallback_cursor.node().is_extra()
4356 {
4357 fallback_child = Some(fallback_cursor.node());
4358 break;
4359 }
4360 if !fallback_cursor.goto_next_sibling() {
4361 break;
4362 }
4363 }
4364 }
4365 fallback_child.ok_or_else(|| {
4366 ::treesitter_types::ParseError::missing_field("children", node)
4367 })?
4368 };
4369 <ThrowStatementChildren as ::treesitter_types::FromNode>::from_node(child, src)?
4370 },
4371 })
4372 }
4373}
4374impl ::treesitter_types::Spanned for ThrowStatement<'_> {
4375 fn span(&self) -> ::treesitter_types::Span {
4376 self.span
4377 }
4378}
4379#[derive(Debug, Clone)]
4380pub struct TryStatement<'tree> {
4381 pub span: ::treesitter_types::Span,
4382 pub body: StatementBlock<'tree>,
4383 pub finalizer: ::core::option::Option<FinallyClause<'tree>>,
4384 pub handler: ::core::option::Option<CatchClause<'tree>>,
4385}
4386impl<'tree> ::treesitter_types::FromNode<'tree> for TryStatement<'tree> {
4387 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4388 fn from_node(
4389 node: ::tree_sitter::Node<'tree>,
4390 src: &'tree [u8],
4391 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4392 debug_assert_eq!(node.kind(), "try_statement");
4393 Ok(Self {
4394 span: ::treesitter_types::Span::from(node),
4395 body: {
4396 let child = node
4397 .child_by_field_name("body")
4398 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
4399 <StatementBlock as ::treesitter_types::FromNode>::from_node(child, src)?
4400 },
4401 finalizer: match node.child_by_field_name("finalizer") {
4402 Some(child) => Some(<FinallyClause as ::treesitter_types::FromNode>::from_node(
4403 child, src,
4404 )?),
4405 None => None,
4406 },
4407 handler: match node.child_by_field_name("handler") {
4408 Some(child) => Some(<CatchClause as ::treesitter_types::FromNode>::from_node(
4409 child, src,
4410 )?),
4411 None => None,
4412 },
4413 })
4414 }
4415}
4416impl ::treesitter_types::Spanned for TryStatement<'_> {
4417 fn span(&self) -> ::treesitter_types::Span {
4418 self.span
4419 }
4420}
4421#[derive(Debug, Clone)]
4422pub struct UnaryExpression<'tree> {
4423 pub span: ::treesitter_types::Span,
4424 pub argument: Expression<'tree>,
4425 pub operator: UnaryExpressionOperator,
4426}
4427impl<'tree> ::treesitter_types::FromNode<'tree> for UnaryExpression<'tree> {
4428 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4429 fn from_node(
4430 node: ::tree_sitter::Node<'tree>,
4431 src: &'tree [u8],
4432 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4433 debug_assert_eq!(node.kind(), "unary_expression");
4434 Ok(Self {
4435 span: ::treesitter_types::Span::from(node),
4436 argument: {
4437 let child = node.child_by_field_name("argument").ok_or_else(|| {
4438 ::treesitter_types::ParseError::missing_field("argument", node)
4439 })?;
4440 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
4441 },
4442 operator: {
4443 let child = node.child_by_field_name("operator").ok_or_else(|| {
4444 ::treesitter_types::ParseError::missing_field("operator", node)
4445 })?;
4446 <UnaryExpressionOperator as ::treesitter_types::FromNode>::from_node(child, src)?
4447 },
4448 })
4449 }
4450}
4451impl ::treesitter_types::Spanned for UnaryExpression<'_> {
4452 fn span(&self) -> ::treesitter_types::Span {
4453 self.span
4454 }
4455}
4456#[derive(Debug, Clone)]
4457pub struct UpdateExpression<'tree> {
4458 pub span: ::treesitter_types::Span,
4459 pub argument: Expression<'tree>,
4460 pub operator: UpdateExpressionOperator,
4461}
4462impl<'tree> ::treesitter_types::FromNode<'tree> for UpdateExpression<'tree> {
4463 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4464 fn from_node(
4465 node: ::tree_sitter::Node<'tree>,
4466 src: &'tree [u8],
4467 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4468 debug_assert_eq!(node.kind(), "update_expression");
4469 Ok(Self {
4470 span: ::treesitter_types::Span::from(node),
4471 argument: {
4472 let child = node.child_by_field_name("argument").ok_or_else(|| {
4473 ::treesitter_types::ParseError::missing_field("argument", node)
4474 })?;
4475 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
4476 },
4477 operator: {
4478 let child = node.child_by_field_name("operator").ok_or_else(|| {
4479 ::treesitter_types::ParseError::missing_field("operator", node)
4480 })?;
4481 <UpdateExpressionOperator as ::treesitter_types::FromNode>::from_node(child, src)?
4482 },
4483 })
4484 }
4485}
4486impl ::treesitter_types::Spanned for UpdateExpression<'_> {
4487 fn span(&self) -> ::treesitter_types::Span {
4488 self.span
4489 }
4490}
4491#[derive(Debug, Clone)]
4492pub struct UsingDeclaration<'tree> {
4493 pub span: ::treesitter_types::Span,
4494 pub kind: ::std::vec::Vec<UsingDeclarationKind>,
4495 pub children: ::std::vec::Vec<VariableDeclarator<'tree>>,
4496}
4497impl<'tree> ::treesitter_types::FromNode<'tree> for UsingDeclaration<'tree> {
4498 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4499 fn from_node(
4500 node: ::tree_sitter::Node<'tree>,
4501 src: &'tree [u8],
4502 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4503 debug_assert_eq!(node.kind(), "using_declaration");
4504 Ok(Self {
4505 span: ::treesitter_types::Span::from(node),
4506 kind: {
4507 let mut cursor = node.walk();
4508 let mut items = ::std::vec::Vec::new();
4509 for child in node.children_by_field_name("kind", &mut cursor) {
4510 items.push(
4511 <UsingDeclarationKind as ::treesitter_types::FromNode>::from_node(
4512 child, src,
4513 )?,
4514 );
4515 }
4516 items
4517 },
4518 children: {
4519 #[allow(clippy::suspicious_else_formatting)]
4520 let non_field_children = {
4521 let mut cursor = node.walk();
4522 let mut result = ::std::vec::Vec::new();
4523 if cursor.goto_first_child() {
4524 loop {
4525 if cursor.field_name().is_none()
4526 && cursor.node().is_named()
4527 && !cursor.node().is_extra()
4528 {
4529 result.push(cursor.node());
4530 }
4531 if !cursor.goto_next_sibling() {
4532 break;
4533 }
4534 }
4535 }
4536 result
4537 };
4538 let mut items = ::std::vec::Vec::new();
4539 for child in non_field_children {
4540 items.push(
4541 <VariableDeclarator as ::treesitter_types::FromNode>::from_node(
4542 child, src,
4543 )?,
4544 );
4545 }
4546 items
4547 },
4548 })
4549 }
4550}
4551impl ::treesitter_types::Spanned for UsingDeclaration<'_> {
4552 fn span(&self) -> ::treesitter_types::Span {
4553 self.span
4554 }
4555}
4556#[derive(Debug, Clone)]
4557pub struct VariableDeclaration<'tree> {
4558 pub span: ::treesitter_types::Span,
4559 pub children: ::std::vec::Vec<VariableDeclarator<'tree>>,
4560}
4561impl<'tree> ::treesitter_types::FromNode<'tree> for VariableDeclaration<'tree> {
4562 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4563 fn from_node(
4564 node: ::tree_sitter::Node<'tree>,
4565 src: &'tree [u8],
4566 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4567 debug_assert_eq!(node.kind(), "variable_declaration");
4568 Ok(Self {
4569 span: ::treesitter_types::Span::from(node),
4570 children: {
4571 #[allow(clippy::suspicious_else_formatting)]
4572 let non_field_children = {
4573 let mut cursor = node.walk();
4574 let mut result = ::std::vec::Vec::new();
4575 if cursor.goto_first_child() {
4576 loop {
4577 if cursor.field_name().is_none()
4578 && cursor.node().is_named()
4579 && !cursor.node().is_extra()
4580 {
4581 result.push(cursor.node());
4582 }
4583 if !cursor.goto_next_sibling() {
4584 break;
4585 }
4586 }
4587 }
4588 result
4589 };
4590 let mut items = ::std::vec::Vec::new();
4591 for child in non_field_children {
4592 items.push(
4593 <VariableDeclarator as ::treesitter_types::FromNode>::from_node(
4594 child, src,
4595 )?,
4596 );
4597 }
4598 items
4599 },
4600 })
4601 }
4602}
4603impl ::treesitter_types::Spanned for VariableDeclaration<'_> {
4604 fn span(&self) -> ::treesitter_types::Span {
4605 self.span
4606 }
4607}
4608#[derive(Debug, Clone)]
4609pub struct VariableDeclarator<'tree> {
4610 pub span: ::treesitter_types::Span,
4611 pub name: VariableDeclaratorName<'tree>,
4612 pub value: ::core::option::Option<Expression<'tree>>,
4613}
4614impl<'tree> ::treesitter_types::FromNode<'tree> for VariableDeclarator<'tree> {
4615 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4616 fn from_node(
4617 node: ::tree_sitter::Node<'tree>,
4618 src: &'tree [u8],
4619 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4620 debug_assert_eq!(node.kind(), "variable_declarator");
4621 Ok(Self {
4622 span: ::treesitter_types::Span::from(node),
4623 name: {
4624 let child = node
4625 .child_by_field_name("name")
4626 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
4627 <VariableDeclaratorName as ::treesitter_types::FromNode>::from_node(child, src)?
4628 },
4629 value: match node.child_by_field_name("value") {
4630 Some(child) => Some(<Expression as ::treesitter_types::FromNode>::from_node(
4631 child, src,
4632 )?),
4633 None => None,
4634 },
4635 })
4636 }
4637}
4638impl ::treesitter_types::Spanned for VariableDeclarator<'_> {
4639 fn span(&self) -> ::treesitter_types::Span {
4640 self.span
4641 }
4642}
4643#[derive(Debug, Clone)]
4644pub struct WhileStatement<'tree> {
4645 pub span: ::treesitter_types::Span,
4646 pub body: Statement<'tree>,
4647 pub condition: ParenthesizedExpression<'tree>,
4648}
4649impl<'tree> ::treesitter_types::FromNode<'tree> for WhileStatement<'tree> {
4650 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4651 fn from_node(
4652 node: ::tree_sitter::Node<'tree>,
4653 src: &'tree [u8],
4654 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4655 debug_assert_eq!(node.kind(), "while_statement");
4656 Ok(Self {
4657 span: ::treesitter_types::Span::from(node),
4658 body: {
4659 let child = node
4660 .child_by_field_name("body")
4661 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
4662 <Statement as ::treesitter_types::FromNode>::from_node(child, src)?
4663 },
4664 condition: {
4665 let child = node.child_by_field_name("condition").ok_or_else(|| {
4666 ::treesitter_types::ParseError::missing_field("condition", node)
4667 })?;
4668 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(child, src)?
4669 },
4670 })
4671 }
4672}
4673impl ::treesitter_types::Spanned for WhileStatement<'_> {
4674 fn span(&self) -> ::treesitter_types::Span {
4675 self.span
4676 }
4677}
4678#[derive(Debug, Clone)]
4679pub struct WithStatement<'tree> {
4680 pub span: ::treesitter_types::Span,
4681 pub body: Statement<'tree>,
4682 pub object: ParenthesizedExpression<'tree>,
4683}
4684impl<'tree> ::treesitter_types::FromNode<'tree> for WithStatement<'tree> {
4685 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4686 fn from_node(
4687 node: ::tree_sitter::Node<'tree>,
4688 src: &'tree [u8],
4689 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4690 debug_assert_eq!(node.kind(), "with_statement");
4691 Ok(Self {
4692 span: ::treesitter_types::Span::from(node),
4693 body: {
4694 let child = node
4695 .child_by_field_name("body")
4696 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("body", node))?;
4697 <Statement as ::treesitter_types::FromNode>::from_node(child, src)?
4698 },
4699 object: {
4700 let child = node
4701 .child_by_field_name("object")
4702 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("object", node))?;
4703 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(child, src)?
4704 },
4705 })
4706 }
4707}
4708impl ::treesitter_types::Spanned for WithStatement<'_> {
4709 fn span(&self) -> ::treesitter_types::Span {
4710 self.span
4711 }
4712}
4713#[derive(Debug, Clone)]
4714pub struct YieldExpression<'tree> {
4715 pub span: ::treesitter_types::Span,
4716 pub children: ::core::option::Option<Expression<'tree>>,
4717}
4718impl<'tree> ::treesitter_types::FromNode<'tree> for YieldExpression<'tree> {
4719 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4720 fn from_node(
4721 node: ::tree_sitter::Node<'tree>,
4722 src: &'tree [u8],
4723 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4724 debug_assert_eq!(node.kind(), "yield_expression");
4725 Ok(Self {
4726 span: ::treesitter_types::Span::from(node),
4727 children: {
4728 #[allow(clippy::suspicious_else_formatting)]
4729 let non_field_children = {
4730 let mut cursor = node.walk();
4731 let mut result = ::std::vec::Vec::new();
4732 if cursor.goto_first_child() {
4733 loop {
4734 if cursor.field_name().is_none()
4735 && cursor.node().is_named()
4736 && !cursor.node().is_extra()
4737 {
4738 result.push(cursor.node());
4739 }
4740 if !cursor.goto_next_sibling() {
4741 break;
4742 }
4743 }
4744 }
4745 result
4746 };
4747 match non_field_children.first() {
4748 Some(&child) => Some(<Expression as ::treesitter_types::FromNode>::from_node(
4749 child, src,
4750 )?),
4751 None => None,
4752 }
4753 },
4754 })
4755 }
4756}
4757impl ::treesitter_types::Spanned for YieldExpression<'_> {
4758 fn span(&self) -> ::treesitter_types::Span {
4759 self.span
4760 }
4761}
4762#[derive(Debug, Clone)]
4763pub struct Comment<'tree> {
4764 pub span: ::treesitter_types::Span,
4765 text: &'tree str,
4766}
4767impl<'tree> ::treesitter_types::FromNode<'tree> for Comment<'tree> {
4768 fn from_node(
4769 node: ::tree_sitter::Node<'tree>,
4770 src: &'tree [u8],
4771 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4772 debug_assert_eq!(node.kind(), "comment");
4773 Ok(Self {
4774 span: ::treesitter_types::Span::from(node),
4775 text: node.utf8_text(src)?,
4776 })
4777 }
4778}
4779impl<'tree> ::treesitter_types::LeafNode<'tree> for Comment<'tree> {
4780 fn text(&self) -> &'tree str {
4781 self.text
4782 }
4783}
4784impl ::treesitter_types::Spanned for Comment<'_> {
4785 fn span(&self) -> ::treesitter_types::Span {
4786 self.span
4787 }
4788}
4789#[derive(Debug, Clone)]
4790pub struct EscapeSequence<'tree> {
4791 pub span: ::treesitter_types::Span,
4792 text: &'tree str,
4793}
4794impl<'tree> ::treesitter_types::FromNode<'tree> for EscapeSequence<'tree> {
4795 fn from_node(
4796 node: ::tree_sitter::Node<'tree>,
4797 src: &'tree [u8],
4798 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4799 debug_assert_eq!(node.kind(), "escape_sequence");
4800 Ok(Self {
4801 span: ::treesitter_types::Span::from(node),
4802 text: node.utf8_text(src)?,
4803 })
4804 }
4805}
4806impl<'tree> ::treesitter_types::LeafNode<'tree> for EscapeSequence<'tree> {
4807 fn text(&self) -> &'tree str {
4808 self.text
4809 }
4810}
4811impl ::treesitter_types::Spanned for EscapeSequence<'_> {
4812 fn span(&self) -> ::treesitter_types::Span {
4813 self.span
4814 }
4815}
4816#[derive(Debug, Clone)]
4817pub struct False<'tree> {
4818 pub span: ::treesitter_types::Span,
4819 text: &'tree str,
4820}
4821impl<'tree> ::treesitter_types::FromNode<'tree> for False<'tree> {
4822 fn from_node(
4823 node: ::tree_sitter::Node<'tree>,
4824 src: &'tree [u8],
4825 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4826 debug_assert_eq!(node.kind(), "false");
4827 Ok(Self {
4828 span: ::treesitter_types::Span::from(node),
4829 text: node.utf8_text(src)?,
4830 })
4831 }
4832}
4833impl<'tree> ::treesitter_types::LeafNode<'tree> for False<'tree> {
4834 fn text(&self) -> &'tree str {
4835 self.text
4836 }
4837}
4838impl ::treesitter_types::Spanned for False<'_> {
4839 fn span(&self) -> ::treesitter_types::Span {
4840 self.span
4841 }
4842}
4843#[derive(Debug, Clone)]
4844pub struct HashBangLine<'tree> {
4845 pub span: ::treesitter_types::Span,
4846 text: &'tree str,
4847}
4848impl<'tree> ::treesitter_types::FromNode<'tree> for HashBangLine<'tree> {
4849 fn from_node(
4850 node: ::tree_sitter::Node<'tree>,
4851 src: &'tree [u8],
4852 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4853 debug_assert_eq!(node.kind(), "hash_bang_line");
4854 Ok(Self {
4855 span: ::treesitter_types::Span::from(node),
4856 text: node.utf8_text(src)?,
4857 })
4858 }
4859}
4860impl<'tree> ::treesitter_types::LeafNode<'tree> for HashBangLine<'tree> {
4861 fn text(&self) -> &'tree str {
4862 self.text
4863 }
4864}
4865impl ::treesitter_types::Spanned for HashBangLine<'_> {
4866 fn span(&self) -> ::treesitter_types::Span {
4867 self.span
4868 }
4869}
4870#[derive(Debug, Clone)]
4871pub struct HtmlCharacterReference<'tree> {
4872 pub span: ::treesitter_types::Span,
4873 text: &'tree str,
4874}
4875impl<'tree> ::treesitter_types::FromNode<'tree> for HtmlCharacterReference<'tree> {
4876 fn from_node(
4877 node: ::tree_sitter::Node<'tree>,
4878 src: &'tree [u8],
4879 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4880 debug_assert_eq!(node.kind(), "html_character_reference");
4881 Ok(Self {
4882 span: ::treesitter_types::Span::from(node),
4883 text: node.utf8_text(src)?,
4884 })
4885 }
4886}
4887impl<'tree> ::treesitter_types::LeafNode<'tree> for HtmlCharacterReference<'tree> {
4888 fn text(&self) -> &'tree str {
4889 self.text
4890 }
4891}
4892impl ::treesitter_types::Spanned for HtmlCharacterReference<'_> {
4893 fn span(&self) -> ::treesitter_types::Span {
4894 self.span
4895 }
4896}
4897#[derive(Debug, Clone)]
4898pub struct HtmlComment<'tree> {
4899 pub span: ::treesitter_types::Span,
4900 text: &'tree str,
4901}
4902impl<'tree> ::treesitter_types::FromNode<'tree> for HtmlComment<'tree> {
4903 fn from_node(
4904 node: ::tree_sitter::Node<'tree>,
4905 src: &'tree [u8],
4906 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4907 debug_assert_eq!(node.kind(), "html_comment");
4908 Ok(Self {
4909 span: ::treesitter_types::Span::from(node),
4910 text: node.utf8_text(src)?,
4911 })
4912 }
4913}
4914impl<'tree> ::treesitter_types::LeafNode<'tree> for HtmlComment<'tree> {
4915 fn text(&self) -> &'tree str {
4916 self.text
4917 }
4918}
4919impl ::treesitter_types::Spanned for HtmlComment<'_> {
4920 fn span(&self) -> ::treesitter_types::Span {
4921 self.span
4922 }
4923}
4924#[derive(Debug, Clone)]
4925pub struct Identifier<'tree> {
4926 pub span: ::treesitter_types::Span,
4927 text: &'tree str,
4928}
4929impl<'tree> ::treesitter_types::FromNode<'tree> for Identifier<'tree> {
4930 fn from_node(
4931 node: ::tree_sitter::Node<'tree>,
4932 src: &'tree [u8],
4933 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4934 debug_assert_eq!(node.kind(), "identifier");
4935 Ok(Self {
4936 span: ::treesitter_types::Span::from(node),
4937 text: node.utf8_text(src)?,
4938 })
4939 }
4940}
4941impl<'tree> ::treesitter_types::LeafNode<'tree> for Identifier<'tree> {
4942 fn text(&self) -> &'tree str {
4943 self.text
4944 }
4945}
4946impl ::treesitter_types::Spanned for Identifier<'_> {
4947 fn span(&self) -> ::treesitter_types::Span {
4948 self.span
4949 }
4950}
4951#[derive(Debug, Clone)]
4952pub struct JsxText<'tree> {
4953 pub span: ::treesitter_types::Span,
4954 text: &'tree str,
4955}
4956impl<'tree> ::treesitter_types::FromNode<'tree> for JsxText<'tree> {
4957 fn from_node(
4958 node: ::tree_sitter::Node<'tree>,
4959 src: &'tree [u8],
4960 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4961 debug_assert_eq!(node.kind(), "jsx_text");
4962 Ok(Self {
4963 span: ::treesitter_types::Span::from(node),
4964 text: node.utf8_text(src)?,
4965 })
4966 }
4967}
4968impl<'tree> ::treesitter_types::LeafNode<'tree> for JsxText<'tree> {
4969 fn text(&self) -> &'tree str {
4970 self.text
4971 }
4972}
4973impl ::treesitter_types::Spanned for JsxText<'_> {
4974 fn span(&self) -> ::treesitter_types::Span {
4975 self.span
4976 }
4977}
4978#[derive(Debug, Clone)]
4979pub struct Null<'tree> {
4980 pub span: ::treesitter_types::Span,
4981 text: &'tree str,
4982}
4983impl<'tree> ::treesitter_types::FromNode<'tree> for Null<'tree> {
4984 fn from_node(
4985 node: ::tree_sitter::Node<'tree>,
4986 src: &'tree [u8],
4987 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4988 debug_assert_eq!(node.kind(), "null");
4989 Ok(Self {
4990 span: ::treesitter_types::Span::from(node),
4991 text: node.utf8_text(src)?,
4992 })
4993 }
4994}
4995impl<'tree> ::treesitter_types::LeafNode<'tree> for Null<'tree> {
4996 fn text(&self) -> &'tree str {
4997 self.text
4998 }
4999}
5000impl ::treesitter_types::Spanned for Null<'_> {
5001 fn span(&self) -> ::treesitter_types::Span {
5002 self.span
5003 }
5004}
5005#[derive(Debug, Clone)]
5006pub struct Number<'tree> {
5007 pub span: ::treesitter_types::Span,
5008 text: &'tree str,
5009}
5010impl<'tree> ::treesitter_types::FromNode<'tree> for Number<'tree> {
5011 fn from_node(
5012 node: ::tree_sitter::Node<'tree>,
5013 src: &'tree [u8],
5014 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5015 debug_assert_eq!(node.kind(), "number");
5016 Ok(Self {
5017 span: ::treesitter_types::Span::from(node),
5018 text: node.utf8_text(src)?,
5019 })
5020 }
5021}
5022impl<'tree> ::treesitter_types::LeafNode<'tree> for Number<'tree> {
5023 fn text(&self) -> &'tree str {
5024 self.text
5025 }
5026}
5027impl ::treesitter_types::Spanned for Number<'_> {
5028 fn span(&self) -> ::treesitter_types::Span {
5029 self.span
5030 }
5031}
5032#[derive(Debug, Clone)]
5033pub struct OptionalChain<'tree> {
5034 pub span: ::treesitter_types::Span,
5035 text: &'tree str,
5036}
5037impl<'tree> ::treesitter_types::FromNode<'tree> for OptionalChain<'tree> {
5038 fn from_node(
5039 node: ::tree_sitter::Node<'tree>,
5040 src: &'tree [u8],
5041 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5042 debug_assert_eq!(node.kind(), "optional_chain");
5043 Ok(Self {
5044 span: ::treesitter_types::Span::from(node),
5045 text: node.utf8_text(src)?,
5046 })
5047 }
5048}
5049impl<'tree> ::treesitter_types::LeafNode<'tree> for OptionalChain<'tree> {
5050 fn text(&self) -> &'tree str {
5051 self.text
5052 }
5053}
5054impl ::treesitter_types::Spanned for OptionalChain<'_> {
5055 fn span(&self) -> ::treesitter_types::Span {
5056 self.span
5057 }
5058}
5059#[derive(Debug, Clone)]
5060pub struct PrivatePropertyIdentifier<'tree> {
5061 pub span: ::treesitter_types::Span,
5062 text: &'tree str,
5063}
5064impl<'tree> ::treesitter_types::FromNode<'tree> for PrivatePropertyIdentifier<'tree> {
5065 fn from_node(
5066 node: ::tree_sitter::Node<'tree>,
5067 src: &'tree [u8],
5068 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5069 debug_assert_eq!(node.kind(), "private_property_identifier");
5070 Ok(Self {
5071 span: ::treesitter_types::Span::from(node),
5072 text: node.utf8_text(src)?,
5073 })
5074 }
5075}
5076impl<'tree> ::treesitter_types::LeafNode<'tree> for PrivatePropertyIdentifier<'tree> {
5077 fn text(&self) -> &'tree str {
5078 self.text
5079 }
5080}
5081impl ::treesitter_types::Spanned for PrivatePropertyIdentifier<'_> {
5082 fn span(&self) -> ::treesitter_types::Span {
5083 self.span
5084 }
5085}
5086#[derive(Debug, Clone)]
5087pub struct PropertyIdentifier<'tree> {
5088 pub span: ::treesitter_types::Span,
5089 text: &'tree str,
5090}
5091impl<'tree> ::treesitter_types::FromNode<'tree> for PropertyIdentifier<'tree> {
5092 fn from_node(
5093 node: ::tree_sitter::Node<'tree>,
5094 src: &'tree [u8],
5095 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5096 debug_assert_eq!(node.kind(), "property_identifier");
5097 Ok(Self {
5098 span: ::treesitter_types::Span::from(node),
5099 text: node.utf8_text(src)?,
5100 })
5101 }
5102}
5103impl<'tree> ::treesitter_types::LeafNode<'tree> for PropertyIdentifier<'tree> {
5104 fn text(&self) -> &'tree str {
5105 self.text
5106 }
5107}
5108impl ::treesitter_types::Spanned for PropertyIdentifier<'_> {
5109 fn span(&self) -> ::treesitter_types::Span {
5110 self.span
5111 }
5112}
5113#[derive(Debug, Clone)]
5114pub struct RegexFlags<'tree> {
5115 pub span: ::treesitter_types::Span,
5116 text: &'tree str,
5117}
5118impl<'tree> ::treesitter_types::FromNode<'tree> for RegexFlags<'tree> {
5119 fn from_node(
5120 node: ::tree_sitter::Node<'tree>,
5121 src: &'tree [u8],
5122 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5123 debug_assert_eq!(node.kind(), "regex_flags");
5124 Ok(Self {
5125 span: ::treesitter_types::Span::from(node),
5126 text: node.utf8_text(src)?,
5127 })
5128 }
5129}
5130impl<'tree> ::treesitter_types::LeafNode<'tree> for RegexFlags<'tree> {
5131 fn text(&self) -> &'tree str {
5132 self.text
5133 }
5134}
5135impl ::treesitter_types::Spanned for RegexFlags<'_> {
5136 fn span(&self) -> ::treesitter_types::Span {
5137 self.span
5138 }
5139}
5140#[derive(Debug, Clone)]
5141pub struct RegexPattern<'tree> {
5142 pub span: ::treesitter_types::Span,
5143 text: &'tree str,
5144}
5145impl<'tree> ::treesitter_types::FromNode<'tree> for RegexPattern<'tree> {
5146 fn from_node(
5147 node: ::tree_sitter::Node<'tree>,
5148 src: &'tree [u8],
5149 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5150 debug_assert_eq!(node.kind(), "regex_pattern");
5151 Ok(Self {
5152 span: ::treesitter_types::Span::from(node),
5153 text: node.utf8_text(src)?,
5154 })
5155 }
5156}
5157impl<'tree> ::treesitter_types::LeafNode<'tree> for RegexPattern<'tree> {
5158 fn text(&self) -> &'tree str {
5159 self.text
5160 }
5161}
5162impl ::treesitter_types::Spanned for RegexPattern<'_> {
5163 fn span(&self) -> ::treesitter_types::Span {
5164 self.span
5165 }
5166}
5167#[derive(Debug, Clone)]
5168pub struct ShorthandPropertyIdentifier<'tree> {
5169 pub span: ::treesitter_types::Span,
5170 text: &'tree str,
5171}
5172impl<'tree> ::treesitter_types::FromNode<'tree> for ShorthandPropertyIdentifier<'tree> {
5173 fn from_node(
5174 node: ::tree_sitter::Node<'tree>,
5175 src: &'tree [u8],
5176 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5177 debug_assert_eq!(node.kind(), "shorthand_property_identifier");
5178 Ok(Self {
5179 span: ::treesitter_types::Span::from(node),
5180 text: node.utf8_text(src)?,
5181 })
5182 }
5183}
5184impl<'tree> ::treesitter_types::LeafNode<'tree> for ShorthandPropertyIdentifier<'tree> {
5185 fn text(&self) -> &'tree str {
5186 self.text
5187 }
5188}
5189impl ::treesitter_types::Spanned for ShorthandPropertyIdentifier<'_> {
5190 fn span(&self) -> ::treesitter_types::Span {
5191 self.span
5192 }
5193}
5194#[derive(Debug, Clone)]
5195pub struct ShorthandPropertyIdentifierPattern<'tree> {
5196 pub span: ::treesitter_types::Span,
5197 text: &'tree str,
5198}
5199impl<'tree> ::treesitter_types::FromNode<'tree> for ShorthandPropertyIdentifierPattern<'tree> {
5200 fn from_node(
5201 node: ::tree_sitter::Node<'tree>,
5202 src: &'tree [u8],
5203 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5204 debug_assert_eq!(node.kind(), "shorthand_property_identifier_pattern");
5205 Ok(Self {
5206 span: ::treesitter_types::Span::from(node),
5207 text: node.utf8_text(src)?,
5208 })
5209 }
5210}
5211impl<'tree> ::treesitter_types::LeafNode<'tree> for ShorthandPropertyIdentifierPattern<'tree> {
5212 fn text(&self) -> &'tree str {
5213 self.text
5214 }
5215}
5216impl ::treesitter_types::Spanned for ShorthandPropertyIdentifierPattern<'_> {
5217 fn span(&self) -> ::treesitter_types::Span {
5218 self.span
5219 }
5220}
5221#[derive(Debug, Clone)]
5222pub struct StatementIdentifier<'tree> {
5223 pub span: ::treesitter_types::Span,
5224 text: &'tree str,
5225}
5226impl<'tree> ::treesitter_types::FromNode<'tree> for StatementIdentifier<'tree> {
5227 fn from_node(
5228 node: ::tree_sitter::Node<'tree>,
5229 src: &'tree [u8],
5230 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5231 debug_assert_eq!(node.kind(), "statement_identifier");
5232 Ok(Self {
5233 span: ::treesitter_types::Span::from(node),
5234 text: node.utf8_text(src)?,
5235 })
5236 }
5237}
5238impl<'tree> ::treesitter_types::LeafNode<'tree> for StatementIdentifier<'tree> {
5239 fn text(&self) -> &'tree str {
5240 self.text
5241 }
5242}
5243impl ::treesitter_types::Spanned for StatementIdentifier<'_> {
5244 fn span(&self) -> ::treesitter_types::Span {
5245 self.span
5246 }
5247}
5248#[derive(Debug, Clone)]
5249pub struct StringFragment<'tree> {
5250 pub span: ::treesitter_types::Span,
5251 text: &'tree str,
5252}
5253impl<'tree> ::treesitter_types::FromNode<'tree> for StringFragment<'tree> {
5254 fn from_node(
5255 node: ::tree_sitter::Node<'tree>,
5256 src: &'tree [u8],
5257 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5258 debug_assert_eq!(node.kind(), "string_fragment");
5259 Ok(Self {
5260 span: ::treesitter_types::Span::from(node),
5261 text: node.utf8_text(src)?,
5262 })
5263 }
5264}
5265impl<'tree> ::treesitter_types::LeafNode<'tree> for StringFragment<'tree> {
5266 fn text(&self) -> &'tree str {
5267 self.text
5268 }
5269}
5270impl ::treesitter_types::Spanned for StringFragment<'_> {
5271 fn span(&self) -> ::treesitter_types::Span {
5272 self.span
5273 }
5274}
5275#[derive(Debug, Clone)]
5276pub struct Super<'tree> {
5277 pub span: ::treesitter_types::Span,
5278 text: &'tree str,
5279}
5280impl<'tree> ::treesitter_types::FromNode<'tree> for Super<'tree> {
5281 fn from_node(
5282 node: ::tree_sitter::Node<'tree>,
5283 src: &'tree [u8],
5284 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5285 debug_assert_eq!(node.kind(), "super");
5286 Ok(Self {
5287 span: ::treesitter_types::Span::from(node),
5288 text: node.utf8_text(src)?,
5289 })
5290 }
5291}
5292impl<'tree> ::treesitter_types::LeafNode<'tree> for Super<'tree> {
5293 fn text(&self) -> &'tree str {
5294 self.text
5295 }
5296}
5297impl ::treesitter_types::Spanned for Super<'_> {
5298 fn span(&self) -> ::treesitter_types::Span {
5299 self.span
5300 }
5301}
5302#[derive(Debug, Clone)]
5303pub struct This<'tree> {
5304 pub span: ::treesitter_types::Span,
5305 text: &'tree str,
5306}
5307impl<'tree> ::treesitter_types::FromNode<'tree> for This<'tree> {
5308 fn from_node(
5309 node: ::tree_sitter::Node<'tree>,
5310 src: &'tree [u8],
5311 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5312 debug_assert_eq!(node.kind(), "this");
5313 Ok(Self {
5314 span: ::treesitter_types::Span::from(node),
5315 text: node.utf8_text(src)?,
5316 })
5317 }
5318}
5319impl<'tree> ::treesitter_types::LeafNode<'tree> for This<'tree> {
5320 fn text(&self) -> &'tree str {
5321 self.text
5322 }
5323}
5324impl ::treesitter_types::Spanned for This<'_> {
5325 fn span(&self) -> ::treesitter_types::Span {
5326 self.span
5327 }
5328}
5329#[derive(Debug, Clone)]
5330pub struct True<'tree> {
5331 pub span: ::treesitter_types::Span,
5332 text: &'tree str,
5333}
5334impl<'tree> ::treesitter_types::FromNode<'tree> for True<'tree> {
5335 fn from_node(
5336 node: ::tree_sitter::Node<'tree>,
5337 src: &'tree [u8],
5338 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5339 debug_assert_eq!(node.kind(), "true");
5340 Ok(Self {
5341 span: ::treesitter_types::Span::from(node),
5342 text: node.utf8_text(src)?,
5343 })
5344 }
5345}
5346impl<'tree> ::treesitter_types::LeafNode<'tree> for True<'tree> {
5347 fn text(&self) -> &'tree str {
5348 self.text
5349 }
5350}
5351impl ::treesitter_types::Spanned for True<'_> {
5352 fn span(&self) -> ::treesitter_types::Span {
5353 self.span
5354 }
5355}
5356#[derive(Debug, Clone)]
5357pub struct Undefined<'tree> {
5358 pub span: ::treesitter_types::Span,
5359 text: &'tree str,
5360}
5361impl<'tree> ::treesitter_types::FromNode<'tree> for Undefined<'tree> {
5362 fn from_node(
5363 node: ::tree_sitter::Node<'tree>,
5364 src: &'tree [u8],
5365 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5366 debug_assert_eq!(node.kind(), "undefined");
5367 Ok(Self {
5368 span: ::treesitter_types::Span::from(node),
5369 text: node.utf8_text(src)?,
5370 })
5371 }
5372}
5373impl<'tree> ::treesitter_types::LeafNode<'tree> for Undefined<'tree> {
5374 fn text(&self) -> &'tree str {
5375 self.text
5376 }
5377}
5378impl ::treesitter_types::Spanned for Undefined<'_> {
5379 fn span(&self) -> ::treesitter_types::Span {
5380 self.span
5381 }
5382}
5383#[derive(Debug, Clone)]
5384pub enum ArgumentsChildren<'tree> {
5385 Expression(::std::boxed::Box<Expression<'tree>>),
5386 SpreadElement(::std::boxed::Box<SpreadElement<'tree>>),
5387}
5388impl<'tree> ::treesitter_types::FromNode<'tree> for ArgumentsChildren<'tree> {
5389 #[allow(clippy::collapsible_else_if)]
5390 fn from_node(
5391 node: ::tree_sitter::Node<'tree>,
5392 src: &'tree [u8],
5393 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5394 match node.kind() {
5395 "spread_element" => Ok(Self::SpreadElement(::std::boxed::Box::new(
5396 <SpreadElement as ::treesitter_types::FromNode>::from_node(node, src)?,
5397 ))),
5398 _other => {
5399 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
5400 Ok(Self::Expression(::std::boxed::Box::new(v)))
5401 } else {
5402 Err(::treesitter_types::ParseError::unexpected_kind(
5403 _other, node,
5404 ))
5405 }
5406 }
5407 }
5408 }
5409}
5410impl ::treesitter_types::Spanned for ArgumentsChildren<'_> {
5411 fn span(&self) -> ::treesitter_types::Span {
5412 match self {
5413 Self::Expression(inner) => inner.span(),
5414 Self::SpreadElement(inner) => inner.span(),
5415 }
5416 }
5417}
5418#[derive(Debug, Clone)]
5419pub enum ArrayChildren<'tree> {
5420 Expression(::std::boxed::Box<Expression<'tree>>),
5421 SpreadElement(::std::boxed::Box<SpreadElement<'tree>>),
5422}
5423impl<'tree> ::treesitter_types::FromNode<'tree> for ArrayChildren<'tree> {
5424 #[allow(clippy::collapsible_else_if)]
5425 fn from_node(
5426 node: ::tree_sitter::Node<'tree>,
5427 src: &'tree [u8],
5428 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5429 match node.kind() {
5430 "spread_element" => Ok(Self::SpreadElement(::std::boxed::Box::new(
5431 <SpreadElement as ::treesitter_types::FromNode>::from_node(node, src)?,
5432 ))),
5433 _other => {
5434 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
5435 Ok(Self::Expression(::std::boxed::Box::new(v)))
5436 } else {
5437 Err(::treesitter_types::ParseError::unexpected_kind(
5438 _other, node,
5439 ))
5440 }
5441 }
5442 }
5443 }
5444}
5445impl ::treesitter_types::Spanned for ArrayChildren<'_> {
5446 fn span(&self) -> ::treesitter_types::Span {
5447 match self {
5448 Self::Expression(inner) => inner.span(),
5449 Self::SpreadElement(inner) => inner.span(),
5450 }
5451 }
5452}
5453#[derive(Debug, Clone)]
5454pub enum ArrayPatternChildren<'tree> {
5455 AssignmentPattern(::std::boxed::Box<AssignmentPattern<'tree>>),
5456 Pattern(::std::boxed::Box<Pattern<'tree>>),
5457}
5458impl<'tree> ::treesitter_types::FromNode<'tree> for ArrayPatternChildren<'tree> {
5459 #[allow(clippy::collapsible_else_if)]
5460 fn from_node(
5461 node: ::tree_sitter::Node<'tree>,
5462 src: &'tree [u8],
5463 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5464 match node.kind() {
5465 "assignment_pattern" => Ok(Self::AssignmentPattern(::std::boxed::Box::new(
5466 <AssignmentPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
5467 ))),
5468 _other => {
5469 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
5470 Ok(Self::Pattern(::std::boxed::Box::new(v)))
5471 } else {
5472 Err(::treesitter_types::ParseError::unexpected_kind(
5473 _other, node,
5474 ))
5475 }
5476 }
5477 }
5478 }
5479}
5480impl ::treesitter_types::Spanned for ArrayPatternChildren<'_> {
5481 fn span(&self) -> ::treesitter_types::Span {
5482 match self {
5483 Self::AssignmentPattern(inner) => inner.span(),
5484 Self::Pattern(inner) => inner.span(),
5485 }
5486 }
5487}
5488#[derive(Debug, Clone)]
5489pub enum ArrowFunctionBody<'tree> {
5490 Expression(::std::boxed::Box<Expression<'tree>>),
5491 StatementBlock(::std::boxed::Box<StatementBlock<'tree>>),
5492}
5493impl<'tree> ::treesitter_types::FromNode<'tree> for ArrowFunctionBody<'tree> {
5494 #[allow(clippy::collapsible_else_if)]
5495 fn from_node(
5496 node: ::tree_sitter::Node<'tree>,
5497 src: &'tree [u8],
5498 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5499 match node.kind() {
5500 "statement_block" => Ok(Self::StatementBlock(::std::boxed::Box::new(
5501 <StatementBlock as ::treesitter_types::FromNode>::from_node(node, src)?,
5502 ))),
5503 _other => {
5504 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
5505 Ok(Self::Expression(::std::boxed::Box::new(v)))
5506 } else {
5507 Err(::treesitter_types::ParseError::unexpected_kind(
5508 _other, node,
5509 ))
5510 }
5511 }
5512 }
5513 }
5514}
5515impl ::treesitter_types::Spanned for ArrowFunctionBody<'_> {
5516 fn span(&self) -> ::treesitter_types::Span {
5517 match self {
5518 Self::Expression(inner) => inner.span(),
5519 Self::StatementBlock(inner) => inner.span(),
5520 }
5521 }
5522}
5523#[derive(Debug, Clone)]
5524pub enum AssignmentExpressionLeft<'tree> {
5525 ArrayPattern(::std::boxed::Box<ArrayPattern<'tree>>),
5526 Identifier(::std::boxed::Box<Identifier<'tree>>),
5527 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
5528 ObjectPattern(::std::boxed::Box<ObjectPattern<'tree>>),
5529 ParenthesizedExpression(::std::boxed::Box<ParenthesizedExpression<'tree>>),
5530 SubscriptExpression(::std::boxed::Box<SubscriptExpression<'tree>>),
5531 Undefined(::std::boxed::Box<Undefined<'tree>>),
5532}
5533impl<'tree> ::treesitter_types::FromNode<'tree> for AssignmentExpressionLeft<'tree> {
5534 #[allow(clippy::collapsible_else_if)]
5535 fn from_node(
5536 node: ::tree_sitter::Node<'tree>,
5537 src: &'tree [u8],
5538 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5539 match node.kind() {
5540 "array_pattern" => Ok(Self::ArrayPattern(::std::boxed::Box::new(
5541 <ArrayPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
5542 ))),
5543 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
5544 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
5545 ))),
5546 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
5547 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
5548 ))),
5549 "object_pattern" => Ok(Self::ObjectPattern(::std::boxed::Box::new(
5550 <ObjectPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
5551 ))),
5552 "parenthesized_expression" => {
5553 Ok(Self::ParenthesizedExpression(::std::boxed::Box::new(
5554 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(
5555 node, src,
5556 )?,
5557 )))
5558 }
5559 "subscript_expression" => Ok(Self::SubscriptExpression(::std::boxed::Box::new(
5560 <SubscriptExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
5561 ))),
5562 "undefined" => Ok(Self::Undefined(::std::boxed::Box::new(
5563 <Undefined as ::treesitter_types::FromNode>::from_node(node, src)?,
5564 ))),
5565 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
5566 }
5567 }
5568}
5569impl ::treesitter_types::Spanned for AssignmentExpressionLeft<'_> {
5570 fn span(&self) -> ::treesitter_types::Span {
5571 match self {
5572 Self::ArrayPattern(inner) => inner.span(),
5573 Self::Identifier(inner) => inner.span(),
5574 Self::MemberExpression(inner) => inner.span(),
5575 Self::ObjectPattern(inner) => inner.span(),
5576 Self::ParenthesizedExpression(inner) => inner.span(),
5577 Self::SubscriptExpression(inner) => inner.span(),
5578 Self::Undefined(inner) => inner.span(),
5579 }
5580 }
5581}
5582#[derive(Debug, Clone)]
5583pub enum AugmentedAssignmentExpressionLeft<'tree> {
5584 Identifier(::std::boxed::Box<Identifier<'tree>>),
5585 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
5586 ParenthesizedExpression(::std::boxed::Box<ParenthesizedExpression<'tree>>),
5587 SubscriptExpression(::std::boxed::Box<SubscriptExpression<'tree>>),
5588}
5589impl<'tree> ::treesitter_types::FromNode<'tree> for AugmentedAssignmentExpressionLeft<'tree> {
5590 #[allow(clippy::collapsible_else_if)]
5591 fn from_node(
5592 node: ::tree_sitter::Node<'tree>,
5593 src: &'tree [u8],
5594 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5595 match node.kind() {
5596 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
5597 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
5598 ))),
5599 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
5600 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
5601 ))),
5602 "parenthesized_expression" => {
5603 Ok(Self::ParenthesizedExpression(::std::boxed::Box::new(
5604 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(
5605 node, src,
5606 )?,
5607 )))
5608 }
5609 "subscript_expression" => Ok(Self::SubscriptExpression(::std::boxed::Box::new(
5610 <SubscriptExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
5611 ))),
5612 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
5613 }
5614 }
5615}
5616impl ::treesitter_types::Spanned for AugmentedAssignmentExpressionLeft<'_> {
5617 fn span(&self) -> ::treesitter_types::Span {
5618 match self {
5619 Self::Identifier(inner) => inner.span(),
5620 Self::MemberExpression(inner) => inner.span(),
5621 Self::ParenthesizedExpression(inner) => inner.span(),
5622 Self::SubscriptExpression(inner) => inner.span(),
5623 }
5624 }
5625}
5626#[derive(Debug, Clone)]
5627pub enum AugmentedAssignmentExpressionOperator {
5628 PercentEq(::treesitter_types::Span),
5629 AmpAmpEq(::treesitter_types::Span),
5630 AmpEq(::treesitter_types::Span),
5631 StarStarEq(::treesitter_types::Span),
5632 StarEq(::treesitter_types::Span),
5633 PlusEq(::treesitter_types::Span),
5634 MinusEq(::treesitter_types::Span),
5635 SlashEq(::treesitter_types::Span),
5636 ShlEq(::treesitter_types::Span),
5637 ShrEq(::treesitter_types::Span),
5638 GtGtGtEq(::treesitter_types::Span),
5639 QuestionQuestionEq(::treesitter_types::Span),
5640 CaretEq(::treesitter_types::Span),
5641 PipeEq(::treesitter_types::Span),
5642 PipePipeEq(::treesitter_types::Span),
5643}
5644impl<'tree> ::treesitter_types::FromNode<'tree> for AugmentedAssignmentExpressionOperator {
5645 #[allow(clippy::collapsible_else_if)]
5646 fn from_node(
5647 node: ::tree_sitter::Node<'tree>,
5648 _src: &'tree [u8],
5649 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5650 match node.kind() {
5651 "%=" => Ok(Self::PercentEq(::treesitter_types::Span::from(node))),
5652 "&&=" => Ok(Self::AmpAmpEq(::treesitter_types::Span::from(node))),
5653 "&=" => Ok(Self::AmpEq(::treesitter_types::Span::from(node))),
5654 "**=" => Ok(Self::StarStarEq(::treesitter_types::Span::from(node))),
5655 "*=" => Ok(Self::StarEq(::treesitter_types::Span::from(node))),
5656 "+=" => Ok(Self::PlusEq(::treesitter_types::Span::from(node))),
5657 "-=" => Ok(Self::MinusEq(::treesitter_types::Span::from(node))),
5658 "/=" => Ok(Self::SlashEq(::treesitter_types::Span::from(node))),
5659 "<<=" => Ok(Self::ShlEq(::treesitter_types::Span::from(node))),
5660 ">>=" => Ok(Self::ShrEq(::treesitter_types::Span::from(node))),
5661 ">>>=" => Ok(Self::GtGtGtEq(::treesitter_types::Span::from(node))),
5662 "??=" => Ok(Self::QuestionQuestionEq(::treesitter_types::Span::from(
5663 node,
5664 ))),
5665 "^=" => Ok(Self::CaretEq(::treesitter_types::Span::from(node))),
5666 "|=" => Ok(Self::PipeEq(::treesitter_types::Span::from(node))),
5667 "||=" => Ok(Self::PipePipeEq(::treesitter_types::Span::from(node))),
5668 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
5669 }
5670 }
5671}
5672impl ::treesitter_types::Spanned for AugmentedAssignmentExpressionOperator {
5673 fn span(&self) -> ::treesitter_types::Span {
5674 match self {
5675 Self::PercentEq(span) => *span,
5676 Self::AmpAmpEq(span) => *span,
5677 Self::AmpEq(span) => *span,
5678 Self::StarStarEq(span) => *span,
5679 Self::StarEq(span) => *span,
5680 Self::PlusEq(span) => *span,
5681 Self::MinusEq(span) => *span,
5682 Self::SlashEq(span) => *span,
5683 Self::ShlEq(span) => *span,
5684 Self::ShrEq(span) => *span,
5685 Self::GtGtGtEq(span) => *span,
5686 Self::QuestionQuestionEq(span) => *span,
5687 Self::CaretEq(span) => *span,
5688 Self::PipeEq(span) => *span,
5689 Self::PipePipeEq(span) => *span,
5690 }
5691 }
5692}
5693#[derive(Debug, Clone)]
5694pub enum BinaryExpressionLeft<'tree> {
5695 Expression(::std::boxed::Box<Expression<'tree>>),
5696 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
5697}
5698impl<'tree> ::treesitter_types::FromNode<'tree> for BinaryExpressionLeft<'tree> {
5699 #[allow(clippy::collapsible_else_if)]
5700 fn from_node(
5701 node: ::tree_sitter::Node<'tree>,
5702 src: &'tree [u8],
5703 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5704 match node.kind() {
5705 "private_property_identifier" => {
5706 Ok(Self::PrivatePropertyIdentifier(::std::boxed::Box::new(
5707 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
5708 node, src,
5709 )?,
5710 )))
5711 }
5712 _other => {
5713 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
5714 Ok(Self::Expression(::std::boxed::Box::new(v)))
5715 } else {
5716 Err(::treesitter_types::ParseError::unexpected_kind(
5717 _other, node,
5718 ))
5719 }
5720 }
5721 }
5722 }
5723}
5724impl ::treesitter_types::Spanned for BinaryExpressionLeft<'_> {
5725 fn span(&self) -> ::treesitter_types::Span {
5726 match self {
5727 Self::Expression(inner) => inner.span(),
5728 Self::PrivatePropertyIdentifier(inner) => inner.span(),
5729 }
5730 }
5731}
5732#[derive(Debug, Clone)]
5733pub enum BinaryExpressionOperator {
5734 NotEq(::treesitter_types::Span),
5735 BangEqEq(::treesitter_types::Span),
5736 Percent(::treesitter_types::Span),
5737 Amp(::treesitter_types::Span),
5738 AmpAmp(::treesitter_types::Span),
5739 Star(::treesitter_types::Span),
5740 StarStar(::treesitter_types::Span),
5741 Plus(::treesitter_types::Span),
5742 Minus(::treesitter_types::Span),
5743 Slash(::treesitter_types::Span),
5744 Lt(::treesitter_types::Span),
5745 Shl(::treesitter_types::Span),
5746 LtEq(::treesitter_types::Span),
5747 EqEq(::treesitter_types::Span),
5748 EqEqEq(::treesitter_types::Span),
5749 Gt(::treesitter_types::Span),
5750 GtEq(::treesitter_types::Span),
5751 Shr(::treesitter_types::Span),
5752 GtGtGt(::treesitter_types::Span),
5753 QuestionQuestion(::treesitter_types::Span),
5754 Caret(::treesitter_types::Span),
5755 In(::treesitter_types::Span),
5756 Instanceof(::treesitter_types::Span),
5757 Pipe(::treesitter_types::Span),
5758 PipePipe(::treesitter_types::Span),
5759}
5760impl<'tree> ::treesitter_types::FromNode<'tree> for BinaryExpressionOperator {
5761 #[allow(clippy::collapsible_else_if)]
5762 fn from_node(
5763 node: ::tree_sitter::Node<'tree>,
5764 _src: &'tree [u8],
5765 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5766 match node.kind() {
5767 "!=" => Ok(Self::NotEq(::treesitter_types::Span::from(node))),
5768 "!==" => Ok(Self::BangEqEq(::treesitter_types::Span::from(node))),
5769 "%" => Ok(Self::Percent(::treesitter_types::Span::from(node))),
5770 "&" => Ok(Self::Amp(::treesitter_types::Span::from(node))),
5771 "&&" => Ok(Self::AmpAmp(::treesitter_types::Span::from(node))),
5772 "*" => Ok(Self::Star(::treesitter_types::Span::from(node))),
5773 "**" => Ok(Self::StarStar(::treesitter_types::Span::from(node))),
5774 "+" => Ok(Self::Plus(::treesitter_types::Span::from(node))),
5775 "-" => Ok(Self::Minus(::treesitter_types::Span::from(node))),
5776 "/" => Ok(Self::Slash(::treesitter_types::Span::from(node))),
5777 "<" => Ok(Self::Lt(::treesitter_types::Span::from(node))),
5778 "<<" => Ok(Self::Shl(::treesitter_types::Span::from(node))),
5779 "<=" => Ok(Self::LtEq(::treesitter_types::Span::from(node))),
5780 "==" => Ok(Self::EqEq(::treesitter_types::Span::from(node))),
5781 "===" => Ok(Self::EqEqEq(::treesitter_types::Span::from(node))),
5782 ">" => Ok(Self::Gt(::treesitter_types::Span::from(node))),
5783 ">=" => Ok(Self::GtEq(::treesitter_types::Span::from(node))),
5784 ">>" => Ok(Self::Shr(::treesitter_types::Span::from(node))),
5785 ">>>" => Ok(Self::GtGtGt(::treesitter_types::Span::from(node))),
5786 "??" => Ok(Self::QuestionQuestion(::treesitter_types::Span::from(node))),
5787 "^" => Ok(Self::Caret(::treesitter_types::Span::from(node))),
5788 "in" => Ok(Self::In(::treesitter_types::Span::from(node))),
5789 "instanceof" => Ok(Self::Instanceof(::treesitter_types::Span::from(node))),
5790 "|" => Ok(Self::Pipe(::treesitter_types::Span::from(node))),
5791 "||" => Ok(Self::PipePipe(::treesitter_types::Span::from(node))),
5792 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
5793 }
5794 }
5795}
5796impl ::treesitter_types::Spanned for BinaryExpressionOperator {
5797 fn span(&self) -> ::treesitter_types::Span {
5798 match self {
5799 Self::NotEq(span) => *span,
5800 Self::BangEqEq(span) => *span,
5801 Self::Percent(span) => *span,
5802 Self::Amp(span) => *span,
5803 Self::AmpAmp(span) => *span,
5804 Self::Star(span) => *span,
5805 Self::StarStar(span) => *span,
5806 Self::Plus(span) => *span,
5807 Self::Minus(span) => *span,
5808 Self::Slash(span) => *span,
5809 Self::Lt(span) => *span,
5810 Self::Shl(span) => *span,
5811 Self::LtEq(span) => *span,
5812 Self::EqEq(span) => *span,
5813 Self::EqEqEq(span) => *span,
5814 Self::Gt(span) => *span,
5815 Self::GtEq(span) => *span,
5816 Self::Shr(span) => *span,
5817 Self::GtGtGt(span) => *span,
5818 Self::QuestionQuestion(span) => *span,
5819 Self::Caret(span) => *span,
5820 Self::In(span) => *span,
5821 Self::Instanceof(span) => *span,
5822 Self::Pipe(span) => *span,
5823 Self::PipePipe(span) => *span,
5824 }
5825 }
5826}
5827#[derive(Debug, Clone)]
5828pub enum CallExpressionArguments<'tree> {
5829 Arguments(::std::boxed::Box<Arguments<'tree>>),
5830 TemplateString(::std::boxed::Box<TemplateString<'tree>>),
5831}
5832impl<'tree> ::treesitter_types::FromNode<'tree> for CallExpressionArguments<'tree> {
5833 #[allow(clippy::collapsible_else_if)]
5834 fn from_node(
5835 node: ::tree_sitter::Node<'tree>,
5836 src: &'tree [u8],
5837 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5838 match node.kind() {
5839 "arguments" => Ok(Self::Arguments(::std::boxed::Box::new(
5840 <Arguments as ::treesitter_types::FromNode>::from_node(node, src)?,
5841 ))),
5842 "template_string" => Ok(Self::TemplateString(::std::boxed::Box::new(
5843 <TemplateString as ::treesitter_types::FromNode>::from_node(node, src)?,
5844 ))),
5845 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
5846 }
5847 }
5848}
5849impl ::treesitter_types::Spanned for CallExpressionArguments<'_> {
5850 fn span(&self) -> ::treesitter_types::Span {
5851 match self {
5852 Self::Arguments(inner) => inner.span(),
5853 Self::TemplateString(inner) => inner.span(),
5854 }
5855 }
5856}
5857#[derive(Debug, Clone)]
5858pub enum CallExpressionFunction<'tree> {
5859 Expression(::std::boxed::Box<Expression<'tree>>),
5860 Import(::std::boxed::Box<Import<'tree>>),
5861}
5862impl<'tree> ::treesitter_types::FromNode<'tree> for CallExpressionFunction<'tree> {
5863 #[allow(clippy::collapsible_else_if)]
5864 fn from_node(
5865 node: ::tree_sitter::Node<'tree>,
5866 src: &'tree [u8],
5867 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5868 match node.kind() {
5869 "import" => Ok(Self::Import(::std::boxed::Box::new(
5870 <Import as ::treesitter_types::FromNode>::from_node(node, src)?,
5871 ))),
5872 _other => {
5873 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
5874 Ok(Self::Expression(::std::boxed::Box::new(v)))
5875 } else {
5876 Err(::treesitter_types::ParseError::unexpected_kind(
5877 _other, node,
5878 ))
5879 }
5880 }
5881 }
5882 }
5883}
5884impl ::treesitter_types::Spanned for CallExpressionFunction<'_> {
5885 fn span(&self) -> ::treesitter_types::Span {
5886 match self {
5887 Self::Expression(inner) => inner.span(),
5888 Self::Import(inner) => inner.span(),
5889 }
5890 }
5891}
5892#[derive(Debug, Clone)]
5893pub enum CatchClauseParameter<'tree> {
5894 ArrayPattern(::std::boxed::Box<ArrayPattern<'tree>>),
5895 Identifier(::std::boxed::Box<Identifier<'tree>>),
5896 ObjectPattern(::std::boxed::Box<ObjectPattern<'tree>>),
5897}
5898impl<'tree> ::treesitter_types::FromNode<'tree> for CatchClauseParameter<'tree> {
5899 #[allow(clippy::collapsible_else_if)]
5900 fn from_node(
5901 node: ::tree_sitter::Node<'tree>,
5902 src: &'tree [u8],
5903 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5904 match node.kind() {
5905 "array_pattern" => Ok(Self::ArrayPattern(::std::boxed::Box::new(
5906 <ArrayPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
5907 ))),
5908 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
5909 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
5910 ))),
5911 "object_pattern" => Ok(Self::ObjectPattern(::std::boxed::Box::new(
5912 <ObjectPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
5913 ))),
5914 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
5915 }
5916 }
5917}
5918impl ::treesitter_types::Spanned for CatchClauseParameter<'_> {
5919 fn span(&self) -> ::treesitter_types::Span {
5920 match self {
5921 Self::ArrayPattern(inner) => inner.span(),
5922 Self::Identifier(inner) => inner.span(),
5923 Self::ObjectPattern(inner) => inner.span(),
5924 }
5925 }
5926}
5927#[derive(Debug, Clone)]
5928pub enum ClassBodyMember<'tree> {
5929 ClassStaticBlock(::std::boxed::Box<ClassStaticBlock<'tree>>),
5930 FieldDefinition(::std::boxed::Box<FieldDefinition<'tree>>),
5931 MethodDefinition(::std::boxed::Box<MethodDefinition<'tree>>),
5932}
5933impl<'tree> ::treesitter_types::FromNode<'tree> for ClassBodyMember<'tree> {
5934 #[allow(clippy::collapsible_else_if)]
5935 fn from_node(
5936 node: ::tree_sitter::Node<'tree>,
5937 src: &'tree [u8],
5938 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5939 match node.kind() {
5940 "class_static_block" => Ok(Self::ClassStaticBlock(::std::boxed::Box::new(
5941 <ClassStaticBlock as ::treesitter_types::FromNode>::from_node(node, src)?,
5942 ))),
5943 "field_definition" => Ok(Self::FieldDefinition(::std::boxed::Box::new(
5944 <FieldDefinition as ::treesitter_types::FromNode>::from_node(node, src)?,
5945 ))),
5946 "method_definition" => Ok(Self::MethodDefinition(::std::boxed::Box::new(
5947 <MethodDefinition as ::treesitter_types::FromNode>::from_node(node, src)?,
5948 ))),
5949 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
5950 }
5951 }
5952}
5953impl ::treesitter_types::Spanned for ClassBodyMember<'_> {
5954 fn span(&self) -> ::treesitter_types::Span {
5955 match self {
5956 Self::ClassStaticBlock(inner) => inner.span(),
5957 Self::FieldDefinition(inner) => inner.span(),
5958 Self::MethodDefinition(inner) => inner.span(),
5959 }
5960 }
5961}
5962#[derive(Debug, Clone)]
5963pub enum DecoratorChildren<'tree> {
5964 CallExpression(::std::boxed::Box<CallExpression<'tree>>),
5965 Identifier(::std::boxed::Box<Identifier<'tree>>),
5966 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
5967}
5968impl<'tree> ::treesitter_types::FromNode<'tree> for DecoratorChildren<'tree> {
5969 #[allow(clippy::collapsible_else_if)]
5970 fn from_node(
5971 node: ::tree_sitter::Node<'tree>,
5972 src: &'tree [u8],
5973 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5974 match node.kind() {
5975 "call_expression" => Ok(Self::CallExpression(::std::boxed::Box::new(
5976 <CallExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
5977 ))),
5978 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
5979 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
5980 ))),
5981 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
5982 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
5983 ))),
5984 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
5985 }
5986 }
5987}
5988impl ::treesitter_types::Spanned for DecoratorChildren<'_> {
5989 fn span(&self) -> ::treesitter_types::Span {
5990 match self {
5991 Self::CallExpression(inner) => inner.span(),
5992 Self::Identifier(inner) => inner.span(),
5993 Self::MemberExpression(inner) => inner.span(),
5994 }
5995 }
5996}
5997#[derive(Debug, Clone)]
5998pub enum ExportSpecifierAlias<'tree> {
5999 Default(::treesitter_types::Span),
6000 Identifier(::std::boxed::Box<Identifier<'tree>>),
6001 String(::std::boxed::Box<String<'tree>>),
6002}
6003impl<'tree> ::treesitter_types::FromNode<'tree> for ExportSpecifierAlias<'tree> {
6004 #[allow(clippy::collapsible_else_if)]
6005 fn from_node(
6006 node: ::tree_sitter::Node<'tree>,
6007 src: &'tree [u8],
6008 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6009 match node.kind() {
6010 "default" => Ok(Self::Default(::treesitter_types::Span::from(node))),
6011 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
6012 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
6013 ))),
6014 "string" => Ok(Self::String(::std::boxed::Box::new(
6015 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
6016 ))),
6017 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
6018 }
6019 }
6020}
6021impl ::treesitter_types::Spanned for ExportSpecifierAlias<'_> {
6022 fn span(&self) -> ::treesitter_types::Span {
6023 match self {
6024 Self::Default(span) => *span,
6025 Self::Identifier(inner) => inner.span(),
6026 Self::String(inner) => inner.span(),
6027 }
6028 }
6029}
6030#[derive(Debug, Clone)]
6031pub enum ExportSpecifierName<'tree> {
6032 Default(::treesitter_types::Span),
6033 Identifier(::std::boxed::Box<Identifier<'tree>>),
6034 String(::std::boxed::Box<String<'tree>>),
6035}
6036impl<'tree> ::treesitter_types::FromNode<'tree> for ExportSpecifierName<'tree> {
6037 #[allow(clippy::collapsible_else_if)]
6038 fn from_node(
6039 node: ::tree_sitter::Node<'tree>,
6040 src: &'tree [u8],
6041 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6042 match node.kind() {
6043 "default" => Ok(Self::Default(::treesitter_types::Span::from(node))),
6044 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
6045 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
6046 ))),
6047 "string" => Ok(Self::String(::std::boxed::Box::new(
6048 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
6049 ))),
6050 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
6051 }
6052 }
6053}
6054impl ::treesitter_types::Spanned for ExportSpecifierName<'_> {
6055 fn span(&self) -> ::treesitter_types::Span {
6056 match self {
6057 Self::Default(span) => *span,
6058 Self::Identifier(inner) => inner.span(),
6059 Self::String(inner) => inner.span(),
6060 }
6061 }
6062}
6063#[derive(Debug, Clone)]
6064pub enum ExportStatementChildren<'tree> {
6065 ExportClause(::std::boxed::Box<ExportClause<'tree>>),
6066 NamespaceExport(::std::boxed::Box<NamespaceExport<'tree>>),
6067}
6068impl<'tree> ::treesitter_types::FromNode<'tree> for ExportStatementChildren<'tree> {
6069 #[allow(clippy::collapsible_else_if)]
6070 fn from_node(
6071 node: ::tree_sitter::Node<'tree>,
6072 src: &'tree [u8],
6073 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6074 match node.kind() {
6075 "export_clause" => Ok(Self::ExportClause(::std::boxed::Box::new(
6076 <ExportClause as ::treesitter_types::FromNode>::from_node(node, src)?,
6077 ))),
6078 "namespace_export" => Ok(Self::NamespaceExport(::std::boxed::Box::new(
6079 <NamespaceExport as ::treesitter_types::FromNode>::from_node(node, src)?,
6080 ))),
6081 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
6082 }
6083 }
6084}
6085impl ::treesitter_types::Spanned for ExportStatementChildren<'_> {
6086 fn span(&self) -> ::treesitter_types::Span {
6087 match self {
6088 Self::ExportClause(inner) => inner.span(),
6089 Self::NamespaceExport(inner) => inner.span(),
6090 }
6091 }
6092}
6093#[derive(Debug, Clone)]
6094pub enum ExpressionStatementChildren<'tree> {
6095 Expression(::std::boxed::Box<Expression<'tree>>),
6096 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
6097}
6098impl<'tree> ::treesitter_types::FromNode<'tree> for ExpressionStatementChildren<'tree> {
6099 #[allow(clippy::collapsible_else_if)]
6100 fn from_node(
6101 node: ::tree_sitter::Node<'tree>,
6102 src: &'tree [u8],
6103 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6104 match node.kind() {
6105 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
6106 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
6107 ))),
6108 _other => {
6109 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
6110 Ok(Self::Expression(::std::boxed::Box::new(v)))
6111 } else {
6112 Err(::treesitter_types::ParseError::unexpected_kind(
6113 _other, node,
6114 ))
6115 }
6116 }
6117 }
6118 }
6119}
6120impl ::treesitter_types::Spanned for ExpressionStatementChildren<'_> {
6121 fn span(&self) -> ::treesitter_types::Span {
6122 match self {
6123 Self::Expression(inner) => inner.span(),
6124 Self::SequenceExpression(inner) => inner.span(),
6125 }
6126 }
6127}
6128#[derive(Debug, Clone)]
6129pub enum FieldDefinitionProperty<'tree> {
6130 ComputedPropertyName(::std::boxed::Box<ComputedPropertyName<'tree>>),
6131 Number(::std::boxed::Box<Number<'tree>>),
6132 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
6133 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
6134 String(::std::boxed::Box<String<'tree>>),
6135}
6136impl<'tree> ::treesitter_types::FromNode<'tree> for FieldDefinitionProperty<'tree> {
6137 #[allow(clippy::collapsible_else_if)]
6138 fn from_node(
6139 node: ::tree_sitter::Node<'tree>,
6140 src: &'tree [u8],
6141 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6142 match node.kind() {
6143 "computed_property_name" => Ok(Self::ComputedPropertyName(::std::boxed::Box::new(
6144 <ComputedPropertyName as ::treesitter_types::FromNode>::from_node(node, src)?,
6145 ))),
6146 "number" => Ok(Self::Number(::std::boxed::Box::new(
6147 <Number as ::treesitter_types::FromNode>::from_node(node, src)?,
6148 ))),
6149 "private_property_identifier" => {
6150 Ok(Self::PrivatePropertyIdentifier(::std::boxed::Box::new(
6151 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
6152 node, src,
6153 )?,
6154 )))
6155 }
6156 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
6157 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
6158 ))),
6159 "string" => Ok(Self::String(::std::boxed::Box::new(
6160 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
6161 ))),
6162 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
6163 }
6164 }
6165}
6166impl ::treesitter_types::Spanned for FieldDefinitionProperty<'_> {
6167 fn span(&self) -> ::treesitter_types::Span {
6168 match self {
6169 Self::ComputedPropertyName(inner) => inner.span(),
6170 Self::Number(inner) => inner.span(),
6171 Self::PrivatePropertyIdentifier(inner) => inner.span(),
6172 Self::PropertyIdentifier(inner) => inner.span(),
6173 Self::String(inner) => inner.span(),
6174 }
6175 }
6176}
6177#[derive(Debug, Clone)]
6178pub enum ForInStatementKind {
6179 Await(::treesitter_types::Span),
6180 Const(::treesitter_types::Span),
6181 Let(::treesitter_types::Span),
6182 Using(::treesitter_types::Span),
6183 Var(::treesitter_types::Span),
6184}
6185impl<'tree> ::treesitter_types::FromNode<'tree> for ForInStatementKind {
6186 #[allow(clippy::collapsible_else_if)]
6187 fn from_node(
6188 node: ::tree_sitter::Node<'tree>,
6189 _src: &'tree [u8],
6190 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6191 match node.kind() {
6192 "await" => Ok(Self::Await(::treesitter_types::Span::from(node))),
6193 "const" => Ok(Self::Const(::treesitter_types::Span::from(node))),
6194 "let" => Ok(Self::Let(::treesitter_types::Span::from(node))),
6195 "using" => Ok(Self::Using(::treesitter_types::Span::from(node))),
6196 "var" => Ok(Self::Var(::treesitter_types::Span::from(node))),
6197 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
6198 }
6199 }
6200}
6201impl ::treesitter_types::Spanned for ForInStatementKind {
6202 fn span(&self) -> ::treesitter_types::Span {
6203 match self {
6204 Self::Await(span) => *span,
6205 Self::Const(span) => *span,
6206 Self::Let(span) => *span,
6207 Self::Using(span) => *span,
6208 Self::Var(span) => *span,
6209 }
6210 }
6211}
6212#[derive(Debug, Clone)]
6213pub enum ForInStatementLeft<'tree> {
6214 ArrayPattern(::std::boxed::Box<ArrayPattern<'tree>>),
6215 Identifier(::std::boxed::Box<Identifier<'tree>>),
6216 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
6217 ObjectPattern(::std::boxed::Box<ObjectPattern<'tree>>),
6218 ParenthesizedExpression(::std::boxed::Box<ParenthesizedExpression<'tree>>),
6219 SubscriptExpression(::std::boxed::Box<SubscriptExpression<'tree>>),
6220 Undefined(::std::boxed::Box<Undefined<'tree>>),
6221}
6222impl<'tree> ::treesitter_types::FromNode<'tree> for ForInStatementLeft<'tree> {
6223 #[allow(clippy::collapsible_else_if)]
6224 fn from_node(
6225 node: ::tree_sitter::Node<'tree>,
6226 src: &'tree [u8],
6227 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6228 match node.kind() {
6229 "array_pattern" => Ok(Self::ArrayPattern(::std::boxed::Box::new(
6230 <ArrayPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
6231 ))),
6232 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
6233 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
6234 ))),
6235 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
6236 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
6237 ))),
6238 "object_pattern" => Ok(Self::ObjectPattern(::std::boxed::Box::new(
6239 <ObjectPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
6240 ))),
6241 "parenthesized_expression" => {
6242 Ok(Self::ParenthesizedExpression(::std::boxed::Box::new(
6243 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(
6244 node, src,
6245 )?,
6246 )))
6247 }
6248 "subscript_expression" => Ok(Self::SubscriptExpression(::std::boxed::Box::new(
6249 <SubscriptExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
6250 ))),
6251 "undefined" => Ok(Self::Undefined(::std::boxed::Box::new(
6252 <Undefined as ::treesitter_types::FromNode>::from_node(node, src)?,
6253 ))),
6254 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
6255 }
6256 }
6257}
6258impl ::treesitter_types::Spanned for ForInStatementLeft<'_> {
6259 fn span(&self) -> ::treesitter_types::Span {
6260 match self {
6261 Self::ArrayPattern(inner) => inner.span(),
6262 Self::Identifier(inner) => inner.span(),
6263 Self::MemberExpression(inner) => inner.span(),
6264 Self::ObjectPattern(inner) => inner.span(),
6265 Self::ParenthesizedExpression(inner) => inner.span(),
6266 Self::SubscriptExpression(inner) => inner.span(),
6267 Self::Undefined(inner) => inner.span(),
6268 }
6269 }
6270}
6271#[derive(Debug, Clone)]
6272pub enum ForInStatementOperator {
6273 In(::treesitter_types::Span),
6274 Of(::treesitter_types::Span),
6275}
6276impl<'tree> ::treesitter_types::FromNode<'tree> for ForInStatementOperator {
6277 #[allow(clippy::collapsible_else_if)]
6278 fn from_node(
6279 node: ::tree_sitter::Node<'tree>,
6280 _src: &'tree [u8],
6281 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6282 match node.kind() {
6283 "in" => Ok(Self::In(::treesitter_types::Span::from(node))),
6284 "of" => Ok(Self::Of(::treesitter_types::Span::from(node))),
6285 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
6286 }
6287 }
6288}
6289impl ::treesitter_types::Spanned for ForInStatementOperator {
6290 fn span(&self) -> ::treesitter_types::Span {
6291 match self {
6292 Self::In(span) => *span,
6293 Self::Of(span) => *span,
6294 }
6295 }
6296}
6297#[derive(Debug, Clone)]
6298pub enum ForInStatementRight<'tree> {
6299 Expression(::std::boxed::Box<Expression<'tree>>),
6300 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
6301}
6302impl<'tree> ::treesitter_types::FromNode<'tree> for ForInStatementRight<'tree> {
6303 #[allow(clippy::collapsible_else_if)]
6304 fn from_node(
6305 node: ::tree_sitter::Node<'tree>,
6306 src: &'tree [u8],
6307 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6308 match node.kind() {
6309 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
6310 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
6311 ))),
6312 _other => {
6313 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
6314 Ok(Self::Expression(::std::boxed::Box::new(v)))
6315 } else {
6316 Err(::treesitter_types::ParseError::unexpected_kind(
6317 _other, node,
6318 ))
6319 }
6320 }
6321 }
6322 }
6323}
6324impl ::treesitter_types::Spanned for ForInStatementRight<'_> {
6325 fn span(&self) -> ::treesitter_types::Span {
6326 match self {
6327 Self::Expression(inner) => inner.span(),
6328 Self::SequenceExpression(inner) => inner.span(),
6329 }
6330 }
6331}
6332#[derive(Debug, Clone)]
6333pub enum ForStatementCondition<'tree> {
6334 Semicolon(::treesitter_types::Span),
6335 EmptyStatement(::std::boxed::Box<EmptyStatement<'tree>>),
6336 Expression(::std::boxed::Box<Expression<'tree>>),
6337 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
6338}
6339impl<'tree> ::treesitter_types::FromNode<'tree> for ForStatementCondition<'tree> {
6340 #[allow(clippy::collapsible_else_if)]
6341 fn from_node(
6342 node: ::tree_sitter::Node<'tree>,
6343 src: &'tree [u8],
6344 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6345 match node.kind() {
6346 ";" => Ok(Self::Semicolon(::treesitter_types::Span::from(node))),
6347 "empty_statement" => Ok(Self::EmptyStatement(::std::boxed::Box::new(
6348 <EmptyStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
6349 ))),
6350 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
6351 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
6352 ))),
6353 _other => {
6354 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
6355 Ok(Self::Expression(::std::boxed::Box::new(v)))
6356 } else {
6357 Err(::treesitter_types::ParseError::unexpected_kind(
6358 _other, node,
6359 ))
6360 }
6361 }
6362 }
6363 }
6364}
6365impl ::treesitter_types::Spanned for ForStatementCondition<'_> {
6366 fn span(&self) -> ::treesitter_types::Span {
6367 match self {
6368 Self::Semicolon(span) => *span,
6369 Self::EmptyStatement(inner) => inner.span(),
6370 Self::Expression(inner) => inner.span(),
6371 Self::SequenceExpression(inner) => inner.span(),
6372 }
6373 }
6374}
6375#[derive(Debug, Clone)]
6376pub enum ForStatementIncrement<'tree> {
6377 Expression(::std::boxed::Box<Expression<'tree>>),
6378 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
6379}
6380impl<'tree> ::treesitter_types::FromNode<'tree> for ForStatementIncrement<'tree> {
6381 #[allow(clippy::collapsible_else_if)]
6382 fn from_node(
6383 node: ::tree_sitter::Node<'tree>,
6384 src: &'tree [u8],
6385 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6386 match node.kind() {
6387 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
6388 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
6389 ))),
6390 _other => {
6391 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
6392 Ok(Self::Expression(::std::boxed::Box::new(v)))
6393 } else {
6394 Err(::treesitter_types::ParseError::unexpected_kind(
6395 _other, node,
6396 ))
6397 }
6398 }
6399 }
6400 }
6401}
6402impl ::treesitter_types::Spanned for ForStatementIncrement<'_> {
6403 fn span(&self) -> ::treesitter_types::Span {
6404 match self {
6405 Self::Expression(inner) => inner.span(),
6406 Self::SequenceExpression(inner) => inner.span(),
6407 }
6408 }
6409}
6410#[derive(Debug, Clone)]
6411pub enum ForStatementInitializer<'tree> {
6412 EmptyStatement(::std::boxed::Box<EmptyStatement<'tree>>),
6413 Expression(::std::boxed::Box<Expression<'tree>>),
6414 LexicalDeclaration(::std::boxed::Box<LexicalDeclaration<'tree>>),
6415 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
6416 VariableDeclaration(::std::boxed::Box<VariableDeclaration<'tree>>),
6417}
6418impl<'tree> ::treesitter_types::FromNode<'tree> for ForStatementInitializer<'tree> {
6419 #[allow(clippy::collapsible_else_if)]
6420 fn from_node(
6421 node: ::tree_sitter::Node<'tree>,
6422 src: &'tree [u8],
6423 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6424 match node.kind() {
6425 "empty_statement" => Ok(Self::EmptyStatement(::std::boxed::Box::new(
6426 <EmptyStatement as ::treesitter_types::FromNode>::from_node(node, src)?,
6427 ))),
6428 "lexical_declaration" => Ok(Self::LexicalDeclaration(::std::boxed::Box::new(
6429 <LexicalDeclaration as ::treesitter_types::FromNode>::from_node(node, src)?,
6430 ))),
6431 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
6432 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
6433 ))),
6434 "variable_declaration" => Ok(Self::VariableDeclaration(::std::boxed::Box::new(
6435 <VariableDeclaration as ::treesitter_types::FromNode>::from_node(node, src)?,
6436 ))),
6437 _other => {
6438 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
6439 Ok(Self::Expression(::std::boxed::Box::new(v)))
6440 } else {
6441 Err(::treesitter_types::ParseError::unexpected_kind(
6442 _other, node,
6443 ))
6444 }
6445 }
6446 }
6447 }
6448}
6449impl ::treesitter_types::Spanned for ForStatementInitializer<'_> {
6450 fn span(&self) -> ::treesitter_types::Span {
6451 match self {
6452 Self::EmptyStatement(inner) => inner.span(),
6453 Self::Expression(inner) => inner.span(),
6454 Self::LexicalDeclaration(inner) => inner.span(),
6455 Self::SequenceExpression(inner) => inner.span(),
6456 Self::VariableDeclaration(inner) => inner.span(),
6457 }
6458 }
6459}
6460#[derive(Debug, Clone)]
6461pub enum FormalParametersChildren<'tree> {
6462 AssignmentPattern(::std::boxed::Box<AssignmentPattern<'tree>>),
6463 Pattern(::std::boxed::Box<Pattern<'tree>>),
6464}
6465impl<'tree> ::treesitter_types::FromNode<'tree> for FormalParametersChildren<'tree> {
6466 #[allow(clippy::collapsible_else_if)]
6467 fn from_node(
6468 node: ::tree_sitter::Node<'tree>,
6469 src: &'tree [u8],
6470 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6471 match node.kind() {
6472 "assignment_pattern" => Ok(Self::AssignmentPattern(::std::boxed::Box::new(
6473 <AssignmentPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
6474 ))),
6475 _other => {
6476 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
6477 Ok(Self::Pattern(::std::boxed::Box::new(v)))
6478 } else {
6479 Err(::treesitter_types::ParseError::unexpected_kind(
6480 _other, node,
6481 ))
6482 }
6483 }
6484 }
6485 }
6486}
6487impl ::treesitter_types::Spanned for FormalParametersChildren<'_> {
6488 fn span(&self) -> ::treesitter_types::Span {
6489 match self {
6490 Self::AssignmentPattern(inner) => inner.span(),
6491 Self::Pattern(inner) => inner.span(),
6492 }
6493 }
6494}
6495#[derive(Debug, Clone)]
6496pub enum ImportClauseChildren<'tree> {
6497 Identifier(::std::boxed::Box<Identifier<'tree>>),
6498 NamedImports(::std::boxed::Box<NamedImports<'tree>>),
6499 NamespaceImport(::std::boxed::Box<NamespaceImport<'tree>>),
6500}
6501impl<'tree> ::treesitter_types::FromNode<'tree> for ImportClauseChildren<'tree> {
6502 #[allow(clippy::collapsible_else_if)]
6503 fn from_node(
6504 node: ::tree_sitter::Node<'tree>,
6505 src: &'tree [u8],
6506 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6507 match node.kind() {
6508 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
6509 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
6510 ))),
6511 "named_imports" => Ok(Self::NamedImports(::std::boxed::Box::new(
6512 <NamedImports as ::treesitter_types::FromNode>::from_node(node, src)?,
6513 ))),
6514 "namespace_import" => Ok(Self::NamespaceImport(::std::boxed::Box::new(
6515 <NamespaceImport as ::treesitter_types::FromNode>::from_node(node, src)?,
6516 ))),
6517 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
6518 }
6519 }
6520}
6521impl ::treesitter_types::Spanned for ImportClauseChildren<'_> {
6522 fn span(&self) -> ::treesitter_types::Span {
6523 match self {
6524 Self::Identifier(inner) => inner.span(),
6525 Self::NamedImports(inner) => inner.span(),
6526 Self::NamespaceImport(inner) => inner.span(),
6527 }
6528 }
6529}
6530#[derive(Debug, Clone)]
6531pub enum ImportSpecifierName<'tree> {
6532 Default(::treesitter_types::Span),
6533 Identifier(::std::boxed::Box<Identifier<'tree>>),
6534 String(::std::boxed::Box<String<'tree>>),
6535}
6536impl<'tree> ::treesitter_types::FromNode<'tree> for ImportSpecifierName<'tree> {
6537 #[allow(clippy::collapsible_else_if)]
6538 fn from_node(
6539 node: ::tree_sitter::Node<'tree>,
6540 src: &'tree [u8],
6541 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6542 match node.kind() {
6543 "default" => Ok(Self::Default(::treesitter_types::Span::from(node))),
6544 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
6545 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
6546 ))),
6547 "string" => Ok(Self::String(::std::boxed::Box::new(
6548 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
6549 ))),
6550 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
6551 }
6552 }
6553}
6554impl ::treesitter_types::Spanned for ImportSpecifierName<'_> {
6555 fn span(&self) -> ::treesitter_types::Span {
6556 match self {
6557 Self::Default(span) => *span,
6558 Self::Identifier(inner) => inner.span(),
6559 Self::String(inner) => inner.span(),
6560 }
6561 }
6562}
6563#[derive(Debug, Clone)]
6564pub enum ImportStatementChildren<'tree> {
6565 ImportAttribute(::std::boxed::Box<ImportAttribute<'tree>>),
6566 ImportClause(::std::boxed::Box<ImportClause<'tree>>),
6567}
6568impl<'tree> ::treesitter_types::FromNode<'tree> for ImportStatementChildren<'tree> {
6569 #[allow(clippy::collapsible_else_if)]
6570 fn from_node(
6571 node: ::tree_sitter::Node<'tree>,
6572 src: &'tree [u8],
6573 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6574 match node.kind() {
6575 "import_attribute" => Ok(Self::ImportAttribute(::std::boxed::Box::new(
6576 <ImportAttribute as ::treesitter_types::FromNode>::from_node(node, src)?,
6577 ))),
6578 "import_clause" => Ok(Self::ImportClause(::std::boxed::Box::new(
6579 <ImportClause as ::treesitter_types::FromNode>::from_node(node, src)?,
6580 ))),
6581 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
6582 }
6583 }
6584}
6585impl ::treesitter_types::Spanned for ImportStatementChildren<'_> {
6586 fn span(&self) -> ::treesitter_types::Span {
6587 match self {
6588 Self::ImportAttribute(inner) => inner.span(),
6589 Self::ImportClause(inner) => inner.span(),
6590 }
6591 }
6592}
6593#[derive(Debug, Clone)]
6594pub enum JsxAttributeChildren<'tree> {
6595 JsxElement(::std::boxed::Box<JsxElement<'tree>>),
6596 JsxExpression(::std::boxed::Box<JsxExpression<'tree>>),
6597 JsxNamespaceName(::std::boxed::Box<JsxNamespaceName<'tree>>),
6598 JsxSelfClosingElement(::std::boxed::Box<JsxSelfClosingElement<'tree>>),
6599 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
6600 String(::std::boxed::Box<String<'tree>>),
6601}
6602impl<'tree> ::treesitter_types::FromNode<'tree> for JsxAttributeChildren<'tree> {
6603 #[allow(clippy::collapsible_else_if)]
6604 fn from_node(
6605 node: ::tree_sitter::Node<'tree>,
6606 src: &'tree [u8],
6607 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6608 match node.kind() {
6609 "jsx_element" => Ok(Self::JsxElement(::std::boxed::Box::new(
6610 <JsxElement as ::treesitter_types::FromNode>::from_node(node, src)?,
6611 ))),
6612 "jsx_expression" => Ok(Self::JsxExpression(::std::boxed::Box::new(
6613 <JsxExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
6614 ))),
6615 "jsx_namespace_name" => Ok(Self::JsxNamespaceName(::std::boxed::Box::new(
6616 <JsxNamespaceName as ::treesitter_types::FromNode>::from_node(node, src)?,
6617 ))),
6618 "jsx_self_closing_element" => Ok(Self::JsxSelfClosingElement(::std::boxed::Box::new(
6619 <JsxSelfClosingElement as ::treesitter_types::FromNode>::from_node(node, src)?,
6620 ))),
6621 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
6622 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
6623 ))),
6624 "string" => Ok(Self::String(::std::boxed::Box::new(
6625 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
6626 ))),
6627 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
6628 }
6629 }
6630}
6631impl ::treesitter_types::Spanned for JsxAttributeChildren<'_> {
6632 fn span(&self) -> ::treesitter_types::Span {
6633 match self {
6634 Self::JsxElement(inner) => inner.span(),
6635 Self::JsxExpression(inner) => inner.span(),
6636 Self::JsxNamespaceName(inner) => inner.span(),
6637 Self::JsxSelfClosingElement(inner) => inner.span(),
6638 Self::PropertyIdentifier(inner) => inner.span(),
6639 Self::String(inner) => inner.span(),
6640 }
6641 }
6642}
6643#[derive(Debug, Clone)]
6644pub enum JsxClosingElementName<'tree> {
6645 Identifier(::std::boxed::Box<Identifier<'tree>>),
6646 JsxNamespaceName(::std::boxed::Box<JsxNamespaceName<'tree>>),
6647 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
6648}
6649impl<'tree> ::treesitter_types::FromNode<'tree> for JsxClosingElementName<'tree> {
6650 #[allow(clippy::collapsible_else_if)]
6651 fn from_node(
6652 node: ::tree_sitter::Node<'tree>,
6653 src: &'tree [u8],
6654 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6655 match node.kind() {
6656 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
6657 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
6658 ))),
6659 "jsx_namespace_name" => Ok(Self::JsxNamespaceName(::std::boxed::Box::new(
6660 <JsxNamespaceName as ::treesitter_types::FromNode>::from_node(node, src)?,
6661 ))),
6662 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
6663 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
6664 ))),
6665 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
6666 }
6667 }
6668}
6669impl ::treesitter_types::Spanned for JsxClosingElementName<'_> {
6670 fn span(&self) -> ::treesitter_types::Span {
6671 match self {
6672 Self::Identifier(inner) => inner.span(),
6673 Self::JsxNamespaceName(inner) => inner.span(),
6674 Self::MemberExpression(inner) => inner.span(),
6675 }
6676 }
6677}
6678#[derive(Debug, Clone)]
6679pub enum JsxElementChildren<'tree> {
6680 HtmlCharacterReference(::std::boxed::Box<HtmlCharacterReference<'tree>>),
6681 JsxElement(::std::boxed::Box<JsxElement<'tree>>),
6682 JsxExpression(::std::boxed::Box<JsxExpression<'tree>>),
6683 JsxSelfClosingElement(::std::boxed::Box<JsxSelfClosingElement<'tree>>),
6684 JsxText(::std::boxed::Box<JsxText<'tree>>),
6685}
6686impl<'tree> ::treesitter_types::FromNode<'tree> for JsxElementChildren<'tree> {
6687 #[allow(clippy::collapsible_else_if)]
6688 fn from_node(
6689 node: ::tree_sitter::Node<'tree>,
6690 src: &'tree [u8],
6691 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6692 match node.kind() {
6693 "html_character_reference" => Ok(Self::HtmlCharacterReference(::std::boxed::Box::new(
6694 <HtmlCharacterReference as ::treesitter_types::FromNode>::from_node(node, src)?,
6695 ))),
6696 "jsx_element" => Ok(Self::JsxElement(::std::boxed::Box::new(
6697 <JsxElement as ::treesitter_types::FromNode>::from_node(node, src)?,
6698 ))),
6699 "jsx_expression" => Ok(Self::JsxExpression(::std::boxed::Box::new(
6700 <JsxExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
6701 ))),
6702 "jsx_self_closing_element" => Ok(Self::JsxSelfClosingElement(::std::boxed::Box::new(
6703 <JsxSelfClosingElement as ::treesitter_types::FromNode>::from_node(node, src)?,
6704 ))),
6705 "jsx_text" => Ok(Self::JsxText(::std::boxed::Box::new(
6706 <JsxText as ::treesitter_types::FromNode>::from_node(node, src)?,
6707 ))),
6708 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
6709 }
6710 }
6711}
6712impl ::treesitter_types::Spanned for JsxElementChildren<'_> {
6713 fn span(&self) -> ::treesitter_types::Span {
6714 match self {
6715 Self::HtmlCharacterReference(inner) => inner.span(),
6716 Self::JsxElement(inner) => inner.span(),
6717 Self::JsxExpression(inner) => inner.span(),
6718 Self::JsxSelfClosingElement(inner) => inner.span(),
6719 Self::JsxText(inner) => inner.span(),
6720 }
6721 }
6722}
6723#[derive(Debug, Clone)]
6724pub enum JsxExpressionChildren<'tree> {
6725 Expression(::std::boxed::Box<Expression<'tree>>),
6726 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
6727 SpreadElement(::std::boxed::Box<SpreadElement<'tree>>),
6728}
6729impl<'tree> ::treesitter_types::FromNode<'tree> for JsxExpressionChildren<'tree> {
6730 #[allow(clippy::collapsible_else_if)]
6731 fn from_node(
6732 node: ::tree_sitter::Node<'tree>,
6733 src: &'tree [u8],
6734 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6735 match node.kind() {
6736 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
6737 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
6738 ))),
6739 "spread_element" => Ok(Self::SpreadElement(::std::boxed::Box::new(
6740 <SpreadElement as ::treesitter_types::FromNode>::from_node(node, src)?,
6741 ))),
6742 _other => {
6743 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
6744 Ok(Self::Expression(::std::boxed::Box::new(v)))
6745 } else {
6746 Err(::treesitter_types::ParseError::unexpected_kind(
6747 _other, node,
6748 ))
6749 }
6750 }
6751 }
6752 }
6753}
6754impl ::treesitter_types::Spanned for JsxExpressionChildren<'_> {
6755 fn span(&self) -> ::treesitter_types::Span {
6756 match self {
6757 Self::Expression(inner) => inner.span(),
6758 Self::SequenceExpression(inner) => inner.span(),
6759 Self::SpreadElement(inner) => inner.span(),
6760 }
6761 }
6762}
6763#[derive(Debug, Clone)]
6764pub enum JsxOpeningElementAttribute<'tree> {
6765 JsxAttribute(::std::boxed::Box<JsxAttribute<'tree>>),
6766 JsxExpression(::std::boxed::Box<JsxExpression<'tree>>),
6767}
6768impl<'tree> ::treesitter_types::FromNode<'tree> for JsxOpeningElementAttribute<'tree> {
6769 #[allow(clippy::collapsible_else_if)]
6770 fn from_node(
6771 node: ::tree_sitter::Node<'tree>,
6772 src: &'tree [u8],
6773 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6774 match node.kind() {
6775 "jsx_attribute" => Ok(Self::JsxAttribute(::std::boxed::Box::new(
6776 <JsxAttribute as ::treesitter_types::FromNode>::from_node(node, src)?,
6777 ))),
6778 "jsx_expression" => Ok(Self::JsxExpression(::std::boxed::Box::new(
6779 <JsxExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
6780 ))),
6781 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
6782 }
6783 }
6784}
6785impl ::treesitter_types::Spanned for JsxOpeningElementAttribute<'_> {
6786 fn span(&self) -> ::treesitter_types::Span {
6787 match self {
6788 Self::JsxAttribute(inner) => inner.span(),
6789 Self::JsxExpression(inner) => inner.span(),
6790 }
6791 }
6792}
6793#[derive(Debug, Clone)]
6794pub enum JsxOpeningElementName<'tree> {
6795 Identifier(::std::boxed::Box<Identifier<'tree>>),
6796 JsxNamespaceName(::std::boxed::Box<JsxNamespaceName<'tree>>),
6797 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
6798}
6799impl<'tree> ::treesitter_types::FromNode<'tree> for JsxOpeningElementName<'tree> {
6800 #[allow(clippy::collapsible_else_if)]
6801 fn from_node(
6802 node: ::tree_sitter::Node<'tree>,
6803 src: &'tree [u8],
6804 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6805 match node.kind() {
6806 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
6807 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
6808 ))),
6809 "jsx_namespace_name" => Ok(Self::JsxNamespaceName(::std::boxed::Box::new(
6810 <JsxNamespaceName as ::treesitter_types::FromNode>::from_node(node, src)?,
6811 ))),
6812 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
6813 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
6814 ))),
6815 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
6816 }
6817 }
6818}
6819impl ::treesitter_types::Spanned for JsxOpeningElementName<'_> {
6820 fn span(&self) -> ::treesitter_types::Span {
6821 match self {
6822 Self::Identifier(inner) => inner.span(),
6823 Self::JsxNamespaceName(inner) => inner.span(),
6824 Self::MemberExpression(inner) => inner.span(),
6825 }
6826 }
6827}
6828#[derive(Debug, Clone)]
6829pub enum JsxSelfClosingElementAttribute<'tree> {
6830 JsxAttribute(::std::boxed::Box<JsxAttribute<'tree>>),
6831 JsxExpression(::std::boxed::Box<JsxExpression<'tree>>),
6832}
6833impl<'tree> ::treesitter_types::FromNode<'tree> for JsxSelfClosingElementAttribute<'tree> {
6834 #[allow(clippy::collapsible_else_if)]
6835 fn from_node(
6836 node: ::tree_sitter::Node<'tree>,
6837 src: &'tree [u8],
6838 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6839 match node.kind() {
6840 "jsx_attribute" => Ok(Self::JsxAttribute(::std::boxed::Box::new(
6841 <JsxAttribute as ::treesitter_types::FromNode>::from_node(node, src)?,
6842 ))),
6843 "jsx_expression" => Ok(Self::JsxExpression(::std::boxed::Box::new(
6844 <JsxExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
6845 ))),
6846 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
6847 }
6848 }
6849}
6850impl ::treesitter_types::Spanned for JsxSelfClosingElementAttribute<'_> {
6851 fn span(&self) -> ::treesitter_types::Span {
6852 match self {
6853 Self::JsxAttribute(inner) => inner.span(),
6854 Self::JsxExpression(inner) => inner.span(),
6855 }
6856 }
6857}
6858#[derive(Debug, Clone)]
6859pub enum JsxSelfClosingElementName<'tree> {
6860 Identifier(::std::boxed::Box<Identifier<'tree>>),
6861 JsxNamespaceName(::std::boxed::Box<JsxNamespaceName<'tree>>),
6862 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
6863}
6864impl<'tree> ::treesitter_types::FromNode<'tree> for JsxSelfClosingElementName<'tree> {
6865 #[allow(clippy::collapsible_else_if)]
6866 fn from_node(
6867 node: ::tree_sitter::Node<'tree>,
6868 src: &'tree [u8],
6869 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6870 match node.kind() {
6871 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
6872 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
6873 ))),
6874 "jsx_namespace_name" => Ok(Self::JsxNamespaceName(::std::boxed::Box::new(
6875 <JsxNamespaceName as ::treesitter_types::FromNode>::from_node(node, src)?,
6876 ))),
6877 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
6878 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
6879 ))),
6880 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
6881 }
6882 }
6883}
6884impl ::treesitter_types::Spanned for JsxSelfClosingElementName<'_> {
6885 fn span(&self) -> ::treesitter_types::Span {
6886 match self {
6887 Self::Identifier(inner) => inner.span(),
6888 Self::JsxNamespaceName(inner) => inner.span(),
6889 Self::MemberExpression(inner) => inner.span(),
6890 }
6891 }
6892}
6893#[derive(Debug, Clone)]
6894pub enum LexicalDeclarationKind {
6895 Const(::treesitter_types::Span),
6896 Let(::treesitter_types::Span),
6897}
6898impl<'tree> ::treesitter_types::FromNode<'tree> for LexicalDeclarationKind {
6899 #[allow(clippy::collapsible_else_if)]
6900 fn from_node(
6901 node: ::tree_sitter::Node<'tree>,
6902 _src: &'tree [u8],
6903 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6904 match node.kind() {
6905 "const" => Ok(Self::Const(::treesitter_types::Span::from(node))),
6906 "let" => Ok(Self::Let(::treesitter_types::Span::from(node))),
6907 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
6908 }
6909 }
6910}
6911impl ::treesitter_types::Spanned for LexicalDeclarationKind {
6912 fn span(&self) -> ::treesitter_types::Span {
6913 match self {
6914 Self::Const(span) => *span,
6915 Self::Let(span) => *span,
6916 }
6917 }
6918}
6919#[derive(Debug, Clone)]
6920pub enum MemberExpressionObject<'tree> {
6921 Expression(::std::boxed::Box<Expression<'tree>>),
6922 Import(::std::boxed::Box<Import<'tree>>),
6923}
6924impl<'tree> ::treesitter_types::FromNode<'tree> for MemberExpressionObject<'tree> {
6925 #[allow(clippy::collapsible_else_if)]
6926 fn from_node(
6927 node: ::tree_sitter::Node<'tree>,
6928 src: &'tree [u8],
6929 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6930 match node.kind() {
6931 "import" => Ok(Self::Import(::std::boxed::Box::new(
6932 <Import as ::treesitter_types::FromNode>::from_node(node, src)?,
6933 ))),
6934 _other => {
6935 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
6936 Ok(Self::Expression(::std::boxed::Box::new(v)))
6937 } else {
6938 Err(::treesitter_types::ParseError::unexpected_kind(
6939 _other, node,
6940 ))
6941 }
6942 }
6943 }
6944 }
6945}
6946impl ::treesitter_types::Spanned for MemberExpressionObject<'_> {
6947 fn span(&self) -> ::treesitter_types::Span {
6948 match self {
6949 Self::Expression(inner) => inner.span(),
6950 Self::Import(inner) => inner.span(),
6951 }
6952 }
6953}
6954#[derive(Debug, Clone)]
6955pub enum MemberExpressionProperty<'tree> {
6956 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
6957 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
6958}
6959impl<'tree> ::treesitter_types::FromNode<'tree> for MemberExpressionProperty<'tree> {
6960 #[allow(clippy::collapsible_else_if)]
6961 fn from_node(
6962 node: ::tree_sitter::Node<'tree>,
6963 src: &'tree [u8],
6964 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6965 match node.kind() {
6966 "private_property_identifier" => {
6967 Ok(Self::PrivatePropertyIdentifier(::std::boxed::Box::new(
6968 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
6969 node, src,
6970 )?,
6971 )))
6972 }
6973 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
6974 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
6975 ))),
6976 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
6977 }
6978 }
6979}
6980impl ::treesitter_types::Spanned for MemberExpressionProperty<'_> {
6981 fn span(&self) -> ::treesitter_types::Span {
6982 match self {
6983 Self::PrivatePropertyIdentifier(inner) => inner.span(),
6984 Self::PropertyIdentifier(inner) => inner.span(),
6985 }
6986 }
6987}
6988#[derive(Debug, Clone)]
6989pub enum MethodDefinitionName<'tree> {
6990 ComputedPropertyName(::std::boxed::Box<ComputedPropertyName<'tree>>),
6991 Number(::std::boxed::Box<Number<'tree>>),
6992 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
6993 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
6994 String(::std::boxed::Box<String<'tree>>),
6995}
6996impl<'tree> ::treesitter_types::FromNode<'tree> for MethodDefinitionName<'tree> {
6997 #[allow(clippy::collapsible_else_if)]
6998 fn from_node(
6999 node: ::tree_sitter::Node<'tree>,
7000 src: &'tree [u8],
7001 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7002 match node.kind() {
7003 "computed_property_name" => Ok(Self::ComputedPropertyName(::std::boxed::Box::new(
7004 <ComputedPropertyName as ::treesitter_types::FromNode>::from_node(node, src)?,
7005 ))),
7006 "number" => Ok(Self::Number(::std::boxed::Box::new(
7007 <Number as ::treesitter_types::FromNode>::from_node(node, src)?,
7008 ))),
7009 "private_property_identifier" => {
7010 Ok(Self::PrivatePropertyIdentifier(::std::boxed::Box::new(
7011 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
7012 node, src,
7013 )?,
7014 )))
7015 }
7016 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
7017 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
7018 ))),
7019 "string" => Ok(Self::String(::std::boxed::Box::new(
7020 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
7021 ))),
7022 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7023 }
7024 }
7025}
7026impl ::treesitter_types::Spanned for MethodDefinitionName<'_> {
7027 fn span(&self) -> ::treesitter_types::Span {
7028 match self {
7029 Self::ComputedPropertyName(inner) => inner.span(),
7030 Self::Number(inner) => inner.span(),
7031 Self::PrivatePropertyIdentifier(inner) => inner.span(),
7032 Self::PropertyIdentifier(inner) => inner.span(),
7033 Self::String(inner) => inner.span(),
7034 }
7035 }
7036}
7037#[derive(Debug, Clone)]
7038pub enum NamespaceExportChildren<'tree> {
7039 Identifier(::std::boxed::Box<Identifier<'tree>>),
7040 String(::std::boxed::Box<String<'tree>>),
7041}
7042impl<'tree> ::treesitter_types::FromNode<'tree> for NamespaceExportChildren<'tree> {
7043 #[allow(clippy::collapsible_else_if)]
7044 fn from_node(
7045 node: ::tree_sitter::Node<'tree>,
7046 src: &'tree [u8],
7047 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7048 match node.kind() {
7049 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
7050 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
7051 ))),
7052 "string" => Ok(Self::String(::std::boxed::Box::new(
7053 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
7054 ))),
7055 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7056 }
7057 }
7058}
7059impl ::treesitter_types::Spanned for NamespaceExportChildren<'_> {
7060 fn span(&self) -> ::treesitter_types::Span {
7061 match self {
7062 Self::Identifier(inner) => inner.span(),
7063 Self::String(inner) => inner.span(),
7064 }
7065 }
7066}
7067#[derive(Debug, Clone)]
7068pub enum NewExpressionConstructor<'tree> {
7069 NewExpression(::std::boxed::Box<NewExpression<'tree>>),
7070 PrimaryExpression(::std::boxed::Box<PrimaryExpression<'tree>>),
7071}
7072impl<'tree> ::treesitter_types::FromNode<'tree> for NewExpressionConstructor<'tree> {
7073 #[allow(clippy::collapsible_else_if)]
7074 fn from_node(
7075 node: ::tree_sitter::Node<'tree>,
7076 src: &'tree [u8],
7077 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7078 match node.kind() {
7079 "new_expression" => Ok(Self::NewExpression(::std::boxed::Box::new(
7080 <NewExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
7081 ))),
7082 _other => {
7083 if let Ok(v) =
7084 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(node, src)
7085 {
7086 Ok(Self::PrimaryExpression(::std::boxed::Box::new(v)))
7087 } else {
7088 Err(::treesitter_types::ParseError::unexpected_kind(
7089 _other, node,
7090 ))
7091 }
7092 }
7093 }
7094 }
7095}
7096impl ::treesitter_types::Spanned for NewExpressionConstructor<'_> {
7097 fn span(&self) -> ::treesitter_types::Span {
7098 match self {
7099 Self::NewExpression(inner) => inner.span(),
7100 Self::PrimaryExpression(inner) => inner.span(),
7101 }
7102 }
7103}
7104#[derive(Debug, Clone)]
7105pub enum ObjectChildren<'tree> {
7106 MethodDefinition(::std::boxed::Box<MethodDefinition<'tree>>),
7107 Pair(::std::boxed::Box<Pair<'tree>>),
7108 ShorthandPropertyIdentifier(::std::boxed::Box<ShorthandPropertyIdentifier<'tree>>),
7109 SpreadElement(::std::boxed::Box<SpreadElement<'tree>>),
7110}
7111impl<'tree> ::treesitter_types::FromNode<'tree> for ObjectChildren<'tree> {
7112 #[allow(clippy::collapsible_else_if)]
7113 fn from_node(
7114 node: ::tree_sitter::Node<'tree>,
7115 src: &'tree [u8],
7116 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7117 match node.kind() {
7118 "method_definition" => Ok(Self::MethodDefinition(::std::boxed::Box::new(
7119 <MethodDefinition as ::treesitter_types::FromNode>::from_node(node, src)?,
7120 ))),
7121 "pair" => Ok(Self::Pair(::std::boxed::Box::new(
7122 <Pair as ::treesitter_types::FromNode>::from_node(node, src)?,
7123 ))),
7124 "shorthand_property_identifier" => {
7125 Ok(Self::ShorthandPropertyIdentifier(::std::boxed::Box::new(
7126 <ShorthandPropertyIdentifier as ::treesitter_types::FromNode>::from_node(
7127 node, src,
7128 )?,
7129 )))
7130 }
7131 "spread_element" => Ok(Self::SpreadElement(::std::boxed::Box::new(
7132 <SpreadElement as ::treesitter_types::FromNode>::from_node(node, src)?,
7133 ))),
7134 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7135 }
7136 }
7137}
7138impl ::treesitter_types::Spanned for ObjectChildren<'_> {
7139 fn span(&self) -> ::treesitter_types::Span {
7140 match self {
7141 Self::MethodDefinition(inner) => inner.span(),
7142 Self::Pair(inner) => inner.span(),
7143 Self::ShorthandPropertyIdentifier(inner) => inner.span(),
7144 Self::SpreadElement(inner) => inner.span(),
7145 }
7146 }
7147}
7148#[derive(Debug, Clone)]
7149pub enum ObjectAssignmentPatternLeft<'tree> {
7150 ArrayPattern(::std::boxed::Box<ArrayPattern<'tree>>),
7151 ObjectPattern(::std::boxed::Box<ObjectPattern<'tree>>),
7152 ShorthandPropertyIdentifierPattern(
7153 ::std::boxed::Box<ShorthandPropertyIdentifierPattern<'tree>>,
7154 ),
7155}
7156impl<'tree> ::treesitter_types::FromNode<'tree> for ObjectAssignmentPatternLeft<'tree> {
7157 #[allow(clippy::collapsible_else_if)]
7158 fn from_node(
7159 node: ::tree_sitter::Node<'tree>,
7160 src: &'tree [u8],
7161 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7162 match node.kind() {
7163 "array_pattern" => {
7164 Ok(
7165 Self::ArrayPattern(
7166 ::std::boxed::Box::new(
7167 <ArrayPattern as ::treesitter_types::FromNode>::from_node(
7168 node,
7169 src,
7170 )?,
7171 ),
7172 ),
7173 )
7174 }
7175 "object_pattern" => {
7176 Ok(
7177 Self::ObjectPattern(
7178 ::std::boxed::Box::new(
7179 <ObjectPattern as ::treesitter_types::FromNode>::from_node(
7180 node,
7181 src,
7182 )?,
7183 ),
7184 ),
7185 )
7186 }
7187 "shorthand_property_identifier_pattern" => {
7188 Ok(
7189 Self::ShorthandPropertyIdentifierPattern(
7190 ::std::boxed::Box::new(
7191 <ShorthandPropertyIdentifierPattern as ::treesitter_types::FromNode>::from_node(
7192 node,
7193 src,
7194 )?,
7195 ),
7196 ),
7197 )
7198 }
7199 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7200 }
7201 }
7202}
7203impl ::treesitter_types::Spanned for ObjectAssignmentPatternLeft<'_> {
7204 fn span(&self) -> ::treesitter_types::Span {
7205 match self {
7206 Self::ArrayPattern(inner) => inner.span(),
7207 Self::ObjectPattern(inner) => inner.span(),
7208 Self::ShorthandPropertyIdentifierPattern(inner) => inner.span(),
7209 }
7210 }
7211}
7212#[derive(Debug, Clone)]
7213pub enum ObjectPatternChildren<'tree> {
7214 ObjectAssignmentPattern(::std::boxed::Box<ObjectAssignmentPattern<'tree>>),
7215 PairPattern(::std::boxed::Box<PairPattern<'tree>>),
7216 RestPattern(::std::boxed::Box<RestPattern<'tree>>),
7217 ShorthandPropertyIdentifierPattern(
7218 ::std::boxed::Box<ShorthandPropertyIdentifierPattern<'tree>>,
7219 ),
7220}
7221impl<'tree> ::treesitter_types::FromNode<'tree> for ObjectPatternChildren<'tree> {
7222 #[allow(clippy::collapsible_else_if)]
7223 fn from_node(
7224 node: ::tree_sitter::Node<'tree>,
7225 src: &'tree [u8],
7226 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7227 match node.kind() {
7228 "object_assignment_pattern" => {
7229 Ok(
7230 Self::ObjectAssignmentPattern(
7231 ::std::boxed::Box::new(
7232 <ObjectAssignmentPattern as ::treesitter_types::FromNode>::from_node(
7233 node,
7234 src,
7235 )?,
7236 ),
7237 ),
7238 )
7239 }
7240 "pair_pattern" => {
7241 Ok(
7242 Self::PairPattern(
7243 ::std::boxed::Box::new(
7244 <PairPattern as ::treesitter_types::FromNode>::from_node(
7245 node,
7246 src,
7247 )?,
7248 ),
7249 ),
7250 )
7251 }
7252 "rest_pattern" => {
7253 Ok(
7254 Self::RestPattern(
7255 ::std::boxed::Box::new(
7256 <RestPattern as ::treesitter_types::FromNode>::from_node(
7257 node,
7258 src,
7259 )?,
7260 ),
7261 ),
7262 )
7263 }
7264 "shorthand_property_identifier_pattern" => {
7265 Ok(
7266 Self::ShorthandPropertyIdentifierPattern(
7267 ::std::boxed::Box::new(
7268 <ShorthandPropertyIdentifierPattern as ::treesitter_types::FromNode>::from_node(
7269 node,
7270 src,
7271 )?,
7272 ),
7273 ),
7274 )
7275 }
7276 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7277 }
7278 }
7279}
7280impl ::treesitter_types::Spanned for ObjectPatternChildren<'_> {
7281 fn span(&self) -> ::treesitter_types::Span {
7282 match self {
7283 Self::ObjectAssignmentPattern(inner) => inner.span(),
7284 Self::PairPattern(inner) => inner.span(),
7285 Self::RestPattern(inner) => inner.span(),
7286 Self::ShorthandPropertyIdentifierPattern(inner) => inner.span(),
7287 }
7288 }
7289}
7290#[derive(Debug, Clone)]
7291pub enum PairKey<'tree> {
7292 ComputedPropertyName(::std::boxed::Box<ComputedPropertyName<'tree>>),
7293 Number(::std::boxed::Box<Number<'tree>>),
7294 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
7295 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
7296 String(::std::boxed::Box<String<'tree>>),
7297}
7298impl<'tree> ::treesitter_types::FromNode<'tree> for PairKey<'tree> {
7299 #[allow(clippy::collapsible_else_if)]
7300 fn from_node(
7301 node: ::tree_sitter::Node<'tree>,
7302 src: &'tree [u8],
7303 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7304 match node.kind() {
7305 "computed_property_name" => Ok(Self::ComputedPropertyName(::std::boxed::Box::new(
7306 <ComputedPropertyName as ::treesitter_types::FromNode>::from_node(node, src)?,
7307 ))),
7308 "number" => Ok(Self::Number(::std::boxed::Box::new(
7309 <Number as ::treesitter_types::FromNode>::from_node(node, src)?,
7310 ))),
7311 "private_property_identifier" => {
7312 Ok(Self::PrivatePropertyIdentifier(::std::boxed::Box::new(
7313 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
7314 node, src,
7315 )?,
7316 )))
7317 }
7318 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
7319 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
7320 ))),
7321 "string" => Ok(Self::String(::std::boxed::Box::new(
7322 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
7323 ))),
7324 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7325 }
7326 }
7327}
7328impl ::treesitter_types::Spanned for PairKey<'_> {
7329 fn span(&self) -> ::treesitter_types::Span {
7330 match self {
7331 Self::ComputedPropertyName(inner) => inner.span(),
7332 Self::Number(inner) => inner.span(),
7333 Self::PrivatePropertyIdentifier(inner) => inner.span(),
7334 Self::PropertyIdentifier(inner) => inner.span(),
7335 Self::String(inner) => inner.span(),
7336 }
7337 }
7338}
7339#[derive(Debug, Clone)]
7340pub enum PairPatternKey<'tree> {
7341 ComputedPropertyName(::std::boxed::Box<ComputedPropertyName<'tree>>),
7342 Number(::std::boxed::Box<Number<'tree>>),
7343 PrivatePropertyIdentifier(::std::boxed::Box<PrivatePropertyIdentifier<'tree>>),
7344 PropertyIdentifier(::std::boxed::Box<PropertyIdentifier<'tree>>),
7345 String(::std::boxed::Box<String<'tree>>),
7346}
7347impl<'tree> ::treesitter_types::FromNode<'tree> for PairPatternKey<'tree> {
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 "computed_property_name" => Ok(Self::ComputedPropertyName(::std::boxed::Box::new(
7355 <ComputedPropertyName as ::treesitter_types::FromNode>::from_node(node, src)?,
7356 ))),
7357 "number" => Ok(Self::Number(::std::boxed::Box::new(
7358 <Number as ::treesitter_types::FromNode>::from_node(node, src)?,
7359 ))),
7360 "private_property_identifier" => {
7361 Ok(Self::PrivatePropertyIdentifier(::std::boxed::Box::new(
7362 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(
7363 node, src,
7364 )?,
7365 )))
7366 }
7367 "property_identifier" => Ok(Self::PropertyIdentifier(::std::boxed::Box::new(
7368 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)?,
7369 ))),
7370 "string" => Ok(Self::String(::std::boxed::Box::new(
7371 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
7372 ))),
7373 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7374 }
7375 }
7376}
7377impl ::treesitter_types::Spanned for PairPatternKey<'_> {
7378 fn span(&self) -> ::treesitter_types::Span {
7379 match self {
7380 Self::ComputedPropertyName(inner) => inner.span(),
7381 Self::Number(inner) => inner.span(),
7382 Self::PrivatePropertyIdentifier(inner) => inner.span(),
7383 Self::PropertyIdentifier(inner) => inner.span(),
7384 Self::String(inner) => inner.span(),
7385 }
7386 }
7387}
7388#[derive(Debug, Clone)]
7389pub enum PairPatternValue<'tree> {
7390 AssignmentPattern(::std::boxed::Box<AssignmentPattern<'tree>>),
7391 Pattern(::std::boxed::Box<Pattern<'tree>>),
7392}
7393impl<'tree> ::treesitter_types::FromNode<'tree> for PairPatternValue<'tree> {
7394 #[allow(clippy::collapsible_else_if)]
7395 fn from_node(
7396 node: ::tree_sitter::Node<'tree>,
7397 src: &'tree [u8],
7398 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7399 match node.kind() {
7400 "assignment_pattern" => Ok(Self::AssignmentPattern(::std::boxed::Box::new(
7401 <AssignmentPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
7402 ))),
7403 _other => {
7404 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
7405 Ok(Self::Pattern(::std::boxed::Box::new(v)))
7406 } else {
7407 Err(::treesitter_types::ParseError::unexpected_kind(
7408 _other, node,
7409 ))
7410 }
7411 }
7412 }
7413 }
7414}
7415impl ::treesitter_types::Spanned for PairPatternValue<'_> {
7416 fn span(&self) -> ::treesitter_types::Span {
7417 match self {
7418 Self::AssignmentPattern(inner) => inner.span(),
7419 Self::Pattern(inner) => inner.span(),
7420 }
7421 }
7422}
7423#[derive(Debug, Clone)]
7424pub enum ParenthesizedExpressionChildren<'tree> {
7425 Expression(::std::boxed::Box<Expression<'tree>>),
7426 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
7427}
7428impl<'tree> ::treesitter_types::FromNode<'tree> for ParenthesizedExpressionChildren<'tree> {
7429 #[allow(clippy::collapsible_else_if)]
7430 fn from_node(
7431 node: ::tree_sitter::Node<'tree>,
7432 src: &'tree [u8],
7433 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7434 match node.kind() {
7435 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
7436 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
7437 ))),
7438 _other => {
7439 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
7440 Ok(Self::Expression(::std::boxed::Box::new(v)))
7441 } else {
7442 Err(::treesitter_types::ParseError::unexpected_kind(
7443 _other, node,
7444 ))
7445 }
7446 }
7447 }
7448 }
7449}
7450impl ::treesitter_types::Spanned for ParenthesizedExpressionChildren<'_> {
7451 fn span(&self) -> ::treesitter_types::Span {
7452 match self {
7453 Self::Expression(inner) => inner.span(),
7454 Self::SequenceExpression(inner) => inner.span(),
7455 }
7456 }
7457}
7458#[derive(Debug, Clone)]
7459pub enum ProgramChildren<'tree> {
7460 HashBangLine(::std::boxed::Box<HashBangLine<'tree>>),
7461 Statement(::std::boxed::Box<Statement<'tree>>),
7462}
7463impl<'tree> ::treesitter_types::FromNode<'tree> for ProgramChildren<'tree> {
7464 #[allow(clippy::collapsible_else_if)]
7465 fn from_node(
7466 node: ::tree_sitter::Node<'tree>,
7467 src: &'tree [u8],
7468 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7469 match node.kind() {
7470 "hash_bang_line" => Ok(Self::HashBangLine(::std::boxed::Box::new(
7471 <HashBangLine as ::treesitter_types::FromNode>::from_node(node, src)?,
7472 ))),
7473 _other => {
7474 if let Ok(v) = <Statement as ::treesitter_types::FromNode>::from_node(node, src) {
7475 Ok(Self::Statement(::std::boxed::Box::new(v)))
7476 } else {
7477 Err(::treesitter_types::ParseError::unexpected_kind(
7478 _other, node,
7479 ))
7480 }
7481 }
7482 }
7483 }
7484}
7485impl ::treesitter_types::Spanned for ProgramChildren<'_> {
7486 fn span(&self) -> ::treesitter_types::Span {
7487 match self {
7488 Self::HashBangLine(inner) => inner.span(),
7489 Self::Statement(inner) => inner.span(),
7490 }
7491 }
7492}
7493#[derive(Debug, Clone)]
7494pub enum RestPatternChildren<'tree> {
7495 ArrayPattern(::std::boxed::Box<ArrayPattern<'tree>>),
7496 Identifier(::std::boxed::Box<Identifier<'tree>>),
7497 MemberExpression(::std::boxed::Box<MemberExpression<'tree>>),
7498 ObjectPattern(::std::boxed::Box<ObjectPattern<'tree>>),
7499 SubscriptExpression(::std::boxed::Box<SubscriptExpression<'tree>>),
7500 Undefined(::std::boxed::Box<Undefined<'tree>>),
7501}
7502impl<'tree> ::treesitter_types::FromNode<'tree> for RestPatternChildren<'tree> {
7503 #[allow(clippy::collapsible_else_if)]
7504 fn from_node(
7505 node: ::tree_sitter::Node<'tree>,
7506 src: &'tree [u8],
7507 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7508 match node.kind() {
7509 "array_pattern" => Ok(Self::ArrayPattern(::std::boxed::Box::new(
7510 <ArrayPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
7511 ))),
7512 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
7513 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
7514 ))),
7515 "member_expression" => Ok(Self::MemberExpression(::std::boxed::Box::new(
7516 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
7517 ))),
7518 "object_pattern" => Ok(Self::ObjectPattern(::std::boxed::Box::new(
7519 <ObjectPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
7520 ))),
7521 "subscript_expression" => Ok(Self::SubscriptExpression(::std::boxed::Box::new(
7522 <SubscriptExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
7523 ))),
7524 "undefined" => Ok(Self::Undefined(::std::boxed::Box::new(
7525 <Undefined as ::treesitter_types::FromNode>::from_node(node, src)?,
7526 ))),
7527 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7528 }
7529 }
7530}
7531impl ::treesitter_types::Spanned for RestPatternChildren<'_> {
7532 fn span(&self) -> ::treesitter_types::Span {
7533 match self {
7534 Self::ArrayPattern(inner) => inner.span(),
7535 Self::Identifier(inner) => inner.span(),
7536 Self::MemberExpression(inner) => inner.span(),
7537 Self::ObjectPattern(inner) => inner.span(),
7538 Self::SubscriptExpression(inner) => inner.span(),
7539 Self::Undefined(inner) => inner.span(),
7540 }
7541 }
7542}
7543#[derive(Debug, Clone)]
7544pub enum ReturnStatementChildren<'tree> {
7545 Expression(::std::boxed::Box<Expression<'tree>>),
7546 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
7547}
7548impl<'tree> ::treesitter_types::FromNode<'tree> for ReturnStatementChildren<'tree> {
7549 #[allow(clippy::collapsible_else_if)]
7550 fn from_node(
7551 node: ::tree_sitter::Node<'tree>,
7552 src: &'tree [u8],
7553 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7554 match node.kind() {
7555 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
7556 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
7557 ))),
7558 _other => {
7559 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
7560 Ok(Self::Expression(::std::boxed::Box::new(v)))
7561 } else {
7562 Err(::treesitter_types::ParseError::unexpected_kind(
7563 _other, node,
7564 ))
7565 }
7566 }
7567 }
7568 }
7569}
7570impl ::treesitter_types::Spanned for ReturnStatementChildren<'_> {
7571 fn span(&self) -> ::treesitter_types::Span {
7572 match self {
7573 Self::Expression(inner) => inner.span(),
7574 Self::SequenceExpression(inner) => inner.span(),
7575 }
7576 }
7577}
7578#[derive(Debug, Clone)]
7579pub enum StringChildren<'tree> {
7580 EscapeSequence(::std::boxed::Box<EscapeSequence<'tree>>),
7581 HtmlCharacterReference(::std::boxed::Box<HtmlCharacterReference<'tree>>),
7582 StringFragment(::std::boxed::Box<StringFragment<'tree>>),
7583}
7584impl<'tree> ::treesitter_types::FromNode<'tree> for StringChildren<'tree> {
7585 #[allow(clippy::collapsible_else_if)]
7586 fn from_node(
7587 node: ::tree_sitter::Node<'tree>,
7588 src: &'tree [u8],
7589 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7590 match node.kind() {
7591 "escape_sequence" => Ok(Self::EscapeSequence(::std::boxed::Box::new(
7592 <EscapeSequence as ::treesitter_types::FromNode>::from_node(node, src)?,
7593 ))),
7594 "html_character_reference" => Ok(Self::HtmlCharacterReference(::std::boxed::Box::new(
7595 <HtmlCharacterReference as ::treesitter_types::FromNode>::from_node(node, src)?,
7596 ))),
7597 "string_fragment" => Ok(Self::StringFragment(::std::boxed::Box::new(
7598 <StringFragment as ::treesitter_types::FromNode>::from_node(node, src)?,
7599 ))),
7600 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7601 }
7602 }
7603}
7604impl ::treesitter_types::Spanned for StringChildren<'_> {
7605 fn span(&self) -> ::treesitter_types::Span {
7606 match self {
7607 Self::EscapeSequence(inner) => inner.span(),
7608 Self::HtmlCharacterReference(inner) => inner.span(),
7609 Self::StringFragment(inner) => inner.span(),
7610 }
7611 }
7612}
7613#[derive(Debug, Clone)]
7614pub enum SubscriptExpressionIndex<'tree> {
7615 Expression(::std::boxed::Box<Expression<'tree>>),
7616 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
7617}
7618impl<'tree> ::treesitter_types::FromNode<'tree> for SubscriptExpressionIndex<'tree> {
7619 #[allow(clippy::collapsible_else_if)]
7620 fn from_node(
7621 node: ::tree_sitter::Node<'tree>,
7622 src: &'tree [u8],
7623 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7624 match node.kind() {
7625 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
7626 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
7627 ))),
7628 _other => {
7629 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
7630 Ok(Self::Expression(::std::boxed::Box::new(v)))
7631 } else {
7632 Err(::treesitter_types::ParseError::unexpected_kind(
7633 _other, node,
7634 ))
7635 }
7636 }
7637 }
7638 }
7639}
7640impl ::treesitter_types::Spanned for SubscriptExpressionIndex<'_> {
7641 fn span(&self) -> ::treesitter_types::Span {
7642 match self {
7643 Self::Expression(inner) => inner.span(),
7644 Self::SequenceExpression(inner) => inner.span(),
7645 }
7646 }
7647}
7648#[derive(Debug, Clone)]
7649pub enum SwitchBodyChildren<'tree> {
7650 SwitchCase(::std::boxed::Box<SwitchCase<'tree>>),
7651 SwitchDefault(::std::boxed::Box<SwitchDefault<'tree>>),
7652}
7653impl<'tree> ::treesitter_types::FromNode<'tree> for SwitchBodyChildren<'tree> {
7654 #[allow(clippy::collapsible_else_if)]
7655 fn from_node(
7656 node: ::tree_sitter::Node<'tree>,
7657 src: &'tree [u8],
7658 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7659 match node.kind() {
7660 "switch_case" => Ok(Self::SwitchCase(::std::boxed::Box::new(
7661 <SwitchCase as ::treesitter_types::FromNode>::from_node(node, src)?,
7662 ))),
7663 "switch_default" => Ok(Self::SwitchDefault(::std::boxed::Box::new(
7664 <SwitchDefault as ::treesitter_types::FromNode>::from_node(node, src)?,
7665 ))),
7666 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7667 }
7668 }
7669}
7670impl ::treesitter_types::Spanned for SwitchBodyChildren<'_> {
7671 fn span(&self) -> ::treesitter_types::Span {
7672 match self {
7673 Self::SwitchCase(inner) => inner.span(),
7674 Self::SwitchDefault(inner) => inner.span(),
7675 }
7676 }
7677}
7678#[derive(Debug, Clone)]
7679pub enum SwitchCaseValue<'tree> {
7680 Expression(::std::boxed::Box<Expression<'tree>>),
7681 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
7682}
7683impl<'tree> ::treesitter_types::FromNode<'tree> for SwitchCaseValue<'tree> {
7684 #[allow(clippy::collapsible_else_if)]
7685 fn from_node(
7686 node: ::tree_sitter::Node<'tree>,
7687 src: &'tree [u8],
7688 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7689 match node.kind() {
7690 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
7691 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
7692 ))),
7693 _other => {
7694 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
7695 Ok(Self::Expression(::std::boxed::Box::new(v)))
7696 } else {
7697 Err(::treesitter_types::ParseError::unexpected_kind(
7698 _other, node,
7699 ))
7700 }
7701 }
7702 }
7703 }
7704}
7705impl ::treesitter_types::Spanned for SwitchCaseValue<'_> {
7706 fn span(&self) -> ::treesitter_types::Span {
7707 match self {
7708 Self::Expression(inner) => inner.span(),
7709 Self::SequenceExpression(inner) => inner.span(),
7710 }
7711 }
7712}
7713#[derive(Debug, Clone)]
7714pub enum TemplateStringChildren<'tree> {
7715 EscapeSequence(::std::boxed::Box<EscapeSequence<'tree>>),
7716 StringFragment(::std::boxed::Box<StringFragment<'tree>>),
7717 TemplateSubstitution(::std::boxed::Box<TemplateSubstitution<'tree>>),
7718}
7719impl<'tree> ::treesitter_types::FromNode<'tree> for TemplateStringChildren<'tree> {
7720 #[allow(clippy::collapsible_else_if)]
7721 fn from_node(
7722 node: ::tree_sitter::Node<'tree>,
7723 src: &'tree [u8],
7724 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7725 match node.kind() {
7726 "escape_sequence" => Ok(Self::EscapeSequence(::std::boxed::Box::new(
7727 <EscapeSequence as ::treesitter_types::FromNode>::from_node(node, src)?,
7728 ))),
7729 "string_fragment" => Ok(Self::StringFragment(::std::boxed::Box::new(
7730 <StringFragment as ::treesitter_types::FromNode>::from_node(node, src)?,
7731 ))),
7732 "template_substitution" => Ok(Self::TemplateSubstitution(::std::boxed::Box::new(
7733 <TemplateSubstitution as ::treesitter_types::FromNode>::from_node(node, src)?,
7734 ))),
7735 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7736 }
7737 }
7738}
7739impl ::treesitter_types::Spanned for TemplateStringChildren<'_> {
7740 fn span(&self) -> ::treesitter_types::Span {
7741 match self {
7742 Self::EscapeSequence(inner) => inner.span(),
7743 Self::StringFragment(inner) => inner.span(),
7744 Self::TemplateSubstitution(inner) => inner.span(),
7745 }
7746 }
7747}
7748#[derive(Debug, Clone)]
7749pub enum TemplateSubstitutionChildren<'tree> {
7750 Expression(::std::boxed::Box<Expression<'tree>>),
7751 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
7752}
7753impl<'tree> ::treesitter_types::FromNode<'tree> for TemplateSubstitutionChildren<'tree> {
7754 #[allow(clippy::collapsible_else_if)]
7755 fn from_node(
7756 node: ::tree_sitter::Node<'tree>,
7757 src: &'tree [u8],
7758 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7759 match node.kind() {
7760 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
7761 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
7762 ))),
7763 _other => {
7764 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
7765 Ok(Self::Expression(::std::boxed::Box::new(v)))
7766 } else {
7767 Err(::treesitter_types::ParseError::unexpected_kind(
7768 _other, node,
7769 ))
7770 }
7771 }
7772 }
7773 }
7774}
7775impl ::treesitter_types::Spanned for TemplateSubstitutionChildren<'_> {
7776 fn span(&self) -> ::treesitter_types::Span {
7777 match self {
7778 Self::Expression(inner) => inner.span(),
7779 Self::SequenceExpression(inner) => inner.span(),
7780 }
7781 }
7782}
7783#[derive(Debug, Clone)]
7784pub enum ThrowStatementChildren<'tree> {
7785 Expression(::std::boxed::Box<Expression<'tree>>),
7786 SequenceExpression(::std::boxed::Box<SequenceExpression<'tree>>),
7787}
7788impl<'tree> ::treesitter_types::FromNode<'tree> for ThrowStatementChildren<'tree> {
7789 #[allow(clippy::collapsible_else_if)]
7790 fn from_node(
7791 node: ::tree_sitter::Node<'tree>,
7792 src: &'tree [u8],
7793 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7794 match node.kind() {
7795 "sequence_expression" => Ok(Self::SequenceExpression(::std::boxed::Box::new(
7796 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
7797 ))),
7798 _other => {
7799 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
7800 Ok(Self::Expression(::std::boxed::Box::new(v)))
7801 } else {
7802 Err(::treesitter_types::ParseError::unexpected_kind(
7803 _other, node,
7804 ))
7805 }
7806 }
7807 }
7808 }
7809}
7810impl ::treesitter_types::Spanned for ThrowStatementChildren<'_> {
7811 fn span(&self) -> ::treesitter_types::Span {
7812 match self {
7813 Self::Expression(inner) => inner.span(),
7814 Self::SequenceExpression(inner) => inner.span(),
7815 }
7816 }
7817}
7818#[derive(Debug, Clone)]
7819pub enum UnaryExpressionOperator {
7820 Bang(::treesitter_types::Span),
7821 Plus(::treesitter_types::Span),
7822 Minus(::treesitter_types::Span),
7823 Delete(::treesitter_types::Span),
7824 Typeof(::treesitter_types::Span),
7825 Void(::treesitter_types::Span),
7826 Tilde(::treesitter_types::Span),
7827}
7828impl<'tree> ::treesitter_types::FromNode<'tree> for UnaryExpressionOperator {
7829 #[allow(clippy::collapsible_else_if)]
7830 fn from_node(
7831 node: ::tree_sitter::Node<'tree>,
7832 _src: &'tree [u8],
7833 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7834 match node.kind() {
7835 "!" => Ok(Self::Bang(::treesitter_types::Span::from(node))),
7836 "+" => Ok(Self::Plus(::treesitter_types::Span::from(node))),
7837 "-" => Ok(Self::Minus(::treesitter_types::Span::from(node))),
7838 "delete" => Ok(Self::Delete(::treesitter_types::Span::from(node))),
7839 "typeof" => Ok(Self::Typeof(::treesitter_types::Span::from(node))),
7840 "void" => Ok(Self::Void(::treesitter_types::Span::from(node))),
7841 "~" => Ok(Self::Tilde(::treesitter_types::Span::from(node))),
7842 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7843 }
7844 }
7845}
7846impl ::treesitter_types::Spanned for UnaryExpressionOperator {
7847 fn span(&self) -> ::treesitter_types::Span {
7848 match self {
7849 Self::Bang(span) => *span,
7850 Self::Plus(span) => *span,
7851 Self::Minus(span) => *span,
7852 Self::Delete(span) => *span,
7853 Self::Typeof(span) => *span,
7854 Self::Void(span) => *span,
7855 Self::Tilde(span) => *span,
7856 }
7857 }
7858}
7859#[derive(Debug, Clone)]
7860pub enum UpdateExpressionOperator {
7861 PlusPlus(::treesitter_types::Span),
7862 MinusMinus(::treesitter_types::Span),
7863}
7864impl<'tree> ::treesitter_types::FromNode<'tree> for UpdateExpressionOperator {
7865 #[allow(clippy::collapsible_else_if)]
7866 fn from_node(
7867 node: ::tree_sitter::Node<'tree>,
7868 _src: &'tree [u8],
7869 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7870 match node.kind() {
7871 "++" => Ok(Self::PlusPlus(::treesitter_types::Span::from(node))),
7872 "--" => Ok(Self::MinusMinus(::treesitter_types::Span::from(node))),
7873 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7874 }
7875 }
7876}
7877impl ::treesitter_types::Spanned for UpdateExpressionOperator {
7878 fn span(&self) -> ::treesitter_types::Span {
7879 match self {
7880 Self::PlusPlus(span) => *span,
7881 Self::MinusMinus(span) => *span,
7882 }
7883 }
7884}
7885#[derive(Debug, Clone)]
7886pub enum UsingDeclarationKind {
7887 Await(::treesitter_types::Span),
7888 Using(::treesitter_types::Span),
7889}
7890impl<'tree> ::treesitter_types::FromNode<'tree> for UsingDeclarationKind {
7891 #[allow(clippy::collapsible_else_if)]
7892 fn from_node(
7893 node: ::tree_sitter::Node<'tree>,
7894 _src: &'tree [u8],
7895 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7896 match node.kind() {
7897 "await" => Ok(Self::Await(::treesitter_types::Span::from(node))),
7898 "using" => Ok(Self::Using(::treesitter_types::Span::from(node))),
7899 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7900 }
7901 }
7902}
7903impl ::treesitter_types::Spanned for UsingDeclarationKind {
7904 fn span(&self) -> ::treesitter_types::Span {
7905 match self {
7906 Self::Await(span) => *span,
7907 Self::Using(span) => *span,
7908 }
7909 }
7910}
7911#[derive(Debug, Clone)]
7912pub enum VariableDeclaratorName<'tree> {
7913 ArrayPattern(::std::boxed::Box<ArrayPattern<'tree>>),
7914 Identifier(::std::boxed::Box<Identifier<'tree>>),
7915 ObjectPattern(::std::boxed::Box<ObjectPattern<'tree>>),
7916}
7917impl<'tree> ::treesitter_types::FromNode<'tree> for VariableDeclaratorName<'tree> {
7918 #[allow(clippy::collapsible_else_if)]
7919 fn from_node(
7920 node: ::tree_sitter::Node<'tree>,
7921 src: &'tree [u8],
7922 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7923 match node.kind() {
7924 "array_pattern" => Ok(Self::ArrayPattern(::std::boxed::Box::new(
7925 <ArrayPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
7926 ))),
7927 "identifier" => Ok(Self::Identifier(::std::boxed::Box::new(
7928 <Identifier as ::treesitter_types::FromNode>::from_node(node, src)?,
7929 ))),
7930 "object_pattern" => Ok(Self::ObjectPattern(::std::boxed::Box::new(
7931 <ObjectPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
7932 ))),
7933 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
7934 }
7935 }
7936}
7937impl ::treesitter_types::Spanned for VariableDeclaratorName<'_> {
7938 fn span(&self) -> ::treesitter_types::Span {
7939 match self {
7940 Self::ArrayPattern(inner) => inner.span(),
7941 Self::Identifier(inner) => inner.span(),
7942 Self::ObjectPattern(inner) => inner.span(),
7943 }
7944 }
7945}
7946#[derive(Debug, Clone)]
7947pub enum AnyNode<'tree> {
7948 Declaration(Declaration<'tree>),
7949 Expression(Expression<'tree>),
7950 Pattern(Pattern<'tree>),
7951 PrimaryExpression(PrimaryExpression<'tree>),
7952 Statement(Statement<'tree>),
7953 Arguments(Arguments<'tree>),
7954 Array(Array<'tree>),
7955 ArrayPattern(ArrayPattern<'tree>),
7956 ArrowFunction(ArrowFunction<'tree>),
7957 AssignmentExpression(AssignmentExpression<'tree>),
7958 AssignmentPattern(AssignmentPattern<'tree>),
7959 AugmentedAssignmentExpression(AugmentedAssignmentExpression<'tree>),
7960 AwaitExpression(AwaitExpression<'tree>),
7961 BinaryExpression(BinaryExpression<'tree>),
7962 BreakStatement(BreakStatement<'tree>),
7963 CallExpression(CallExpression<'tree>),
7964 CatchClause(CatchClause<'tree>),
7965 Class(Class<'tree>),
7966 ClassBody(ClassBody<'tree>),
7967 ClassDeclaration(ClassDeclaration<'tree>),
7968 ClassHeritage(ClassHeritage<'tree>),
7969 ClassStaticBlock(ClassStaticBlock<'tree>),
7970 ComputedPropertyName(ComputedPropertyName<'tree>),
7971 ContinueStatement(ContinueStatement<'tree>),
7972 DebuggerStatement(DebuggerStatement<'tree>),
7973 Decorator(Decorator<'tree>),
7974 DoStatement(DoStatement<'tree>),
7975 ElseClause(ElseClause<'tree>),
7976 EmptyStatement(EmptyStatement<'tree>),
7977 ExportClause(ExportClause<'tree>),
7978 ExportSpecifier(ExportSpecifier<'tree>),
7979 ExportStatement(ExportStatement<'tree>),
7980 ExpressionStatement(ExpressionStatement<'tree>),
7981 FieldDefinition(FieldDefinition<'tree>),
7982 FinallyClause(FinallyClause<'tree>),
7983 ForInStatement(ForInStatement<'tree>),
7984 ForStatement(ForStatement<'tree>),
7985 FormalParameters(FormalParameters<'tree>),
7986 FunctionDeclaration(FunctionDeclaration<'tree>),
7987 FunctionExpression(FunctionExpression<'tree>),
7988 GeneratorFunction(GeneratorFunction<'tree>),
7989 GeneratorFunctionDeclaration(GeneratorFunctionDeclaration<'tree>),
7990 IfStatement(IfStatement<'tree>),
7991 Import(Import<'tree>),
7992 ImportAttribute(ImportAttribute<'tree>),
7993 ImportClause(ImportClause<'tree>),
7994 ImportSpecifier(ImportSpecifier<'tree>),
7995 ImportStatement(ImportStatement<'tree>),
7996 JsxAttribute(JsxAttribute<'tree>),
7997 JsxClosingElement(JsxClosingElement<'tree>),
7998 JsxElement(JsxElement<'tree>),
7999 JsxExpression(JsxExpression<'tree>),
8000 JsxNamespaceName(JsxNamespaceName<'tree>),
8001 JsxOpeningElement(JsxOpeningElement<'tree>),
8002 JsxSelfClosingElement(JsxSelfClosingElement<'tree>),
8003 LabeledStatement(LabeledStatement<'tree>),
8004 LexicalDeclaration(LexicalDeclaration<'tree>),
8005 MemberExpression(MemberExpression<'tree>),
8006 MetaProperty(MetaProperty<'tree>),
8007 MethodDefinition(MethodDefinition<'tree>),
8008 NamedImports(NamedImports<'tree>),
8009 NamespaceExport(NamespaceExport<'tree>),
8010 NamespaceImport(NamespaceImport<'tree>),
8011 NewExpression(NewExpression<'tree>),
8012 Object(Object<'tree>),
8013 ObjectAssignmentPattern(ObjectAssignmentPattern<'tree>),
8014 ObjectPattern(ObjectPattern<'tree>),
8015 Pair(Pair<'tree>),
8016 PairPattern(PairPattern<'tree>),
8017 ParenthesizedExpression(ParenthesizedExpression<'tree>),
8018 Program(Program<'tree>),
8019 Regex(Regex<'tree>),
8020 RestPattern(RestPattern<'tree>),
8021 ReturnStatement(ReturnStatement<'tree>),
8022 SequenceExpression(SequenceExpression<'tree>),
8023 SpreadElement(SpreadElement<'tree>),
8024 StatementBlock(StatementBlock<'tree>),
8025 String(String<'tree>),
8026 SubscriptExpression(SubscriptExpression<'tree>),
8027 SwitchBody(SwitchBody<'tree>),
8028 SwitchCase(SwitchCase<'tree>),
8029 SwitchDefault(SwitchDefault<'tree>),
8030 SwitchStatement(SwitchStatement<'tree>),
8031 TemplateString(TemplateString<'tree>),
8032 TemplateSubstitution(TemplateSubstitution<'tree>),
8033 TernaryExpression(TernaryExpression<'tree>),
8034 ThrowStatement(ThrowStatement<'tree>),
8035 TryStatement(TryStatement<'tree>),
8036 UnaryExpression(UnaryExpression<'tree>),
8037 UpdateExpression(UpdateExpression<'tree>),
8038 UsingDeclaration(UsingDeclaration<'tree>),
8039 VariableDeclaration(VariableDeclaration<'tree>),
8040 VariableDeclarator(VariableDeclarator<'tree>),
8041 WhileStatement(WhileStatement<'tree>),
8042 WithStatement(WithStatement<'tree>),
8043 YieldExpression(YieldExpression<'tree>),
8044 Comment(Comment<'tree>),
8045 EscapeSequence(EscapeSequence<'tree>),
8046 False(False<'tree>),
8047 HashBangLine(HashBangLine<'tree>),
8048 HtmlCharacterReference(HtmlCharacterReference<'tree>),
8049 HtmlComment(HtmlComment<'tree>),
8050 Identifier(Identifier<'tree>),
8051 JsxText(JsxText<'tree>),
8052 Null(Null<'tree>),
8053 Number(Number<'tree>),
8054 OptionalChain(OptionalChain<'tree>),
8055 PrivatePropertyIdentifier(PrivatePropertyIdentifier<'tree>),
8056 PropertyIdentifier(PropertyIdentifier<'tree>),
8057 RegexFlags(RegexFlags<'tree>),
8058 RegexPattern(RegexPattern<'tree>),
8059 ShorthandPropertyIdentifier(ShorthandPropertyIdentifier<'tree>),
8060 ShorthandPropertyIdentifierPattern(ShorthandPropertyIdentifierPattern<'tree>),
8061 StatementIdentifier(StatementIdentifier<'tree>),
8062 StringFragment(StringFragment<'tree>),
8063 Super(Super<'tree>),
8064 This(This<'tree>),
8065 True(True<'tree>),
8066 Undefined(Undefined<'tree>),
8067 Unknown(::tree_sitter::Node<'tree>),
8068}
8069impl<'tree> AnyNode<'tree> {
8070 pub fn from_node(node: ::tree_sitter::Node<'tree>, src: &'tree [u8]) -> Self {
8071 match node.kind() {
8072 "declaration" => <Declaration as ::treesitter_types::FromNode>::from_node(node, src)
8073 .map(Self::Declaration)
8074 .unwrap_or(Self::Unknown(node)),
8075 "expression" => <Expression as ::treesitter_types::FromNode>::from_node(node, src)
8076 .map(Self::Expression)
8077 .unwrap_or(Self::Unknown(node)),
8078 "pattern" => <Pattern as ::treesitter_types::FromNode>::from_node(node, src)
8079 .map(Self::Pattern)
8080 .unwrap_or(Self::Unknown(node)),
8081 "primary_expression" => {
8082 <PrimaryExpression as ::treesitter_types::FromNode>::from_node(node, src)
8083 .map(Self::PrimaryExpression)
8084 .unwrap_or(Self::Unknown(node))
8085 }
8086 "statement" => <Statement as ::treesitter_types::FromNode>::from_node(node, src)
8087 .map(Self::Statement)
8088 .unwrap_or(Self::Unknown(node)),
8089 "arguments" => <Arguments as ::treesitter_types::FromNode>::from_node(node, src)
8090 .map(Self::Arguments)
8091 .unwrap_or(Self::Unknown(node)),
8092 "array" => <Array as ::treesitter_types::FromNode>::from_node(node, src)
8093 .map(Self::Array)
8094 .unwrap_or(Self::Unknown(node)),
8095 "array_pattern" => <ArrayPattern as ::treesitter_types::FromNode>::from_node(node, src)
8096 .map(Self::ArrayPattern)
8097 .unwrap_or(Self::Unknown(node)),
8098 "arrow_function" => {
8099 <ArrowFunction as ::treesitter_types::FromNode>::from_node(node, src)
8100 .map(Self::ArrowFunction)
8101 .unwrap_or(Self::Unknown(node))
8102 }
8103 "assignment_expression" => {
8104 <AssignmentExpression as ::treesitter_types::FromNode>::from_node(node, src)
8105 .map(Self::AssignmentExpression)
8106 .unwrap_or(Self::Unknown(node))
8107 }
8108 "assignment_pattern" => {
8109 <AssignmentPattern as ::treesitter_types::FromNode>::from_node(node, src)
8110 .map(Self::AssignmentPattern)
8111 .unwrap_or(Self::Unknown(node))
8112 }
8113 "augmented_assignment_expression" => {
8114 <AugmentedAssignmentExpression as ::treesitter_types::FromNode>::from_node(
8115 node, src,
8116 )
8117 .map(Self::AugmentedAssignmentExpression)
8118 .unwrap_or(Self::Unknown(node))
8119 }
8120 "await_expression" => {
8121 <AwaitExpression as ::treesitter_types::FromNode>::from_node(node, src)
8122 .map(Self::AwaitExpression)
8123 .unwrap_or(Self::Unknown(node))
8124 }
8125 "binary_expression" => {
8126 <BinaryExpression as ::treesitter_types::FromNode>::from_node(node, src)
8127 .map(Self::BinaryExpression)
8128 .unwrap_or(Self::Unknown(node))
8129 }
8130 "break_statement" => {
8131 <BreakStatement as ::treesitter_types::FromNode>::from_node(node, src)
8132 .map(Self::BreakStatement)
8133 .unwrap_or(Self::Unknown(node))
8134 }
8135 "call_expression" => {
8136 <CallExpression as ::treesitter_types::FromNode>::from_node(node, src)
8137 .map(Self::CallExpression)
8138 .unwrap_or(Self::Unknown(node))
8139 }
8140 "catch_clause" => <CatchClause as ::treesitter_types::FromNode>::from_node(node, src)
8141 .map(Self::CatchClause)
8142 .unwrap_or(Self::Unknown(node)),
8143 "class" => <Class as ::treesitter_types::FromNode>::from_node(node, src)
8144 .map(Self::Class)
8145 .unwrap_or(Self::Unknown(node)),
8146 "class_body" => <ClassBody as ::treesitter_types::FromNode>::from_node(node, src)
8147 .map(Self::ClassBody)
8148 .unwrap_or(Self::Unknown(node)),
8149 "class_declaration" => {
8150 <ClassDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
8151 .map(Self::ClassDeclaration)
8152 .unwrap_or(Self::Unknown(node))
8153 }
8154 "class_heritage" => {
8155 <ClassHeritage as ::treesitter_types::FromNode>::from_node(node, src)
8156 .map(Self::ClassHeritage)
8157 .unwrap_or(Self::Unknown(node))
8158 }
8159 "class_static_block" => {
8160 <ClassStaticBlock as ::treesitter_types::FromNode>::from_node(node, src)
8161 .map(Self::ClassStaticBlock)
8162 .unwrap_or(Self::Unknown(node))
8163 }
8164 "computed_property_name" => {
8165 <ComputedPropertyName as ::treesitter_types::FromNode>::from_node(node, src)
8166 .map(Self::ComputedPropertyName)
8167 .unwrap_or(Self::Unknown(node))
8168 }
8169 "continue_statement" => {
8170 <ContinueStatement as ::treesitter_types::FromNode>::from_node(node, src)
8171 .map(Self::ContinueStatement)
8172 .unwrap_or(Self::Unknown(node))
8173 }
8174 "debugger_statement" => {
8175 <DebuggerStatement as ::treesitter_types::FromNode>::from_node(node, src)
8176 .map(Self::DebuggerStatement)
8177 .unwrap_or(Self::Unknown(node))
8178 }
8179 "decorator" => <Decorator as ::treesitter_types::FromNode>::from_node(node, src)
8180 .map(Self::Decorator)
8181 .unwrap_or(Self::Unknown(node)),
8182 "do_statement" => <DoStatement as ::treesitter_types::FromNode>::from_node(node, src)
8183 .map(Self::DoStatement)
8184 .unwrap_or(Self::Unknown(node)),
8185 "else_clause" => <ElseClause as ::treesitter_types::FromNode>::from_node(node, src)
8186 .map(Self::ElseClause)
8187 .unwrap_or(Self::Unknown(node)),
8188 "empty_statement" => {
8189 <EmptyStatement as ::treesitter_types::FromNode>::from_node(node, src)
8190 .map(Self::EmptyStatement)
8191 .unwrap_or(Self::Unknown(node))
8192 }
8193 "export_clause" => <ExportClause as ::treesitter_types::FromNode>::from_node(node, src)
8194 .map(Self::ExportClause)
8195 .unwrap_or(Self::Unknown(node)),
8196 "export_specifier" => {
8197 <ExportSpecifier as ::treesitter_types::FromNode>::from_node(node, src)
8198 .map(Self::ExportSpecifier)
8199 .unwrap_or(Self::Unknown(node))
8200 }
8201 "export_statement" => {
8202 <ExportStatement as ::treesitter_types::FromNode>::from_node(node, src)
8203 .map(Self::ExportStatement)
8204 .unwrap_or(Self::Unknown(node))
8205 }
8206 "expression_statement" => {
8207 <ExpressionStatement as ::treesitter_types::FromNode>::from_node(node, src)
8208 .map(Self::ExpressionStatement)
8209 .unwrap_or(Self::Unknown(node))
8210 }
8211 "field_definition" => {
8212 <FieldDefinition as ::treesitter_types::FromNode>::from_node(node, src)
8213 .map(Self::FieldDefinition)
8214 .unwrap_or(Self::Unknown(node))
8215 }
8216 "finally_clause" => {
8217 <FinallyClause as ::treesitter_types::FromNode>::from_node(node, src)
8218 .map(Self::FinallyClause)
8219 .unwrap_or(Self::Unknown(node))
8220 }
8221 "for_in_statement" => {
8222 <ForInStatement as ::treesitter_types::FromNode>::from_node(node, src)
8223 .map(Self::ForInStatement)
8224 .unwrap_or(Self::Unknown(node))
8225 }
8226 "for_statement" => <ForStatement as ::treesitter_types::FromNode>::from_node(node, src)
8227 .map(Self::ForStatement)
8228 .unwrap_or(Self::Unknown(node)),
8229 "formal_parameters" => {
8230 <FormalParameters as ::treesitter_types::FromNode>::from_node(node, src)
8231 .map(Self::FormalParameters)
8232 .unwrap_or(Self::Unknown(node))
8233 }
8234 "function_declaration" => {
8235 <FunctionDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
8236 .map(Self::FunctionDeclaration)
8237 .unwrap_or(Self::Unknown(node))
8238 }
8239 "function_expression" => {
8240 <FunctionExpression as ::treesitter_types::FromNode>::from_node(node, src)
8241 .map(Self::FunctionExpression)
8242 .unwrap_or(Self::Unknown(node))
8243 }
8244 "generator_function" => {
8245 <GeneratorFunction as ::treesitter_types::FromNode>::from_node(node, src)
8246 .map(Self::GeneratorFunction)
8247 .unwrap_or(Self::Unknown(node))
8248 }
8249 "generator_function_declaration" => {
8250 <GeneratorFunctionDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
8251 .map(Self::GeneratorFunctionDeclaration)
8252 .unwrap_or(Self::Unknown(node))
8253 }
8254 "if_statement" => <IfStatement as ::treesitter_types::FromNode>::from_node(node, src)
8255 .map(Self::IfStatement)
8256 .unwrap_or(Self::Unknown(node)),
8257 "import" => <Import as ::treesitter_types::FromNode>::from_node(node, src)
8258 .map(Self::Import)
8259 .unwrap_or(Self::Unknown(node)),
8260 "import_attribute" => {
8261 <ImportAttribute as ::treesitter_types::FromNode>::from_node(node, src)
8262 .map(Self::ImportAttribute)
8263 .unwrap_or(Self::Unknown(node))
8264 }
8265 "import_clause" => <ImportClause as ::treesitter_types::FromNode>::from_node(node, src)
8266 .map(Self::ImportClause)
8267 .unwrap_or(Self::Unknown(node)),
8268 "import_specifier" => {
8269 <ImportSpecifier as ::treesitter_types::FromNode>::from_node(node, src)
8270 .map(Self::ImportSpecifier)
8271 .unwrap_or(Self::Unknown(node))
8272 }
8273 "import_statement" => {
8274 <ImportStatement as ::treesitter_types::FromNode>::from_node(node, src)
8275 .map(Self::ImportStatement)
8276 .unwrap_or(Self::Unknown(node))
8277 }
8278 "jsx_attribute" => <JsxAttribute as ::treesitter_types::FromNode>::from_node(node, src)
8279 .map(Self::JsxAttribute)
8280 .unwrap_or(Self::Unknown(node)),
8281 "jsx_closing_element" => {
8282 <JsxClosingElement as ::treesitter_types::FromNode>::from_node(node, src)
8283 .map(Self::JsxClosingElement)
8284 .unwrap_or(Self::Unknown(node))
8285 }
8286 "jsx_element" => <JsxElement as ::treesitter_types::FromNode>::from_node(node, src)
8287 .map(Self::JsxElement)
8288 .unwrap_or(Self::Unknown(node)),
8289 "jsx_expression" => {
8290 <JsxExpression as ::treesitter_types::FromNode>::from_node(node, src)
8291 .map(Self::JsxExpression)
8292 .unwrap_or(Self::Unknown(node))
8293 }
8294 "jsx_namespace_name" => {
8295 <JsxNamespaceName as ::treesitter_types::FromNode>::from_node(node, src)
8296 .map(Self::JsxNamespaceName)
8297 .unwrap_or(Self::Unknown(node))
8298 }
8299 "jsx_opening_element" => {
8300 <JsxOpeningElement as ::treesitter_types::FromNode>::from_node(node, src)
8301 .map(Self::JsxOpeningElement)
8302 .unwrap_or(Self::Unknown(node))
8303 }
8304 "jsx_self_closing_element" => {
8305 <JsxSelfClosingElement as ::treesitter_types::FromNode>::from_node(node, src)
8306 .map(Self::JsxSelfClosingElement)
8307 .unwrap_or(Self::Unknown(node))
8308 }
8309 "labeled_statement" => {
8310 <LabeledStatement as ::treesitter_types::FromNode>::from_node(node, src)
8311 .map(Self::LabeledStatement)
8312 .unwrap_or(Self::Unknown(node))
8313 }
8314 "lexical_declaration" => {
8315 <LexicalDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
8316 .map(Self::LexicalDeclaration)
8317 .unwrap_or(Self::Unknown(node))
8318 }
8319 "member_expression" => {
8320 <MemberExpression as ::treesitter_types::FromNode>::from_node(node, src)
8321 .map(Self::MemberExpression)
8322 .unwrap_or(Self::Unknown(node))
8323 }
8324 "meta_property" => <MetaProperty as ::treesitter_types::FromNode>::from_node(node, src)
8325 .map(Self::MetaProperty)
8326 .unwrap_or(Self::Unknown(node)),
8327 "method_definition" => {
8328 <MethodDefinition as ::treesitter_types::FromNode>::from_node(node, src)
8329 .map(Self::MethodDefinition)
8330 .unwrap_or(Self::Unknown(node))
8331 }
8332 "named_imports" => <NamedImports as ::treesitter_types::FromNode>::from_node(node, src)
8333 .map(Self::NamedImports)
8334 .unwrap_or(Self::Unknown(node)),
8335 "namespace_export" => {
8336 <NamespaceExport as ::treesitter_types::FromNode>::from_node(node, src)
8337 .map(Self::NamespaceExport)
8338 .unwrap_or(Self::Unknown(node))
8339 }
8340 "namespace_import" => {
8341 <NamespaceImport as ::treesitter_types::FromNode>::from_node(node, src)
8342 .map(Self::NamespaceImport)
8343 .unwrap_or(Self::Unknown(node))
8344 }
8345 "new_expression" => {
8346 <NewExpression as ::treesitter_types::FromNode>::from_node(node, src)
8347 .map(Self::NewExpression)
8348 .unwrap_or(Self::Unknown(node))
8349 }
8350 "object" => <Object as ::treesitter_types::FromNode>::from_node(node, src)
8351 .map(Self::Object)
8352 .unwrap_or(Self::Unknown(node)),
8353 "object_assignment_pattern" => {
8354 <ObjectAssignmentPattern as ::treesitter_types::FromNode>::from_node(node, src)
8355 .map(Self::ObjectAssignmentPattern)
8356 .unwrap_or(Self::Unknown(node))
8357 }
8358 "object_pattern" => {
8359 <ObjectPattern as ::treesitter_types::FromNode>::from_node(node, src)
8360 .map(Self::ObjectPattern)
8361 .unwrap_or(Self::Unknown(node))
8362 }
8363 "pair" => <Pair as ::treesitter_types::FromNode>::from_node(node, src)
8364 .map(Self::Pair)
8365 .unwrap_or(Self::Unknown(node)),
8366 "pair_pattern" => <PairPattern as ::treesitter_types::FromNode>::from_node(node, src)
8367 .map(Self::PairPattern)
8368 .unwrap_or(Self::Unknown(node)),
8369 "parenthesized_expression" => {
8370 <ParenthesizedExpression as ::treesitter_types::FromNode>::from_node(node, src)
8371 .map(Self::ParenthesizedExpression)
8372 .unwrap_or(Self::Unknown(node))
8373 }
8374 "program" => <Program as ::treesitter_types::FromNode>::from_node(node, src)
8375 .map(Self::Program)
8376 .unwrap_or(Self::Unknown(node)),
8377 "regex" => <Regex as ::treesitter_types::FromNode>::from_node(node, src)
8378 .map(Self::Regex)
8379 .unwrap_or(Self::Unknown(node)),
8380 "rest_pattern" => <RestPattern as ::treesitter_types::FromNode>::from_node(node, src)
8381 .map(Self::RestPattern)
8382 .unwrap_or(Self::Unknown(node)),
8383 "return_statement" => {
8384 <ReturnStatement as ::treesitter_types::FromNode>::from_node(node, src)
8385 .map(Self::ReturnStatement)
8386 .unwrap_or(Self::Unknown(node))
8387 }
8388 "sequence_expression" => {
8389 <SequenceExpression as ::treesitter_types::FromNode>::from_node(node, src)
8390 .map(Self::SequenceExpression)
8391 .unwrap_or(Self::Unknown(node))
8392 }
8393 "spread_element" => {
8394 <SpreadElement as ::treesitter_types::FromNode>::from_node(node, src)
8395 .map(Self::SpreadElement)
8396 .unwrap_or(Self::Unknown(node))
8397 }
8398 "statement_block" => {
8399 <StatementBlock as ::treesitter_types::FromNode>::from_node(node, src)
8400 .map(Self::StatementBlock)
8401 .unwrap_or(Self::Unknown(node))
8402 }
8403 "string" => <String as ::treesitter_types::FromNode>::from_node(node, src)
8404 .map(Self::String)
8405 .unwrap_or(Self::Unknown(node)),
8406 "subscript_expression" => {
8407 <SubscriptExpression as ::treesitter_types::FromNode>::from_node(node, src)
8408 .map(Self::SubscriptExpression)
8409 .unwrap_or(Self::Unknown(node))
8410 }
8411 "switch_body" => <SwitchBody as ::treesitter_types::FromNode>::from_node(node, src)
8412 .map(Self::SwitchBody)
8413 .unwrap_or(Self::Unknown(node)),
8414 "switch_case" => <SwitchCase as ::treesitter_types::FromNode>::from_node(node, src)
8415 .map(Self::SwitchCase)
8416 .unwrap_or(Self::Unknown(node)),
8417 "switch_default" => {
8418 <SwitchDefault as ::treesitter_types::FromNode>::from_node(node, src)
8419 .map(Self::SwitchDefault)
8420 .unwrap_or(Self::Unknown(node))
8421 }
8422 "switch_statement" => {
8423 <SwitchStatement as ::treesitter_types::FromNode>::from_node(node, src)
8424 .map(Self::SwitchStatement)
8425 .unwrap_or(Self::Unknown(node))
8426 }
8427 "template_string" => {
8428 <TemplateString as ::treesitter_types::FromNode>::from_node(node, src)
8429 .map(Self::TemplateString)
8430 .unwrap_or(Self::Unknown(node))
8431 }
8432 "template_substitution" => {
8433 <TemplateSubstitution as ::treesitter_types::FromNode>::from_node(node, src)
8434 .map(Self::TemplateSubstitution)
8435 .unwrap_or(Self::Unknown(node))
8436 }
8437 "ternary_expression" => {
8438 <TernaryExpression as ::treesitter_types::FromNode>::from_node(node, src)
8439 .map(Self::TernaryExpression)
8440 .unwrap_or(Self::Unknown(node))
8441 }
8442 "throw_statement" => {
8443 <ThrowStatement as ::treesitter_types::FromNode>::from_node(node, src)
8444 .map(Self::ThrowStatement)
8445 .unwrap_or(Self::Unknown(node))
8446 }
8447 "try_statement" => <TryStatement as ::treesitter_types::FromNode>::from_node(node, src)
8448 .map(Self::TryStatement)
8449 .unwrap_or(Self::Unknown(node)),
8450 "unary_expression" => {
8451 <UnaryExpression as ::treesitter_types::FromNode>::from_node(node, src)
8452 .map(Self::UnaryExpression)
8453 .unwrap_or(Self::Unknown(node))
8454 }
8455 "update_expression" => {
8456 <UpdateExpression as ::treesitter_types::FromNode>::from_node(node, src)
8457 .map(Self::UpdateExpression)
8458 .unwrap_or(Self::Unknown(node))
8459 }
8460 "using_declaration" => {
8461 <UsingDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
8462 .map(Self::UsingDeclaration)
8463 .unwrap_or(Self::Unknown(node))
8464 }
8465 "variable_declaration" => {
8466 <VariableDeclaration as ::treesitter_types::FromNode>::from_node(node, src)
8467 .map(Self::VariableDeclaration)
8468 .unwrap_or(Self::Unknown(node))
8469 }
8470 "variable_declarator" => {
8471 <VariableDeclarator as ::treesitter_types::FromNode>::from_node(node, src)
8472 .map(Self::VariableDeclarator)
8473 .unwrap_or(Self::Unknown(node))
8474 }
8475 "while_statement" => {
8476 <WhileStatement as ::treesitter_types::FromNode>::from_node(node, src)
8477 .map(Self::WhileStatement)
8478 .unwrap_or(Self::Unknown(node))
8479 }
8480 "with_statement" => {
8481 <WithStatement as ::treesitter_types::FromNode>::from_node(node, src)
8482 .map(Self::WithStatement)
8483 .unwrap_or(Self::Unknown(node))
8484 }
8485 "yield_expression" => {
8486 <YieldExpression as ::treesitter_types::FromNode>::from_node(node, src)
8487 .map(Self::YieldExpression)
8488 .unwrap_or(Self::Unknown(node))
8489 }
8490 "comment" => <Comment as ::treesitter_types::FromNode>::from_node(node, src)
8491 .map(Self::Comment)
8492 .unwrap_or(Self::Unknown(node)),
8493 "escape_sequence" => {
8494 <EscapeSequence as ::treesitter_types::FromNode>::from_node(node, src)
8495 .map(Self::EscapeSequence)
8496 .unwrap_or(Self::Unknown(node))
8497 }
8498 "false" => <False as ::treesitter_types::FromNode>::from_node(node, src)
8499 .map(Self::False)
8500 .unwrap_or(Self::Unknown(node)),
8501 "hash_bang_line" => {
8502 <HashBangLine as ::treesitter_types::FromNode>::from_node(node, src)
8503 .map(Self::HashBangLine)
8504 .unwrap_or(Self::Unknown(node))
8505 }
8506 "html_character_reference" => {
8507 <HtmlCharacterReference as ::treesitter_types::FromNode>::from_node(node, src)
8508 .map(Self::HtmlCharacterReference)
8509 .unwrap_or(Self::Unknown(node))
8510 }
8511 "html_comment" => <HtmlComment as ::treesitter_types::FromNode>::from_node(node, src)
8512 .map(Self::HtmlComment)
8513 .unwrap_or(Self::Unknown(node)),
8514 "identifier" => <Identifier as ::treesitter_types::FromNode>::from_node(node, src)
8515 .map(Self::Identifier)
8516 .unwrap_or(Self::Unknown(node)),
8517 "jsx_text" => <JsxText as ::treesitter_types::FromNode>::from_node(node, src)
8518 .map(Self::JsxText)
8519 .unwrap_or(Self::Unknown(node)),
8520 "null" => <Null as ::treesitter_types::FromNode>::from_node(node, src)
8521 .map(Self::Null)
8522 .unwrap_or(Self::Unknown(node)),
8523 "number" => <Number as ::treesitter_types::FromNode>::from_node(node, src)
8524 .map(Self::Number)
8525 .unwrap_or(Self::Unknown(node)),
8526 "optional_chain" => {
8527 <OptionalChain as ::treesitter_types::FromNode>::from_node(node, src)
8528 .map(Self::OptionalChain)
8529 .unwrap_or(Self::Unknown(node))
8530 }
8531 "private_property_identifier" => {
8532 <PrivatePropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
8533 .map(Self::PrivatePropertyIdentifier)
8534 .unwrap_or(Self::Unknown(node))
8535 }
8536 "property_identifier" => {
8537 <PropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
8538 .map(Self::PropertyIdentifier)
8539 .unwrap_or(Self::Unknown(node))
8540 }
8541 "regex_flags" => <RegexFlags as ::treesitter_types::FromNode>::from_node(node, src)
8542 .map(Self::RegexFlags)
8543 .unwrap_or(Self::Unknown(node)),
8544 "regex_pattern" => <RegexPattern as ::treesitter_types::FromNode>::from_node(node, src)
8545 .map(Self::RegexPattern)
8546 .unwrap_or(Self::Unknown(node)),
8547 "shorthand_property_identifier" => {
8548 <ShorthandPropertyIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
8549 .map(Self::ShorthandPropertyIdentifier)
8550 .unwrap_or(Self::Unknown(node))
8551 }
8552 "shorthand_property_identifier_pattern" => {
8553 <ShorthandPropertyIdentifierPattern as ::treesitter_types::FromNode>::from_node(
8554 node, src,
8555 )
8556 .map(Self::ShorthandPropertyIdentifierPattern)
8557 .unwrap_or(Self::Unknown(node))
8558 }
8559 "statement_identifier" => {
8560 <StatementIdentifier as ::treesitter_types::FromNode>::from_node(node, src)
8561 .map(Self::StatementIdentifier)
8562 .unwrap_or(Self::Unknown(node))
8563 }
8564 "string_fragment" => {
8565 <StringFragment as ::treesitter_types::FromNode>::from_node(node, src)
8566 .map(Self::StringFragment)
8567 .unwrap_or(Self::Unknown(node))
8568 }
8569 "super" => <Super as ::treesitter_types::FromNode>::from_node(node, src)
8570 .map(Self::Super)
8571 .unwrap_or(Self::Unknown(node)),
8572 "this" => <This as ::treesitter_types::FromNode>::from_node(node, src)
8573 .map(Self::This)
8574 .unwrap_or(Self::Unknown(node)),
8575 "true" => <True as ::treesitter_types::FromNode>::from_node(node, src)
8576 .map(Self::True)
8577 .unwrap_or(Self::Unknown(node)),
8578 "undefined" => <Undefined as ::treesitter_types::FromNode>::from_node(node, src)
8579 .map(Self::Undefined)
8580 .unwrap_or(Self::Unknown(node)),
8581 _ => Self::Unknown(node),
8582 }
8583 }
8584}
8585impl ::treesitter_types::Spanned for AnyNode<'_> {
8586 fn span(&self) -> ::treesitter_types::Span {
8587 match self {
8588 Self::Declaration(inner) => inner.span(),
8589 Self::Expression(inner) => inner.span(),
8590 Self::Pattern(inner) => inner.span(),
8591 Self::PrimaryExpression(inner) => inner.span(),
8592 Self::Statement(inner) => inner.span(),
8593 Self::Arguments(inner) => inner.span(),
8594 Self::Array(inner) => inner.span(),
8595 Self::ArrayPattern(inner) => inner.span(),
8596 Self::ArrowFunction(inner) => inner.span(),
8597 Self::AssignmentExpression(inner) => inner.span(),
8598 Self::AssignmentPattern(inner) => inner.span(),
8599 Self::AugmentedAssignmentExpression(inner) => inner.span(),
8600 Self::AwaitExpression(inner) => inner.span(),
8601 Self::BinaryExpression(inner) => inner.span(),
8602 Self::BreakStatement(inner) => inner.span(),
8603 Self::CallExpression(inner) => inner.span(),
8604 Self::CatchClause(inner) => inner.span(),
8605 Self::Class(inner) => inner.span(),
8606 Self::ClassBody(inner) => inner.span(),
8607 Self::ClassDeclaration(inner) => inner.span(),
8608 Self::ClassHeritage(inner) => inner.span(),
8609 Self::ClassStaticBlock(inner) => inner.span(),
8610 Self::ComputedPropertyName(inner) => inner.span(),
8611 Self::ContinueStatement(inner) => inner.span(),
8612 Self::DebuggerStatement(inner) => inner.span(),
8613 Self::Decorator(inner) => inner.span(),
8614 Self::DoStatement(inner) => inner.span(),
8615 Self::ElseClause(inner) => inner.span(),
8616 Self::EmptyStatement(inner) => inner.span(),
8617 Self::ExportClause(inner) => inner.span(),
8618 Self::ExportSpecifier(inner) => inner.span(),
8619 Self::ExportStatement(inner) => inner.span(),
8620 Self::ExpressionStatement(inner) => inner.span(),
8621 Self::FieldDefinition(inner) => inner.span(),
8622 Self::FinallyClause(inner) => inner.span(),
8623 Self::ForInStatement(inner) => inner.span(),
8624 Self::ForStatement(inner) => inner.span(),
8625 Self::FormalParameters(inner) => inner.span(),
8626 Self::FunctionDeclaration(inner) => inner.span(),
8627 Self::FunctionExpression(inner) => inner.span(),
8628 Self::GeneratorFunction(inner) => inner.span(),
8629 Self::GeneratorFunctionDeclaration(inner) => inner.span(),
8630 Self::IfStatement(inner) => inner.span(),
8631 Self::Import(inner) => inner.span(),
8632 Self::ImportAttribute(inner) => inner.span(),
8633 Self::ImportClause(inner) => inner.span(),
8634 Self::ImportSpecifier(inner) => inner.span(),
8635 Self::ImportStatement(inner) => inner.span(),
8636 Self::JsxAttribute(inner) => inner.span(),
8637 Self::JsxClosingElement(inner) => inner.span(),
8638 Self::JsxElement(inner) => inner.span(),
8639 Self::JsxExpression(inner) => inner.span(),
8640 Self::JsxNamespaceName(inner) => inner.span(),
8641 Self::JsxOpeningElement(inner) => inner.span(),
8642 Self::JsxSelfClosingElement(inner) => inner.span(),
8643 Self::LabeledStatement(inner) => inner.span(),
8644 Self::LexicalDeclaration(inner) => inner.span(),
8645 Self::MemberExpression(inner) => inner.span(),
8646 Self::MetaProperty(inner) => inner.span(),
8647 Self::MethodDefinition(inner) => inner.span(),
8648 Self::NamedImports(inner) => inner.span(),
8649 Self::NamespaceExport(inner) => inner.span(),
8650 Self::NamespaceImport(inner) => inner.span(),
8651 Self::NewExpression(inner) => inner.span(),
8652 Self::Object(inner) => inner.span(),
8653 Self::ObjectAssignmentPattern(inner) => inner.span(),
8654 Self::ObjectPattern(inner) => inner.span(),
8655 Self::Pair(inner) => inner.span(),
8656 Self::PairPattern(inner) => inner.span(),
8657 Self::ParenthesizedExpression(inner) => inner.span(),
8658 Self::Program(inner) => inner.span(),
8659 Self::Regex(inner) => inner.span(),
8660 Self::RestPattern(inner) => inner.span(),
8661 Self::ReturnStatement(inner) => inner.span(),
8662 Self::SequenceExpression(inner) => inner.span(),
8663 Self::SpreadElement(inner) => inner.span(),
8664 Self::StatementBlock(inner) => inner.span(),
8665 Self::String(inner) => inner.span(),
8666 Self::SubscriptExpression(inner) => inner.span(),
8667 Self::SwitchBody(inner) => inner.span(),
8668 Self::SwitchCase(inner) => inner.span(),
8669 Self::SwitchDefault(inner) => inner.span(),
8670 Self::SwitchStatement(inner) => inner.span(),
8671 Self::TemplateString(inner) => inner.span(),
8672 Self::TemplateSubstitution(inner) => inner.span(),
8673 Self::TernaryExpression(inner) => inner.span(),
8674 Self::ThrowStatement(inner) => inner.span(),
8675 Self::TryStatement(inner) => inner.span(),
8676 Self::UnaryExpression(inner) => inner.span(),
8677 Self::UpdateExpression(inner) => inner.span(),
8678 Self::UsingDeclaration(inner) => inner.span(),
8679 Self::VariableDeclaration(inner) => inner.span(),
8680 Self::VariableDeclarator(inner) => inner.span(),
8681 Self::WhileStatement(inner) => inner.span(),
8682 Self::WithStatement(inner) => inner.span(),
8683 Self::YieldExpression(inner) => inner.span(),
8684 Self::Comment(inner) => inner.span(),
8685 Self::EscapeSequence(inner) => inner.span(),
8686 Self::False(inner) => inner.span(),
8687 Self::HashBangLine(inner) => inner.span(),
8688 Self::HtmlCharacterReference(inner) => inner.span(),
8689 Self::HtmlComment(inner) => inner.span(),
8690 Self::Identifier(inner) => inner.span(),
8691 Self::JsxText(inner) => inner.span(),
8692 Self::Null(inner) => inner.span(),
8693 Self::Number(inner) => inner.span(),
8694 Self::OptionalChain(inner) => inner.span(),
8695 Self::PrivatePropertyIdentifier(inner) => inner.span(),
8696 Self::PropertyIdentifier(inner) => inner.span(),
8697 Self::RegexFlags(inner) => inner.span(),
8698 Self::RegexPattern(inner) => inner.span(),
8699 Self::ShorthandPropertyIdentifier(inner) => inner.span(),
8700 Self::ShorthandPropertyIdentifierPattern(inner) => inner.span(),
8701 Self::StatementIdentifier(inner) => inner.span(),
8702 Self::StringFragment(inner) => inner.span(),
8703 Self::Super(inner) => inner.span(),
8704 Self::This(inner) => inner.span(),
8705 Self::True(inner) => inner.span(),
8706 Self::Undefined(inner) => inner.span(),
8707 Self::Unknown(node) => ::treesitter_types::Span::from(*node),
8708 }
8709 }
8710}