1#[derive(Debug, Clone)]
2pub enum ClassDecl<'tree> {
3 DataFamily(::std::boxed::Box<DataFamily<'tree>>),
4 Decl(::std::boxed::Box<Decl<'tree>>),
5 DefaultSignature(::std::boxed::Box<DefaultSignature<'tree>>),
6 Fixity(::std::boxed::Box<Fixity<'tree>>),
7 TypeFamily(::std::boxed::Box<TypeFamily<'tree>>),
8 TypeInstance(::std::boxed::Box<TypeInstance<'tree>>),
9}
10impl<'tree> ::treesitter_types::FromNode<'tree> for ClassDecl<'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 "data_family" => Ok(Self::DataFamily(::std::boxed::Box::new(
18 <DataFamily as ::treesitter_types::FromNode>::from_node(node, src)?,
19 ))),
20 "default_signature" => Ok(Self::DefaultSignature(::std::boxed::Box::new(
21 <DefaultSignature as ::treesitter_types::FromNode>::from_node(node, src)?,
22 ))),
23 "fixity" => Ok(Self::Fixity(::std::boxed::Box::new(
24 <Fixity as ::treesitter_types::FromNode>::from_node(node, src)?,
25 ))),
26 "type_family" => Ok(Self::TypeFamily(::std::boxed::Box::new(
27 <TypeFamily as ::treesitter_types::FromNode>::from_node(node, src)?,
28 ))),
29 "type_instance" => Ok(Self::TypeInstance(::std::boxed::Box::new(
30 <TypeInstance as ::treesitter_types::FromNode>::from_node(node, src)?,
31 ))),
32 _other => {
33 if let Ok(v) = <Decl as ::treesitter_types::FromNode>::from_node(node, src) {
34 Ok(Self::Decl(::std::boxed::Box::new(v)))
35 } else {
36 Err(::treesitter_types::ParseError::unexpected_kind(
37 _other, node,
38 ))
39 }
40 }
41 }
42 }
43}
44impl ::treesitter_types::Spanned for ClassDecl<'_> {
45 fn span(&self) -> ::treesitter_types::Span {
46 match self {
47 Self::DataFamily(inner) => inner.span(),
48 Self::Decl(inner) => inner.span(),
49 Self::DefaultSignature(inner) => inner.span(),
50 Self::Fixity(inner) => inner.span(),
51 Self::TypeFamily(inner) => inner.span(),
52 Self::TypeInstance(inner) => inner.span(),
53 }
54 }
55}
56#[derive(Debug, Clone)]
57pub enum Constraint<'tree> {
58 Apply(::std::boxed::Box<Apply<'tree>>),
59 Infix(::std::boxed::Box<Infix<'tree>>),
60 Literal(::std::boxed::Box<Literal<'tree>>),
61 Name(::std::boxed::Box<Name<'tree>>),
62 Parens(::std::boxed::Box<Parens<'tree>>),
63 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
64 PrefixTuple(::std::boxed::Box<PrefixTuple<'tree>>),
65 PrefixUnboxedSum(::std::boxed::Box<PrefixUnboxedSum<'tree>>),
66 PrefixUnboxedTuple(::std::boxed::Box<PrefixUnboxedTuple<'tree>>),
67 Promoted(::std::boxed::Box<Promoted<'tree>>),
68 Qualified(::std::boxed::Box<Qualified<'tree>>),
69 Quasiquote(::std::boxed::Box<Quasiquote<'tree>>),
70 Splice(::std::boxed::Box<Splice<'tree>>),
71 Tuple(::std::boxed::Box<Tuple<'tree>>),
72 UnboxedUnit(::std::boxed::Box<UnboxedUnit<'tree>>),
73 Unit(::std::boxed::Box<Unit<'tree>>),
74 Variable(::std::boxed::Box<Variable<'tree>>),
75 Wildcard(::std::boxed::Box<Wildcard<'tree>>),
76}
77impl<'tree> ::treesitter_types::FromNode<'tree> for Constraint<'tree> {
78 #[allow(clippy::collapsible_else_if)]
79 fn from_node(
80 node: ::tree_sitter::Node<'tree>,
81 src: &'tree [u8],
82 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
83 match node.kind() {
84 "apply" => Ok(Self::Apply(::std::boxed::Box::new(
85 <Apply as ::treesitter_types::FromNode>::from_node(node, src)?,
86 ))),
87 "infix" => Ok(Self::Infix(::std::boxed::Box::new(
88 <Infix as ::treesitter_types::FromNode>::from_node(node, src)?,
89 ))),
90 "literal" => Ok(Self::Literal(::std::boxed::Box::new(
91 <Literal as ::treesitter_types::FromNode>::from_node(node, src)?,
92 ))),
93 "name" => Ok(Self::Name(::std::boxed::Box::new(
94 <Name as ::treesitter_types::FromNode>::from_node(node, src)?,
95 ))),
96 "parens" => Ok(Self::Parens(::std::boxed::Box::new(
97 <Parens as ::treesitter_types::FromNode>::from_node(node, src)?,
98 ))),
99 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
100 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
101 ))),
102 "prefix_tuple" => Ok(Self::PrefixTuple(::std::boxed::Box::new(
103 <PrefixTuple as ::treesitter_types::FromNode>::from_node(node, src)?,
104 ))),
105 "prefix_unboxed_sum" => Ok(Self::PrefixUnboxedSum(::std::boxed::Box::new(
106 <PrefixUnboxedSum as ::treesitter_types::FromNode>::from_node(node, src)?,
107 ))),
108 "prefix_unboxed_tuple" => Ok(Self::PrefixUnboxedTuple(::std::boxed::Box::new(
109 <PrefixUnboxedTuple as ::treesitter_types::FromNode>::from_node(node, src)?,
110 ))),
111 "promoted" => Ok(Self::Promoted(::std::boxed::Box::new(
112 <Promoted as ::treesitter_types::FromNode>::from_node(node, src)?,
113 ))),
114 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
115 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
116 ))),
117 "quasiquote" => Ok(Self::Quasiquote(::std::boxed::Box::new(
118 <Quasiquote as ::treesitter_types::FromNode>::from_node(node, src)?,
119 ))),
120 "splice" => Ok(Self::Splice(::std::boxed::Box::new(
121 <Splice as ::treesitter_types::FromNode>::from_node(node, src)?,
122 ))),
123 "tuple" => Ok(Self::Tuple(::std::boxed::Box::new(
124 <Tuple as ::treesitter_types::FromNode>::from_node(node, src)?,
125 ))),
126 "unboxed_unit" => Ok(Self::UnboxedUnit(::std::boxed::Box::new(
127 <UnboxedUnit as ::treesitter_types::FromNode>::from_node(node, src)?,
128 ))),
129 "unit" => Ok(Self::Unit(::std::boxed::Box::new(
130 <Unit as ::treesitter_types::FromNode>::from_node(node, src)?,
131 ))),
132 "variable" => Ok(Self::Variable(::std::boxed::Box::new(
133 <Variable as ::treesitter_types::FromNode>::from_node(node, src)?,
134 ))),
135 "wildcard" => Ok(Self::Wildcard(::std::boxed::Box::new(
136 <Wildcard as ::treesitter_types::FromNode>::from_node(node, src)?,
137 ))),
138 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
139 }
140 }
141}
142impl ::treesitter_types::Spanned for Constraint<'_> {
143 fn span(&self) -> ::treesitter_types::Span {
144 match self {
145 Self::Apply(inner) => inner.span(),
146 Self::Infix(inner) => inner.span(),
147 Self::Literal(inner) => inner.span(),
148 Self::Name(inner) => inner.span(),
149 Self::Parens(inner) => inner.span(),
150 Self::PrefixId(inner) => inner.span(),
151 Self::PrefixTuple(inner) => inner.span(),
152 Self::PrefixUnboxedSum(inner) => inner.span(),
153 Self::PrefixUnboxedTuple(inner) => inner.span(),
154 Self::Promoted(inner) => inner.span(),
155 Self::Qualified(inner) => inner.span(),
156 Self::Quasiquote(inner) => inner.span(),
157 Self::Splice(inner) => inner.span(),
158 Self::Tuple(inner) => inner.span(),
159 Self::UnboxedUnit(inner) => inner.span(),
160 Self::Unit(inner) => inner.span(),
161 Self::Variable(inner) => inner.span(),
162 Self::Wildcard(inner) => inner.span(),
163 }
164 }
165}
166#[derive(Debug, Clone)]
167pub enum Constraints<'tree> {
168 Constraint(::std::boxed::Box<Constraint<'tree>>),
169 Context(::std::boxed::Box<Context<'tree>>),
170 Forall(::std::boxed::Box<Forall<'tree>>),
171 ImplicitParameter(::std::boxed::Box<ImplicitParameter<'tree>>),
172 Signature(::std::boxed::Box<Signature<'tree>>),
173}
174impl<'tree> ::treesitter_types::FromNode<'tree> for Constraints<'tree> {
175 #[allow(clippy::collapsible_else_if)]
176 fn from_node(
177 node: ::tree_sitter::Node<'tree>,
178 src: &'tree [u8],
179 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
180 match node.kind() {
181 "context" => Ok(Self::Context(::std::boxed::Box::new(
182 <Context as ::treesitter_types::FromNode>::from_node(node, src)?,
183 ))),
184 "forall" => Ok(Self::Forall(::std::boxed::Box::new(
185 <Forall as ::treesitter_types::FromNode>::from_node(node, src)?,
186 ))),
187 "implicit_parameter" => Ok(Self::ImplicitParameter(::std::boxed::Box::new(
188 <ImplicitParameter as ::treesitter_types::FromNode>::from_node(node, src)?,
189 ))),
190 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
191 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
192 ))),
193 _other => {
194 if let Ok(v) = <Constraint as ::treesitter_types::FromNode>::from_node(node, src) {
195 Ok(Self::Constraint(::std::boxed::Box::new(v)))
196 } else {
197 Err(::treesitter_types::ParseError::unexpected_kind(
198 _other, node,
199 ))
200 }
201 }
202 }
203 }
204}
205impl ::treesitter_types::Spanned for Constraints<'_> {
206 fn span(&self) -> ::treesitter_types::Span {
207 match self {
208 Self::Constraint(inner) => inner.span(),
209 Self::Context(inner) => inner.span(),
210 Self::Forall(inner) => inner.span(),
211 Self::ImplicitParameter(inner) => inner.span(),
212 Self::Signature(inner) => inner.span(),
213 }
214 }
215}
216#[derive(Debug, Clone)]
217pub enum Decl<'tree> {
218 Bind(::std::boxed::Box<Bind<'tree>>),
219 Function(::std::boxed::Box<Function<'tree>>),
220 Signature(::std::boxed::Box<Signature<'tree>>),
221}
222impl<'tree> ::treesitter_types::FromNode<'tree> for Decl<'tree> {
223 #[allow(clippy::collapsible_else_if)]
224 fn from_node(
225 node: ::tree_sitter::Node<'tree>,
226 src: &'tree [u8],
227 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
228 match node.kind() {
229 "bind" => Ok(Self::Bind(::std::boxed::Box::new(
230 <Bind as ::treesitter_types::FromNode>::from_node(node, src)?,
231 ))),
232 "function" => Ok(Self::Function(::std::boxed::Box::new(
233 <Function as ::treesitter_types::FromNode>::from_node(node, src)?,
234 ))),
235 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
236 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
237 ))),
238 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
239 }
240 }
241}
242impl ::treesitter_types::Spanned for Decl<'_> {
243 fn span(&self) -> ::treesitter_types::Span {
244 match self {
245 Self::Bind(inner) => inner.span(),
246 Self::Function(inner) => inner.span(),
247 Self::Signature(inner) => inner.span(),
248 }
249 }
250}
251#[derive(Debug, Clone)]
252pub enum Declaration<'tree> {
253 Class(::std::boxed::Box<Class<'tree>>),
254 DataFamily(::std::boxed::Box<DataFamily<'tree>>),
255 DataInstance(::std::boxed::Box<DataInstance<'tree>>),
256 DataType(::std::boxed::Box<DataType<'tree>>),
257 Decl(::std::boxed::Box<Decl<'tree>>),
258 DefaultTypes(::std::boxed::Box<DefaultTypes<'tree>>),
259 DerivingInstance(::std::boxed::Box<DerivingInstance<'tree>>),
260 Fixity(::std::boxed::Box<Fixity<'tree>>),
261 ForeignExport(::std::boxed::Box<ForeignExport<'tree>>),
262 ForeignImport(::std::boxed::Box<ForeignImport<'tree>>),
263 Instance(::std::boxed::Box<Instance<'tree>>),
264 KindSignature(::std::boxed::Box<KindSignature<'tree>>),
265 Newtype(::std::boxed::Box<Newtype<'tree>>),
266 PatternSynonym(::std::boxed::Box<PatternSynonym<'tree>>),
267 RoleAnnotation(::std::boxed::Box<RoleAnnotation<'tree>>),
268 TopSplice(::std::boxed::Box<TopSplice<'tree>>),
269 TypeFamily(::std::boxed::Box<TypeFamily<'tree>>),
270 TypeInstance(::std::boxed::Box<TypeInstance<'tree>>),
271 TypeSynomym(::std::boxed::Box<TypeSynomym<'tree>>),
272}
273impl<'tree> ::treesitter_types::FromNode<'tree> for Declaration<'tree> {
274 #[allow(clippy::collapsible_else_if)]
275 fn from_node(
276 node: ::tree_sitter::Node<'tree>,
277 src: &'tree [u8],
278 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
279 match node.kind() {
280 "class" => Ok(Self::Class(::std::boxed::Box::new(
281 <Class as ::treesitter_types::FromNode>::from_node(node, src)?,
282 ))),
283 "data_family" => Ok(Self::DataFamily(::std::boxed::Box::new(
284 <DataFamily as ::treesitter_types::FromNode>::from_node(node, src)?,
285 ))),
286 "data_instance" => Ok(Self::DataInstance(::std::boxed::Box::new(
287 <DataInstance as ::treesitter_types::FromNode>::from_node(node, src)?,
288 ))),
289 "data_type" => Ok(Self::DataType(::std::boxed::Box::new(
290 <DataType as ::treesitter_types::FromNode>::from_node(node, src)?,
291 ))),
292 "default_types" => Ok(Self::DefaultTypes(::std::boxed::Box::new(
293 <DefaultTypes as ::treesitter_types::FromNode>::from_node(node, src)?,
294 ))),
295 "deriving_instance" => Ok(Self::DerivingInstance(::std::boxed::Box::new(
296 <DerivingInstance as ::treesitter_types::FromNode>::from_node(node, src)?,
297 ))),
298 "fixity" => Ok(Self::Fixity(::std::boxed::Box::new(
299 <Fixity as ::treesitter_types::FromNode>::from_node(node, src)?,
300 ))),
301 "foreign_export" => Ok(Self::ForeignExport(::std::boxed::Box::new(
302 <ForeignExport as ::treesitter_types::FromNode>::from_node(node, src)?,
303 ))),
304 "foreign_import" => Ok(Self::ForeignImport(::std::boxed::Box::new(
305 <ForeignImport as ::treesitter_types::FromNode>::from_node(node, src)?,
306 ))),
307 "instance" => Ok(Self::Instance(::std::boxed::Box::new(
308 <Instance as ::treesitter_types::FromNode>::from_node(node, src)?,
309 ))),
310 "kind_signature" => Ok(Self::KindSignature(::std::boxed::Box::new(
311 <KindSignature as ::treesitter_types::FromNode>::from_node(node, src)?,
312 ))),
313 "newtype" => Ok(Self::Newtype(::std::boxed::Box::new(
314 <Newtype as ::treesitter_types::FromNode>::from_node(node, src)?,
315 ))),
316 "pattern_synonym" => Ok(Self::PatternSynonym(::std::boxed::Box::new(
317 <PatternSynonym as ::treesitter_types::FromNode>::from_node(node, src)?,
318 ))),
319 "role_annotation" => Ok(Self::RoleAnnotation(::std::boxed::Box::new(
320 <RoleAnnotation as ::treesitter_types::FromNode>::from_node(node, src)?,
321 ))),
322 "top_splice" => Ok(Self::TopSplice(::std::boxed::Box::new(
323 <TopSplice as ::treesitter_types::FromNode>::from_node(node, src)?,
324 ))),
325 "type_family" => Ok(Self::TypeFamily(::std::boxed::Box::new(
326 <TypeFamily as ::treesitter_types::FromNode>::from_node(node, src)?,
327 ))),
328 "type_instance" => Ok(Self::TypeInstance(::std::boxed::Box::new(
329 <TypeInstance as ::treesitter_types::FromNode>::from_node(node, src)?,
330 ))),
331 "type_synomym" => Ok(Self::TypeSynomym(::std::boxed::Box::new(
332 <TypeSynomym as ::treesitter_types::FromNode>::from_node(node, src)?,
333 ))),
334 _other => {
335 if let Ok(v) = <Decl as ::treesitter_types::FromNode>::from_node(node, src) {
336 Ok(Self::Decl(::std::boxed::Box::new(v)))
337 } else {
338 Err(::treesitter_types::ParseError::unexpected_kind(
339 _other, node,
340 ))
341 }
342 }
343 }
344 }
345}
346impl ::treesitter_types::Spanned for Declaration<'_> {
347 fn span(&self) -> ::treesitter_types::Span {
348 match self {
349 Self::Class(inner) => inner.span(),
350 Self::DataFamily(inner) => inner.span(),
351 Self::DataInstance(inner) => inner.span(),
352 Self::DataType(inner) => inner.span(),
353 Self::Decl(inner) => inner.span(),
354 Self::DefaultTypes(inner) => inner.span(),
355 Self::DerivingInstance(inner) => inner.span(),
356 Self::Fixity(inner) => inner.span(),
357 Self::ForeignExport(inner) => inner.span(),
358 Self::ForeignImport(inner) => inner.span(),
359 Self::Instance(inner) => inner.span(),
360 Self::KindSignature(inner) => inner.span(),
361 Self::Newtype(inner) => inner.span(),
362 Self::PatternSynonym(inner) => inner.span(),
363 Self::RoleAnnotation(inner) => inner.span(),
364 Self::TopSplice(inner) => inner.span(),
365 Self::TypeFamily(inner) => inner.span(),
366 Self::TypeInstance(inner) => inner.span(),
367 Self::TypeSynomym(inner) => inner.span(),
368 }
369 }
370}
371#[derive(Debug, Clone)]
372pub enum Expression<'tree> {
373 Apply(::std::boxed::Box<Apply<'tree>>),
374 ArithmeticSequence(::std::boxed::Box<ArithmeticSequence<'tree>>),
375 Case(::std::boxed::Box<Case<'tree>>),
376 Conditional(::std::boxed::Box<Conditional<'tree>>),
377 Constructor(::std::boxed::Box<Constructor<'tree>>),
378 Do(::std::boxed::Box<Do<'tree>>),
379 ImplicitVariable(::std::boxed::Box<ImplicitVariable<'tree>>),
380 Infix(::std::boxed::Box<Infix<'tree>>),
381 Label(::std::boxed::Box<Label<'tree>>),
382 Lambda(::std::boxed::Box<Lambda<'tree>>),
383 LambdaCase(::std::boxed::Box<LambdaCase<'tree>>),
384 LambdaCases(::std::boxed::Box<LambdaCases<'tree>>),
385 LeftSection(::std::boxed::Box<LeftSection<'tree>>),
386 LetIn(::std::boxed::Box<LetIn<'tree>>),
387 List(::std::boxed::Box<List<'tree>>),
388 ListComprehension(::std::boxed::Box<ListComprehension<'tree>>),
389 Literal(::std::boxed::Box<Literal<'tree>>),
390 MultiWayIf(::std::boxed::Box<MultiWayIf<'tree>>),
391 Negation(::std::boxed::Box<Negation<'tree>>),
392 Parens(::std::boxed::Box<Parens<'tree>>),
393 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
394 PrefixTuple(::std::boxed::Box<PrefixTuple<'tree>>),
395 PrefixUnboxedSum(::std::boxed::Box<PrefixUnboxedSum<'tree>>),
396 PrefixUnboxedTuple(::std::boxed::Box<PrefixUnboxedTuple<'tree>>),
397 Projection(::std::boxed::Box<Projection<'tree>>),
398 ProjectionSelector(::std::boxed::Box<ProjectionSelector<'tree>>),
399 Qualified(::std::boxed::Box<Qualified<'tree>>),
400 Quasiquote(::std::boxed::Box<Quasiquote<'tree>>),
401 Quote(::std::boxed::Box<Quote<'tree>>),
402 Record(::std::boxed::Box<Record<'tree>>),
403 RightSection(::std::boxed::Box<RightSection<'tree>>),
404 Splice(::std::boxed::Box<Splice<'tree>>),
405 ThQuotedName(::std::boxed::Box<ThQuotedName<'tree>>),
406 Tuple(::std::boxed::Box<Tuple<'tree>>),
407 TypedQuote(::std::boxed::Box<TypedQuote<'tree>>),
408 UnboxedSum(::std::boxed::Box<UnboxedSum<'tree>>),
409 UnboxedTuple(::std::boxed::Box<UnboxedTuple<'tree>>),
410 UnboxedUnit(::std::boxed::Box<UnboxedUnit<'tree>>),
411 Unit(::std::boxed::Box<Unit<'tree>>),
412 Variable(::std::boxed::Box<Variable<'tree>>),
413}
414impl<'tree> ::treesitter_types::FromNode<'tree> for Expression<'tree> {
415 #[allow(clippy::collapsible_else_if)]
416 fn from_node(
417 node: ::tree_sitter::Node<'tree>,
418 src: &'tree [u8],
419 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
420 match node.kind() {
421 "apply" => Ok(Self::Apply(::std::boxed::Box::new(
422 <Apply as ::treesitter_types::FromNode>::from_node(node, src)?,
423 ))),
424 "arithmetic_sequence" => Ok(Self::ArithmeticSequence(::std::boxed::Box::new(
425 <ArithmeticSequence as ::treesitter_types::FromNode>::from_node(node, src)?,
426 ))),
427 "case" => Ok(Self::Case(::std::boxed::Box::new(
428 <Case as ::treesitter_types::FromNode>::from_node(node, src)?,
429 ))),
430 "conditional" => Ok(Self::Conditional(::std::boxed::Box::new(
431 <Conditional as ::treesitter_types::FromNode>::from_node(node, src)?,
432 ))),
433 "constructor" => Ok(Self::Constructor(::std::boxed::Box::new(
434 <Constructor as ::treesitter_types::FromNode>::from_node(node, src)?,
435 ))),
436 "do" => Ok(Self::Do(::std::boxed::Box::new(
437 <Do as ::treesitter_types::FromNode>::from_node(node, src)?,
438 ))),
439 "implicit_variable" => Ok(Self::ImplicitVariable(::std::boxed::Box::new(
440 <ImplicitVariable as ::treesitter_types::FromNode>::from_node(node, src)?,
441 ))),
442 "infix" => Ok(Self::Infix(::std::boxed::Box::new(
443 <Infix as ::treesitter_types::FromNode>::from_node(node, src)?,
444 ))),
445 "label" => Ok(Self::Label(::std::boxed::Box::new(
446 <Label as ::treesitter_types::FromNode>::from_node(node, src)?,
447 ))),
448 "lambda" => Ok(Self::Lambda(::std::boxed::Box::new(
449 <Lambda as ::treesitter_types::FromNode>::from_node(node, src)?,
450 ))),
451 "lambda_case" => Ok(Self::LambdaCase(::std::boxed::Box::new(
452 <LambdaCase as ::treesitter_types::FromNode>::from_node(node, src)?,
453 ))),
454 "lambda_cases" => Ok(Self::LambdaCases(::std::boxed::Box::new(
455 <LambdaCases as ::treesitter_types::FromNode>::from_node(node, src)?,
456 ))),
457 "left_section" => Ok(Self::LeftSection(::std::boxed::Box::new(
458 <LeftSection as ::treesitter_types::FromNode>::from_node(node, src)?,
459 ))),
460 "let_in" => Ok(Self::LetIn(::std::boxed::Box::new(
461 <LetIn as ::treesitter_types::FromNode>::from_node(node, src)?,
462 ))),
463 "list" => Ok(Self::List(::std::boxed::Box::new(
464 <List as ::treesitter_types::FromNode>::from_node(node, src)?,
465 ))),
466 "list_comprehension" => Ok(Self::ListComprehension(::std::boxed::Box::new(
467 <ListComprehension as ::treesitter_types::FromNode>::from_node(node, src)?,
468 ))),
469 "literal" => Ok(Self::Literal(::std::boxed::Box::new(
470 <Literal as ::treesitter_types::FromNode>::from_node(node, src)?,
471 ))),
472 "multi_way_if" => Ok(Self::MultiWayIf(::std::boxed::Box::new(
473 <MultiWayIf as ::treesitter_types::FromNode>::from_node(node, src)?,
474 ))),
475 "negation" => Ok(Self::Negation(::std::boxed::Box::new(
476 <Negation as ::treesitter_types::FromNode>::from_node(node, src)?,
477 ))),
478 "parens" => Ok(Self::Parens(::std::boxed::Box::new(
479 <Parens as ::treesitter_types::FromNode>::from_node(node, src)?,
480 ))),
481 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
482 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
483 ))),
484 "prefix_tuple" => Ok(Self::PrefixTuple(::std::boxed::Box::new(
485 <PrefixTuple as ::treesitter_types::FromNode>::from_node(node, src)?,
486 ))),
487 "prefix_unboxed_sum" => Ok(Self::PrefixUnboxedSum(::std::boxed::Box::new(
488 <PrefixUnboxedSum as ::treesitter_types::FromNode>::from_node(node, src)?,
489 ))),
490 "prefix_unboxed_tuple" => Ok(Self::PrefixUnboxedTuple(::std::boxed::Box::new(
491 <PrefixUnboxedTuple as ::treesitter_types::FromNode>::from_node(node, src)?,
492 ))),
493 "projection" => Ok(Self::Projection(::std::boxed::Box::new(
494 <Projection as ::treesitter_types::FromNode>::from_node(node, src)?,
495 ))),
496 "projection_selector" => Ok(Self::ProjectionSelector(::std::boxed::Box::new(
497 <ProjectionSelector as ::treesitter_types::FromNode>::from_node(node, src)?,
498 ))),
499 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
500 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
501 ))),
502 "quasiquote" => Ok(Self::Quasiquote(::std::boxed::Box::new(
503 <Quasiquote as ::treesitter_types::FromNode>::from_node(node, src)?,
504 ))),
505 "quote" => Ok(Self::Quote(::std::boxed::Box::new(
506 <Quote as ::treesitter_types::FromNode>::from_node(node, src)?,
507 ))),
508 "record" => Ok(Self::Record(::std::boxed::Box::new(
509 <Record as ::treesitter_types::FromNode>::from_node(node, src)?,
510 ))),
511 "right_section" => Ok(Self::RightSection(::std::boxed::Box::new(
512 <RightSection as ::treesitter_types::FromNode>::from_node(node, src)?,
513 ))),
514 "splice" => Ok(Self::Splice(::std::boxed::Box::new(
515 <Splice as ::treesitter_types::FromNode>::from_node(node, src)?,
516 ))),
517 "th_quoted_name" => Ok(Self::ThQuotedName(::std::boxed::Box::new(
518 <ThQuotedName as ::treesitter_types::FromNode>::from_node(node, src)?,
519 ))),
520 "tuple" => Ok(Self::Tuple(::std::boxed::Box::new(
521 <Tuple as ::treesitter_types::FromNode>::from_node(node, src)?,
522 ))),
523 "typed_quote" => Ok(Self::TypedQuote(::std::boxed::Box::new(
524 <TypedQuote as ::treesitter_types::FromNode>::from_node(node, src)?,
525 ))),
526 "unboxed_sum" => Ok(Self::UnboxedSum(::std::boxed::Box::new(
527 <UnboxedSum as ::treesitter_types::FromNode>::from_node(node, src)?,
528 ))),
529 "unboxed_tuple" => Ok(Self::UnboxedTuple(::std::boxed::Box::new(
530 <UnboxedTuple as ::treesitter_types::FromNode>::from_node(node, src)?,
531 ))),
532 "unboxed_unit" => Ok(Self::UnboxedUnit(::std::boxed::Box::new(
533 <UnboxedUnit as ::treesitter_types::FromNode>::from_node(node, src)?,
534 ))),
535 "unit" => Ok(Self::Unit(::std::boxed::Box::new(
536 <Unit as ::treesitter_types::FromNode>::from_node(node, src)?,
537 ))),
538 "variable" => Ok(Self::Variable(::std::boxed::Box::new(
539 <Variable as ::treesitter_types::FromNode>::from_node(node, src)?,
540 ))),
541 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
542 }
543 }
544}
545impl ::treesitter_types::Spanned for Expression<'_> {
546 fn span(&self) -> ::treesitter_types::Span {
547 match self {
548 Self::Apply(inner) => inner.span(),
549 Self::ArithmeticSequence(inner) => inner.span(),
550 Self::Case(inner) => inner.span(),
551 Self::Conditional(inner) => inner.span(),
552 Self::Constructor(inner) => inner.span(),
553 Self::Do(inner) => inner.span(),
554 Self::ImplicitVariable(inner) => inner.span(),
555 Self::Infix(inner) => inner.span(),
556 Self::Label(inner) => inner.span(),
557 Self::Lambda(inner) => inner.span(),
558 Self::LambdaCase(inner) => inner.span(),
559 Self::LambdaCases(inner) => inner.span(),
560 Self::LeftSection(inner) => inner.span(),
561 Self::LetIn(inner) => inner.span(),
562 Self::List(inner) => inner.span(),
563 Self::ListComprehension(inner) => inner.span(),
564 Self::Literal(inner) => inner.span(),
565 Self::MultiWayIf(inner) => inner.span(),
566 Self::Negation(inner) => inner.span(),
567 Self::Parens(inner) => inner.span(),
568 Self::PrefixId(inner) => inner.span(),
569 Self::PrefixTuple(inner) => inner.span(),
570 Self::PrefixUnboxedSum(inner) => inner.span(),
571 Self::PrefixUnboxedTuple(inner) => inner.span(),
572 Self::Projection(inner) => inner.span(),
573 Self::ProjectionSelector(inner) => inner.span(),
574 Self::Qualified(inner) => inner.span(),
575 Self::Quasiquote(inner) => inner.span(),
576 Self::Quote(inner) => inner.span(),
577 Self::Record(inner) => inner.span(),
578 Self::RightSection(inner) => inner.span(),
579 Self::Splice(inner) => inner.span(),
580 Self::ThQuotedName(inner) => inner.span(),
581 Self::Tuple(inner) => inner.span(),
582 Self::TypedQuote(inner) => inner.span(),
583 Self::UnboxedSum(inner) => inner.span(),
584 Self::UnboxedTuple(inner) => inner.span(),
585 Self::UnboxedUnit(inner) => inner.span(),
586 Self::Unit(inner) => inner.span(),
587 Self::Variable(inner) => inner.span(),
588 }
589 }
590}
591#[derive(Debug, Clone)]
592pub enum Guard<'tree> {
593 Boolean(::std::boxed::Box<Boolean<'tree>>),
594 Let(::std::boxed::Box<Let<'tree>>),
595 PatternGuard(::std::boxed::Box<PatternGuard<'tree>>),
596}
597impl<'tree> ::treesitter_types::FromNode<'tree> for Guard<'tree> {
598 #[allow(clippy::collapsible_else_if)]
599 fn from_node(
600 node: ::tree_sitter::Node<'tree>,
601 src: &'tree [u8],
602 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
603 match node.kind() {
604 "boolean" => Ok(Self::Boolean(::std::boxed::Box::new(
605 <Boolean as ::treesitter_types::FromNode>::from_node(node, src)?,
606 ))),
607 "let" => Ok(Self::Let(::std::boxed::Box::new(
608 <Let as ::treesitter_types::FromNode>::from_node(node, src)?,
609 ))),
610 "pattern_guard" => Ok(Self::PatternGuard(::std::boxed::Box::new(
611 <PatternGuard as ::treesitter_types::FromNode>::from_node(node, src)?,
612 ))),
613 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
614 }
615 }
616}
617impl ::treesitter_types::Spanned for Guard<'_> {
618 fn span(&self) -> ::treesitter_types::Span {
619 match self {
620 Self::Boolean(inner) => inner.span(),
621 Self::Let(inner) => inner.span(),
622 Self::PatternGuard(inner) => inner.span(),
623 }
624 }
625}
626#[derive(Debug, Clone)]
627pub enum InstanceDecl<'tree> {
628 DataInstance(::std::boxed::Box<DataInstance<'tree>>),
629 Decl(::std::boxed::Box<Decl<'tree>>),
630 TypeInstance(::std::boxed::Box<TypeInstance<'tree>>),
631}
632impl<'tree> ::treesitter_types::FromNode<'tree> for InstanceDecl<'tree> {
633 #[allow(clippy::collapsible_else_if)]
634 fn from_node(
635 node: ::tree_sitter::Node<'tree>,
636 src: &'tree [u8],
637 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
638 match node.kind() {
639 "data_instance" => Ok(Self::DataInstance(::std::boxed::Box::new(
640 <DataInstance as ::treesitter_types::FromNode>::from_node(node, src)?,
641 ))),
642 "type_instance" => Ok(Self::TypeInstance(::std::boxed::Box::new(
643 <TypeInstance as ::treesitter_types::FromNode>::from_node(node, src)?,
644 ))),
645 _other => {
646 if let Ok(v) = <Decl as ::treesitter_types::FromNode>::from_node(node, src) {
647 Ok(Self::Decl(::std::boxed::Box::new(v)))
648 } else {
649 Err(::treesitter_types::ParseError::unexpected_kind(
650 _other, node,
651 ))
652 }
653 }
654 }
655 }
656}
657impl ::treesitter_types::Spanned for InstanceDecl<'_> {
658 fn span(&self) -> ::treesitter_types::Span {
659 match self {
660 Self::DataInstance(inner) => inner.span(),
661 Self::Decl(inner) => inner.span(),
662 Self::TypeInstance(inner) => inner.span(),
663 }
664 }
665}
666#[derive(Debug, Clone)]
667pub enum Pattern<'tree> {
668 Apply(::std::boxed::Box<Apply<'tree>>),
669 As(::std::boxed::Box<As<'tree>>),
670 Constructor(::std::boxed::Box<Constructor<'tree>>),
671 Infix(::std::boxed::Box<Infix<'tree>>),
672 Irrefutable(::std::boxed::Box<Irrefutable<'tree>>),
673 List(::std::boxed::Box<List<'tree>>),
674 Literal(::std::boxed::Box<Literal<'tree>>),
675 Negation(::std::boxed::Box<Negation<'tree>>),
676 Parens(::std::boxed::Box<Parens<'tree>>),
677 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
678 PrefixTuple(::std::boxed::Box<PrefixTuple<'tree>>),
679 PrefixUnboxedSum(::std::boxed::Box<PrefixUnboxedSum<'tree>>),
680 PrefixUnboxedTuple(::std::boxed::Box<PrefixUnboxedTuple<'tree>>),
681 Qualified(::std::boxed::Box<Qualified<'tree>>),
682 Quasiquote(::std::boxed::Box<Quasiquote<'tree>>),
683 Record(::std::boxed::Box<Record<'tree>>),
684 Splice(::std::boxed::Box<Splice<'tree>>),
685 Strict(::std::boxed::Box<Strict<'tree>>),
686 Tuple(::std::boxed::Box<Tuple<'tree>>),
687 UnboxedSum(::std::boxed::Box<UnboxedSum<'tree>>),
688 UnboxedTuple(::std::boxed::Box<UnboxedTuple<'tree>>),
689 UnboxedUnit(::std::boxed::Box<UnboxedUnit<'tree>>),
690 Unit(::std::boxed::Box<Unit<'tree>>),
691 Variable(::std::boxed::Box<Variable<'tree>>),
692 Wildcard(::std::boxed::Box<Wildcard<'tree>>),
693}
694impl<'tree> ::treesitter_types::FromNode<'tree> for Pattern<'tree> {
695 #[allow(clippy::collapsible_else_if)]
696 fn from_node(
697 node: ::tree_sitter::Node<'tree>,
698 src: &'tree [u8],
699 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
700 match node.kind() {
701 "apply" => Ok(Self::Apply(::std::boxed::Box::new(
702 <Apply as ::treesitter_types::FromNode>::from_node(node, src)?,
703 ))),
704 "as" => Ok(Self::As(::std::boxed::Box::new(
705 <As as ::treesitter_types::FromNode>::from_node(node, src)?,
706 ))),
707 "constructor" => Ok(Self::Constructor(::std::boxed::Box::new(
708 <Constructor as ::treesitter_types::FromNode>::from_node(node, src)?,
709 ))),
710 "infix" => Ok(Self::Infix(::std::boxed::Box::new(
711 <Infix as ::treesitter_types::FromNode>::from_node(node, src)?,
712 ))),
713 "irrefutable" => Ok(Self::Irrefutable(::std::boxed::Box::new(
714 <Irrefutable as ::treesitter_types::FromNode>::from_node(node, src)?,
715 ))),
716 "list" => Ok(Self::List(::std::boxed::Box::new(
717 <List as ::treesitter_types::FromNode>::from_node(node, src)?,
718 ))),
719 "literal" => Ok(Self::Literal(::std::boxed::Box::new(
720 <Literal as ::treesitter_types::FromNode>::from_node(node, src)?,
721 ))),
722 "negation" => Ok(Self::Negation(::std::boxed::Box::new(
723 <Negation as ::treesitter_types::FromNode>::from_node(node, src)?,
724 ))),
725 "parens" => Ok(Self::Parens(::std::boxed::Box::new(
726 <Parens as ::treesitter_types::FromNode>::from_node(node, src)?,
727 ))),
728 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
729 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
730 ))),
731 "prefix_tuple" => Ok(Self::PrefixTuple(::std::boxed::Box::new(
732 <PrefixTuple as ::treesitter_types::FromNode>::from_node(node, src)?,
733 ))),
734 "prefix_unboxed_sum" => Ok(Self::PrefixUnboxedSum(::std::boxed::Box::new(
735 <PrefixUnboxedSum as ::treesitter_types::FromNode>::from_node(node, src)?,
736 ))),
737 "prefix_unboxed_tuple" => Ok(Self::PrefixUnboxedTuple(::std::boxed::Box::new(
738 <PrefixUnboxedTuple as ::treesitter_types::FromNode>::from_node(node, src)?,
739 ))),
740 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
741 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
742 ))),
743 "quasiquote" => Ok(Self::Quasiquote(::std::boxed::Box::new(
744 <Quasiquote as ::treesitter_types::FromNode>::from_node(node, src)?,
745 ))),
746 "record" => Ok(Self::Record(::std::boxed::Box::new(
747 <Record as ::treesitter_types::FromNode>::from_node(node, src)?,
748 ))),
749 "splice" => Ok(Self::Splice(::std::boxed::Box::new(
750 <Splice as ::treesitter_types::FromNode>::from_node(node, src)?,
751 ))),
752 "strict" => Ok(Self::Strict(::std::boxed::Box::new(
753 <Strict as ::treesitter_types::FromNode>::from_node(node, src)?,
754 ))),
755 "tuple" => Ok(Self::Tuple(::std::boxed::Box::new(
756 <Tuple as ::treesitter_types::FromNode>::from_node(node, src)?,
757 ))),
758 "unboxed_sum" => Ok(Self::UnboxedSum(::std::boxed::Box::new(
759 <UnboxedSum as ::treesitter_types::FromNode>::from_node(node, src)?,
760 ))),
761 "unboxed_tuple" => Ok(Self::UnboxedTuple(::std::boxed::Box::new(
762 <UnboxedTuple as ::treesitter_types::FromNode>::from_node(node, src)?,
763 ))),
764 "unboxed_unit" => Ok(Self::UnboxedUnit(::std::boxed::Box::new(
765 <UnboxedUnit as ::treesitter_types::FromNode>::from_node(node, src)?,
766 ))),
767 "unit" => Ok(Self::Unit(::std::boxed::Box::new(
768 <Unit as ::treesitter_types::FromNode>::from_node(node, src)?,
769 ))),
770 "variable" => Ok(Self::Variable(::std::boxed::Box::new(
771 <Variable as ::treesitter_types::FromNode>::from_node(node, src)?,
772 ))),
773 "wildcard" => Ok(Self::Wildcard(::std::boxed::Box::new(
774 <Wildcard as ::treesitter_types::FromNode>::from_node(node, src)?,
775 ))),
776 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
777 }
778 }
779}
780impl ::treesitter_types::Spanned for Pattern<'_> {
781 fn span(&self) -> ::treesitter_types::Span {
782 match self {
783 Self::Apply(inner) => inner.span(),
784 Self::As(inner) => inner.span(),
785 Self::Constructor(inner) => inner.span(),
786 Self::Infix(inner) => inner.span(),
787 Self::Irrefutable(inner) => inner.span(),
788 Self::List(inner) => inner.span(),
789 Self::Literal(inner) => inner.span(),
790 Self::Negation(inner) => inner.span(),
791 Self::Parens(inner) => inner.span(),
792 Self::PrefixId(inner) => inner.span(),
793 Self::PrefixTuple(inner) => inner.span(),
794 Self::PrefixUnboxedSum(inner) => inner.span(),
795 Self::PrefixUnboxedTuple(inner) => inner.span(),
796 Self::Qualified(inner) => inner.span(),
797 Self::Quasiquote(inner) => inner.span(),
798 Self::Record(inner) => inner.span(),
799 Self::Splice(inner) => inner.span(),
800 Self::Strict(inner) => inner.span(),
801 Self::Tuple(inner) => inner.span(),
802 Self::UnboxedSum(inner) => inner.span(),
803 Self::UnboxedTuple(inner) => inner.span(),
804 Self::UnboxedUnit(inner) => inner.span(),
805 Self::Unit(inner) => inner.span(),
806 Self::Variable(inner) => inner.span(),
807 Self::Wildcard(inner) => inner.span(),
808 }
809 }
810}
811#[derive(Debug, Clone)]
812pub enum Qualifier<'tree> {
813 Boolean(::std::boxed::Box<Boolean<'tree>>),
814 Generator(::std::boxed::Box<Generator<'tree>>),
815 Group(::std::boxed::Box<Group<'tree>>),
816 Let(::std::boxed::Box<Let<'tree>>),
817 Transform(::std::boxed::Box<Transform<'tree>>),
818}
819impl<'tree> ::treesitter_types::FromNode<'tree> for Qualifier<'tree> {
820 #[allow(clippy::collapsible_else_if)]
821 fn from_node(
822 node: ::tree_sitter::Node<'tree>,
823 src: &'tree [u8],
824 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
825 match node.kind() {
826 "boolean" => Ok(Self::Boolean(::std::boxed::Box::new(
827 <Boolean as ::treesitter_types::FromNode>::from_node(node, src)?,
828 ))),
829 "generator" => Ok(Self::Generator(::std::boxed::Box::new(
830 <Generator as ::treesitter_types::FromNode>::from_node(node, src)?,
831 ))),
832 "group" => Ok(Self::Group(::std::boxed::Box::new(
833 <Group as ::treesitter_types::FromNode>::from_node(node, src)?,
834 ))),
835 "let" => Ok(Self::Let(::std::boxed::Box::new(
836 <Let as ::treesitter_types::FromNode>::from_node(node, src)?,
837 ))),
838 "transform" => Ok(Self::Transform(::std::boxed::Box::new(
839 <Transform as ::treesitter_types::FromNode>::from_node(node, src)?,
840 ))),
841 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
842 }
843 }
844}
845impl ::treesitter_types::Spanned for Qualifier<'_> {
846 fn span(&self) -> ::treesitter_types::Span {
847 match self {
848 Self::Boolean(inner) => inner.span(),
849 Self::Generator(inner) => inner.span(),
850 Self::Group(inner) => inner.span(),
851 Self::Let(inner) => inner.span(),
852 Self::Transform(inner) => inner.span(),
853 }
854 }
855}
856#[derive(Debug, Clone)]
857pub enum QuantifiedType<'tree> {
858 Context(::std::boxed::Box<Context<'tree>>),
859 Forall(::std::boxed::Box<Forall<'tree>>),
860 ForallRequired(::std::boxed::Box<ForallRequired<'tree>>),
861 Function(::std::boxed::Box<Function<'tree>>),
862 ImplicitParameter(::std::boxed::Box<ImplicitParameter<'tree>>),
863 LinearFunction(::std::boxed::Box<LinearFunction<'tree>>),
864 Type(::std::boxed::Box<Type<'tree>>),
865}
866impl<'tree> ::treesitter_types::FromNode<'tree> for QuantifiedType<'tree> {
867 #[allow(clippy::collapsible_else_if)]
868 fn from_node(
869 node: ::tree_sitter::Node<'tree>,
870 src: &'tree [u8],
871 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
872 match node.kind() {
873 "context" => Ok(Self::Context(::std::boxed::Box::new(
874 <Context as ::treesitter_types::FromNode>::from_node(node, src)?,
875 ))),
876 "forall" => Ok(Self::Forall(::std::boxed::Box::new(
877 <Forall as ::treesitter_types::FromNode>::from_node(node, src)?,
878 ))),
879 "forall_required" => Ok(Self::ForallRequired(::std::boxed::Box::new(
880 <ForallRequired as ::treesitter_types::FromNode>::from_node(node, src)?,
881 ))),
882 "function" => Ok(Self::Function(::std::boxed::Box::new(
883 <Function as ::treesitter_types::FromNode>::from_node(node, src)?,
884 ))),
885 "implicit_parameter" => Ok(Self::ImplicitParameter(::std::boxed::Box::new(
886 <ImplicitParameter as ::treesitter_types::FromNode>::from_node(node, src)?,
887 ))),
888 "linear_function" => Ok(Self::LinearFunction(::std::boxed::Box::new(
889 <LinearFunction as ::treesitter_types::FromNode>::from_node(node, src)?,
890 ))),
891 _other => {
892 if let Ok(v) = <Type as ::treesitter_types::FromNode>::from_node(node, src) {
893 Ok(Self::Type(::std::boxed::Box::new(v)))
894 } else {
895 Err(::treesitter_types::ParseError::unexpected_kind(
896 _other, node,
897 ))
898 }
899 }
900 }
901 }
902}
903impl ::treesitter_types::Spanned for QuantifiedType<'_> {
904 fn span(&self) -> ::treesitter_types::Span {
905 match self {
906 Self::Context(inner) => inner.span(),
907 Self::Forall(inner) => inner.span(),
908 Self::ForallRequired(inner) => inner.span(),
909 Self::Function(inner) => inner.span(),
910 Self::ImplicitParameter(inner) => inner.span(),
911 Self::LinearFunction(inner) => inner.span(),
912 Self::Type(inner) => inner.span(),
913 }
914 }
915}
916#[derive(Debug, Clone)]
917pub enum Statement<'tree> {
918 Bind(::std::boxed::Box<Bind<'tree>>),
919 Exp(::std::boxed::Box<Exp<'tree>>),
920 Let(::std::boxed::Box<Let<'tree>>),
921 Rec(::std::boxed::Box<Rec<'tree>>),
922}
923impl<'tree> ::treesitter_types::FromNode<'tree> for Statement<'tree> {
924 #[allow(clippy::collapsible_else_if)]
925 fn from_node(
926 node: ::tree_sitter::Node<'tree>,
927 src: &'tree [u8],
928 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
929 match node.kind() {
930 "bind" => Ok(Self::Bind(::std::boxed::Box::new(
931 <Bind as ::treesitter_types::FromNode>::from_node(node, src)?,
932 ))),
933 "exp" => Ok(Self::Exp(::std::boxed::Box::new(
934 <Exp as ::treesitter_types::FromNode>::from_node(node, src)?,
935 ))),
936 "let" => Ok(Self::Let(::std::boxed::Box::new(
937 <Let as ::treesitter_types::FromNode>::from_node(node, src)?,
938 ))),
939 "rec" => Ok(Self::Rec(::std::boxed::Box::new(
940 <Rec as ::treesitter_types::FromNode>::from_node(node, src)?,
941 ))),
942 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
943 }
944 }
945}
946impl ::treesitter_types::Spanned for Statement<'_> {
947 fn span(&self) -> ::treesitter_types::Span {
948 match self {
949 Self::Bind(inner) => inner.span(),
950 Self::Exp(inner) => inner.span(),
951 Self::Let(inner) => inner.span(),
952 Self::Rec(inner) => inner.span(),
953 }
954 }
955}
956#[derive(Debug, Clone)]
957pub enum Type<'tree> {
958 Apply(::std::boxed::Box<Apply<'tree>>),
959 Infix(::std::boxed::Box<Infix<'tree>>),
960 List(::std::boxed::Box<List<'tree>>),
961 Literal(::std::boxed::Box<Literal<'tree>>),
962 Name(::std::boxed::Box<Name<'tree>>),
963 Parens(::std::boxed::Box<Parens<'tree>>),
964 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
965 PrefixList(::std::boxed::Box<PrefixList<'tree>>),
966 PrefixTuple(::std::boxed::Box<PrefixTuple<'tree>>),
967 PrefixUnboxedSum(::std::boxed::Box<PrefixUnboxedSum<'tree>>),
968 PrefixUnboxedTuple(::std::boxed::Box<PrefixUnboxedTuple<'tree>>),
969 Promoted(::std::boxed::Box<Promoted<'tree>>),
970 Qualified(::std::boxed::Box<Qualified<'tree>>),
971 Quasiquote(::std::boxed::Box<Quasiquote<'tree>>),
972 Splice(::std::boxed::Box<Splice<'tree>>),
973 Star(::std::boxed::Box<Star<'tree>>),
974 Tuple(::std::boxed::Box<Tuple<'tree>>),
975 UnboxedSum(::std::boxed::Box<UnboxedSum<'tree>>),
976 UnboxedTuple(::std::boxed::Box<UnboxedTuple<'tree>>),
977 UnboxedUnit(::std::boxed::Box<UnboxedUnit<'tree>>),
978 Unit(::std::boxed::Box<Unit<'tree>>),
979 Variable(::std::boxed::Box<Variable<'tree>>),
980 Wildcard(::std::boxed::Box<Wildcard<'tree>>),
981}
982impl<'tree> ::treesitter_types::FromNode<'tree> for Type<'tree> {
983 #[allow(clippy::collapsible_else_if)]
984 fn from_node(
985 node: ::tree_sitter::Node<'tree>,
986 src: &'tree [u8],
987 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
988 match node.kind() {
989 "apply" => Ok(Self::Apply(::std::boxed::Box::new(
990 <Apply as ::treesitter_types::FromNode>::from_node(node, src)?,
991 ))),
992 "infix" => Ok(Self::Infix(::std::boxed::Box::new(
993 <Infix as ::treesitter_types::FromNode>::from_node(node, src)?,
994 ))),
995 "list" => Ok(Self::List(::std::boxed::Box::new(
996 <List as ::treesitter_types::FromNode>::from_node(node, src)?,
997 ))),
998 "literal" => Ok(Self::Literal(::std::boxed::Box::new(
999 <Literal as ::treesitter_types::FromNode>::from_node(node, src)?,
1000 ))),
1001 "name" => Ok(Self::Name(::std::boxed::Box::new(
1002 <Name as ::treesitter_types::FromNode>::from_node(node, src)?,
1003 ))),
1004 "parens" => Ok(Self::Parens(::std::boxed::Box::new(
1005 <Parens as ::treesitter_types::FromNode>::from_node(node, src)?,
1006 ))),
1007 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
1008 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
1009 ))),
1010 "prefix_list" => Ok(Self::PrefixList(::std::boxed::Box::new(
1011 <PrefixList as ::treesitter_types::FromNode>::from_node(node, src)?,
1012 ))),
1013 "prefix_tuple" => Ok(Self::PrefixTuple(::std::boxed::Box::new(
1014 <PrefixTuple as ::treesitter_types::FromNode>::from_node(node, src)?,
1015 ))),
1016 "prefix_unboxed_sum" => Ok(Self::PrefixUnboxedSum(::std::boxed::Box::new(
1017 <PrefixUnboxedSum as ::treesitter_types::FromNode>::from_node(node, src)?,
1018 ))),
1019 "prefix_unboxed_tuple" => Ok(Self::PrefixUnboxedTuple(::std::boxed::Box::new(
1020 <PrefixUnboxedTuple as ::treesitter_types::FromNode>::from_node(node, src)?,
1021 ))),
1022 "promoted" => Ok(Self::Promoted(::std::boxed::Box::new(
1023 <Promoted as ::treesitter_types::FromNode>::from_node(node, src)?,
1024 ))),
1025 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
1026 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
1027 ))),
1028 "quasiquote" => Ok(Self::Quasiquote(::std::boxed::Box::new(
1029 <Quasiquote as ::treesitter_types::FromNode>::from_node(node, src)?,
1030 ))),
1031 "splice" => Ok(Self::Splice(::std::boxed::Box::new(
1032 <Splice as ::treesitter_types::FromNode>::from_node(node, src)?,
1033 ))),
1034 "star" => Ok(Self::Star(::std::boxed::Box::new(
1035 <Star as ::treesitter_types::FromNode>::from_node(node, src)?,
1036 ))),
1037 "tuple" => Ok(Self::Tuple(::std::boxed::Box::new(
1038 <Tuple as ::treesitter_types::FromNode>::from_node(node, src)?,
1039 ))),
1040 "unboxed_sum" => Ok(Self::UnboxedSum(::std::boxed::Box::new(
1041 <UnboxedSum as ::treesitter_types::FromNode>::from_node(node, src)?,
1042 ))),
1043 "unboxed_tuple" => Ok(Self::UnboxedTuple(::std::boxed::Box::new(
1044 <UnboxedTuple as ::treesitter_types::FromNode>::from_node(node, src)?,
1045 ))),
1046 "unboxed_unit" => Ok(Self::UnboxedUnit(::std::boxed::Box::new(
1047 <UnboxedUnit as ::treesitter_types::FromNode>::from_node(node, src)?,
1048 ))),
1049 "unit" => Ok(Self::Unit(::std::boxed::Box::new(
1050 <Unit as ::treesitter_types::FromNode>::from_node(node, src)?,
1051 ))),
1052 "variable" => Ok(Self::Variable(::std::boxed::Box::new(
1053 <Variable as ::treesitter_types::FromNode>::from_node(node, src)?,
1054 ))),
1055 "wildcard" => Ok(Self::Wildcard(::std::boxed::Box::new(
1056 <Wildcard as ::treesitter_types::FromNode>::from_node(node, src)?,
1057 ))),
1058 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
1059 }
1060 }
1061}
1062impl ::treesitter_types::Spanned for Type<'_> {
1063 fn span(&self) -> ::treesitter_types::Span {
1064 match self {
1065 Self::Apply(inner) => inner.span(),
1066 Self::Infix(inner) => inner.span(),
1067 Self::List(inner) => inner.span(),
1068 Self::Literal(inner) => inner.span(),
1069 Self::Name(inner) => inner.span(),
1070 Self::Parens(inner) => inner.span(),
1071 Self::PrefixId(inner) => inner.span(),
1072 Self::PrefixList(inner) => inner.span(),
1073 Self::PrefixTuple(inner) => inner.span(),
1074 Self::PrefixUnboxedSum(inner) => inner.span(),
1075 Self::PrefixUnboxedTuple(inner) => inner.span(),
1076 Self::Promoted(inner) => inner.span(),
1077 Self::Qualified(inner) => inner.span(),
1078 Self::Quasiquote(inner) => inner.span(),
1079 Self::Splice(inner) => inner.span(),
1080 Self::Star(inner) => inner.span(),
1081 Self::Tuple(inner) => inner.span(),
1082 Self::UnboxedSum(inner) => inner.span(),
1083 Self::UnboxedTuple(inner) => inner.span(),
1084 Self::UnboxedUnit(inner) => inner.span(),
1085 Self::Unit(inner) => inner.span(),
1086 Self::Variable(inner) => inner.span(),
1087 Self::Wildcard(inner) => inner.span(),
1088 }
1089 }
1090}
1091#[derive(Debug, Clone)]
1092pub enum TypeParam<'tree> {
1093 Invisible(::std::boxed::Box<Invisible<'tree>>),
1094 Parens(::std::boxed::Box<Parens<'tree>>),
1095 Variable(::std::boxed::Box<Variable<'tree>>),
1096 Wildcard(::std::boxed::Box<Wildcard<'tree>>),
1097}
1098impl<'tree> ::treesitter_types::FromNode<'tree> for TypeParam<'tree> {
1099 #[allow(clippy::collapsible_else_if)]
1100 fn from_node(
1101 node: ::tree_sitter::Node<'tree>,
1102 src: &'tree [u8],
1103 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1104 match node.kind() {
1105 "invisible" => Ok(Self::Invisible(::std::boxed::Box::new(
1106 <Invisible as ::treesitter_types::FromNode>::from_node(node, src)?,
1107 ))),
1108 "parens" => Ok(Self::Parens(::std::boxed::Box::new(
1109 <Parens as ::treesitter_types::FromNode>::from_node(node, src)?,
1110 ))),
1111 "variable" => Ok(Self::Variable(::std::boxed::Box::new(
1112 <Variable as ::treesitter_types::FromNode>::from_node(node, src)?,
1113 ))),
1114 "wildcard" => Ok(Self::Wildcard(::std::boxed::Box::new(
1115 <Wildcard as ::treesitter_types::FromNode>::from_node(node, src)?,
1116 ))),
1117 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
1118 }
1119 }
1120}
1121impl ::treesitter_types::Spanned for TypeParam<'_> {
1122 fn span(&self) -> ::treesitter_types::Span {
1123 match self {
1124 Self::Invisible(inner) => inner.span(),
1125 Self::Parens(inner) => inner.span(),
1126 Self::Variable(inner) => inner.span(),
1127 Self::Wildcard(inner) => inner.span(),
1128 }
1129 }
1130}
1131#[derive(Debug, Clone)]
1132pub struct AbstractFamily<'tree> {
1133 pub span: ::treesitter_types::Span,
1134 text: &'tree str,
1135}
1136impl<'tree> ::treesitter_types::FromNode<'tree> for AbstractFamily<'tree> {
1137 fn from_node(
1138 node: ::tree_sitter::Node<'tree>,
1139 src: &'tree [u8],
1140 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1141 debug_assert_eq!(node.kind(), "abstract_family");
1142 Ok(Self {
1143 span: ::treesitter_types::Span::from(node),
1144 text: node.utf8_text(src)?,
1145 })
1146 }
1147}
1148impl<'tree> ::treesitter_types::LeafNode<'tree> for AbstractFamily<'tree> {
1149 fn text(&self) -> &'tree str {
1150 self.text
1151 }
1152}
1153impl ::treesitter_types::Spanned for AbstractFamily<'_> {
1154 fn span(&self) -> ::treesitter_types::Span {
1155 self.span
1156 }
1157}
1158#[derive(Debug, Clone)]
1159pub struct Alternative<'tree> {
1160 pub span: ::treesitter_types::Span,
1161 pub binds: ::core::option::Option<LocalBinds<'tree>>,
1162 pub r#match: ::std::vec::Vec<Match<'tree>>,
1163 pub pattern: ::core::option::Option<AlternativePattern<'tree>>,
1164 pub patterns: ::core::option::Option<Patterns<'tree>>,
1165}
1166impl<'tree> ::treesitter_types::FromNode<'tree> for Alternative<'tree> {
1167 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1168 fn from_node(
1169 node: ::tree_sitter::Node<'tree>,
1170 src: &'tree [u8],
1171 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1172 debug_assert_eq!(node.kind(), "alternative");
1173 Ok(Self {
1174 span: ::treesitter_types::Span::from(node),
1175 binds: match node.child_by_field_name("binds") {
1176 Some(child) => Some(<LocalBinds as ::treesitter_types::FromNode>::from_node(
1177 child, src,
1178 )?),
1179 None => None,
1180 },
1181 r#match: {
1182 let mut cursor = node.walk();
1183 let mut items = ::std::vec::Vec::new();
1184 for child in node.children_by_field_name("match", &mut cursor) {
1185 items.push(<Match as ::treesitter_types::FromNode>::from_node(
1186 child, src,
1187 )?);
1188 }
1189 items
1190 },
1191 pattern: match node.child_by_field_name("pattern") {
1192 Some(child) => Some(
1193 <AlternativePattern as ::treesitter_types::FromNode>::from_node(child, src)?,
1194 ),
1195 None => None,
1196 },
1197 patterns: match node.child_by_field_name("patterns") {
1198 Some(child) => Some(<Patterns as ::treesitter_types::FromNode>::from_node(
1199 child, src,
1200 )?),
1201 None => None,
1202 },
1203 })
1204 }
1205}
1206impl ::treesitter_types::Spanned for Alternative<'_> {
1207 fn span(&self) -> ::treesitter_types::Span {
1208 self.span
1209 }
1210}
1211#[derive(Debug, Clone)]
1212pub struct Alternatives<'tree> {
1213 pub span: ::treesitter_types::Span,
1214 pub alternative: ::std::vec::Vec<Alternative<'tree>>,
1215}
1216impl<'tree> ::treesitter_types::FromNode<'tree> for Alternatives<'tree> {
1217 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1218 fn from_node(
1219 node: ::tree_sitter::Node<'tree>,
1220 src: &'tree [u8],
1221 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1222 debug_assert_eq!(node.kind(), "alternatives");
1223 Ok(Self {
1224 span: ::treesitter_types::Span::from(node),
1225 alternative: {
1226 let mut cursor = node.walk();
1227 let mut items = ::std::vec::Vec::new();
1228 for child in node.children_by_field_name("alternative", &mut cursor) {
1229 items.push(<Alternative as ::treesitter_types::FromNode>::from_node(
1230 child, src,
1231 )?);
1232 }
1233 items
1234 },
1235 })
1236 }
1237}
1238impl ::treesitter_types::Spanned for Alternatives<'_> {
1239 fn span(&self) -> ::treesitter_types::Span {
1240 self.span
1241 }
1242}
1243#[derive(Debug, Clone)]
1244pub struct Annotated<'tree> {
1245 pub span: ::treesitter_types::Span,
1246 pub kind: QuantifiedType<'tree>,
1247 pub children: TypeParam<'tree>,
1248}
1249impl<'tree> ::treesitter_types::FromNode<'tree> for Annotated<'tree> {
1250 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1251 fn from_node(
1252 node: ::tree_sitter::Node<'tree>,
1253 src: &'tree [u8],
1254 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1255 debug_assert_eq!(node.kind(), "annotated");
1256 Ok(Self {
1257 span: ::treesitter_types::Span::from(node),
1258 kind: {
1259 let child = node
1260 .child_by_field_name("kind")
1261 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("kind", node))?;
1262 <QuantifiedType as ::treesitter_types::FromNode>::from_node(child, src)?
1263 },
1264 children: {
1265 #[allow(clippy::suspicious_else_formatting)]
1266 let non_field_children = {
1267 let mut cursor = node.walk();
1268 let mut result = ::std::vec::Vec::new();
1269 if cursor.goto_first_child() {
1270 loop {
1271 if cursor.field_name().is_none()
1272 && cursor.node().is_named()
1273 && !cursor.node().is_extra()
1274 {
1275 result.push(cursor.node());
1276 }
1277 if !cursor.goto_next_sibling() {
1278 break;
1279 }
1280 }
1281 }
1282 result
1283 };
1284 let child = if let Some(&c) = non_field_children.first() {
1285 c
1286 } else {
1287 let mut fallback_cursor = node.walk();
1288 let mut fallback_child = None;
1289 if fallback_cursor.goto_first_child() {
1290 loop {
1291 if fallback_cursor.field_name().is_none()
1292 && !fallback_cursor.node().is_extra()
1293 {
1294 let candidate = fallback_cursor.node();
1295 #[allow(clippy::needless_question_mark)]
1296 if (|| -> ::core::result::Result<
1297 _,
1298 ::treesitter_types::ParseError,
1299 > {
1300 let child = candidate;
1301 Ok(
1302 <TypeParam as ::treesitter_types::FromNode>::from_node(
1303 child,
1304 src,
1305 )?,
1306 )
1307 })()
1308 .is_ok()
1309 {
1310 fallback_child = Some(candidate);
1311 break;
1312 }
1313 }
1314 if !fallback_cursor.goto_next_sibling() {
1315 break;
1316 }
1317 }
1318 }
1319 if fallback_child.is_none() {
1320 let mut cursor2 = node.walk();
1321 if cursor2.goto_first_child() {
1322 loop {
1323 if cursor2.node().is_named() && !cursor2.node().is_extra() {
1324 let candidate = cursor2.node();
1325 #[allow(clippy::needless_question_mark)]
1326 if (|| -> ::core::result::Result<
1327 _,
1328 ::treesitter_types::ParseError,
1329 > {
1330 let child = candidate;
1331 Ok(
1332 <TypeParam as ::treesitter_types::FromNode>::from_node(
1333 child,
1334 src,
1335 )?,
1336 )
1337 })()
1338 .is_ok()
1339 {
1340 fallback_child = Some(candidate);
1341 break;
1342 }
1343 }
1344 if !cursor2.goto_next_sibling() {
1345 break;
1346 }
1347 }
1348 }
1349 }
1350 fallback_child.ok_or_else(|| {
1351 ::treesitter_types::ParseError::missing_field("children", node)
1352 })?
1353 };
1354 <TypeParam as ::treesitter_types::FromNode>::from_node(child, src)?
1355 },
1356 })
1357 }
1358}
1359impl ::treesitter_types::Spanned for Annotated<'_> {
1360 fn span(&self) -> ::treesitter_types::Span {
1361 self.span
1362 }
1363}
1364#[derive(Debug, Clone)]
1365pub struct Apply<'tree> {
1366 pub span: ::treesitter_types::Span,
1367 pub argument: ApplyArgument<'tree>,
1368 pub constructor: ::core::option::Option<ApplyConstructor<'tree>>,
1369 pub function: ::core::option::Option<ApplyFunction<'tree>>,
1370}
1371impl<'tree> ::treesitter_types::FromNode<'tree> for Apply<'tree> {
1372 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1373 fn from_node(
1374 node: ::tree_sitter::Node<'tree>,
1375 src: &'tree [u8],
1376 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1377 debug_assert_eq!(node.kind(), "apply");
1378 Ok(Self {
1379 span: ::treesitter_types::Span::from(node),
1380 argument: {
1381 let child = node.child_by_field_name("argument").ok_or_else(|| {
1382 ::treesitter_types::ParseError::missing_field("argument", node)
1383 })?;
1384 <ApplyArgument as ::treesitter_types::FromNode>::from_node(child, src)?
1385 },
1386 constructor: match node.child_by_field_name("constructor") {
1387 Some(child) => {
1388 Some(<ApplyConstructor as ::treesitter_types::FromNode>::from_node(child, src)?)
1389 }
1390 None => None,
1391 },
1392 function: match node.child_by_field_name("function") {
1393 Some(child) => Some(<ApplyFunction as ::treesitter_types::FromNode>::from_node(
1394 child, src,
1395 )?),
1396 None => None,
1397 },
1398 })
1399 }
1400}
1401impl ::treesitter_types::Spanned for Apply<'_> {
1402 fn span(&self) -> ::treesitter_types::Span {
1403 self.span
1404 }
1405}
1406#[derive(Debug, Clone)]
1407pub struct ArithmeticSequence<'tree> {
1408 pub span: ::treesitter_types::Span,
1409 pub from: ArithmeticSequenceFrom<'tree>,
1410 pub step: ::core::option::Option<ArithmeticSequenceStep<'tree>>,
1411 pub to: ::core::option::Option<ArithmeticSequenceTo<'tree>>,
1412}
1413impl<'tree> ::treesitter_types::FromNode<'tree> for ArithmeticSequence<'tree> {
1414 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1415 fn from_node(
1416 node: ::tree_sitter::Node<'tree>,
1417 src: &'tree [u8],
1418 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1419 debug_assert_eq!(node.kind(), "arithmetic_sequence");
1420 Ok(Self {
1421 span: ::treesitter_types::Span::from(node),
1422 from: {
1423 let child = node
1424 .child_by_field_name("from")
1425 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("from", node))?;
1426 <ArithmeticSequenceFrom as ::treesitter_types::FromNode>::from_node(child, src)?
1427 },
1428 step: match node.child_by_field_name("step") {
1429 Some(child) => Some(
1430 <ArithmeticSequenceStep as ::treesitter_types::FromNode>::from_node(
1431 child, src,
1432 )?,
1433 ),
1434 None => None,
1435 },
1436 to: match node.child_by_field_name("to") {
1437 Some(child) => Some(
1438 <ArithmeticSequenceTo as ::treesitter_types::FromNode>::from_node(child, src)?,
1439 ),
1440 None => None,
1441 },
1442 })
1443 }
1444}
1445impl ::treesitter_types::Spanned for ArithmeticSequence<'_> {
1446 fn span(&self) -> ::treesitter_types::Span {
1447 self.span
1448 }
1449}
1450#[derive(Debug, Clone)]
1451pub struct As<'tree> {
1452 pub span: ::treesitter_types::Span,
1453 pub bind: Variable<'tree>,
1454 pub pattern: Pattern<'tree>,
1455}
1456impl<'tree> ::treesitter_types::FromNode<'tree> for As<'tree> {
1457 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1458 fn from_node(
1459 node: ::tree_sitter::Node<'tree>,
1460 src: &'tree [u8],
1461 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1462 debug_assert_eq!(node.kind(), "as");
1463 Ok(Self {
1464 span: ::treesitter_types::Span::from(node),
1465 bind: {
1466 let child = node
1467 .child_by_field_name("bind")
1468 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("bind", node))?;
1469 <Variable as ::treesitter_types::FromNode>::from_node(child, src)?
1470 },
1471 pattern: {
1472 let child = node.child_by_field_name("pattern").ok_or_else(|| {
1473 ::treesitter_types::ParseError::missing_field("pattern", node)
1474 })?;
1475 <Pattern as ::treesitter_types::FromNode>::from_node(child, src)?
1476 },
1477 })
1478 }
1479}
1480impl ::treesitter_types::Spanned for As<'_> {
1481 fn span(&self) -> ::treesitter_types::Span {
1482 self.span
1483 }
1484}
1485#[derive(Debug, Clone)]
1486pub struct AssociatedType<'tree> {
1487 pub span: ::treesitter_types::Span,
1488 pub namespace: AssociatedTypeNamespace,
1489 pub r#type: AssociatedTypeType<'tree>,
1490}
1491impl<'tree> ::treesitter_types::FromNode<'tree> for AssociatedType<'tree> {
1492 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1493 fn from_node(
1494 node: ::tree_sitter::Node<'tree>,
1495 src: &'tree [u8],
1496 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1497 debug_assert_eq!(node.kind(), "associated_type");
1498 Ok(Self {
1499 span: ::treesitter_types::Span::from(node),
1500 namespace: {
1501 let child = node.child_by_field_name("namespace").ok_or_else(|| {
1502 ::treesitter_types::ParseError::missing_field("namespace", node)
1503 })?;
1504 <AssociatedTypeNamespace as ::treesitter_types::FromNode>::from_node(child, src)?
1505 },
1506 r#type: {
1507 let child = node
1508 .child_by_field_name("type")
1509 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("type", node))?;
1510 <AssociatedTypeType as ::treesitter_types::FromNode>::from_node(child, src)?
1511 },
1512 })
1513 }
1514}
1515impl ::treesitter_types::Spanned for AssociatedType<'_> {
1516 fn span(&self) -> ::treesitter_types::Span {
1517 self.span
1518 }
1519}
1520#[derive(Debug, Clone)]
1521pub struct Bind<'tree> {
1522 pub span: ::treesitter_types::Span,
1523 pub arrow: ::core::option::Option<BindArrow>,
1524 pub binds: ::core::option::Option<LocalBinds<'tree>>,
1525 pub expression: ::core::option::Option<BindExpression<'tree>>,
1526 pub implicit: ::core::option::Option<ImplicitVariable<'tree>>,
1527 pub r#match: ::std::vec::Vec<Match<'tree>>,
1528 pub name: ::core::option::Option<BindName<'tree>>,
1529 pub pattern: ::core::option::Option<BindPattern<'tree>>,
1530}
1531impl<'tree> ::treesitter_types::FromNode<'tree> for Bind<'tree> {
1532 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1533 fn from_node(
1534 node: ::tree_sitter::Node<'tree>,
1535 src: &'tree [u8],
1536 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1537 debug_assert_eq!(node.kind(), "bind");
1538 Ok(Self {
1539 span: ::treesitter_types::Span::from(node),
1540 arrow: match node.child_by_field_name("arrow") {
1541 Some(child) => Some(<BindArrow as ::treesitter_types::FromNode>::from_node(
1542 child, src,
1543 )?),
1544 None => None,
1545 },
1546 binds: match node.child_by_field_name("binds") {
1547 Some(child) => Some(<LocalBinds as ::treesitter_types::FromNode>::from_node(
1548 child, src,
1549 )?),
1550 None => None,
1551 },
1552 expression: match node.child_by_field_name("expression") {
1553 Some(child) => Some(<BindExpression as ::treesitter_types::FromNode>::from_node(
1554 child, src,
1555 )?),
1556 None => None,
1557 },
1558 implicit: match node.child_by_field_name("implicit") {
1559 Some(child) => {
1560 Some(<ImplicitVariable as ::treesitter_types::FromNode>::from_node(child, src)?)
1561 }
1562 None => None,
1563 },
1564 r#match: {
1565 let mut cursor = node.walk();
1566 let mut items = ::std::vec::Vec::new();
1567 for child in node.children_by_field_name("match", &mut cursor) {
1568 items.push(<Match as ::treesitter_types::FromNode>::from_node(
1569 child, src,
1570 )?);
1571 }
1572 items
1573 },
1574 name: match node.child_by_field_name("name") {
1575 Some(child) => Some(<BindName as ::treesitter_types::FromNode>::from_node(
1576 child, src,
1577 )?),
1578 None => None,
1579 },
1580 pattern: match node.child_by_field_name("pattern") {
1581 Some(child) => Some(<BindPattern as ::treesitter_types::FromNode>::from_node(
1582 child, src,
1583 )?),
1584 None => None,
1585 },
1586 })
1587 }
1588}
1589impl ::treesitter_types::Spanned for Bind<'_> {
1590 fn span(&self) -> ::treesitter_types::Span {
1591 self.span
1592 }
1593}
1594#[derive(Debug, Clone)]
1595pub struct BindingList<'tree> {
1596 pub span: ::treesitter_types::Span,
1597 pub name: ::std::vec::Vec<BindingListName<'tree>>,
1598}
1599impl<'tree> ::treesitter_types::FromNode<'tree> for BindingList<'tree> {
1600 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1601 fn from_node(
1602 node: ::tree_sitter::Node<'tree>,
1603 src: &'tree [u8],
1604 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1605 debug_assert_eq!(node.kind(), "binding_list");
1606 Ok(Self {
1607 span: ::treesitter_types::Span::from(node),
1608 name: {
1609 let mut cursor = node.walk();
1610 let mut items = ::std::vec::Vec::new();
1611 for child in node.children_by_field_name("name", &mut cursor) {
1612 items.push(
1613 <BindingListName as ::treesitter_types::FromNode>::from_node(child, src)?,
1614 );
1615 }
1616 items
1617 },
1618 })
1619 }
1620}
1621impl ::treesitter_types::Spanned for BindingList<'_> {
1622 fn span(&self) -> ::treesitter_types::Span {
1623 self.span
1624 }
1625}
1626#[derive(Debug, Clone)]
1627pub struct Boolean<'tree> {
1628 pub span: ::treesitter_types::Span,
1629 pub children: BooleanChildren<'tree>,
1630}
1631impl<'tree> ::treesitter_types::FromNode<'tree> for Boolean<'tree> {
1632 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1633 fn from_node(
1634 node: ::tree_sitter::Node<'tree>,
1635 src: &'tree [u8],
1636 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1637 debug_assert_eq!(node.kind(), "boolean");
1638 Ok(Self {
1639 span: ::treesitter_types::Span::from(node),
1640 children: {
1641 #[allow(clippy::suspicious_else_formatting)]
1642 let non_field_children = {
1643 let mut cursor = node.walk();
1644 let mut result = ::std::vec::Vec::new();
1645 if cursor.goto_first_child() {
1646 loop {
1647 if cursor.field_name().is_none()
1648 && cursor.node().is_named()
1649 && !cursor.node().is_extra()
1650 {
1651 result.push(cursor.node());
1652 }
1653 if !cursor.goto_next_sibling() {
1654 break;
1655 }
1656 }
1657 }
1658 result
1659 };
1660 let child = if let Some(&c) = non_field_children.first() {
1661 c
1662 } else {
1663 let mut fallback_cursor = node.walk();
1664 let mut fallback_child = None;
1665 if fallback_cursor.goto_first_child() {
1666 loop {
1667 if fallback_cursor.field_name().is_none()
1668 && !fallback_cursor.node().is_extra()
1669 {
1670 let candidate = fallback_cursor.node();
1671 #[allow(clippy::needless_question_mark)]
1672 if (|| -> ::core::result::Result<
1673 _,
1674 ::treesitter_types::ParseError,
1675 > {
1676 let child = candidate;
1677 Ok(
1678 <BooleanChildren as ::treesitter_types::FromNode>::from_node(
1679 child,
1680 src,
1681 )?,
1682 )
1683 })()
1684 .is_ok()
1685 {
1686 fallback_child = Some(candidate);
1687 break;
1688 }
1689 }
1690 if !fallback_cursor.goto_next_sibling() {
1691 break;
1692 }
1693 }
1694 }
1695 if fallback_child.is_none() {
1696 let mut cursor2 = node.walk();
1697 if cursor2.goto_first_child() {
1698 loop {
1699 if cursor2.node().is_named() && !cursor2.node().is_extra() {
1700 let candidate = cursor2.node();
1701 #[allow(clippy::needless_question_mark)]
1702 if (|| -> ::core::result::Result<
1703 _,
1704 ::treesitter_types::ParseError,
1705 > {
1706 let child = candidate;
1707 Ok(
1708 <BooleanChildren as ::treesitter_types::FromNode>::from_node(
1709 child,
1710 src,
1711 )?,
1712 )
1713 })()
1714 .is_ok()
1715 {
1716 fallback_child = Some(candidate);
1717 break;
1718 }
1719 }
1720 if !cursor2.goto_next_sibling() {
1721 break;
1722 }
1723 }
1724 }
1725 }
1726 fallback_child.ok_or_else(|| {
1727 ::treesitter_types::ParseError::missing_field("children", node)
1728 })?
1729 };
1730 <BooleanChildren as ::treesitter_types::FromNode>::from_node(child, src)?
1731 },
1732 })
1733 }
1734}
1735impl ::treesitter_types::Spanned for Boolean<'_> {
1736 fn span(&self) -> ::treesitter_types::Span {
1737 self.span
1738 }
1739}
1740#[derive(Debug, Clone)]
1741pub struct Case<'tree> {
1742 pub span: ::treesitter_types::Span,
1743 pub alternatives: ::core::option::Option<Alternatives<'tree>>,
1744 pub children: CaseChildren<'tree>,
1745}
1746impl<'tree> ::treesitter_types::FromNode<'tree> for Case<'tree> {
1747 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1748 fn from_node(
1749 node: ::tree_sitter::Node<'tree>,
1750 src: &'tree [u8],
1751 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1752 debug_assert_eq!(node.kind(), "case");
1753 Ok(Self {
1754 span: ::treesitter_types::Span::from(node),
1755 alternatives: match node.child_by_field_name("alternatives") {
1756 Some(child) => Some(<Alternatives as ::treesitter_types::FromNode>::from_node(
1757 child, src,
1758 )?),
1759 None => None,
1760 },
1761 children: {
1762 #[allow(clippy::suspicious_else_formatting)]
1763 let non_field_children = {
1764 let mut cursor = node.walk();
1765 let mut result = ::std::vec::Vec::new();
1766 if cursor.goto_first_child() {
1767 loop {
1768 if cursor.field_name().is_none()
1769 && cursor.node().is_named()
1770 && !cursor.node().is_extra()
1771 {
1772 result.push(cursor.node());
1773 }
1774 if !cursor.goto_next_sibling() {
1775 break;
1776 }
1777 }
1778 }
1779 result
1780 };
1781 let child = if let Some(&c) = non_field_children.first() {
1782 c
1783 } else {
1784 let mut fallback_cursor = node.walk();
1785 let mut fallback_child = None;
1786 if fallback_cursor.goto_first_child() {
1787 loop {
1788 if fallback_cursor.field_name().is_none()
1789 && !fallback_cursor.node().is_extra()
1790 {
1791 let candidate = fallback_cursor.node();
1792 #[allow(clippy::needless_question_mark)]
1793 if (|| -> ::core::result::Result<
1794 _,
1795 ::treesitter_types::ParseError,
1796 > {
1797 let child = candidate;
1798 Ok(
1799 <CaseChildren as ::treesitter_types::FromNode>::from_node(
1800 child,
1801 src,
1802 )?,
1803 )
1804 })()
1805 .is_ok()
1806 {
1807 fallback_child = Some(candidate);
1808 break;
1809 }
1810 }
1811 if !fallback_cursor.goto_next_sibling() {
1812 break;
1813 }
1814 }
1815 }
1816 if fallback_child.is_none() {
1817 let mut cursor2 = node.walk();
1818 if cursor2.goto_first_child() {
1819 loop {
1820 if cursor2.node().is_named() && !cursor2.node().is_extra() {
1821 let candidate = cursor2.node();
1822 #[allow(clippy::needless_question_mark)]
1823 if (|| -> ::core::result::Result<
1824 _,
1825 ::treesitter_types::ParseError,
1826 > {
1827 let child = candidate;
1828 Ok(
1829 <CaseChildren as ::treesitter_types::FromNode>::from_node(
1830 child,
1831 src,
1832 )?,
1833 )
1834 })()
1835 .is_ok()
1836 {
1837 fallback_child = Some(candidate);
1838 break;
1839 }
1840 }
1841 if !cursor2.goto_next_sibling() {
1842 break;
1843 }
1844 }
1845 }
1846 }
1847 fallback_child.ok_or_else(|| {
1848 ::treesitter_types::ParseError::missing_field("children", node)
1849 })?
1850 };
1851 <CaseChildren as ::treesitter_types::FromNode>::from_node(child, src)?
1852 },
1853 })
1854 }
1855}
1856impl ::treesitter_types::Spanned for Case<'_> {
1857 fn span(&self) -> ::treesitter_types::Span {
1858 self.span
1859 }
1860}
1861#[derive(Debug, Clone)]
1862pub struct Children<'tree> {
1863 pub span: ::treesitter_types::Span,
1864 pub element: ::std::vec::Vec<ChildrenElement<'tree>>,
1865}
1866impl<'tree> ::treesitter_types::FromNode<'tree> for Children<'tree> {
1867 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1868 fn from_node(
1869 node: ::tree_sitter::Node<'tree>,
1870 src: &'tree [u8],
1871 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1872 debug_assert_eq!(node.kind(), "children");
1873 Ok(Self {
1874 span: ::treesitter_types::Span::from(node),
1875 element: {
1876 let mut cursor = node.walk();
1877 let mut items = ::std::vec::Vec::new();
1878 for child in node.children_by_field_name("element", &mut cursor) {
1879 items.push(
1880 <ChildrenElement as ::treesitter_types::FromNode>::from_node(child, src)?,
1881 );
1882 }
1883 items
1884 },
1885 })
1886 }
1887}
1888impl ::treesitter_types::Spanned for Children<'_> {
1889 fn span(&self) -> ::treesitter_types::Span {
1890 self.span
1891 }
1892}
1893#[derive(Debug, Clone)]
1894pub struct Class<'tree> {
1895 pub span: ::treesitter_types::Span,
1896 pub context: ::core::option::Option<Context<'tree>>,
1897 pub declarations: ::core::option::Option<ClassDeclarations<'tree>>,
1898 pub fundeps: ::core::option::Option<Fundeps<'tree>>,
1899 pub name: ::core::option::Option<ClassName<'tree>>,
1900 pub patterns: ::core::option::Option<TypeParams<'tree>>,
1901 pub children: ::core::option::Option<ClassChildren<'tree>>,
1902}
1903impl<'tree> ::treesitter_types::FromNode<'tree> for Class<'tree> {
1904 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1905 fn from_node(
1906 node: ::tree_sitter::Node<'tree>,
1907 src: &'tree [u8],
1908 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1909 debug_assert_eq!(node.kind(), "class");
1910 Ok(Self {
1911 span: ::treesitter_types::Span::from(node),
1912 context: match node.child_by_field_name("context") {
1913 Some(child) => Some(<Context as ::treesitter_types::FromNode>::from_node(
1914 child, src,
1915 )?),
1916 None => None,
1917 },
1918 declarations: match node.child_by_field_name("declarations") {
1919 Some(child) => Some(
1920 <ClassDeclarations as ::treesitter_types::FromNode>::from_node(child, src)?,
1921 ),
1922 None => None,
1923 },
1924 fundeps: match node.child_by_field_name("fundeps") {
1925 Some(child) => Some(<Fundeps as ::treesitter_types::FromNode>::from_node(
1926 child, src,
1927 )?),
1928 None => None,
1929 },
1930 name: match node.child_by_field_name("name") {
1931 Some(child) => Some(<ClassName as ::treesitter_types::FromNode>::from_node(
1932 child, src,
1933 )?),
1934 None => None,
1935 },
1936 patterns: match node.child_by_field_name("patterns") {
1937 Some(child) => Some(<TypeParams as ::treesitter_types::FromNode>::from_node(
1938 child, src,
1939 )?),
1940 None => None,
1941 },
1942 children: {
1943 #[allow(clippy::suspicious_else_formatting)]
1944 let non_field_children = {
1945 let mut cursor = node.walk();
1946 let mut result = ::std::vec::Vec::new();
1947 if cursor.goto_first_child() {
1948 loop {
1949 if cursor.field_name().is_none()
1950 && cursor.node().is_named()
1951 && !cursor.node().is_extra()
1952 {
1953 result.push(cursor.node());
1954 }
1955 if !cursor.goto_next_sibling() {
1956 break;
1957 }
1958 }
1959 }
1960 result
1961 };
1962 match non_field_children.first() {
1963 Some(&child) => Some(
1964 <ClassChildren as ::treesitter_types::FromNode>::from_node(child, src)?,
1965 ),
1966 None => None,
1967 }
1968 },
1969 })
1970 }
1971}
1972impl ::treesitter_types::Spanned for Class<'_> {
1973 fn span(&self) -> ::treesitter_types::Span {
1974 self.span
1975 }
1976}
1977#[derive(Debug, Clone)]
1978pub struct ClassDeclarations<'tree> {
1979 pub span: ::treesitter_types::Span,
1980 pub declaration: ::std::vec::Vec<ClassDecl<'tree>>,
1981}
1982impl<'tree> ::treesitter_types::FromNode<'tree> for ClassDeclarations<'tree> {
1983 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
1984 fn from_node(
1985 node: ::tree_sitter::Node<'tree>,
1986 src: &'tree [u8],
1987 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
1988 debug_assert_eq!(node.kind(), "class_declarations");
1989 Ok(Self {
1990 span: ::treesitter_types::Span::from(node),
1991 declaration: {
1992 let mut cursor = node.walk();
1993 let mut items = ::std::vec::Vec::new();
1994 for child in node.children_by_field_name("declaration", &mut cursor) {
1995 items.push(<ClassDecl as ::treesitter_types::FromNode>::from_node(
1996 child, src,
1997 )?);
1998 }
1999 items
2000 },
2001 })
2002 }
2003}
2004impl ::treesitter_types::Spanned for ClassDeclarations<'_> {
2005 fn span(&self) -> ::treesitter_types::Span {
2006 self.span
2007 }
2008}
2009#[derive(Debug, Clone)]
2010pub struct Conditional<'tree> {
2011 pub span: ::treesitter_types::Span,
2012 pub r#else: ConditionalElse<'tree>,
2013 pub r#if: ConditionalIf<'tree>,
2014 pub then: ConditionalThen<'tree>,
2015}
2016impl<'tree> ::treesitter_types::FromNode<'tree> for Conditional<'tree> {
2017 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2018 fn from_node(
2019 node: ::tree_sitter::Node<'tree>,
2020 src: &'tree [u8],
2021 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2022 debug_assert_eq!(node.kind(), "conditional");
2023 Ok(Self {
2024 span: ::treesitter_types::Span::from(node),
2025 r#else: {
2026 let child = node
2027 .child_by_field_name("else")
2028 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("else", node))?;
2029 <ConditionalElse as ::treesitter_types::FromNode>::from_node(child, src)?
2030 },
2031 r#if: {
2032 let child = node
2033 .child_by_field_name("if")
2034 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("if", node))?;
2035 <ConditionalIf as ::treesitter_types::FromNode>::from_node(child, src)?
2036 },
2037 then: {
2038 let child = node
2039 .child_by_field_name("then")
2040 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("then", node))?;
2041 <ConditionalThen as ::treesitter_types::FromNode>::from_node(child, src)?
2042 },
2043 })
2044 }
2045}
2046impl ::treesitter_types::Spanned for Conditional<'_> {
2047 fn span(&self) -> ::treesitter_types::Span {
2048 self.span
2049 }
2050}
2051#[derive(Debug, Clone)]
2052pub struct ConstructorOperator<'tree> {
2053 pub span: ::treesitter_types::Span,
2054 text: &'tree str,
2055}
2056impl<'tree> ::treesitter_types::FromNode<'tree> for ConstructorOperator<'tree> {
2057 fn from_node(
2058 node: ::tree_sitter::Node<'tree>,
2059 src: &'tree [u8],
2060 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2061 debug_assert_eq!(node.kind(), "constructor_operator");
2062 Ok(Self {
2063 span: ::treesitter_types::Span::from(node),
2064 text: node.utf8_text(src)?,
2065 })
2066 }
2067}
2068impl<'tree> ::treesitter_types::LeafNode<'tree> for ConstructorOperator<'tree> {
2069 fn text(&self) -> &'tree str {
2070 self.text
2071 }
2072}
2073impl ::treesitter_types::Spanned for ConstructorOperator<'_> {
2074 fn span(&self) -> ::treesitter_types::Span {
2075 self.span
2076 }
2077}
2078#[derive(Debug, Clone)]
2079pub struct ConstructorSynonym<'tree> {
2080 pub span: ::treesitter_types::Span,
2081 pub binds: ::core::option::Option<LocalBinds<'tree>>,
2082 pub implicit: ::core::option::Option<ImplicitVariable<'tree>>,
2083 pub r#match: ::std::vec::Vec<Match<'tree>>,
2084 pub name: ::core::option::Option<ConstructorSynonymName<'tree>>,
2085 pub pattern: ::core::option::Option<ConstructorSynonymPattern<'tree>>,
2086}
2087impl<'tree> ::treesitter_types::FromNode<'tree> for ConstructorSynonym<'tree> {
2088 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2089 fn from_node(
2090 node: ::tree_sitter::Node<'tree>,
2091 src: &'tree [u8],
2092 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2093 debug_assert_eq!(node.kind(), "constructor_synonym");
2094 Ok(Self {
2095 span: ::treesitter_types::Span::from(node),
2096 binds: match node.child_by_field_name("binds") {
2097 Some(child) => Some(<LocalBinds as ::treesitter_types::FromNode>::from_node(
2098 child, src,
2099 )?),
2100 None => None,
2101 },
2102 implicit: match node.child_by_field_name("implicit") {
2103 Some(child) => {
2104 Some(<ImplicitVariable as ::treesitter_types::FromNode>::from_node(child, src)?)
2105 }
2106 None => None,
2107 },
2108 r#match: {
2109 let mut cursor = node.walk();
2110 let mut items = ::std::vec::Vec::new();
2111 for child in node.children_by_field_name("match", &mut cursor) {
2112 items.push(<Match as ::treesitter_types::FromNode>::from_node(
2113 child, src,
2114 )?);
2115 }
2116 items
2117 },
2118 name: match node.child_by_field_name("name") {
2119 Some(child) => Some(
2120 <ConstructorSynonymName as ::treesitter_types::FromNode>::from_node(
2121 child, src,
2122 )?,
2123 ),
2124 None => None,
2125 },
2126 pattern: match node.child_by_field_name("pattern") {
2127 Some(child) => Some(
2128 <ConstructorSynonymPattern as ::treesitter_types::FromNode>::from_node(
2129 child, src,
2130 )?,
2131 ),
2132 None => None,
2133 },
2134 })
2135 }
2136}
2137impl ::treesitter_types::Spanned for ConstructorSynonym<'_> {
2138 fn span(&self) -> ::treesitter_types::Span {
2139 self.span
2140 }
2141}
2142#[derive(Debug, Clone)]
2143pub struct ConstructorSynonyms<'tree> {
2144 pub span: ::treesitter_types::Span,
2145 pub children: ::std::vec::Vec<ConstructorSynonym<'tree>>,
2146}
2147impl<'tree> ::treesitter_types::FromNode<'tree> for ConstructorSynonyms<'tree> {
2148 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2149 fn from_node(
2150 node: ::tree_sitter::Node<'tree>,
2151 src: &'tree [u8],
2152 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2153 debug_assert_eq!(node.kind(), "constructor_synonyms");
2154 Ok(Self {
2155 span: ::treesitter_types::Span::from(node),
2156 children: {
2157 #[allow(clippy::suspicious_else_formatting)]
2158 let non_field_children = {
2159 let mut cursor = node.walk();
2160 let mut result = ::std::vec::Vec::new();
2161 if cursor.goto_first_child() {
2162 loop {
2163 if cursor.field_name().is_none()
2164 && cursor.node().is_named()
2165 && !cursor.node().is_extra()
2166 {
2167 result.push(cursor.node());
2168 }
2169 if !cursor.goto_next_sibling() {
2170 break;
2171 }
2172 }
2173 }
2174 result
2175 };
2176 let mut items = ::std::vec::Vec::new();
2177 for child in non_field_children {
2178 items.push(
2179 <ConstructorSynonym as ::treesitter_types::FromNode>::from_node(
2180 child, src,
2181 )?,
2182 );
2183 }
2184 items
2185 },
2186 })
2187 }
2188}
2189impl ::treesitter_types::Spanned for ConstructorSynonyms<'_> {
2190 fn span(&self) -> ::treesitter_types::Span {
2191 self.span
2192 }
2193}
2194#[derive(Debug, Clone)]
2195pub struct Context<'tree> {
2196 pub span: ::treesitter_types::Span,
2197 pub arrow: ContextArrow,
2198 pub constraint: ::core::option::Option<Constraints<'tree>>,
2199 pub context: Constraint<'tree>,
2200 pub r#type: ::core::option::Option<QuantifiedType<'tree>>,
2201}
2202impl<'tree> ::treesitter_types::FromNode<'tree> for Context<'tree> {
2203 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2204 fn from_node(
2205 node: ::tree_sitter::Node<'tree>,
2206 src: &'tree [u8],
2207 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2208 debug_assert_eq!(node.kind(), "context");
2209 Ok(Self {
2210 span: ::treesitter_types::Span::from(node),
2211 arrow: {
2212 let child = node
2213 .child_by_field_name("arrow")
2214 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("arrow", node))?;
2215 <ContextArrow as ::treesitter_types::FromNode>::from_node(child, src)?
2216 },
2217 constraint: match node.child_by_field_name("constraint") {
2218 Some(child) => Some(<Constraints as ::treesitter_types::FromNode>::from_node(
2219 child, src,
2220 )?),
2221 None => None,
2222 },
2223 context: {
2224 let child = node.child_by_field_name("context").ok_or_else(|| {
2225 ::treesitter_types::ParseError::missing_field("context", node)
2226 })?;
2227 <Constraint as ::treesitter_types::FromNode>::from_node(child, src)?
2228 },
2229 r#type: match node.child_by_field_name("type") {
2230 Some(child) => Some(<QuantifiedType as ::treesitter_types::FromNode>::from_node(
2231 child, src,
2232 )?),
2233 None => None,
2234 },
2235 })
2236 }
2237}
2238impl ::treesitter_types::Spanned for Context<'_> {
2239 fn span(&self) -> ::treesitter_types::Span {
2240 self.span
2241 }
2242}
2243#[derive(Debug, Clone)]
2244pub struct DataConstructor<'tree> {
2245 pub span: ::treesitter_types::Span,
2246 pub constructor: DataConstructorConstructor<'tree>,
2247 pub context: ::core::option::Option<Context<'tree>>,
2248 pub forall: ::core::option::Option<DataConstructorForall<'tree>>,
2249}
2250impl<'tree> ::treesitter_types::FromNode<'tree> for DataConstructor<'tree> {
2251 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2252 fn from_node(
2253 node: ::tree_sitter::Node<'tree>,
2254 src: &'tree [u8],
2255 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2256 debug_assert_eq!(node.kind(), "data_constructor");
2257 Ok(Self {
2258 span: ::treesitter_types::Span::from(node),
2259 constructor: {
2260 let child = node.child_by_field_name("constructor").ok_or_else(|| {
2261 ::treesitter_types::ParseError::missing_field("constructor", node)
2262 })?;
2263 <DataConstructorConstructor as ::treesitter_types::FromNode>::from_node(child, src)?
2264 },
2265 context: match node.child_by_field_name("context") {
2266 Some(child) => Some(<Context as ::treesitter_types::FromNode>::from_node(
2267 child, src,
2268 )?),
2269 None => None,
2270 },
2271 forall: match node.child_by_field_name("forall") {
2272 Some(child) => Some(
2273 <DataConstructorForall as ::treesitter_types::FromNode>::from_node(child, src)?,
2274 ),
2275 None => None,
2276 },
2277 })
2278 }
2279}
2280impl ::treesitter_types::Spanned for DataConstructor<'_> {
2281 fn span(&self) -> ::treesitter_types::Span {
2282 self.span
2283 }
2284}
2285#[derive(Debug, Clone)]
2286pub struct DataConstructors<'tree> {
2287 pub span: ::treesitter_types::Span,
2288 pub constructor: ::std::vec::Vec<DataConstructor<'tree>>,
2289}
2290impl<'tree> ::treesitter_types::FromNode<'tree> for DataConstructors<'tree> {
2291 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2292 fn from_node(
2293 node: ::tree_sitter::Node<'tree>,
2294 src: &'tree [u8],
2295 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2296 debug_assert_eq!(node.kind(), "data_constructors");
2297 Ok(Self {
2298 span: ::treesitter_types::Span::from(node),
2299 constructor: {
2300 let mut cursor = node.walk();
2301 let mut items = ::std::vec::Vec::new();
2302 for child in node.children_by_field_name("constructor", &mut cursor) {
2303 items.push(
2304 <DataConstructor as ::treesitter_types::FromNode>::from_node(child, src)?,
2305 );
2306 }
2307 items
2308 },
2309 })
2310 }
2311}
2312impl ::treesitter_types::Spanned for DataConstructors<'_> {
2313 fn span(&self) -> ::treesitter_types::Span {
2314 self.span
2315 }
2316}
2317#[derive(Debug, Clone)]
2318pub struct DataFamily<'tree> {
2319 pub span: ::treesitter_types::Span,
2320 pub kind: ::core::option::Option<QuantifiedType<'tree>>,
2321 pub name: ::core::option::Option<DataFamilyName<'tree>>,
2322 pub patterns: ::core::option::Option<TypeParams<'tree>>,
2323 pub children: ::core::option::Option<DataFamilyChildren<'tree>>,
2324}
2325impl<'tree> ::treesitter_types::FromNode<'tree> for DataFamily<'tree> {
2326 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2327 fn from_node(
2328 node: ::tree_sitter::Node<'tree>,
2329 src: &'tree [u8],
2330 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2331 debug_assert_eq!(node.kind(), "data_family");
2332 Ok(Self {
2333 span: ::treesitter_types::Span::from(node),
2334 kind: match node.child_by_field_name("kind") {
2335 Some(child) => Some(<QuantifiedType as ::treesitter_types::FromNode>::from_node(
2336 child, src,
2337 )?),
2338 None => None,
2339 },
2340 name: match node.child_by_field_name("name") {
2341 Some(child) => Some(<DataFamilyName as ::treesitter_types::FromNode>::from_node(
2342 child, src,
2343 )?),
2344 None => None,
2345 },
2346 patterns: match node.child_by_field_name("patterns") {
2347 Some(child) => Some(<TypeParams as ::treesitter_types::FromNode>::from_node(
2348 child, src,
2349 )?),
2350 None => None,
2351 },
2352 children: {
2353 #[allow(clippy::suspicious_else_formatting)]
2354 let non_field_children = {
2355 let mut cursor = node.walk();
2356 let mut result = ::std::vec::Vec::new();
2357 if cursor.goto_first_child() {
2358 loop {
2359 if cursor.field_name().is_none()
2360 && cursor.node().is_named()
2361 && !cursor.node().is_extra()
2362 {
2363 result.push(cursor.node());
2364 }
2365 if !cursor.goto_next_sibling() {
2366 break;
2367 }
2368 }
2369 }
2370 result
2371 };
2372 match non_field_children.first() {
2373 Some(&child) => Some(
2374 <DataFamilyChildren as ::treesitter_types::FromNode>::from_node(
2375 child, src,
2376 )?,
2377 ),
2378 None => None,
2379 }
2380 },
2381 })
2382 }
2383}
2384impl ::treesitter_types::Spanned for DataFamily<'_> {
2385 fn span(&self) -> ::treesitter_types::Span {
2386 self.span
2387 }
2388}
2389#[derive(Debug, Clone)]
2390pub struct DataInstance<'tree> {
2391 pub span: ::treesitter_types::Span,
2392 pub children: DataInstanceChildren<'tree>,
2393}
2394impl<'tree> ::treesitter_types::FromNode<'tree> for DataInstance<'tree> {
2395 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2396 fn from_node(
2397 node: ::tree_sitter::Node<'tree>,
2398 src: &'tree [u8],
2399 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2400 debug_assert_eq!(node.kind(), "data_instance");
2401 Ok(Self {
2402 span: ::treesitter_types::Span::from(node),
2403 children: {
2404 #[allow(clippy::suspicious_else_formatting)]
2405 let non_field_children = {
2406 let mut cursor = node.walk();
2407 let mut result = ::std::vec::Vec::new();
2408 if cursor.goto_first_child() {
2409 loop {
2410 if cursor.field_name().is_none()
2411 && cursor.node().is_named()
2412 && !cursor.node().is_extra()
2413 {
2414 result.push(cursor.node());
2415 }
2416 if !cursor.goto_next_sibling() {
2417 break;
2418 }
2419 }
2420 }
2421 result
2422 };
2423 let child = if let Some(&c) = non_field_children.first() {
2424 c
2425 } else {
2426 let mut fallback_cursor = node.walk();
2427 let mut fallback_child = None;
2428 if fallback_cursor.goto_first_child() {
2429 loop {
2430 if fallback_cursor.field_name().is_none()
2431 && !fallback_cursor.node().is_extra()
2432 {
2433 let candidate = fallback_cursor.node();
2434 #[allow(clippy::needless_question_mark)]
2435 if (|| -> ::core::result::Result<
2436 _,
2437 ::treesitter_types::ParseError,
2438 > {
2439 let child = candidate;
2440 Ok(
2441 <DataInstanceChildren as ::treesitter_types::FromNode>::from_node(
2442 child,
2443 src,
2444 )?,
2445 )
2446 })()
2447 .is_ok()
2448 {
2449 fallback_child = Some(candidate);
2450 break;
2451 }
2452 }
2453 if !fallback_cursor.goto_next_sibling() {
2454 break;
2455 }
2456 }
2457 }
2458 if fallback_child.is_none() {
2459 let mut cursor2 = node.walk();
2460 if cursor2.goto_first_child() {
2461 loop {
2462 if cursor2.node().is_named() && !cursor2.node().is_extra() {
2463 let candidate = cursor2.node();
2464 #[allow(clippy::needless_question_mark)]
2465 if (|| -> ::core::result::Result<
2466 _,
2467 ::treesitter_types::ParseError,
2468 > {
2469 let child = candidate;
2470 Ok(
2471 <DataInstanceChildren as ::treesitter_types::FromNode>::from_node(
2472 child,
2473 src,
2474 )?,
2475 )
2476 })()
2477 .is_ok()
2478 {
2479 fallback_child = Some(candidate);
2480 break;
2481 }
2482 }
2483 if !cursor2.goto_next_sibling() {
2484 break;
2485 }
2486 }
2487 }
2488 }
2489 fallback_child.ok_or_else(|| {
2490 ::treesitter_types::ParseError::missing_field("children", node)
2491 })?
2492 };
2493 <DataInstanceChildren as ::treesitter_types::FromNode>::from_node(child, src)?
2494 },
2495 })
2496 }
2497}
2498impl ::treesitter_types::Spanned for DataInstance<'_> {
2499 fn span(&self) -> ::treesitter_types::Span {
2500 self.span
2501 }
2502}
2503#[derive(Debug, Clone)]
2504pub struct DataType<'tree> {
2505 pub span: ::treesitter_types::Span,
2506 pub constructors: ::core::option::Option<DataTypeConstructors<'tree>>,
2507 pub context: ::core::option::Option<Context<'tree>>,
2508 pub deriving: ::std::vec::Vec<Deriving<'tree>>,
2509 pub forall: ::core::option::Option<DataTypeForall<'tree>>,
2510 pub kind: ::core::option::Option<QuantifiedType<'tree>>,
2511 pub name: ::core::option::Option<DataTypeName<'tree>>,
2512 pub patterns: ::core::option::Option<DataTypePatterns<'tree>>,
2513 pub children: ::core::option::Option<DataTypeChildren<'tree>>,
2514}
2515impl<'tree> ::treesitter_types::FromNode<'tree> for DataType<'tree> {
2516 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2517 fn from_node(
2518 node: ::tree_sitter::Node<'tree>,
2519 src: &'tree [u8],
2520 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2521 debug_assert_eq!(node.kind(), "data_type");
2522 Ok(Self {
2523 span: ::treesitter_types::Span::from(node),
2524 constructors: match node.child_by_field_name("constructors") {
2525 Some(child) => Some(
2526 <DataTypeConstructors as ::treesitter_types::FromNode>::from_node(child, src)?,
2527 ),
2528 None => None,
2529 },
2530 context: match node.child_by_field_name("context") {
2531 Some(child) => Some(<Context as ::treesitter_types::FromNode>::from_node(
2532 child, src,
2533 )?),
2534 None => None,
2535 },
2536 deriving: {
2537 let mut cursor = node.walk();
2538 let mut items = ::std::vec::Vec::new();
2539 for child in node.children_by_field_name("deriving", &mut cursor) {
2540 items.push(<Deriving as ::treesitter_types::FromNode>::from_node(
2541 child, src,
2542 )?);
2543 }
2544 items
2545 },
2546 forall: match node.child_by_field_name("forall") {
2547 Some(child) => Some(<DataTypeForall as ::treesitter_types::FromNode>::from_node(
2548 child, src,
2549 )?),
2550 None => None,
2551 },
2552 kind: match node.child_by_field_name("kind") {
2553 Some(child) => Some(<QuantifiedType as ::treesitter_types::FromNode>::from_node(
2554 child, src,
2555 )?),
2556 None => None,
2557 },
2558 name: match node.child_by_field_name("name") {
2559 Some(child) => Some(<DataTypeName as ::treesitter_types::FromNode>::from_node(
2560 child, src,
2561 )?),
2562 None => None,
2563 },
2564 patterns: match node.child_by_field_name("patterns") {
2565 Some(child) => {
2566 Some(<DataTypePatterns as ::treesitter_types::FromNode>::from_node(child, src)?)
2567 }
2568 None => None,
2569 },
2570 children: {
2571 #[allow(clippy::suspicious_else_formatting)]
2572 let non_field_children = {
2573 let mut cursor = node.walk();
2574 let mut result = ::std::vec::Vec::new();
2575 if cursor.goto_first_child() {
2576 loop {
2577 if cursor.field_name().is_none()
2578 && cursor.node().is_named()
2579 && !cursor.node().is_extra()
2580 {
2581 result.push(cursor.node());
2582 }
2583 if !cursor.goto_next_sibling() {
2584 break;
2585 }
2586 }
2587 }
2588 result
2589 };
2590 match non_field_children.first() {
2591 Some(&child) => Some(
2592 <DataTypeChildren as ::treesitter_types::FromNode>::from_node(child, src)?,
2593 ),
2594 None => None,
2595 }
2596 },
2597 })
2598 }
2599}
2600impl ::treesitter_types::Spanned for DataType<'_> {
2601 fn span(&self) -> ::treesitter_types::Span {
2602 self.span
2603 }
2604}
2605#[derive(Debug, Clone)]
2606pub struct Declarations<'tree> {
2607 pub span: ::treesitter_types::Span,
2608 pub children: ::std::vec::Vec<DeclarationsChildren<'tree>>,
2609}
2610impl<'tree> ::treesitter_types::FromNode<'tree> for Declarations<'tree> {
2611 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2612 fn from_node(
2613 node: ::tree_sitter::Node<'tree>,
2614 src: &'tree [u8],
2615 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2616 debug_assert_eq!(node.kind(), "declarations");
2617 Ok(Self {
2618 span: ::treesitter_types::Span::from(node),
2619 children: {
2620 #[allow(clippy::suspicious_else_formatting)]
2621 let non_field_children = {
2622 let mut cursor = node.walk();
2623 let mut result = ::std::vec::Vec::new();
2624 if cursor.goto_first_child() {
2625 loop {
2626 if cursor.field_name().is_none()
2627 && cursor.node().is_named()
2628 && !cursor.node().is_extra()
2629 {
2630 result.push(cursor.node());
2631 }
2632 if !cursor.goto_next_sibling() {
2633 break;
2634 }
2635 }
2636 }
2637 result
2638 };
2639 let mut items = ::std::vec::Vec::new();
2640 for child in non_field_children {
2641 items.push(
2642 <DeclarationsChildren as ::treesitter_types::FromNode>::from_node(
2643 child, src,
2644 )?,
2645 );
2646 }
2647 items
2648 },
2649 })
2650 }
2651}
2652impl ::treesitter_types::Spanned for Declarations<'_> {
2653 fn span(&self) -> ::treesitter_types::Span {
2654 self.span
2655 }
2656}
2657#[derive(Debug, Clone)]
2658pub struct DefaultSignature<'tree> {
2659 pub span: ::treesitter_types::Span,
2660 pub signature: Signature<'tree>,
2661}
2662impl<'tree> ::treesitter_types::FromNode<'tree> for DefaultSignature<'tree> {
2663 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2664 fn from_node(
2665 node: ::tree_sitter::Node<'tree>,
2666 src: &'tree [u8],
2667 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2668 debug_assert_eq!(node.kind(), "default_signature");
2669 Ok(Self {
2670 span: ::treesitter_types::Span::from(node),
2671 signature: {
2672 let child = node.child_by_field_name("signature").ok_or_else(|| {
2673 ::treesitter_types::ParseError::missing_field("signature", node)
2674 })?;
2675 <Signature as ::treesitter_types::FromNode>::from_node(child, src)?
2676 },
2677 })
2678 }
2679}
2680impl ::treesitter_types::Spanned for DefaultSignature<'_> {
2681 fn span(&self) -> ::treesitter_types::Span {
2682 self.span
2683 }
2684}
2685#[derive(Debug, Clone)]
2686pub struct DefaultTypes<'tree> {
2687 pub span: ::treesitter_types::Span,
2688 pub r#type: ::std::vec::Vec<DefaultTypesType<'tree>>,
2689}
2690impl<'tree> ::treesitter_types::FromNode<'tree> for DefaultTypes<'tree> {
2691 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2692 fn from_node(
2693 node: ::tree_sitter::Node<'tree>,
2694 src: &'tree [u8],
2695 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2696 debug_assert_eq!(node.kind(), "default_types");
2697 Ok(Self {
2698 span: ::treesitter_types::Span::from(node),
2699 r#type: {
2700 let mut cursor = node.walk();
2701 let mut items = ::std::vec::Vec::new();
2702 for child in node.children_by_field_name("type", &mut cursor) {
2703 items.push(
2704 <DefaultTypesType as ::treesitter_types::FromNode>::from_node(child, src)?,
2705 );
2706 }
2707 items
2708 },
2709 })
2710 }
2711}
2712impl ::treesitter_types::Spanned for DefaultTypes<'_> {
2713 fn span(&self) -> ::treesitter_types::Span {
2714 self.span
2715 }
2716}
2717#[derive(Debug, Clone)]
2718pub struct Deriving<'tree> {
2719 pub span: ::treesitter_types::Span,
2720 pub classes: Constraint<'tree>,
2721 pub strategy: ::core::option::Option<DerivingStrategy<'tree>>,
2722 pub via: ::core::option::Option<Via<'tree>>,
2723}
2724impl<'tree> ::treesitter_types::FromNode<'tree> for Deriving<'tree> {
2725 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2726 fn from_node(
2727 node: ::tree_sitter::Node<'tree>,
2728 src: &'tree [u8],
2729 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2730 debug_assert_eq!(node.kind(), "deriving");
2731 Ok(Self {
2732 span: ::treesitter_types::Span::from(node),
2733 classes: {
2734 let child = node.child_by_field_name("classes").ok_or_else(|| {
2735 ::treesitter_types::ParseError::missing_field("classes", node)
2736 })?;
2737 <Constraint as ::treesitter_types::FromNode>::from_node(child, src)?
2738 },
2739 strategy: match node.child_by_field_name("strategy") {
2740 Some(child) => {
2741 Some(<DerivingStrategy as ::treesitter_types::FromNode>::from_node(child, src)?)
2742 }
2743 None => None,
2744 },
2745 via: match node.child_by_field_name("via") {
2746 Some(child) => Some(<Via as ::treesitter_types::FromNode>::from_node(
2747 child, src,
2748 )?),
2749 None => None,
2750 },
2751 })
2752 }
2753}
2754impl ::treesitter_types::Spanned for Deriving<'_> {
2755 fn span(&self) -> ::treesitter_types::Span {
2756 self.span
2757 }
2758}
2759#[derive(Debug, Clone)]
2760pub struct DerivingInstance<'tree> {
2761 pub span: ::treesitter_types::Span,
2762 pub context: ::core::option::Option<Context<'tree>>,
2763 pub forall: ::core::option::Option<DerivingInstanceForall<'tree>>,
2764 pub name: ::core::option::Option<DerivingInstanceName<'tree>>,
2765 pub patterns: ::core::option::Option<TypePatterns<'tree>>,
2766 pub strategy: ::core::option::Option<DerivingStrategy<'tree>>,
2767 pub via: ::core::option::Option<Via<'tree>>,
2768 pub children: ::core::option::Option<DerivingInstanceChildren<'tree>>,
2769}
2770impl<'tree> ::treesitter_types::FromNode<'tree> for DerivingInstance<'tree> {
2771 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2772 fn from_node(
2773 node: ::tree_sitter::Node<'tree>,
2774 src: &'tree [u8],
2775 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2776 debug_assert_eq!(node.kind(), "deriving_instance");
2777 Ok(Self {
2778 span: ::treesitter_types::Span::from(node),
2779 context: match node.child_by_field_name("context") {
2780 Some(child) => Some(<Context as ::treesitter_types::FromNode>::from_node(
2781 child, src,
2782 )?),
2783 None => None,
2784 },
2785 forall: match node.child_by_field_name("forall") {
2786 Some(child) => Some(
2787 <DerivingInstanceForall as ::treesitter_types::FromNode>::from_node(
2788 child, src,
2789 )?,
2790 ),
2791 None => None,
2792 },
2793 name: match node.child_by_field_name("name") {
2794 Some(child) => Some(
2795 <DerivingInstanceName as ::treesitter_types::FromNode>::from_node(child, src)?,
2796 ),
2797 None => None,
2798 },
2799 patterns: match node.child_by_field_name("patterns") {
2800 Some(child) => Some(<TypePatterns as ::treesitter_types::FromNode>::from_node(
2801 child, src,
2802 )?),
2803 None => None,
2804 },
2805 strategy: match node.child_by_field_name("strategy") {
2806 Some(child) => {
2807 Some(<DerivingStrategy as ::treesitter_types::FromNode>::from_node(child, src)?)
2808 }
2809 None => None,
2810 },
2811 via: match node.child_by_field_name("via") {
2812 Some(child) => Some(<Via as ::treesitter_types::FromNode>::from_node(
2813 child, src,
2814 )?),
2815 None => None,
2816 },
2817 children: {
2818 #[allow(clippy::suspicious_else_formatting)]
2819 let non_field_children = {
2820 let mut cursor = node.walk();
2821 let mut result = ::std::vec::Vec::new();
2822 if cursor.goto_first_child() {
2823 loop {
2824 if cursor.field_name().is_none()
2825 && cursor.node().is_named()
2826 && !cursor.node().is_extra()
2827 {
2828 result.push(cursor.node());
2829 }
2830 if !cursor.goto_next_sibling() {
2831 break;
2832 }
2833 }
2834 }
2835 result
2836 };
2837 match non_field_children.first() {
2838 Some(&child) => Some(
2839 <DerivingInstanceChildren as ::treesitter_types::FromNode>::from_node(
2840 child, src,
2841 )?,
2842 ),
2843 None => None,
2844 }
2845 },
2846 })
2847 }
2848}
2849impl ::treesitter_types::Spanned for DerivingInstance<'_> {
2850 fn span(&self) -> ::treesitter_types::Span {
2851 self.span
2852 }
2853}
2854#[derive(Debug, Clone)]
2855pub struct DerivingStrategy<'tree> {
2856 pub span: ::treesitter_types::Span,
2857 text: &'tree str,
2858}
2859impl<'tree> ::treesitter_types::FromNode<'tree> for DerivingStrategy<'tree> {
2860 fn from_node(
2861 node: ::tree_sitter::Node<'tree>,
2862 src: &'tree [u8],
2863 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2864 debug_assert_eq!(node.kind(), "deriving_strategy");
2865 Ok(Self {
2866 span: ::treesitter_types::Span::from(node),
2867 text: node.utf8_text(src)?,
2868 })
2869 }
2870}
2871impl<'tree> ::treesitter_types::LeafNode<'tree> for DerivingStrategy<'tree> {
2872 fn text(&self) -> &'tree str {
2873 self.text
2874 }
2875}
2876impl ::treesitter_types::Spanned for DerivingStrategy<'_> {
2877 fn span(&self) -> ::treesitter_types::Span {
2878 self.span
2879 }
2880}
2881#[derive(Debug, Clone)]
2882pub struct Do<'tree> {
2883 pub span: ::treesitter_types::Span,
2884 pub statement: ::std::vec::Vec<Statement<'tree>>,
2885 pub children: ::core::option::Option<DoModule<'tree>>,
2886}
2887impl<'tree> ::treesitter_types::FromNode<'tree> for Do<'tree> {
2888 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2889 fn from_node(
2890 node: ::tree_sitter::Node<'tree>,
2891 src: &'tree [u8],
2892 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2893 debug_assert_eq!(node.kind(), "do");
2894 Ok(Self {
2895 span: ::treesitter_types::Span::from(node),
2896 statement: {
2897 let mut cursor = node.walk();
2898 let mut items = ::std::vec::Vec::new();
2899 for child in node.children_by_field_name("statement", &mut cursor) {
2900 items.push(<Statement as ::treesitter_types::FromNode>::from_node(
2901 child, src,
2902 )?);
2903 }
2904 items
2905 },
2906 children: {
2907 #[allow(clippy::suspicious_else_formatting)]
2908 let non_field_children = {
2909 let mut cursor = node.walk();
2910 let mut result = ::std::vec::Vec::new();
2911 if cursor.goto_first_child() {
2912 loop {
2913 if cursor.field_name().is_none()
2914 && cursor.node().is_named()
2915 && !cursor.node().is_extra()
2916 {
2917 result.push(cursor.node());
2918 }
2919 if !cursor.goto_next_sibling() {
2920 break;
2921 }
2922 }
2923 }
2924 result
2925 };
2926 match non_field_children.first() {
2927 Some(&child) => Some(<DoModule as ::treesitter_types::FromNode>::from_node(
2928 child, src,
2929 )?),
2930 None => None,
2931 }
2932 },
2933 })
2934 }
2935}
2936impl ::treesitter_types::Spanned for Do<'_> {
2937 fn span(&self) -> ::treesitter_types::Span {
2938 self.span
2939 }
2940}
2941#[derive(Debug, Clone)]
2942pub struct DoModule<'tree> {
2943 pub span: ::treesitter_types::Span,
2944 pub id: DoModuleId,
2945 pub module: Module<'tree>,
2946}
2947impl<'tree> ::treesitter_types::FromNode<'tree> for DoModule<'tree> {
2948 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
2949 fn from_node(
2950 node: ::tree_sitter::Node<'tree>,
2951 src: &'tree [u8],
2952 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2953 debug_assert_eq!(node.kind(), "do_module");
2954 Ok(Self {
2955 span: ::treesitter_types::Span::from(node),
2956 id: {
2957 let child = node
2958 .child_by_field_name("id")
2959 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("id", node))?;
2960 <DoModuleId as ::treesitter_types::FromNode>::from_node(child, src)?
2961 },
2962 module: {
2963 let child = node
2964 .child_by_field_name("module")
2965 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("module", node))?;
2966 <Module as ::treesitter_types::FromNode>::from_node(child, src)?
2967 },
2968 })
2969 }
2970}
2971impl ::treesitter_types::Spanned for DoModule<'_> {
2972 fn span(&self) -> ::treesitter_types::Span {
2973 self.span
2974 }
2975}
2976#[derive(Debug, Clone)]
2977pub struct EmptyList<'tree> {
2978 pub span: ::treesitter_types::Span,
2979 text: &'tree str,
2980}
2981impl<'tree> ::treesitter_types::FromNode<'tree> for EmptyList<'tree> {
2982 fn from_node(
2983 node: ::tree_sitter::Node<'tree>,
2984 src: &'tree [u8],
2985 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
2986 debug_assert_eq!(node.kind(), "empty_list");
2987 Ok(Self {
2988 span: ::treesitter_types::Span::from(node),
2989 text: node.utf8_text(src)?,
2990 })
2991 }
2992}
2993impl<'tree> ::treesitter_types::LeafNode<'tree> for EmptyList<'tree> {
2994 fn text(&self) -> &'tree str {
2995 self.text
2996 }
2997}
2998impl ::treesitter_types::Spanned for EmptyList<'_> {
2999 fn span(&self) -> ::treesitter_types::Span {
3000 self.span
3001 }
3002}
3003#[derive(Debug, Clone)]
3004pub struct Entity<'tree> {
3005 pub span: ::treesitter_types::Span,
3006 pub children: String<'tree>,
3007}
3008impl<'tree> ::treesitter_types::FromNode<'tree> for Entity<'tree> {
3009 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3010 fn from_node(
3011 node: ::tree_sitter::Node<'tree>,
3012 src: &'tree [u8],
3013 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3014 debug_assert_eq!(node.kind(), "entity");
3015 Ok(Self {
3016 span: ::treesitter_types::Span::from(node),
3017 children: {
3018 #[allow(clippy::suspicious_else_formatting)]
3019 let non_field_children = {
3020 let mut cursor = node.walk();
3021 let mut result = ::std::vec::Vec::new();
3022 if cursor.goto_first_child() {
3023 loop {
3024 if cursor.field_name().is_none()
3025 && cursor.node().is_named()
3026 && !cursor.node().is_extra()
3027 {
3028 result.push(cursor.node());
3029 }
3030 if !cursor.goto_next_sibling() {
3031 break;
3032 }
3033 }
3034 }
3035 result
3036 };
3037 let child = if let Some(&c) = non_field_children.first() {
3038 c
3039 } else {
3040 let mut fallback_cursor = node.walk();
3041 let mut fallback_child = None;
3042 if fallback_cursor.goto_first_child() {
3043 loop {
3044 if fallback_cursor.field_name().is_none()
3045 && !fallback_cursor.node().is_extra()
3046 {
3047 let candidate = fallback_cursor.node();
3048 #[allow(clippy::needless_question_mark)]
3049 if (|| -> ::core::result::Result<
3050 _,
3051 ::treesitter_types::ParseError,
3052 > {
3053 let child = candidate;
3054 Ok(
3055 <String as ::treesitter_types::FromNode>::from_node(
3056 child,
3057 src,
3058 )?,
3059 )
3060 })()
3061 .is_ok()
3062 {
3063 fallback_child = Some(candidate);
3064 break;
3065 }
3066 }
3067 if !fallback_cursor.goto_next_sibling() {
3068 break;
3069 }
3070 }
3071 }
3072 if fallback_child.is_none() {
3073 let mut cursor2 = node.walk();
3074 if cursor2.goto_first_child() {
3075 loop {
3076 if cursor2.node().is_named() && !cursor2.node().is_extra() {
3077 let candidate = cursor2.node();
3078 #[allow(clippy::needless_question_mark)]
3079 if (|| -> ::core::result::Result<
3080 _,
3081 ::treesitter_types::ParseError,
3082 > {
3083 let child = candidate;
3084 Ok(
3085 <String as ::treesitter_types::FromNode>::from_node(
3086 child,
3087 src,
3088 )?,
3089 )
3090 })()
3091 .is_ok()
3092 {
3093 fallback_child = Some(candidate);
3094 break;
3095 }
3096 }
3097 if !cursor2.goto_next_sibling() {
3098 break;
3099 }
3100 }
3101 }
3102 }
3103 fallback_child.ok_or_else(|| {
3104 ::treesitter_types::ParseError::missing_field("children", node)
3105 })?
3106 };
3107 <String as ::treesitter_types::FromNode>::from_node(child, src)?
3108 },
3109 })
3110 }
3111}
3112impl ::treesitter_types::Spanned for Entity<'_> {
3113 fn span(&self) -> ::treesitter_types::Span {
3114 self.span
3115 }
3116}
3117#[derive(Debug, Clone)]
3118pub struct Equation<'tree> {
3119 pub span: ::treesitter_types::Span,
3120 pub constructors: ::core::option::Option<ConstructorSynonyms<'tree>>,
3121 pub forall: ::core::option::Option<EquationForall<'tree>>,
3122 pub name: ::core::option::Option<EquationName<'tree>>,
3123 pub pattern: ::core::option::Option<EquationPattern<'tree>>,
3124 pub patterns: ::core::option::Option<TypePatterns<'tree>>,
3125 pub synonym: ::core::option::Option<Pattern<'tree>>,
3126 pub children: ::std::vec::Vec<EquationChildren<'tree>>,
3127}
3128impl<'tree> ::treesitter_types::FromNode<'tree> for Equation<'tree> {
3129 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3130 fn from_node(
3131 node: ::tree_sitter::Node<'tree>,
3132 src: &'tree [u8],
3133 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3134 debug_assert_eq!(node.kind(), "equation");
3135 Ok(Self {
3136 span: ::treesitter_types::Span::from(node),
3137 constructors: match node.child_by_field_name("constructors") {
3138 Some(child) => Some(
3139 <ConstructorSynonyms as ::treesitter_types::FromNode>::from_node(child, src)?,
3140 ),
3141 None => None,
3142 },
3143 forall: match node.child_by_field_name("forall") {
3144 Some(child) => Some(<EquationForall as ::treesitter_types::FromNode>::from_node(
3145 child, src,
3146 )?),
3147 None => None,
3148 },
3149 name: match node.child_by_field_name("name") {
3150 Some(child) => Some(<EquationName as ::treesitter_types::FromNode>::from_node(
3151 child, src,
3152 )?),
3153 None => None,
3154 },
3155 pattern: match node.child_by_field_name("pattern") {
3156 Some(child) => {
3157 Some(<EquationPattern as ::treesitter_types::FromNode>::from_node(child, src)?)
3158 }
3159 None => None,
3160 },
3161 patterns: match node.child_by_field_name("patterns") {
3162 Some(child) => Some(<TypePatterns as ::treesitter_types::FromNode>::from_node(
3163 child, src,
3164 )?),
3165 None => None,
3166 },
3167 synonym: match node.child_by_field_name("synonym") {
3168 Some(child) => Some(<Pattern as ::treesitter_types::FromNode>::from_node(
3169 child, src,
3170 )?),
3171 None => None,
3172 },
3173 children: {
3174 #[allow(clippy::suspicious_else_formatting)]
3175 let non_field_children = {
3176 let mut cursor = node.walk();
3177 let mut result = ::std::vec::Vec::new();
3178 if cursor.goto_first_child() {
3179 loop {
3180 if cursor.field_name().is_none()
3181 && cursor.node().is_named()
3182 && !cursor.node().is_extra()
3183 {
3184 result.push(cursor.node());
3185 }
3186 if !cursor.goto_next_sibling() {
3187 break;
3188 }
3189 }
3190 }
3191 result
3192 };
3193 let mut items = ::std::vec::Vec::new();
3194 for child in non_field_children {
3195 items.push(
3196 <EquationChildren as ::treesitter_types::FromNode>::from_node(child, src)?,
3197 );
3198 }
3199 items
3200 },
3201 })
3202 }
3203}
3204impl ::treesitter_types::Spanned for Equation<'_> {
3205 fn span(&self) -> ::treesitter_types::Span {
3206 self.span
3207 }
3208}
3209#[derive(Debug, Clone)]
3210pub struct Equations<'tree> {
3211 pub span: ::treesitter_types::Span,
3212 pub equation: ::std::vec::Vec<Equation<'tree>>,
3213}
3214impl<'tree> ::treesitter_types::FromNode<'tree> for Equations<'tree> {
3215 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3216 fn from_node(
3217 node: ::tree_sitter::Node<'tree>,
3218 src: &'tree [u8],
3219 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3220 debug_assert_eq!(node.kind(), "equations");
3221 Ok(Self {
3222 span: ::treesitter_types::Span::from(node),
3223 equation: {
3224 let mut cursor = node.walk();
3225 let mut items = ::std::vec::Vec::new();
3226 for child in node.children_by_field_name("equation", &mut cursor) {
3227 items.push(<Equation as ::treesitter_types::FromNode>::from_node(
3228 child, src,
3229 )?);
3230 }
3231 items
3232 },
3233 })
3234 }
3235}
3236impl ::treesitter_types::Spanned for Equations<'_> {
3237 fn span(&self) -> ::treesitter_types::Span {
3238 self.span
3239 }
3240}
3241#[derive(Debug, Clone)]
3242pub struct Exp<'tree> {
3243 pub span: ::treesitter_types::Span,
3244 pub children: ExpChildren<'tree>,
3245}
3246impl<'tree> ::treesitter_types::FromNode<'tree> for Exp<'tree> {
3247 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3248 fn from_node(
3249 node: ::tree_sitter::Node<'tree>,
3250 src: &'tree [u8],
3251 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3252 debug_assert_eq!(node.kind(), "exp");
3253 Ok(Self {
3254 span: ::treesitter_types::Span::from(node),
3255 children: {
3256 #[allow(clippy::suspicious_else_formatting)]
3257 let non_field_children = {
3258 let mut cursor = node.walk();
3259 let mut result = ::std::vec::Vec::new();
3260 if cursor.goto_first_child() {
3261 loop {
3262 if cursor.field_name().is_none()
3263 && cursor.node().is_named()
3264 && !cursor.node().is_extra()
3265 {
3266 result.push(cursor.node());
3267 }
3268 if !cursor.goto_next_sibling() {
3269 break;
3270 }
3271 }
3272 }
3273 result
3274 };
3275 let child = if let Some(&c) = non_field_children.first() {
3276 c
3277 } else {
3278 let mut fallback_cursor = node.walk();
3279 let mut fallback_child = None;
3280 if fallback_cursor.goto_first_child() {
3281 loop {
3282 if fallback_cursor.field_name().is_none()
3283 && !fallback_cursor.node().is_extra()
3284 {
3285 let candidate = fallback_cursor.node();
3286 #[allow(clippy::needless_question_mark)]
3287 if (|| -> ::core::result::Result<
3288 _,
3289 ::treesitter_types::ParseError,
3290 > {
3291 let child = candidate;
3292 Ok(
3293 <ExpChildren as ::treesitter_types::FromNode>::from_node(
3294 child,
3295 src,
3296 )?,
3297 )
3298 })()
3299 .is_ok()
3300 {
3301 fallback_child = Some(candidate);
3302 break;
3303 }
3304 }
3305 if !fallback_cursor.goto_next_sibling() {
3306 break;
3307 }
3308 }
3309 }
3310 if fallback_child.is_none() {
3311 let mut cursor2 = node.walk();
3312 if cursor2.goto_first_child() {
3313 loop {
3314 if cursor2.node().is_named() && !cursor2.node().is_extra() {
3315 let candidate = cursor2.node();
3316 #[allow(clippy::needless_question_mark)]
3317 if (|| -> ::core::result::Result<
3318 _,
3319 ::treesitter_types::ParseError,
3320 > {
3321 let child = candidate;
3322 Ok(
3323 <ExpChildren as ::treesitter_types::FromNode>::from_node(
3324 child,
3325 src,
3326 )?,
3327 )
3328 })()
3329 .is_ok()
3330 {
3331 fallback_child = Some(candidate);
3332 break;
3333 }
3334 }
3335 if !cursor2.goto_next_sibling() {
3336 break;
3337 }
3338 }
3339 }
3340 }
3341 fallback_child.ok_or_else(|| {
3342 ::treesitter_types::ParseError::missing_field("children", node)
3343 })?
3344 };
3345 <ExpChildren as ::treesitter_types::FromNode>::from_node(child, src)?
3346 },
3347 })
3348 }
3349}
3350impl ::treesitter_types::Spanned for Exp<'_> {
3351 fn span(&self) -> ::treesitter_types::Span {
3352 self.span
3353 }
3354}
3355#[derive(Debug, Clone)]
3356pub struct ExplicitType<'tree> {
3357 pub span: ::treesitter_types::Span,
3358 pub r#type: Type<'tree>,
3359}
3360impl<'tree> ::treesitter_types::FromNode<'tree> for ExplicitType<'tree> {
3361 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3362 fn from_node(
3363 node: ::tree_sitter::Node<'tree>,
3364 src: &'tree [u8],
3365 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3366 debug_assert_eq!(node.kind(), "explicit_type");
3367 Ok(Self {
3368 span: ::treesitter_types::Span::from(node),
3369 r#type: {
3370 let child = node
3371 .child_by_field_name("type")
3372 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("type", node))?;
3373 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
3374 },
3375 })
3376 }
3377}
3378impl ::treesitter_types::Spanned for ExplicitType<'_> {
3379 fn span(&self) -> ::treesitter_types::Span {
3380 self.span
3381 }
3382}
3383#[derive(Debug, Clone)]
3384pub struct Export<'tree> {
3385 pub span: ::treesitter_types::Span,
3386 pub children: ::core::option::Option<Children<'tree>>,
3387 pub namespace: ::core::option::Option<Namespace<'tree>>,
3388 pub operator: ::core::option::Option<PrefixId<'tree>>,
3389 pub r#type: ::core::option::Option<ExportType<'tree>>,
3390 pub variable: ::core::option::Option<ExportVariable<'tree>>,
3391}
3392impl<'tree> ::treesitter_types::FromNode<'tree> for Export<'tree> {
3393 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3394 fn from_node(
3395 node: ::tree_sitter::Node<'tree>,
3396 src: &'tree [u8],
3397 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3398 debug_assert_eq!(node.kind(), "export");
3399 Ok(Self {
3400 span: ::treesitter_types::Span::from(node),
3401 children: match node.child_by_field_name("children") {
3402 Some(child) => Some(<Children as ::treesitter_types::FromNode>::from_node(
3403 child, src,
3404 )?),
3405 None => None,
3406 },
3407 namespace: match node.child_by_field_name("namespace") {
3408 Some(child) => Some(<Namespace as ::treesitter_types::FromNode>::from_node(
3409 child, src,
3410 )?),
3411 None => None,
3412 },
3413 operator: match node.child_by_field_name("operator") {
3414 Some(child) => Some(<PrefixId as ::treesitter_types::FromNode>::from_node(
3415 child, src,
3416 )?),
3417 None => None,
3418 },
3419 r#type: match node.child_by_field_name("type") {
3420 Some(child) => Some(<ExportType as ::treesitter_types::FromNode>::from_node(
3421 child, src,
3422 )?),
3423 None => None,
3424 },
3425 variable: match node.child_by_field_name("variable") {
3426 Some(child) => Some(<ExportVariable as ::treesitter_types::FromNode>::from_node(
3427 child, src,
3428 )?),
3429 None => None,
3430 },
3431 })
3432 }
3433}
3434impl ::treesitter_types::Spanned for Export<'_> {
3435 fn span(&self) -> ::treesitter_types::Span {
3436 self.span
3437 }
3438}
3439#[derive(Debug, Clone)]
3440pub struct Exports<'tree> {
3441 pub span: ::treesitter_types::Span,
3442 pub export: ::std::vec::Vec<Export<'tree>>,
3443 pub children: ::std::vec::Vec<ModuleExport<'tree>>,
3444}
3445impl<'tree> ::treesitter_types::FromNode<'tree> for Exports<'tree> {
3446 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3447 fn from_node(
3448 node: ::tree_sitter::Node<'tree>,
3449 src: &'tree [u8],
3450 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3451 debug_assert_eq!(node.kind(), "exports");
3452 Ok(Self {
3453 span: ::treesitter_types::Span::from(node),
3454 export: {
3455 let mut cursor = node.walk();
3456 let mut items = ::std::vec::Vec::new();
3457 for child in node.children_by_field_name("export", &mut cursor) {
3458 items.push(<Export as ::treesitter_types::FromNode>::from_node(
3459 child, src,
3460 )?);
3461 }
3462 items
3463 },
3464 children: {
3465 #[allow(clippy::suspicious_else_formatting)]
3466 let non_field_children = {
3467 let mut cursor = node.walk();
3468 let mut result = ::std::vec::Vec::new();
3469 if cursor.goto_first_child() {
3470 loop {
3471 if cursor.field_name().is_none()
3472 && cursor.node().is_named()
3473 && !cursor.node().is_extra()
3474 {
3475 result.push(cursor.node());
3476 }
3477 if !cursor.goto_next_sibling() {
3478 break;
3479 }
3480 }
3481 }
3482 result
3483 };
3484 let mut items = ::std::vec::Vec::new();
3485 for child in non_field_children {
3486 items.push(<ModuleExport as ::treesitter_types::FromNode>::from_node(
3487 child, src,
3488 )?);
3489 }
3490 items
3491 },
3492 })
3493 }
3494}
3495impl ::treesitter_types::Spanned for Exports<'_> {
3496 fn span(&self) -> ::treesitter_types::Span {
3497 self.span
3498 }
3499}
3500#[derive(Debug, Clone)]
3501pub struct Field<'tree> {
3502 pub span: ::treesitter_types::Span,
3503 pub name: ::std::vec::Vec<FieldName<'tree>>,
3504 pub parameter: ::core::option::Option<FieldParameter<'tree>>,
3505 pub r#type: ::core::option::Option<FieldType<'tree>>,
3506 pub children: ::core::option::Option<Type<'tree>>,
3507}
3508impl<'tree> ::treesitter_types::FromNode<'tree> for Field<'tree> {
3509 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3510 fn from_node(
3511 node: ::tree_sitter::Node<'tree>,
3512 src: &'tree [u8],
3513 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3514 debug_assert_eq!(node.kind(), "field");
3515 Ok(Self {
3516 span: ::treesitter_types::Span::from(node),
3517 name: {
3518 let mut cursor = node.walk();
3519 let mut items = ::std::vec::Vec::new();
3520 for child in node.children_by_field_name("name", &mut cursor) {
3521 items.push(<FieldName as ::treesitter_types::FromNode>::from_node(
3522 child, src,
3523 )?);
3524 }
3525 items
3526 },
3527 parameter: match node.child_by_field_name("parameter") {
3528 Some(child) => Some(<FieldParameter as ::treesitter_types::FromNode>::from_node(
3529 child, src,
3530 )?),
3531 None => None,
3532 },
3533 r#type: match node.child_by_field_name("type") {
3534 Some(child) => Some(<FieldType as ::treesitter_types::FromNode>::from_node(
3535 child, src,
3536 )?),
3537 None => None,
3538 },
3539 children: {
3540 #[allow(clippy::suspicious_else_formatting)]
3541 let non_field_children = {
3542 let mut cursor = node.walk();
3543 let mut result = ::std::vec::Vec::new();
3544 if cursor.goto_first_child() {
3545 loop {
3546 if cursor.field_name().is_none()
3547 && cursor.node().is_named()
3548 && !cursor.node().is_extra()
3549 {
3550 result.push(cursor.node());
3551 }
3552 if !cursor.goto_next_sibling() {
3553 break;
3554 }
3555 }
3556 }
3557 result
3558 };
3559 match non_field_children.first() {
3560 Some(&child) => Some(<Type as ::treesitter_types::FromNode>::from_node(
3561 child, src,
3562 )?),
3563 None => None,
3564 }
3565 },
3566 })
3567 }
3568}
3569impl ::treesitter_types::Spanned for Field<'_> {
3570 fn span(&self) -> ::treesitter_types::Span {
3571 self.span
3572 }
3573}
3574#[derive(Debug, Clone)]
3575pub struct FieldName<'tree> {
3576 pub span: ::treesitter_types::Span,
3577 pub children: Variable<'tree>,
3578}
3579impl<'tree> ::treesitter_types::FromNode<'tree> for FieldName<'tree> {
3580 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3581 fn from_node(
3582 node: ::tree_sitter::Node<'tree>,
3583 src: &'tree [u8],
3584 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3585 debug_assert_eq!(node.kind(), "field_name");
3586 Ok(Self {
3587 span: ::treesitter_types::Span::from(node),
3588 children: {
3589 #[allow(clippy::suspicious_else_formatting)]
3590 let non_field_children = {
3591 let mut cursor = node.walk();
3592 let mut result = ::std::vec::Vec::new();
3593 if cursor.goto_first_child() {
3594 loop {
3595 if cursor.field_name().is_none()
3596 && cursor.node().is_named()
3597 && !cursor.node().is_extra()
3598 {
3599 result.push(cursor.node());
3600 }
3601 if !cursor.goto_next_sibling() {
3602 break;
3603 }
3604 }
3605 }
3606 result
3607 };
3608 let child = if let Some(&c) = non_field_children.first() {
3609 c
3610 } else {
3611 let mut fallback_cursor = node.walk();
3612 let mut fallback_child = None;
3613 if fallback_cursor.goto_first_child() {
3614 loop {
3615 if fallback_cursor.field_name().is_none()
3616 && !fallback_cursor.node().is_extra()
3617 {
3618 let candidate = fallback_cursor.node();
3619 #[allow(clippy::needless_question_mark)]
3620 if (|| -> ::core::result::Result<
3621 _,
3622 ::treesitter_types::ParseError,
3623 > {
3624 let child = candidate;
3625 Ok(
3626 <Variable as ::treesitter_types::FromNode>::from_node(
3627 child,
3628 src,
3629 )?,
3630 )
3631 })()
3632 .is_ok()
3633 {
3634 fallback_child = Some(candidate);
3635 break;
3636 }
3637 }
3638 if !fallback_cursor.goto_next_sibling() {
3639 break;
3640 }
3641 }
3642 }
3643 if fallback_child.is_none() {
3644 let mut cursor2 = node.walk();
3645 if cursor2.goto_first_child() {
3646 loop {
3647 if cursor2.node().is_named() && !cursor2.node().is_extra() {
3648 let candidate = cursor2.node();
3649 #[allow(clippy::needless_question_mark)]
3650 if (|| -> ::core::result::Result<
3651 _,
3652 ::treesitter_types::ParseError,
3653 > {
3654 let child = candidate;
3655 Ok(
3656 <Variable as ::treesitter_types::FromNode>::from_node(
3657 child,
3658 src,
3659 )?,
3660 )
3661 })()
3662 .is_ok()
3663 {
3664 fallback_child = Some(candidate);
3665 break;
3666 }
3667 }
3668 if !cursor2.goto_next_sibling() {
3669 break;
3670 }
3671 }
3672 }
3673 }
3674 fallback_child.ok_or_else(|| {
3675 ::treesitter_types::ParseError::missing_field("children", node)
3676 })?
3677 };
3678 <Variable as ::treesitter_types::FromNode>::from_node(child, src)?
3679 },
3680 })
3681 }
3682}
3683impl ::treesitter_types::Spanned for FieldName<'_> {
3684 fn span(&self) -> ::treesitter_types::Span {
3685 self.span
3686 }
3687}
3688#[derive(Debug, Clone)]
3689pub struct FieldPath<'tree> {
3690 pub span: ::treesitter_types::Span,
3691 pub field: FieldPathField<'tree>,
3692 pub subfield: ::std::vec::Vec<FieldName<'tree>>,
3693}
3694impl<'tree> ::treesitter_types::FromNode<'tree> for FieldPath<'tree> {
3695 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3696 fn from_node(
3697 node: ::tree_sitter::Node<'tree>,
3698 src: &'tree [u8],
3699 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3700 debug_assert_eq!(node.kind(), "field_path");
3701 Ok(Self {
3702 span: ::treesitter_types::Span::from(node),
3703 field: {
3704 let child = node
3705 .child_by_field_name("field")
3706 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("field", node))?;
3707 <FieldPathField as ::treesitter_types::FromNode>::from_node(child, src)?
3708 },
3709 subfield: {
3710 let mut cursor = node.walk();
3711 let mut items = ::std::vec::Vec::new();
3712 for child in node.children_by_field_name("subfield", &mut cursor) {
3713 items.push(<FieldName as ::treesitter_types::FromNode>::from_node(
3714 child, src,
3715 )?);
3716 }
3717 items
3718 },
3719 })
3720 }
3721}
3722impl ::treesitter_types::Spanned for FieldPath<'_> {
3723 fn span(&self) -> ::treesitter_types::Span {
3724 self.span
3725 }
3726}
3727#[derive(Debug, Clone)]
3728pub struct FieldPattern<'tree> {
3729 pub span: ::treesitter_types::Span,
3730 pub field: ::core::option::Option<FieldPatternField<'tree>>,
3731 pub pattern: ::core::option::Option<FieldPatternPattern<'tree>>,
3732 pub children: ::core::option::Option<Wildcard<'tree>>,
3733}
3734impl<'tree> ::treesitter_types::FromNode<'tree> for FieldPattern<'tree> {
3735 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3736 fn from_node(
3737 node: ::tree_sitter::Node<'tree>,
3738 src: &'tree [u8],
3739 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3740 debug_assert_eq!(node.kind(), "field_pattern");
3741 Ok(Self {
3742 span: ::treesitter_types::Span::from(node),
3743 field: match node.child_by_field_name("field") {
3744 Some(child) => Some(
3745 <FieldPatternField as ::treesitter_types::FromNode>::from_node(child, src)?,
3746 ),
3747 None => None,
3748 },
3749 pattern: match node.child_by_field_name("pattern") {
3750 Some(child) => Some(
3751 <FieldPatternPattern as ::treesitter_types::FromNode>::from_node(child, src)?,
3752 ),
3753 None => None,
3754 },
3755 children: {
3756 #[allow(clippy::suspicious_else_formatting)]
3757 let non_field_children = {
3758 let mut cursor = node.walk();
3759 let mut result = ::std::vec::Vec::new();
3760 if cursor.goto_first_child() {
3761 loop {
3762 if cursor.field_name().is_none()
3763 && cursor.node().is_named()
3764 && !cursor.node().is_extra()
3765 {
3766 result.push(cursor.node());
3767 }
3768 if !cursor.goto_next_sibling() {
3769 break;
3770 }
3771 }
3772 }
3773 result
3774 };
3775 match non_field_children.first() {
3776 Some(&child) => Some(<Wildcard as ::treesitter_types::FromNode>::from_node(
3777 child, src,
3778 )?),
3779 None => None,
3780 }
3781 },
3782 })
3783 }
3784}
3785impl ::treesitter_types::Spanned for FieldPattern<'_> {
3786 fn span(&self) -> ::treesitter_types::Span {
3787 self.span
3788 }
3789}
3790#[derive(Debug, Clone)]
3791pub struct FieldUpdate<'tree> {
3792 pub span: ::treesitter_types::Span,
3793 pub expression: ::core::option::Option<FieldUpdateExpression<'tree>>,
3794 pub field: ::core::option::Option<FieldUpdateField<'tree>>,
3795 pub children: ::core::option::Option<Wildcard<'tree>>,
3796}
3797impl<'tree> ::treesitter_types::FromNode<'tree> for FieldUpdate<'tree> {
3798 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3799 fn from_node(
3800 node: ::tree_sitter::Node<'tree>,
3801 src: &'tree [u8],
3802 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3803 debug_assert_eq!(node.kind(), "field_update");
3804 Ok(Self {
3805 span: ::treesitter_types::Span::from(node),
3806 expression: match node.child_by_field_name("expression") {
3807 Some(child) => Some(
3808 <FieldUpdateExpression as ::treesitter_types::FromNode>::from_node(child, src)?,
3809 ),
3810 None => None,
3811 },
3812 field: match node.child_by_field_name("field") {
3813 Some(child) => {
3814 Some(<FieldUpdateField as ::treesitter_types::FromNode>::from_node(child, src)?)
3815 }
3816 None => None,
3817 },
3818 children: {
3819 #[allow(clippy::suspicious_else_formatting)]
3820 let non_field_children = {
3821 let mut cursor = node.walk();
3822 let mut result = ::std::vec::Vec::new();
3823 if cursor.goto_first_child() {
3824 loop {
3825 if cursor.field_name().is_none()
3826 && cursor.node().is_named()
3827 && !cursor.node().is_extra()
3828 {
3829 result.push(cursor.node());
3830 }
3831 if !cursor.goto_next_sibling() {
3832 break;
3833 }
3834 }
3835 }
3836 result
3837 };
3838 match non_field_children.first() {
3839 Some(&child) => Some(<Wildcard as ::treesitter_types::FromNode>::from_node(
3840 child, src,
3841 )?),
3842 None => None,
3843 }
3844 },
3845 })
3846 }
3847}
3848impl ::treesitter_types::Spanned for FieldUpdate<'_> {
3849 fn span(&self) -> ::treesitter_types::Span {
3850 self.span
3851 }
3852}
3853#[derive(Debug, Clone)]
3854pub struct Fields<'tree> {
3855 pub span: ::treesitter_types::Span,
3856 pub field: ::std::vec::Vec<Field<'tree>>,
3857}
3858impl<'tree> ::treesitter_types::FromNode<'tree> for Fields<'tree> {
3859 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3860 fn from_node(
3861 node: ::tree_sitter::Node<'tree>,
3862 src: &'tree [u8],
3863 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3864 debug_assert_eq!(node.kind(), "fields");
3865 Ok(Self {
3866 span: ::treesitter_types::Span::from(node),
3867 field: {
3868 let mut cursor = node.walk();
3869 let mut items = ::std::vec::Vec::new();
3870 for child in node.children_by_field_name("field", &mut cursor) {
3871 items.push(<Field as ::treesitter_types::FromNode>::from_node(
3872 child, src,
3873 )?);
3874 }
3875 items
3876 },
3877 })
3878 }
3879}
3880impl ::treesitter_types::Spanned for Fields<'_> {
3881 fn span(&self) -> ::treesitter_types::Span {
3882 self.span
3883 }
3884}
3885#[derive(Debug, Clone)]
3886pub struct Fixity<'tree> {
3887 pub span: ::treesitter_types::Span,
3888 pub associativity: FixityAssociativity,
3889 pub operator: ::std::vec::Vec<FixityOperator<'tree>>,
3890 pub precedence: ::core::option::Option<Integer<'tree>>,
3891}
3892impl<'tree> ::treesitter_types::FromNode<'tree> for Fixity<'tree> {
3893 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3894 fn from_node(
3895 node: ::tree_sitter::Node<'tree>,
3896 src: &'tree [u8],
3897 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3898 debug_assert_eq!(node.kind(), "fixity");
3899 Ok(Self {
3900 span: ::treesitter_types::Span::from(node),
3901 associativity: {
3902 let child = node.child_by_field_name("associativity").ok_or_else(|| {
3903 ::treesitter_types::ParseError::missing_field("associativity", node)
3904 })?;
3905 <FixityAssociativity as ::treesitter_types::FromNode>::from_node(child, src)?
3906 },
3907 operator: {
3908 let mut cursor = node.walk();
3909 let mut items = ::std::vec::Vec::new();
3910 for child in node.children_by_field_name("operator", &mut cursor) {
3911 items.push(<FixityOperator as ::treesitter_types::FromNode>::from_node(
3912 child, src,
3913 )?);
3914 }
3915 items
3916 },
3917 precedence: match node.child_by_field_name("precedence") {
3918 Some(child) => Some(<Integer as ::treesitter_types::FromNode>::from_node(
3919 child, src,
3920 )?),
3921 None => None,
3922 },
3923 })
3924 }
3925}
3926impl ::treesitter_types::Spanned for Fixity<'_> {
3927 fn span(&self) -> ::treesitter_types::Span {
3928 self.span
3929 }
3930}
3931#[derive(Debug, Clone)]
3932pub struct Forall<'tree> {
3933 pub span: ::treesitter_types::Span,
3934 pub constraint: ::core::option::Option<Constraints<'tree>>,
3935 pub quantifier: ForallQuantifier,
3936 pub r#type: ::core::option::Option<QuantifiedType<'tree>>,
3937 pub variables: ::core::option::Option<QuantifiedVariables<'tree>>,
3938}
3939impl<'tree> ::treesitter_types::FromNode<'tree> for Forall<'tree> {
3940 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3941 fn from_node(
3942 node: ::tree_sitter::Node<'tree>,
3943 src: &'tree [u8],
3944 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3945 debug_assert_eq!(node.kind(), "forall");
3946 Ok(Self {
3947 span: ::treesitter_types::Span::from(node),
3948 constraint: match node.child_by_field_name("constraint") {
3949 Some(child) => Some(<Constraints as ::treesitter_types::FromNode>::from_node(
3950 child, src,
3951 )?),
3952 None => None,
3953 },
3954 quantifier: {
3955 let child = node.child_by_field_name("quantifier").ok_or_else(|| {
3956 ::treesitter_types::ParseError::missing_field("quantifier", node)
3957 })?;
3958 <ForallQuantifier as ::treesitter_types::FromNode>::from_node(child, src)?
3959 },
3960 r#type: match node.child_by_field_name("type") {
3961 Some(child) => Some(<QuantifiedType as ::treesitter_types::FromNode>::from_node(
3962 child, src,
3963 )?),
3964 None => None,
3965 },
3966 variables: match node.child_by_field_name("variables") {
3967 Some(child) => Some(
3968 <QuantifiedVariables as ::treesitter_types::FromNode>::from_node(child, src)?,
3969 ),
3970 None => None,
3971 },
3972 })
3973 }
3974}
3975impl ::treesitter_types::Spanned for Forall<'_> {
3976 fn span(&self) -> ::treesitter_types::Span {
3977 self.span
3978 }
3979}
3980#[derive(Debug, Clone)]
3981pub struct ForallRequired<'tree> {
3982 pub span: ::treesitter_types::Span,
3983 pub quantifier: ForallRequiredQuantifier,
3984 pub r#type: ::core::option::Option<QuantifiedType<'tree>>,
3985 pub variables: ::core::option::Option<QuantifiedVariables<'tree>>,
3986}
3987impl<'tree> ::treesitter_types::FromNode<'tree> for ForallRequired<'tree> {
3988 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
3989 fn from_node(
3990 node: ::tree_sitter::Node<'tree>,
3991 src: &'tree [u8],
3992 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
3993 debug_assert_eq!(node.kind(), "forall_required");
3994 Ok(Self {
3995 span: ::treesitter_types::Span::from(node),
3996 quantifier: {
3997 let child = node.child_by_field_name("quantifier").ok_or_else(|| {
3998 ::treesitter_types::ParseError::missing_field("quantifier", node)
3999 })?;
4000 <ForallRequiredQuantifier as ::treesitter_types::FromNode>::from_node(child, src)?
4001 },
4002 r#type: match node.child_by_field_name("type") {
4003 Some(child) => Some(<QuantifiedType as ::treesitter_types::FromNode>::from_node(
4004 child, src,
4005 )?),
4006 None => None,
4007 },
4008 variables: match node.child_by_field_name("variables") {
4009 Some(child) => Some(
4010 <QuantifiedVariables as ::treesitter_types::FromNode>::from_node(child, src)?,
4011 ),
4012 None => None,
4013 },
4014 })
4015 }
4016}
4017impl ::treesitter_types::Spanned for ForallRequired<'_> {
4018 fn span(&self) -> ::treesitter_types::Span {
4019 self.span
4020 }
4021}
4022#[derive(Debug, Clone)]
4023pub struct ForeignExport<'tree> {
4024 pub span: ::treesitter_types::Span,
4025 pub calling_convention: CallingConvention<'tree>,
4026 pub entity: ::core::option::Option<Entity<'tree>>,
4027 pub signature: Signature<'tree>,
4028}
4029impl<'tree> ::treesitter_types::FromNode<'tree> for ForeignExport<'tree> {
4030 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4031 fn from_node(
4032 node: ::tree_sitter::Node<'tree>,
4033 src: &'tree [u8],
4034 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4035 debug_assert_eq!(node.kind(), "foreign_export");
4036 Ok(Self {
4037 span: ::treesitter_types::Span::from(node),
4038 calling_convention: {
4039 let child = node
4040 .child_by_field_name("calling_convention")
4041 .ok_or_else(|| {
4042 ::treesitter_types::ParseError::missing_field("calling_convention", node)
4043 })?;
4044 <CallingConvention as ::treesitter_types::FromNode>::from_node(child, src)?
4045 },
4046 entity: match node.child_by_field_name("entity") {
4047 Some(child) => Some(<Entity as ::treesitter_types::FromNode>::from_node(
4048 child, src,
4049 )?),
4050 None => None,
4051 },
4052 signature: {
4053 let child = node.child_by_field_name("signature").ok_or_else(|| {
4054 ::treesitter_types::ParseError::missing_field("signature", node)
4055 })?;
4056 <Signature as ::treesitter_types::FromNode>::from_node(child, src)?
4057 },
4058 })
4059 }
4060}
4061impl ::treesitter_types::Spanned for ForeignExport<'_> {
4062 fn span(&self) -> ::treesitter_types::Span {
4063 self.span
4064 }
4065}
4066#[derive(Debug, Clone)]
4067pub struct ForeignImport<'tree> {
4068 pub span: ::treesitter_types::Span,
4069 pub calling_convention: CallingConvention<'tree>,
4070 pub entity: ::core::option::Option<Entity<'tree>>,
4071 pub safety: ::core::option::Option<Safety<'tree>>,
4072 pub signature: Signature<'tree>,
4073}
4074impl<'tree> ::treesitter_types::FromNode<'tree> for ForeignImport<'tree> {
4075 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4076 fn from_node(
4077 node: ::tree_sitter::Node<'tree>,
4078 src: &'tree [u8],
4079 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4080 debug_assert_eq!(node.kind(), "foreign_import");
4081 Ok(Self {
4082 span: ::treesitter_types::Span::from(node),
4083 calling_convention: {
4084 let child = node
4085 .child_by_field_name("calling_convention")
4086 .ok_or_else(|| {
4087 ::treesitter_types::ParseError::missing_field("calling_convention", node)
4088 })?;
4089 <CallingConvention as ::treesitter_types::FromNode>::from_node(child, src)?
4090 },
4091 entity: match node.child_by_field_name("entity") {
4092 Some(child) => Some(<Entity as ::treesitter_types::FromNode>::from_node(
4093 child, src,
4094 )?),
4095 None => None,
4096 },
4097 safety: match node.child_by_field_name("safety") {
4098 Some(child) => Some(<Safety as ::treesitter_types::FromNode>::from_node(
4099 child, src,
4100 )?),
4101 None => None,
4102 },
4103 signature: {
4104 let child = node.child_by_field_name("signature").ok_or_else(|| {
4105 ::treesitter_types::ParseError::missing_field("signature", node)
4106 })?;
4107 <Signature as ::treesitter_types::FromNode>::from_node(child, src)?
4108 },
4109 })
4110 }
4111}
4112impl ::treesitter_types::Spanned for ForeignImport<'_> {
4113 fn span(&self) -> ::treesitter_types::Span {
4114 self.span
4115 }
4116}
4117#[derive(Debug, Clone)]
4118pub struct Function<'tree> {
4119 pub span: ::treesitter_types::Span,
4120 pub arrow: ::core::option::Option<FunctionArrow>,
4121 pub binds: ::core::option::Option<LocalBinds<'tree>>,
4122 pub r#match: ::std::vec::Vec<Match<'tree>>,
4123 pub name: ::core::option::Option<FunctionName<'tree>>,
4124 pub parameter: ::core::option::Option<FunctionParameter<'tree>>,
4125 pub parens: ::core::option::Option<FunctionHeadParens<'tree>>,
4126 pub patterns: ::core::option::Option<Patterns<'tree>>,
4127 pub result: ::core::option::Option<QuantifiedType<'tree>>,
4128 pub children: ::core::option::Option<Infix<'tree>>,
4129}
4130impl<'tree> ::treesitter_types::FromNode<'tree> for Function<'tree> {
4131 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4132 fn from_node(
4133 node: ::tree_sitter::Node<'tree>,
4134 src: &'tree [u8],
4135 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4136 debug_assert_eq!(node.kind(), "function");
4137 Ok(Self {
4138 span: ::treesitter_types::Span::from(node),
4139 arrow: match node.child_by_field_name("arrow") {
4140 Some(child) => Some(<FunctionArrow as ::treesitter_types::FromNode>::from_node(
4141 child, src,
4142 )?),
4143 None => None,
4144 },
4145 binds: match node.child_by_field_name("binds") {
4146 Some(child) => Some(<LocalBinds as ::treesitter_types::FromNode>::from_node(
4147 child, src,
4148 )?),
4149 None => None,
4150 },
4151 r#match: {
4152 let mut cursor = node.walk();
4153 let mut items = ::std::vec::Vec::new();
4154 for child in node.children_by_field_name("match", &mut cursor) {
4155 items.push(<Match as ::treesitter_types::FromNode>::from_node(
4156 child, src,
4157 )?);
4158 }
4159 items
4160 },
4161 name: match node.child_by_field_name("name") {
4162 Some(child) => Some(<FunctionName as ::treesitter_types::FromNode>::from_node(
4163 child, src,
4164 )?),
4165 None => None,
4166 },
4167 parameter: match node.child_by_field_name("parameter") {
4168 Some(child) => Some(
4169 <FunctionParameter as ::treesitter_types::FromNode>::from_node(child, src)?,
4170 ),
4171 None => None,
4172 },
4173 parens: match node.child_by_field_name("parens") {
4174 Some(child) => Some(
4175 <FunctionHeadParens as ::treesitter_types::FromNode>::from_node(child, src)?,
4176 ),
4177 None => None,
4178 },
4179 patterns: match node.child_by_field_name("patterns") {
4180 Some(child) => Some(<Patterns as ::treesitter_types::FromNode>::from_node(
4181 child, src,
4182 )?),
4183 None => None,
4184 },
4185 result: match node.child_by_field_name("result") {
4186 Some(child) => Some(<QuantifiedType as ::treesitter_types::FromNode>::from_node(
4187 child, src,
4188 )?),
4189 None => None,
4190 },
4191 children: {
4192 #[allow(clippy::suspicious_else_formatting)]
4193 let non_field_children = {
4194 let mut cursor = node.walk();
4195 let mut result = ::std::vec::Vec::new();
4196 if cursor.goto_first_child() {
4197 loop {
4198 if cursor.field_name().is_none()
4199 && cursor.node().is_named()
4200 && !cursor.node().is_extra()
4201 {
4202 result.push(cursor.node());
4203 }
4204 if !cursor.goto_next_sibling() {
4205 break;
4206 }
4207 }
4208 }
4209 result
4210 };
4211 match non_field_children.first() {
4212 Some(&child) => Some(<Infix as ::treesitter_types::FromNode>::from_node(
4213 child, src,
4214 )?),
4215 None => None,
4216 }
4217 },
4218 })
4219 }
4220}
4221impl ::treesitter_types::Spanned for Function<'_> {
4222 fn span(&self) -> ::treesitter_types::Span {
4223 self.span
4224 }
4225}
4226#[derive(Debug, Clone)]
4227pub struct FunctionHeadParens<'tree> {
4228 pub span: ::treesitter_types::Span,
4229 pub name: ::core::option::Option<FunctionHeadParensName<'tree>>,
4230 pub parens: ::core::option::Option<::std::boxed::Box<FunctionHeadParens<'tree>>>,
4231 pub patterns: ::core::option::Option<Patterns<'tree>>,
4232 pub children: ::core::option::Option<Infix<'tree>>,
4233}
4234impl<'tree> ::treesitter_types::FromNode<'tree> for FunctionHeadParens<'tree> {
4235 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4236 fn from_node(
4237 node: ::tree_sitter::Node<'tree>,
4238 src: &'tree [u8],
4239 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4240 debug_assert_eq!(node.kind(), "function_head_parens");
4241 Ok(Self {
4242 span: ::treesitter_types::Span::from(node),
4243 name: match node.child_by_field_name("name") {
4244 Some(child) => Some(
4245 <FunctionHeadParensName as ::treesitter_types::FromNode>::from_node(
4246 child, src,
4247 )?,
4248 ),
4249 None => None,
4250 },
4251 parens: match node.child_by_field_name("parens") {
4252 Some(child) => Some(::std::boxed::Box::new(
4253 <FunctionHeadParens as ::treesitter_types::FromNode>::from_node(child, src)?,
4254 )),
4255 None => None,
4256 },
4257 patterns: match node.child_by_field_name("patterns") {
4258 Some(child) => Some(<Patterns as ::treesitter_types::FromNode>::from_node(
4259 child, src,
4260 )?),
4261 None => None,
4262 },
4263 children: {
4264 #[allow(clippy::suspicious_else_formatting)]
4265 let non_field_children = {
4266 let mut cursor = node.walk();
4267 let mut result = ::std::vec::Vec::new();
4268 if cursor.goto_first_child() {
4269 loop {
4270 if cursor.field_name().is_none()
4271 && cursor.node().is_named()
4272 && !cursor.node().is_extra()
4273 {
4274 result.push(cursor.node());
4275 }
4276 if !cursor.goto_next_sibling() {
4277 break;
4278 }
4279 }
4280 }
4281 result
4282 };
4283 match non_field_children.first() {
4284 Some(&child) => Some(<Infix as ::treesitter_types::FromNode>::from_node(
4285 child, src,
4286 )?),
4287 None => None,
4288 }
4289 },
4290 })
4291 }
4292}
4293impl ::treesitter_types::Spanned for FunctionHeadParens<'_> {
4294 fn span(&self) -> ::treesitter_types::Span {
4295 self.span
4296 }
4297}
4298#[derive(Debug, Clone)]
4299pub struct Fundep<'tree> {
4300 pub span: ::treesitter_types::Span,
4301 pub determined: ::std::vec::Vec<Variable<'tree>>,
4302 pub matched: ::std::vec::Vec<Variable<'tree>>,
4303}
4304impl<'tree> ::treesitter_types::FromNode<'tree> for Fundep<'tree> {
4305 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4306 fn from_node(
4307 node: ::tree_sitter::Node<'tree>,
4308 src: &'tree [u8],
4309 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4310 debug_assert_eq!(node.kind(), "fundep");
4311 Ok(Self {
4312 span: ::treesitter_types::Span::from(node),
4313 determined: {
4314 let mut cursor = node.walk();
4315 let mut items = ::std::vec::Vec::new();
4316 for child in node.children_by_field_name("determined", &mut cursor) {
4317 items.push(<Variable as ::treesitter_types::FromNode>::from_node(
4318 child, src,
4319 )?);
4320 }
4321 items
4322 },
4323 matched: {
4324 let mut cursor = node.walk();
4325 let mut items = ::std::vec::Vec::new();
4326 for child in node.children_by_field_name("matched", &mut cursor) {
4327 items.push(<Variable as ::treesitter_types::FromNode>::from_node(
4328 child, src,
4329 )?);
4330 }
4331 items
4332 },
4333 })
4334 }
4335}
4336impl ::treesitter_types::Spanned for Fundep<'_> {
4337 fn span(&self) -> ::treesitter_types::Span {
4338 self.span
4339 }
4340}
4341#[derive(Debug, Clone)]
4342pub struct Fundeps<'tree> {
4343 pub span: ::treesitter_types::Span,
4344 pub fundep: ::std::vec::Vec<Fundep<'tree>>,
4345}
4346impl<'tree> ::treesitter_types::FromNode<'tree> for Fundeps<'tree> {
4347 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4348 fn from_node(
4349 node: ::tree_sitter::Node<'tree>,
4350 src: &'tree [u8],
4351 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4352 debug_assert_eq!(node.kind(), "fundeps");
4353 Ok(Self {
4354 span: ::treesitter_types::Span::from(node),
4355 fundep: {
4356 let mut cursor = node.walk();
4357 let mut items = ::std::vec::Vec::new();
4358 for child in node.children_by_field_name("fundep", &mut cursor) {
4359 items.push(<Fundep as ::treesitter_types::FromNode>::from_node(
4360 child, src,
4361 )?);
4362 }
4363 items
4364 },
4365 })
4366 }
4367}
4368impl ::treesitter_types::Spanned for Fundeps<'_> {
4369 fn span(&self) -> ::treesitter_types::Span {
4370 self.span
4371 }
4372}
4373#[derive(Debug, Clone)]
4374pub struct GadtConstructor<'tree> {
4375 pub span: ::treesitter_types::Span,
4376 pub context: ::core::option::Option<Context<'tree>>,
4377 pub forall: ::core::option::Option<GadtConstructorForall<'tree>>,
4378 pub name: ::core::option::Option<GadtConstructorName<'tree>>,
4379 pub names: ::core::option::Option<BindingList<'tree>>,
4380 pub r#type: GadtConstructorType<'tree>,
4381}
4382impl<'tree> ::treesitter_types::FromNode<'tree> for GadtConstructor<'tree> {
4383 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4384 fn from_node(
4385 node: ::tree_sitter::Node<'tree>,
4386 src: &'tree [u8],
4387 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4388 debug_assert_eq!(node.kind(), "gadt_constructor");
4389 Ok(Self {
4390 span: ::treesitter_types::Span::from(node),
4391 context: match node.child_by_field_name("context") {
4392 Some(child) => Some(<Context as ::treesitter_types::FromNode>::from_node(
4393 child, src,
4394 )?),
4395 None => None,
4396 },
4397 forall: match node.child_by_field_name("forall") {
4398 Some(child) => Some(
4399 <GadtConstructorForall as ::treesitter_types::FromNode>::from_node(child, src)?,
4400 ),
4401 None => None,
4402 },
4403 name: match node.child_by_field_name("name") {
4404 Some(child) => Some(
4405 <GadtConstructorName as ::treesitter_types::FromNode>::from_node(child, src)?,
4406 ),
4407 None => None,
4408 },
4409 names: match node.child_by_field_name("names") {
4410 Some(child) => Some(<BindingList as ::treesitter_types::FromNode>::from_node(
4411 child, src,
4412 )?),
4413 None => None,
4414 },
4415 r#type: {
4416 let child = node
4417 .child_by_field_name("type")
4418 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("type", node))?;
4419 <GadtConstructorType as ::treesitter_types::FromNode>::from_node(child, src)?
4420 },
4421 })
4422 }
4423}
4424impl ::treesitter_types::Spanned for GadtConstructor<'_> {
4425 fn span(&self) -> ::treesitter_types::Span {
4426 self.span
4427 }
4428}
4429#[derive(Debug, Clone)]
4430pub struct GadtConstructors<'tree> {
4431 pub span: ::treesitter_types::Span,
4432 pub constructor: ::std::vec::Vec<GadtConstructor<'tree>>,
4433}
4434impl<'tree> ::treesitter_types::FromNode<'tree> for GadtConstructors<'tree> {
4435 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4436 fn from_node(
4437 node: ::tree_sitter::Node<'tree>,
4438 src: &'tree [u8],
4439 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4440 debug_assert_eq!(node.kind(), "gadt_constructors");
4441 Ok(Self {
4442 span: ::treesitter_types::Span::from(node),
4443 constructor: {
4444 let mut cursor = node.walk();
4445 let mut items = ::std::vec::Vec::new();
4446 for child in node.children_by_field_name("constructor", &mut cursor) {
4447 items.push(
4448 <GadtConstructor as ::treesitter_types::FromNode>::from_node(child, src)?,
4449 );
4450 }
4451 items
4452 },
4453 })
4454 }
4455}
4456impl ::treesitter_types::Spanned for GadtConstructors<'_> {
4457 fn span(&self) -> ::treesitter_types::Span {
4458 self.span
4459 }
4460}
4461#[derive(Debug, Clone)]
4462pub struct Generator<'tree> {
4463 pub span: ::treesitter_types::Span,
4464 pub arrow: GeneratorArrow,
4465 pub expression: GeneratorExpression<'tree>,
4466 pub pattern: GeneratorPattern<'tree>,
4467}
4468impl<'tree> ::treesitter_types::FromNode<'tree> for Generator<'tree> {
4469 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4470 fn from_node(
4471 node: ::tree_sitter::Node<'tree>,
4472 src: &'tree [u8],
4473 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4474 debug_assert_eq!(node.kind(), "generator");
4475 Ok(Self {
4476 span: ::treesitter_types::Span::from(node),
4477 arrow: {
4478 let child = node
4479 .child_by_field_name("arrow")
4480 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("arrow", node))?;
4481 <GeneratorArrow as ::treesitter_types::FromNode>::from_node(child, src)?
4482 },
4483 expression: {
4484 let child = node.child_by_field_name("expression").ok_or_else(|| {
4485 ::treesitter_types::ParseError::missing_field("expression", node)
4486 })?;
4487 <GeneratorExpression as ::treesitter_types::FromNode>::from_node(child, src)?
4488 },
4489 pattern: {
4490 let child = node.child_by_field_name("pattern").ok_or_else(|| {
4491 ::treesitter_types::ParseError::missing_field("pattern", node)
4492 })?;
4493 <GeneratorPattern as ::treesitter_types::FromNode>::from_node(child, src)?
4494 },
4495 })
4496 }
4497}
4498impl ::treesitter_types::Spanned for Generator<'_> {
4499 fn span(&self) -> ::treesitter_types::Span {
4500 self.span
4501 }
4502}
4503#[derive(Debug, Clone)]
4504pub struct Group<'tree> {
4505 pub span: ::treesitter_types::Span,
4506 pub classifier: GroupClassifier<'tree>,
4507 pub key: ::core::option::Option<GroupKey<'tree>>,
4508}
4509impl<'tree> ::treesitter_types::FromNode<'tree> for Group<'tree> {
4510 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4511 fn from_node(
4512 node: ::tree_sitter::Node<'tree>,
4513 src: &'tree [u8],
4514 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4515 debug_assert_eq!(node.kind(), "group");
4516 Ok(Self {
4517 span: ::treesitter_types::Span::from(node),
4518 classifier: {
4519 let child = node.child_by_field_name("classifier").ok_or_else(|| {
4520 ::treesitter_types::ParseError::missing_field("classifier", node)
4521 })?;
4522 <GroupClassifier as ::treesitter_types::FromNode>::from_node(child, src)?
4523 },
4524 key: match node.child_by_field_name("key") {
4525 Some(child) => Some(<GroupKey as ::treesitter_types::FromNode>::from_node(
4526 child, src,
4527 )?),
4528 None => None,
4529 },
4530 })
4531 }
4532}
4533impl ::treesitter_types::Spanned for Group<'_> {
4534 fn span(&self) -> ::treesitter_types::Span {
4535 self.span
4536 }
4537}
4538#[derive(Debug, Clone)]
4539pub struct Guards<'tree> {
4540 pub span: ::treesitter_types::Span,
4541 pub guard: ::std::vec::Vec<Guard<'tree>>,
4542}
4543impl<'tree> ::treesitter_types::FromNode<'tree> for Guards<'tree> {
4544 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4545 fn from_node(
4546 node: ::tree_sitter::Node<'tree>,
4547 src: &'tree [u8],
4548 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4549 debug_assert_eq!(node.kind(), "guards");
4550 Ok(Self {
4551 span: ::treesitter_types::Span::from(node),
4552 guard: {
4553 let mut cursor = node.walk();
4554 let mut items = ::std::vec::Vec::new();
4555 for child in node.children_by_field_name("guard", &mut cursor) {
4556 items.push(<Guard as ::treesitter_types::FromNode>::from_node(
4557 child, src,
4558 )?);
4559 }
4560 items
4561 },
4562 })
4563 }
4564}
4565impl ::treesitter_types::Spanned for Guards<'_> {
4566 fn span(&self) -> ::treesitter_types::Span {
4567 self.span
4568 }
4569}
4570#[derive(Debug, Clone)]
4571pub struct Haskell<'tree> {
4572 pub span: ::treesitter_types::Span,
4573 pub declarations: ::core::option::Option<Declarations<'tree>>,
4574 pub imports: ::core::option::Option<Imports<'tree>>,
4575 pub children: ::core::option::Option<Header<'tree>>,
4576}
4577impl<'tree> ::treesitter_types::FromNode<'tree> for Haskell<'tree> {
4578 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4579 fn from_node(
4580 node: ::tree_sitter::Node<'tree>,
4581 src: &'tree [u8],
4582 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4583 debug_assert_eq!(node.kind(), "haskell");
4584 Ok(Self {
4585 span: ::treesitter_types::Span::from(node),
4586 declarations: match node.child_by_field_name("declarations") {
4587 Some(child) => Some(<Declarations as ::treesitter_types::FromNode>::from_node(
4588 child, src,
4589 )?),
4590 None => None,
4591 },
4592 imports: match node.child_by_field_name("imports") {
4593 Some(child) => Some(<Imports as ::treesitter_types::FromNode>::from_node(
4594 child, src,
4595 )?),
4596 None => None,
4597 },
4598 children: {
4599 #[allow(clippy::suspicious_else_formatting)]
4600 let non_field_children = {
4601 let mut cursor = node.walk();
4602 let mut result = ::std::vec::Vec::new();
4603 if cursor.goto_first_child() {
4604 loop {
4605 if cursor.field_name().is_none()
4606 && cursor.node().is_named()
4607 && !cursor.node().is_extra()
4608 {
4609 result.push(cursor.node());
4610 }
4611 if !cursor.goto_next_sibling() {
4612 break;
4613 }
4614 }
4615 }
4616 result
4617 };
4618 match non_field_children.first() {
4619 Some(&child) => Some(<Header as ::treesitter_types::FromNode>::from_node(
4620 child, src,
4621 )?),
4622 None => None,
4623 }
4624 },
4625 })
4626 }
4627}
4628impl ::treesitter_types::Spanned for Haskell<'_> {
4629 fn span(&self) -> ::treesitter_types::Span {
4630 self.span
4631 }
4632}
4633#[derive(Debug, Clone)]
4634pub struct Header<'tree> {
4635 pub span: ::treesitter_types::Span,
4636 pub exports: ::core::option::Option<Exports<'tree>>,
4637 pub module: Module<'tree>,
4638}
4639impl<'tree> ::treesitter_types::FromNode<'tree> for Header<'tree> {
4640 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4641 fn from_node(
4642 node: ::tree_sitter::Node<'tree>,
4643 src: &'tree [u8],
4644 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4645 debug_assert_eq!(node.kind(), "header");
4646 Ok(Self {
4647 span: ::treesitter_types::Span::from(node),
4648 exports: match node.child_by_field_name("exports") {
4649 Some(child) => Some(<Exports as ::treesitter_types::FromNode>::from_node(
4650 child, src,
4651 )?),
4652 None => None,
4653 },
4654 module: {
4655 let child = node
4656 .child_by_field_name("module")
4657 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("module", node))?;
4658 <Module as ::treesitter_types::FromNode>::from_node(child, src)?
4659 },
4660 })
4661 }
4662}
4663impl ::treesitter_types::Spanned for Header<'_> {
4664 fn span(&self) -> ::treesitter_types::Span {
4665 self.span
4666 }
4667}
4668#[derive(Debug, Clone)]
4669pub struct ImplicitParameter<'tree> {
4670 pub span: ::treesitter_types::Span,
4671 pub name: ImplicitVariable<'tree>,
4672 pub r#type: QuantifiedType<'tree>,
4673}
4674impl<'tree> ::treesitter_types::FromNode<'tree> for ImplicitParameter<'tree> {
4675 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4676 fn from_node(
4677 node: ::tree_sitter::Node<'tree>,
4678 src: &'tree [u8],
4679 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4680 debug_assert_eq!(node.kind(), "implicit_parameter");
4681 Ok(Self {
4682 span: ::treesitter_types::Span::from(node),
4683 name: {
4684 let child = node
4685 .child_by_field_name("name")
4686 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
4687 <ImplicitVariable as ::treesitter_types::FromNode>::from_node(child, src)?
4688 },
4689 r#type: {
4690 let child = node
4691 .child_by_field_name("type")
4692 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("type", node))?;
4693 <QuantifiedType as ::treesitter_types::FromNode>::from_node(child, src)?
4694 },
4695 })
4696 }
4697}
4698impl ::treesitter_types::Spanned for ImplicitParameter<'_> {
4699 fn span(&self) -> ::treesitter_types::Span {
4700 self.span
4701 }
4702}
4703#[derive(Debug, Clone)]
4704pub struct Import<'tree> {
4705 pub span: ::treesitter_types::Span,
4706 pub alias: ::core::option::Option<Module<'tree>>,
4707 pub module: Module<'tree>,
4708 pub names: ::core::option::Option<ImportList<'tree>>,
4709 pub package: ::core::option::Option<ImportPackage<'tree>>,
4710}
4711impl<'tree> ::treesitter_types::FromNode<'tree> for Import<'tree> {
4712 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4713 fn from_node(
4714 node: ::tree_sitter::Node<'tree>,
4715 src: &'tree [u8],
4716 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4717 debug_assert_eq!(node.kind(), "import");
4718 Ok(Self {
4719 span: ::treesitter_types::Span::from(node),
4720 alias: match node.child_by_field_name("alias") {
4721 Some(child) => Some(<Module as ::treesitter_types::FromNode>::from_node(
4722 child, src,
4723 )?),
4724 None => None,
4725 },
4726 module: {
4727 let child = node
4728 .child_by_field_name("module")
4729 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("module", node))?;
4730 <Module as ::treesitter_types::FromNode>::from_node(child, src)?
4731 },
4732 names: match node.child_by_field_name("names") {
4733 Some(child) => Some(<ImportList as ::treesitter_types::FromNode>::from_node(
4734 child, src,
4735 )?),
4736 None => None,
4737 },
4738 package: match node.child_by_field_name("package") {
4739 Some(child) => Some(<ImportPackage as ::treesitter_types::FromNode>::from_node(
4740 child, src,
4741 )?),
4742 None => None,
4743 },
4744 })
4745 }
4746}
4747impl ::treesitter_types::Spanned for Import<'_> {
4748 fn span(&self) -> ::treesitter_types::Span {
4749 self.span
4750 }
4751}
4752#[derive(Debug, Clone)]
4753pub struct ImportList<'tree> {
4754 pub span: ::treesitter_types::Span,
4755 pub name: ::std::vec::Vec<ImportName<'tree>>,
4756}
4757impl<'tree> ::treesitter_types::FromNode<'tree> for ImportList<'tree> {
4758 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4759 fn from_node(
4760 node: ::tree_sitter::Node<'tree>,
4761 src: &'tree [u8],
4762 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4763 debug_assert_eq!(node.kind(), "import_list");
4764 Ok(Self {
4765 span: ::treesitter_types::Span::from(node),
4766 name: {
4767 let mut cursor = node.walk();
4768 let mut items = ::std::vec::Vec::new();
4769 for child in node.children_by_field_name("name", &mut cursor) {
4770 items.push(<ImportName as ::treesitter_types::FromNode>::from_node(
4771 child, src,
4772 )?);
4773 }
4774 items
4775 },
4776 })
4777 }
4778}
4779impl ::treesitter_types::Spanned for ImportList<'_> {
4780 fn span(&self) -> ::treesitter_types::Span {
4781 self.span
4782 }
4783}
4784#[derive(Debug, Clone)]
4785pub struct ImportName<'tree> {
4786 pub span: ::treesitter_types::Span,
4787 pub children: ::core::option::Option<Children<'tree>>,
4788 pub namespace: ::core::option::Option<Namespace<'tree>>,
4789 pub operator: ::core::option::Option<PrefixId<'tree>>,
4790 pub r#type: ::core::option::Option<ImportNameType<'tree>>,
4791 pub variable: ::core::option::Option<ImportNameVariable<'tree>>,
4792}
4793impl<'tree> ::treesitter_types::FromNode<'tree> for ImportName<'tree> {
4794 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
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(), "import_name");
4800 Ok(Self {
4801 span: ::treesitter_types::Span::from(node),
4802 children: match node.child_by_field_name("children") {
4803 Some(child) => Some(<Children as ::treesitter_types::FromNode>::from_node(
4804 child, src,
4805 )?),
4806 None => None,
4807 },
4808 namespace: match node.child_by_field_name("namespace") {
4809 Some(child) => Some(<Namespace as ::treesitter_types::FromNode>::from_node(
4810 child, src,
4811 )?),
4812 None => None,
4813 },
4814 operator: match node.child_by_field_name("operator") {
4815 Some(child) => Some(<PrefixId as ::treesitter_types::FromNode>::from_node(
4816 child, src,
4817 )?),
4818 None => None,
4819 },
4820 r#type: match node.child_by_field_name("type") {
4821 Some(child) => Some(<ImportNameType as ::treesitter_types::FromNode>::from_node(
4822 child, src,
4823 )?),
4824 None => None,
4825 },
4826 variable: match node.child_by_field_name("variable") {
4827 Some(child) => Some(
4828 <ImportNameVariable as ::treesitter_types::FromNode>::from_node(child, src)?,
4829 ),
4830 None => None,
4831 },
4832 })
4833 }
4834}
4835impl ::treesitter_types::Spanned for ImportName<'_> {
4836 fn span(&self) -> ::treesitter_types::Span {
4837 self.span
4838 }
4839}
4840#[derive(Debug, Clone)]
4841pub struct Imports<'tree> {
4842 pub span: ::treesitter_types::Span,
4843 pub import: ::std::vec::Vec<Import<'tree>>,
4844}
4845impl<'tree> ::treesitter_types::FromNode<'tree> for Imports<'tree> {
4846 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4847 fn from_node(
4848 node: ::tree_sitter::Node<'tree>,
4849 src: &'tree [u8],
4850 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4851 debug_assert_eq!(node.kind(), "imports");
4852 Ok(Self {
4853 span: ::treesitter_types::Span::from(node),
4854 import: {
4855 let mut cursor = node.walk();
4856 let mut items = ::std::vec::Vec::new();
4857 for child in node.children_by_field_name("import", &mut cursor) {
4858 items.push(<Import as ::treesitter_types::FromNode>::from_node(
4859 child, src,
4860 )?);
4861 }
4862 items
4863 },
4864 })
4865 }
4866}
4867impl ::treesitter_types::Spanned for Imports<'_> {
4868 fn span(&self) -> ::treesitter_types::Span {
4869 self.span
4870 }
4871}
4872#[derive(Debug, Clone)]
4873pub struct Inferred<'tree> {
4874 pub span: ::treesitter_types::Span,
4875 pub children: InferredChildren<'tree>,
4876}
4877impl<'tree> ::treesitter_types::FromNode<'tree> for Inferred<'tree> {
4878 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4879 fn from_node(
4880 node: ::tree_sitter::Node<'tree>,
4881 src: &'tree [u8],
4882 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4883 debug_assert_eq!(node.kind(), "inferred");
4884 Ok(Self {
4885 span: ::treesitter_types::Span::from(node),
4886 children: {
4887 #[allow(clippy::suspicious_else_formatting)]
4888 let non_field_children = {
4889 let mut cursor = node.walk();
4890 let mut result = ::std::vec::Vec::new();
4891 if cursor.goto_first_child() {
4892 loop {
4893 if cursor.field_name().is_none()
4894 && cursor.node().is_named()
4895 && !cursor.node().is_extra()
4896 {
4897 result.push(cursor.node());
4898 }
4899 if !cursor.goto_next_sibling() {
4900 break;
4901 }
4902 }
4903 }
4904 result
4905 };
4906 let child = if let Some(&c) = non_field_children.first() {
4907 c
4908 } else {
4909 let mut fallback_cursor = node.walk();
4910 let mut fallback_child = None;
4911 if fallback_cursor.goto_first_child() {
4912 loop {
4913 if fallback_cursor.field_name().is_none()
4914 && !fallback_cursor.node().is_extra()
4915 {
4916 let candidate = fallback_cursor.node();
4917 #[allow(clippy::needless_question_mark)]
4918 if (|| -> ::core::result::Result<
4919 _,
4920 ::treesitter_types::ParseError,
4921 > {
4922 let child = candidate;
4923 Ok(
4924 <InferredChildren as ::treesitter_types::FromNode>::from_node(
4925 child,
4926 src,
4927 )?,
4928 )
4929 })()
4930 .is_ok()
4931 {
4932 fallback_child = Some(candidate);
4933 break;
4934 }
4935 }
4936 if !fallback_cursor.goto_next_sibling() {
4937 break;
4938 }
4939 }
4940 }
4941 if fallback_child.is_none() {
4942 let mut cursor2 = node.walk();
4943 if cursor2.goto_first_child() {
4944 loop {
4945 if cursor2.node().is_named() && !cursor2.node().is_extra() {
4946 let candidate = cursor2.node();
4947 #[allow(clippy::needless_question_mark)]
4948 if (|| -> ::core::result::Result<
4949 _,
4950 ::treesitter_types::ParseError,
4951 > {
4952 let child = candidate;
4953 Ok(
4954 <InferredChildren as ::treesitter_types::FromNode>::from_node(
4955 child,
4956 src,
4957 )?,
4958 )
4959 })()
4960 .is_ok()
4961 {
4962 fallback_child = Some(candidate);
4963 break;
4964 }
4965 }
4966 if !cursor2.goto_next_sibling() {
4967 break;
4968 }
4969 }
4970 }
4971 }
4972 fallback_child.ok_or_else(|| {
4973 ::treesitter_types::ParseError::missing_field("children", node)
4974 })?
4975 };
4976 <InferredChildren as ::treesitter_types::FromNode>::from_node(child, src)?
4977 },
4978 })
4979 }
4980}
4981impl ::treesitter_types::Spanned for Inferred<'_> {
4982 fn span(&self) -> ::treesitter_types::Span {
4983 self.span
4984 }
4985}
4986#[derive(Debug, Clone)]
4987pub struct Infix<'tree> {
4988 pub span: ::treesitter_types::Span,
4989 pub left_operand: InfixLeftOperand<'tree>,
4990 pub operator: ::std::vec::Vec<InfixOperator<'tree>>,
4991 pub right_operand: InfixRightOperand<'tree>,
4992}
4993impl<'tree> ::treesitter_types::FromNode<'tree> for Infix<'tree> {
4994 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
4995 fn from_node(
4996 node: ::tree_sitter::Node<'tree>,
4997 src: &'tree [u8],
4998 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
4999 debug_assert_eq!(node.kind(), "infix");
5000 Ok(Self {
5001 span: ::treesitter_types::Span::from(node),
5002 left_operand: {
5003 let child = node.child_by_field_name("left_operand").ok_or_else(|| {
5004 ::treesitter_types::ParseError::missing_field("left_operand", node)
5005 })?;
5006 <InfixLeftOperand as ::treesitter_types::FromNode>::from_node(child, src)?
5007 },
5008 operator: {
5009 let mut cursor = node.walk();
5010 let mut items = ::std::vec::Vec::new();
5011 for child in node.children_by_field_name("operator", &mut cursor) {
5012 items.push(<InfixOperator as ::treesitter_types::FromNode>::from_node(
5013 child, src,
5014 )?);
5015 }
5016 items
5017 },
5018 right_operand: {
5019 let child = node.child_by_field_name("right_operand").ok_or_else(|| {
5020 ::treesitter_types::ParseError::missing_field("right_operand", node)
5021 })?;
5022 <InfixRightOperand as ::treesitter_types::FromNode>::from_node(child, src)?
5023 },
5024 })
5025 }
5026}
5027impl ::treesitter_types::Spanned for Infix<'_> {
5028 fn span(&self) -> ::treesitter_types::Span {
5029 self.span
5030 }
5031}
5032#[derive(Debug, Clone)]
5033pub struct InfixId<'tree> {
5034 pub span: ::treesitter_types::Span,
5035 pub children: InfixIdChildren<'tree>,
5036}
5037impl<'tree> ::treesitter_types::FromNode<'tree> for InfixId<'tree> {
5038 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5039 fn from_node(
5040 node: ::tree_sitter::Node<'tree>,
5041 src: &'tree [u8],
5042 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5043 debug_assert_eq!(node.kind(), "infix_id");
5044 Ok(Self {
5045 span: ::treesitter_types::Span::from(node),
5046 children: {
5047 #[allow(clippy::suspicious_else_formatting)]
5048 let non_field_children = {
5049 let mut cursor = node.walk();
5050 let mut result = ::std::vec::Vec::new();
5051 if cursor.goto_first_child() {
5052 loop {
5053 if cursor.field_name().is_none()
5054 && cursor.node().is_named()
5055 && !cursor.node().is_extra()
5056 {
5057 result.push(cursor.node());
5058 }
5059 if !cursor.goto_next_sibling() {
5060 break;
5061 }
5062 }
5063 }
5064 result
5065 };
5066 let child = if let Some(&c) = non_field_children.first() {
5067 c
5068 } else {
5069 let mut fallback_cursor = node.walk();
5070 let mut fallback_child = None;
5071 if fallback_cursor.goto_first_child() {
5072 loop {
5073 if fallback_cursor.field_name().is_none()
5074 && !fallback_cursor.node().is_extra()
5075 {
5076 let candidate = fallback_cursor.node();
5077 #[allow(clippy::needless_question_mark)]
5078 if (|| -> ::core::result::Result<
5079 _,
5080 ::treesitter_types::ParseError,
5081 > {
5082 let child = candidate;
5083 Ok(
5084 <InfixIdChildren as ::treesitter_types::FromNode>::from_node(
5085 child,
5086 src,
5087 )?,
5088 )
5089 })()
5090 .is_ok()
5091 {
5092 fallback_child = Some(candidate);
5093 break;
5094 }
5095 }
5096 if !fallback_cursor.goto_next_sibling() {
5097 break;
5098 }
5099 }
5100 }
5101 if fallback_child.is_none() {
5102 let mut cursor2 = node.walk();
5103 if cursor2.goto_first_child() {
5104 loop {
5105 if cursor2.node().is_named() && !cursor2.node().is_extra() {
5106 let candidate = cursor2.node();
5107 #[allow(clippy::needless_question_mark)]
5108 if (|| -> ::core::result::Result<
5109 _,
5110 ::treesitter_types::ParseError,
5111 > {
5112 let child = candidate;
5113 Ok(
5114 <InfixIdChildren as ::treesitter_types::FromNode>::from_node(
5115 child,
5116 src,
5117 )?,
5118 )
5119 })()
5120 .is_ok()
5121 {
5122 fallback_child = Some(candidate);
5123 break;
5124 }
5125 }
5126 if !cursor2.goto_next_sibling() {
5127 break;
5128 }
5129 }
5130 }
5131 }
5132 fallback_child.ok_or_else(|| {
5133 ::treesitter_types::ParseError::missing_field("children", node)
5134 })?
5135 };
5136 <InfixIdChildren as ::treesitter_types::FromNode>::from_node(child, src)?
5137 },
5138 })
5139 }
5140}
5141impl ::treesitter_types::Spanned for InfixId<'_> {
5142 fn span(&self) -> ::treesitter_types::Span {
5143 self.span
5144 }
5145}
5146#[derive(Debug, Clone)]
5147pub struct Instance<'tree> {
5148 pub span: ::treesitter_types::Span,
5149 pub context: ::core::option::Option<Context<'tree>>,
5150 pub declarations: ::core::option::Option<InstanceDeclarations<'tree>>,
5151 pub forall: ::core::option::Option<InstanceForall<'tree>>,
5152 pub name: ::core::option::Option<InstanceName<'tree>>,
5153 pub patterns: ::core::option::Option<TypePatterns<'tree>>,
5154 pub children: ::core::option::Option<InstanceChildren<'tree>>,
5155}
5156impl<'tree> ::treesitter_types::FromNode<'tree> for Instance<'tree> {
5157 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5158 fn from_node(
5159 node: ::tree_sitter::Node<'tree>,
5160 src: &'tree [u8],
5161 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5162 debug_assert_eq!(node.kind(), "instance");
5163 Ok(Self {
5164 span: ::treesitter_types::Span::from(node),
5165 context: match node.child_by_field_name("context") {
5166 Some(child) => Some(<Context as ::treesitter_types::FromNode>::from_node(
5167 child, src,
5168 )?),
5169 None => None,
5170 },
5171 declarations: match node.child_by_field_name("declarations") {
5172 Some(child) => Some(
5173 <InstanceDeclarations as ::treesitter_types::FromNode>::from_node(child, src)?,
5174 ),
5175 None => None,
5176 },
5177 forall: match node.child_by_field_name("forall") {
5178 Some(child) => Some(<InstanceForall as ::treesitter_types::FromNode>::from_node(
5179 child, src,
5180 )?),
5181 None => None,
5182 },
5183 name: match node.child_by_field_name("name") {
5184 Some(child) => Some(<InstanceName as ::treesitter_types::FromNode>::from_node(
5185 child, src,
5186 )?),
5187 None => None,
5188 },
5189 patterns: match node.child_by_field_name("patterns") {
5190 Some(child) => Some(<TypePatterns as ::treesitter_types::FromNode>::from_node(
5191 child, src,
5192 )?),
5193 None => None,
5194 },
5195 children: {
5196 #[allow(clippy::suspicious_else_formatting)]
5197 let non_field_children = {
5198 let mut cursor = node.walk();
5199 let mut result = ::std::vec::Vec::new();
5200 if cursor.goto_first_child() {
5201 loop {
5202 if cursor.field_name().is_none()
5203 && cursor.node().is_named()
5204 && !cursor.node().is_extra()
5205 {
5206 result.push(cursor.node());
5207 }
5208 if !cursor.goto_next_sibling() {
5209 break;
5210 }
5211 }
5212 }
5213 result
5214 };
5215 match non_field_children.first() {
5216 Some(&child) => Some(
5217 <InstanceChildren as ::treesitter_types::FromNode>::from_node(child, src)?,
5218 ),
5219 None => None,
5220 }
5221 },
5222 })
5223 }
5224}
5225impl ::treesitter_types::Spanned for Instance<'_> {
5226 fn span(&self) -> ::treesitter_types::Span {
5227 self.span
5228 }
5229}
5230#[derive(Debug, Clone)]
5231pub struct InstanceDeclarations<'tree> {
5232 pub span: ::treesitter_types::Span,
5233 pub declaration: ::std::vec::Vec<InstanceDecl<'tree>>,
5234}
5235impl<'tree> ::treesitter_types::FromNode<'tree> for InstanceDeclarations<'tree> {
5236 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5237 fn from_node(
5238 node: ::tree_sitter::Node<'tree>,
5239 src: &'tree [u8],
5240 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5241 debug_assert_eq!(node.kind(), "instance_declarations");
5242 Ok(Self {
5243 span: ::treesitter_types::Span::from(node),
5244 declaration: {
5245 let mut cursor = node.walk();
5246 let mut items = ::std::vec::Vec::new();
5247 for child in node.children_by_field_name("declaration", &mut cursor) {
5248 items.push(<InstanceDecl as ::treesitter_types::FromNode>::from_node(
5249 child, src,
5250 )?);
5251 }
5252 items
5253 },
5254 })
5255 }
5256}
5257impl ::treesitter_types::Spanned for InstanceDeclarations<'_> {
5258 fn span(&self) -> ::treesitter_types::Span {
5259 self.span
5260 }
5261}
5262#[derive(Debug, Clone)]
5263pub struct Integer<'tree> {
5264 pub span: ::treesitter_types::Span,
5265 text: &'tree str,
5266}
5267impl<'tree> ::treesitter_types::FromNode<'tree> for Integer<'tree> {
5268 fn from_node(
5269 node: ::tree_sitter::Node<'tree>,
5270 src: &'tree [u8],
5271 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5272 debug_assert_eq!(node.kind(), "integer");
5273 Ok(Self {
5274 span: ::treesitter_types::Span::from(node),
5275 text: node.utf8_text(src)?,
5276 })
5277 }
5278}
5279impl<'tree> ::treesitter_types::LeafNode<'tree> for Integer<'tree> {
5280 fn text(&self) -> &'tree str {
5281 self.text
5282 }
5283}
5284impl ::treesitter_types::Spanned for Integer<'_> {
5285 fn span(&self) -> ::treesitter_types::Span {
5286 self.span
5287 }
5288}
5289#[derive(Debug, Clone)]
5290pub struct Invisible<'tree> {
5291 pub span: ::treesitter_types::Span,
5292 pub bind: TypeParam<'tree>,
5293}
5294impl<'tree> ::treesitter_types::FromNode<'tree> for Invisible<'tree> {
5295 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5296 fn from_node(
5297 node: ::tree_sitter::Node<'tree>,
5298 src: &'tree [u8],
5299 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5300 debug_assert_eq!(node.kind(), "invisible");
5301 Ok(Self {
5302 span: ::treesitter_types::Span::from(node),
5303 bind: {
5304 let child = node
5305 .child_by_field_name("bind")
5306 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("bind", node))?;
5307 <TypeParam as ::treesitter_types::FromNode>::from_node(child, src)?
5308 },
5309 })
5310 }
5311}
5312impl ::treesitter_types::Spanned for Invisible<'_> {
5313 fn span(&self) -> ::treesitter_types::Span {
5314 self.span
5315 }
5316}
5317#[derive(Debug, Clone)]
5318pub struct Irrefutable<'tree> {
5319 pub span: ::treesitter_types::Span,
5320 pub pattern: Pattern<'tree>,
5321}
5322impl<'tree> ::treesitter_types::FromNode<'tree> for Irrefutable<'tree> {
5323 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5324 fn from_node(
5325 node: ::tree_sitter::Node<'tree>,
5326 src: &'tree [u8],
5327 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5328 debug_assert_eq!(node.kind(), "irrefutable");
5329 Ok(Self {
5330 span: ::treesitter_types::Span::from(node),
5331 pattern: {
5332 let child = node.child_by_field_name("pattern").ok_or_else(|| {
5333 ::treesitter_types::ParseError::missing_field("pattern", node)
5334 })?;
5335 <Pattern as ::treesitter_types::FromNode>::from_node(child, src)?
5336 },
5337 })
5338 }
5339}
5340impl ::treesitter_types::Spanned for Irrefutable<'_> {
5341 fn span(&self) -> ::treesitter_types::Span {
5342 self.span
5343 }
5344}
5345#[derive(Debug, Clone)]
5346pub struct KindApplication<'tree> {
5347 pub span: ::treesitter_types::Span,
5348 pub r#type: Type<'tree>,
5349}
5350impl<'tree> ::treesitter_types::FromNode<'tree> for KindApplication<'tree> {
5351 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5352 fn from_node(
5353 node: ::tree_sitter::Node<'tree>,
5354 src: &'tree [u8],
5355 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5356 debug_assert_eq!(node.kind(), "kind_application");
5357 Ok(Self {
5358 span: ::treesitter_types::Span::from(node),
5359 r#type: {
5360 let child = node
5361 .child_by_field_name("type")
5362 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("type", node))?;
5363 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
5364 },
5365 })
5366 }
5367}
5368impl ::treesitter_types::Spanned for KindApplication<'_> {
5369 fn span(&self) -> ::treesitter_types::Span {
5370 self.span
5371 }
5372}
5373#[derive(Debug, Clone)]
5374pub struct KindSignature<'tree> {
5375 pub span: ::treesitter_types::Span,
5376 pub kind: QuantifiedType<'tree>,
5377 pub name: ::core::option::Option<KindSignatureName<'tree>>,
5378 pub patterns: ::core::option::Option<TypeParams<'tree>>,
5379 pub children: ::core::option::Option<KindSignatureChildren<'tree>>,
5380}
5381impl<'tree> ::treesitter_types::FromNode<'tree> for KindSignature<'tree> {
5382 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5383 fn from_node(
5384 node: ::tree_sitter::Node<'tree>,
5385 src: &'tree [u8],
5386 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5387 debug_assert_eq!(node.kind(), "kind_signature");
5388 Ok(Self {
5389 span: ::treesitter_types::Span::from(node),
5390 kind: {
5391 let child = node
5392 .child_by_field_name("kind")
5393 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("kind", node))?;
5394 <QuantifiedType as ::treesitter_types::FromNode>::from_node(child, src)?
5395 },
5396 name: match node.child_by_field_name("name") {
5397 Some(child) => Some(
5398 <KindSignatureName as ::treesitter_types::FromNode>::from_node(child, src)?,
5399 ),
5400 None => None,
5401 },
5402 patterns: match node.child_by_field_name("patterns") {
5403 Some(child) => Some(<TypeParams as ::treesitter_types::FromNode>::from_node(
5404 child, src,
5405 )?),
5406 None => None,
5407 },
5408 children: {
5409 #[allow(clippy::suspicious_else_formatting)]
5410 let non_field_children = {
5411 let mut cursor = node.walk();
5412 let mut result = ::std::vec::Vec::new();
5413 if cursor.goto_first_child() {
5414 loop {
5415 if cursor.field_name().is_none()
5416 && cursor.node().is_named()
5417 && !cursor.node().is_extra()
5418 {
5419 result.push(cursor.node());
5420 }
5421 if !cursor.goto_next_sibling() {
5422 break;
5423 }
5424 }
5425 }
5426 result
5427 };
5428 match non_field_children.first() {
5429 Some(&child) => Some(
5430 <KindSignatureChildren as ::treesitter_types::FromNode>::from_node(
5431 child, src,
5432 )?,
5433 ),
5434 None => None,
5435 }
5436 },
5437 })
5438 }
5439}
5440impl ::treesitter_types::Spanned for KindSignature<'_> {
5441 fn span(&self) -> ::treesitter_types::Span {
5442 self.span
5443 }
5444}
5445#[derive(Debug, Clone)]
5446pub struct Lambda<'tree> {
5447 pub span: ::treesitter_types::Span,
5448 pub expression: LambdaExpression<'tree>,
5449 pub patterns: Patterns<'tree>,
5450}
5451impl<'tree> ::treesitter_types::FromNode<'tree> for Lambda<'tree> {
5452 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5453 fn from_node(
5454 node: ::tree_sitter::Node<'tree>,
5455 src: &'tree [u8],
5456 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5457 debug_assert_eq!(node.kind(), "lambda");
5458 Ok(Self {
5459 span: ::treesitter_types::Span::from(node),
5460 expression: {
5461 let child = node.child_by_field_name("expression").ok_or_else(|| {
5462 ::treesitter_types::ParseError::missing_field("expression", node)
5463 })?;
5464 <LambdaExpression as ::treesitter_types::FromNode>::from_node(child, src)?
5465 },
5466 patterns: {
5467 let child = node.child_by_field_name("patterns").ok_or_else(|| {
5468 ::treesitter_types::ParseError::missing_field("patterns", node)
5469 })?;
5470 <Patterns as ::treesitter_types::FromNode>::from_node(child, src)?
5471 },
5472 })
5473 }
5474}
5475impl ::treesitter_types::Spanned for Lambda<'_> {
5476 fn span(&self) -> ::treesitter_types::Span {
5477 self.span
5478 }
5479}
5480#[derive(Debug, Clone)]
5481pub struct LambdaCase<'tree> {
5482 pub span: ::treesitter_types::Span,
5483 pub alternatives: ::core::option::Option<Alternatives<'tree>>,
5484}
5485impl<'tree> ::treesitter_types::FromNode<'tree> for LambdaCase<'tree> {
5486 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5487 fn from_node(
5488 node: ::tree_sitter::Node<'tree>,
5489 src: &'tree [u8],
5490 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5491 debug_assert_eq!(node.kind(), "lambda_case");
5492 Ok(Self {
5493 span: ::treesitter_types::Span::from(node),
5494 alternatives: match node.child_by_field_name("alternatives") {
5495 Some(child) => Some(<Alternatives as ::treesitter_types::FromNode>::from_node(
5496 child, src,
5497 )?),
5498 None => None,
5499 },
5500 })
5501 }
5502}
5503impl ::treesitter_types::Spanned for LambdaCase<'_> {
5504 fn span(&self) -> ::treesitter_types::Span {
5505 self.span
5506 }
5507}
5508#[derive(Debug, Clone)]
5509pub struct LambdaCases<'tree> {
5510 pub span: ::treesitter_types::Span,
5511 pub alternatives: ::core::option::Option<Alternatives<'tree>>,
5512}
5513impl<'tree> ::treesitter_types::FromNode<'tree> for LambdaCases<'tree> {
5514 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5515 fn from_node(
5516 node: ::tree_sitter::Node<'tree>,
5517 src: &'tree [u8],
5518 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5519 debug_assert_eq!(node.kind(), "lambda_cases");
5520 Ok(Self {
5521 span: ::treesitter_types::Span::from(node),
5522 alternatives: match node.child_by_field_name("alternatives") {
5523 Some(child) => Some(<Alternatives as ::treesitter_types::FromNode>::from_node(
5524 child, src,
5525 )?),
5526 None => None,
5527 },
5528 })
5529 }
5530}
5531impl ::treesitter_types::Spanned for LambdaCases<'_> {
5532 fn span(&self) -> ::treesitter_types::Span {
5533 self.span
5534 }
5535}
5536#[derive(Debug, Clone)]
5537pub struct LazyField<'tree> {
5538 pub span: ::treesitter_types::Span,
5539 pub r#type: Type<'tree>,
5540}
5541impl<'tree> ::treesitter_types::FromNode<'tree> for LazyField<'tree> {
5542 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5543 fn from_node(
5544 node: ::tree_sitter::Node<'tree>,
5545 src: &'tree [u8],
5546 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5547 debug_assert_eq!(node.kind(), "lazy_field");
5548 Ok(Self {
5549 span: ::treesitter_types::Span::from(node),
5550 r#type: {
5551 let child = node
5552 .child_by_field_name("type")
5553 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("type", node))?;
5554 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
5555 },
5556 })
5557 }
5558}
5559impl ::treesitter_types::Spanned for LazyField<'_> {
5560 fn span(&self) -> ::treesitter_types::Span {
5561 self.span
5562 }
5563}
5564#[derive(Debug, Clone)]
5565pub struct LeftSection<'tree> {
5566 pub span: ::treesitter_types::Span,
5567 pub left_operand: Expression<'tree>,
5568 pub operator: LeftSectionOperator<'tree>,
5569}
5570impl<'tree> ::treesitter_types::FromNode<'tree> for LeftSection<'tree> {
5571 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5572 fn from_node(
5573 node: ::tree_sitter::Node<'tree>,
5574 src: &'tree [u8],
5575 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5576 debug_assert_eq!(node.kind(), "left_section");
5577 Ok(Self {
5578 span: ::treesitter_types::Span::from(node),
5579 left_operand: {
5580 let child = node.child_by_field_name("left_operand").ok_or_else(|| {
5581 ::treesitter_types::ParseError::missing_field("left_operand", node)
5582 })?;
5583 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
5584 },
5585 operator: {
5586 let child = node.child_by_field_name("operator").ok_or_else(|| {
5587 ::treesitter_types::ParseError::missing_field("operator", node)
5588 })?;
5589 <LeftSectionOperator as ::treesitter_types::FromNode>::from_node(child, src)?
5590 },
5591 })
5592 }
5593}
5594impl ::treesitter_types::Spanned for LeftSection<'_> {
5595 fn span(&self) -> ::treesitter_types::Span {
5596 self.span
5597 }
5598}
5599#[derive(Debug, Clone)]
5600pub struct Let<'tree> {
5601 pub span: ::treesitter_types::Span,
5602 pub binds: ::core::option::Option<LocalBinds<'tree>>,
5603}
5604impl<'tree> ::treesitter_types::FromNode<'tree> for Let<'tree> {
5605 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5606 fn from_node(
5607 node: ::tree_sitter::Node<'tree>,
5608 src: &'tree [u8],
5609 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5610 debug_assert_eq!(node.kind(), "let");
5611 Ok(Self {
5612 span: ::treesitter_types::Span::from(node),
5613 binds: match node.child_by_field_name("binds") {
5614 Some(child) => Some(<LocalBinds as ::treesitter_types::FromNode>::from_node(
5615 child, src,
5616 )?),
5617 None => None,
5618 },
5619 })
5620 }
5621}
5622impl ::treesitter_types::Spanned for Let<'_> {
5623 fn span(&self) -> ::treesitter_types::Span {
5624 self.span
5625 }
5626}
5627#[derive(Debug, Clone)]
5628pub struct LetIn<'tree> {
5629 pub span: ::treesitter_types::Span,
5630 pub binds: ::core::option::Option<LocalBinds<'tree>>,
5631 pub expression: LetInExpression<'tree>,
5632}
5633impl<'tree> ::treesitter_types::FromNode<'tree> for LetIn<'tree> {
5634 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5635 fn from_node(
5636 node: ::tree_sitter::Node<'tree>,
5637 src: &'tree [u8],
5638 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5639 debug_assert_eq!(node.kind(), "let_in");
5640 Ok(Self {
5641 span: ::treesitter_types::Span::from(node),
5642 binds: match node.child_by_field_name("binds") {
5643 Some(child) => Some(<LocalBinds as ::treesitter_types::FromNode>::from_node(
5644 child, src,
5645 )?),
5646 None => None,
5647 },
5648 expression: {
5649 let child = node.child_by_field_name("expression").ok_or_else(|| {
5650 ::treesitter_types::ParseError::missing_field("expression", node)
5651 })?;
5652 <LetInExpression as ::treesitter_types::FromNode>::from_node(child, src)?
5653 },
5654 })
5655 }
5656}
5657impl ::treesitter_types::Spanned for LetIn<'_> {
5658 fn span(&self) -> ::treesitter_types::Span {
5659 self.span
5660 }
5661}
5662#[derive(Debug, Clone)]
5663pub struct LinearFunction<'tree> {
5664 pub span: ::treesitter_types::Span,
5665 pub arrow: LinearFunctionArrow,
5666 pub multiplicity: ::core::option::Option<Modifier<'tree>>,
5667 pub parameter: LinearFunctionParameter<'tree>,
5668 pub result: QuantifiedType<'tree>,
5669}
5670impl<'tree> ::treesitter_types::FromNode<'tree> for LinearFunction<'tree> {
5671 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5672 fn from_node(
5673 node: ::tree_sitter::Node<'tree>,
5674 src: &'tree [u8],
5675 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5676 debug_assert_eq!(node.kind(), "linear_function");
5677 Ok(Self {
5678 span: ::treesitter_types::Span::from(node),
5679 arrow: {
5680 let child = node
5681 .child_by_field_name("arrow")
5682 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("arrow", node))?;
5683 <LinearFunctionArrow as ::treesitter_types::FromNode>::from_node(child, src)?
5684 },
5685 multiplicity: match node.child_by_field_name("multiplicity") {
5686 Some(child) => Some(<Modifier as ::treesitter_types::FromNode>::from_node(
5687 child, src,
5688 )?),
5689 None => None,
5690 },
5691 parameter: {
5692 let child = node.child_by_field_name("parameter").ok_or_else(|| {
5693 ::treesitter_types::ParseError::missing_field("parameter", node)
5694 })?;
5695 <LinearFunctionParameter as ::treesitter_types::FromNode>::from_node(child, src)?
5696 },
5697 result: {
5698 let child = node
5699 .child_by_field_name("result")
5700 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("result", node))?;
5701 <QuantifiedType as ::treesitter_types::FromNode>::from_node(child, src)?
5702 },
5703 })
5704 }
5705}
5706impl ::treesitter_types::Spanned for LinearFunction<'_> {
5707 fn span(&self) -> ::treesitter_types::Span {
5708 self.span
5709 }
5710}
5711#[derive(Debug, Clone)]
5712pub struct List<'tree> {
5713 pub span: ::treesitter_types::Span,
5714 pub element: ::std::vec::Vec<ListElement<'tree>>,
5715}
5716impl<'tree> ::treesitter_types::FromNode<'tree> for List<'tree> {
5717 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5718 fn from_node(
5719 node: ::tree_sitter::Node<'tree>,
5720 src: &'tree [u8],
5721 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5722 debug_assert_eq!(node.kind(), "list");
5723 Ok(Self {
5724 span: ::treesitter_types::Span::from(node),
5725 element: {
5726 let mut cursor = node.walk();
5727 let mut items = ::std::vec::Vec::new();
5728 for child in node.children_by_field_name("element", &mut cursor) {
5729 items.push(<ListElement as ::treesitter_types::FromNode>::from_node(
5730 child, src,
5731 )?);
5732 }
5733 items
5734 },
5735 })
5736 }
5737}
5738impl ::treesitter_types::Spanned for List<'_> {
5739 fn span(&self) -> ::treesitter_types::Span {
5740 self.span
5741 }
5742}
5743#[derive(Debug, Clone)]
5744pub struct ListComprehension<'tree> {
5745 pub span: ::treesitter_types::Span,
5746 pub expression: ListComprehensionExpression<'tree>,
5747 pub qualifiers: ::std::vec::Vec<Qualifiers<'tree>>,
5748}
5749impl<'tree> ::treesitter_types::FromNode<'tree> for ListComprehension<'tree> {
5750 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5751 fn from_node(
5752 node: ::tree_sitter::Node<'tree>,
5753 src: &'tree [u8],
5754 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5755 debug_assert_eq!(node.kind(), "list_comprehension");
5756 Ok(Self {
5757 span: ::treesitter_types::Span::from(node),
5758 expression: {
5759 let child = node.child_by_field_name("expression").ok_or_else(|| {
5760 ::treesitter_types::ParseError::missing_field("expression", node)
5761 })?;
5762 <ListComprehensionExpression as ::treesitter_types::FromNode>::from_node(
5763 child, src,
5764 )?
5765 },
5766 qualifiers: {
5767 let mut cursor = node.walk();
5768 let mut items = ::std::vec::Vec::new();
5769 for child in node.children_by_field_name("qualifiers", &mut cursor) {
5770 items.push(<Qualifiers as ::treesitter_types::FromNode>::from_node(
5771 child, src,
5772 )?);
5773 }
5774 items
5775 },
5776 })
5777 }
5778}
5779impl ::treesitter_types::Spanned for ListComprehension<'_> {
5780 fn span(&self) -> ::treesitter_types::Span {
5781 self.span
5782 }
5783}
5784#[derive(Debug, Clone)]
5785pub struct Literal<'tree> {
5786 pub span: ::treesitter_types::Span,
5787 pub children: LiteralChildren<'tree>,
5788}
5789impl<'tree> ::treesitter_types::FromNode<'tree> for Literal<'tree> {
5790 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5791 fn from_node(
5792 node: ::tree_sitter::Node<'tree>,
5793 src: &'tree [u8],
5794 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5795 debug_assert_eq!(node.kind(), "literal");
5796 Ok(Self {
5797 span: ::treesitter_types::Span::from(node),
5798 children: {
5799 #[allow(clippy::suspicious_else_formatting)]
5800 let non_field_children = {
5801 let mut cursor = node.walk();
5802 let mut result = ::std::vec::Vec::new();
5803 if cursor.goto_first_child() {
5804 loop {
5805 if cursor.field_name().is_none()
5806 && cursor.node().is_named()
5807 && !cursor.node().is_extra()
5808 {
5809 result.push(cursor.node());
5810 }
5811 if !cursor.goto_next_sibling() {
5812 break;
5813 }
5814 }
5815 }
5816 result
5817 };
5818 let child = if let Some(&c) = non_field_children.first() {
5819 c
5820 } else {
5821 let mut fallback_cursor = node.walk();
5822 let mut fallback_child = None;
5823 if fallback_cursor.goto_first_child() {
5824 loop {
5825 if fallback_cursor.field_name().is_none()
5826 && !fallback_cursor.node().is_extra()
5827 {
5828 let candidate = fallback_cursor.node();
5829 #[allow(clippy::needless_question_mark)]
5830 if (|| -> ::core::result::Result<
5831 _,
5832 ::treesitter_types::ParseError,
5833 > {
5834 let child = candidate;
5835 Ok(
5836 <LiteralChildren as ::treesitter_types::FromNode>::from_node(
5837 child,
5838 src,
5839 )?,
5840 )
5841 })()
5842 .is_ok()
5843 {
5844 fallback_child = Some(candidate);
5845 break;
5846 }
5847 }
5848 if !fallback_cursor.goto_next_sibling() {
5849 break;
5850 }
5851 }
5852 }
5853 if fallback_child.is_none() {
5854 let mut cursor2 = node.walk();
5855 if cursor2.goto_first_child() {
5856 loop {
5857 if cursor2.node().is_named() && !cursor2.node().is_extra() {
5858 let candidate = cursor2.node();
5859 #[allow(clippy::needless_question_mark)]
5860 if (|| -> ::core::result::Result<
5861 _,
5862 ::treesitter_types::ParseError,
5863 > {
5864 let child = candidate;
5865 Ok(
5866 <LiteralChildren as ::treesitter_types::FromNode>::from_node(
5867 child,
5868 src,
5869 )?,
5870 )
5871 })()
5872 .is_ok()
5873 {
5874 fallback_child = Some(candidate);
5875 break;
5876 }
5877 }
5878 if !cursor2.goto_next_sibling() {
5879 break;
5880 }
5881 }
5882 }
5883 }
5884 fallback_child.ok_or_else(|| {
5885 ::treesitter_types::ParseError::missing_field("children", node)
5886 })?
5887 };
5888 <LiteralChildren as ::treesitter_types::FromNode>::from_node(child, src)?
5889 },
5890 })
5891 }
5892}
5893impl ::treesitter_types::Spanned for Literal<'_> {
5894 fn span(&self) -> ::treesitter_types::Span {
5895 self.span
5896 }
5897}
5898#[derive(Debug, Clone)]
5899pub struct LocalBinds<'tree> {
5900 pub span: ::treesitter_types::Span,
5901 pub decl: ::std::vec::Vec<LocalBindsDecl<'tree>>,
5902}
5903impl<'tree> ::treesitter_types::FromNode<'tree> for LocalBinds<'tree> {
5904 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5905 fn from_node(
5906 node: ::tree_sitter::Node<'tree>,
5907 src: &'tree [u8],
5908 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5909 debug_assert_eq!(node.kind(), "local_binds");
5910 Ok(Self {
5911 span: ::treesitter_types::Span::from(node),
5912 decl: {
5913 let mut cursor = node.walk();
5914 let mut items = ::std::vec::Vec::new();
5915 for child in node.children_by_field_name("decl", &mut cursor) {
5916 items.push(<LocalBindsDecl as ::treesitter_types::FromNode>::from_node(
5917 child, src,
5918 )?);
5919 }
5920 items
5921 },
5922 })
5923 }
5924}
5925impl ::treesitter_types::Spanned for LocalBinds<'_> {
5926 fn span(&self) -> ::treesitter_types::Span {
5927 self.span
5928 }
5929}
5930#[derive(Debug, Clone)]
5931pub struct Match<'tree> {
5932 pub span: ::treesitter_types::Span,
5933 pub expression: MatchExpression<'tree>,
5934 pub guards: ::core::option::Option<Guards<'tree>>,
5935}
5936impl<'tree> ::treesitter_types::FromNode<'tree> for Match<'tree> {
5937 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5938 fn from_node(
5939 node: ::tree_sitter::Node<'tree>,
5940 src: &'tree [u8],
5941 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5942 debug_assert_eq!(node.kind(), "match");
5943 Ok(Self {
5944 span: ::treesitter_types::Span::from(node),
5945 expression: {
5946 let child = node.child_by_field_name("expression").ok_or_else(|| {
5947 ::treesitter_types::ParseError::missing_field("expression", node)
5948 })?;
5949 <MatchExpression as ::treesitter_types::FromNode>::from_node(child, src)?
5950 },
5951 guards: match node.child_by_field_name("guards") {
5952 Some(child) => Some(<Guards as ::treesitter_types::FromNode>::from_node(
5953 child, src,
5954 )?),
5955 None => None,
5956 },
5957 })
5958 }
5959}
5960impl ::treesitter_types::Spanned for Match<'_> {
5961 fn span(&self) -> ::treesitter_types::Span {
5962 self.span
5963 }
5964}
5965#[derive(Debug, Clone)]
5966pub struct Modifier<'tree> {
5967 pub span: ::treesitter_types::Span,
5968 pub children: Type<'tree>,
5969}
5970impl<'tree> ::treesitter_types::FromNode<'tree> for Modifier<'tree> {
5971 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
5972 fn from_node(
5973 node: ::tree_sitter::Node<'tree>,
5974 src: &'tree [u8],
5975 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
5976 debug_assert_eq!(node.kind(), "modifier");
5977 Ok(Self {
5978 span: ::treesitter_types::Span::from(node),
5979 children: {
5980 #[allow(clippy::suspicious_else_formatting)]
5981 let non_field_children = {
5982 let mut cursor = node.walk();
5983 let mut result = ::std::vec::Vec::new();
5984 if cursor.goto_first_child() {
5985 loop {
5986 if cursor.field_name().is_none()
5987 && cursor.node().is_named()
5988 && !cursor.node().is_extra()
5989 {
5990 result.push(cursor.node());
5991 }
5992 if !cursor.goto_next_sibling() {
5993 break;
5994 }
5995 }
5996 }
5997 result
5998 };
5999 let child = if let Some(&c) = non_field_children.first() {
6000 c
6001 } else {
6002 let mut fallback_cursor = node.walk();
6003 let mut fallback_child = None;
6004 if fallback_cursor.goto_first_child() {
6005 loop {
6006 if fallback_cursor.field_name().is_none()
6007 && !fallback_cursor.node().is_extra()
6008 {
6009 let candidate = fallback_cursor.node();
6010 #[allow(clippy::needless_question_mark)]
6011 if (|| -> ::core::result::Result<
6012 _,
6013 ::treesitter_types::ParseError,
6014 > {
6015 let child = candidate;
6016 Ok(
6017 <Type as ::treesitter_types::FromNode>::from_node(
6018 child,
6019 src,
6020 )?,
6021 )
6022 })()
6023 .is_ok()
6024 {
6025 fallback_child = Some(candidate);
6026 break;
6027 }
6028 }
6029 if !fallback_cursor.goto_next_sibling() {
6030 break;
6031 }
6032 }
6033 }
6034 if fallback_child.is_none() {
6035 let mut cursor2 = node.walk();
6036 if cursor2.goto_first_child() {
6037 loop {
6038 if cursor2.node().is_named() && !cursor2.node().is_extra() {
6039 let candidate = cursor2.node();
6040 #[allow(clippy::needless_question_mark)]
6041 if (|| -> ::core::result::Result<
6042 _,
6043 ::treesitter_types::ParseError,
6044 > {
6045 let child = candidate;
6046 Ok(
6047 <Type as ::treesitter_types::FromNode>::from_node(
6048 child,
6049 src,
6050 )?,
6051 )
6052 })()
6053 .is_ok()
6054 {
6055 fallback_child = Some(candidate);
6056 break;
6057 }
6058 }
6059 if !cursor2.goto_next_sibling() {
6060 break;
6061 }
6062 }
6063 }
6064 }
6065 fallback_child.ok_or_else(|| {
6066 ::treesitter_types::ParseError::missing_field("children", node)
6067 })?
6068 };
6069 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
6070 },
6071 })
6072 }
6073}
6074impl ::treesitter_types::Spanned for Modifier<'_> {
6075 fn span(&self) -> ::treesitter_types::Span {
6076 self.span
6077 }
6078}
6079#[derive(Debug, Clone)]
6080pub struct Module<'tree> {
6081 pub span: ::treesitter_types::Span,
6082 pub children: ::std::vec::Vec<ModuleId<'tree>>,
6083}
6084impl<'tree> ::treesitter_types::FromNode<'tree> for Module<'tree> {
6085 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6086 fn from_node(
6087 node: ::tree_sitter::Node<'tree>,
6088 src: &'tree [u8],
6089 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6090 debug_assert_eq!(node.kind(), "module");
6091 Ok(Self {
6092 span: ::treesitter_types::Span::from(node),
6093 children: {
6094 #[allow(clippy::suspicious_else_formatting)]
6095 let non_field_children = {
6096 let mut cursor = node.walk();
6097 let mut result = ::std::vec::Vec::new();
6098 if cursor.goto_first_child() {
6099 loop {
6100 if cursor.field_name().is_none()
6101 && cursor.node().is_named()
6102 && !cursor.node().is_extra()
6103 {
6104 result.push(cursor.node());
6105 }
6106 if !cursor.goto_next_sibling() {
6107 break;
6108 }
6109 }
6110 }
6111 result
6112 };
6113 let mut items = ::std::vec::Vec::new();
6114 for child in non_field_children {
6115 items.push(<ModuleId as ::treesitter_types::FromNode>::from_node(
6116 child, src,
6117 )?);
6118 }
6119 items
6120 },
6121 })
6122 }
6123}
6124impl ::treesitter_types::Spanned for Module<'_> {
6125 fn span(&self) -> ::treesitter_types::Span {
6126 self.span
6127 }
6128}
6129#[derive(Debug, Clone)]
6130pub struct ModuleExport<'tree> {
6131 pub span: ::treesitter_types::Span,
6132 pub module: Module<'tree>,
6133}
6134impl<'tree> ::treesitter_types::FromNode<'tree> for ModuleExport<'tree> {
6135 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6136 fn from_node(
6137 node: ::tree_sitter::Node<'tree>,
6138 src: &'tree [u8],
6139 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6140 debug_assert_eq!(node.kind(), "module_export");
6141 Ok(Self {
6142 span: ::treesitter_types::Span::from(node),
6143 module: {
6144 let child = node
6145 .child_by_field_name("module")
6146 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("module", node))?;
6147 <Module as ::treesitter_types::FromNode>::from_node(child, src)?
6148 },
6149 })
6150 }
6151}
6152impl ::treesitter_types::Spanned for ModuleExport<'_> {
6153 fn span(&self) -> ::treesitter_types::Span {
6154 self.span
6155 }
6156}
6157#[derive(Debug, Clone)]
6158pub struct MultiWayIf<'tree> {
6159 pub span: ::treesitter_types::Span,
6160 pub r#match: ::std::vec::Vec<Match<'tree>>,
6161}
6162impl<'tree> ::treesitter_types::FromNode<'tree> for MultiWayIf<'tree> {
6163 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6164 fn from_node(
6165 node: ::tree_sitter::Node<'tree>,
6166 src: &'tree [u8],
6167 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6168 debug_assert_eq!(node.kind(), "multi_way_if");
6169 Ok(Self {
6170 span: ::treesitter_types::Span::from(node),
6171 r#match: {
6172 let mut cursor = node.walk();
6173 let mut items = ::std::vec::Vec::new();
6174 for child in node.children_by_field_name("match", &mut cursor) {
6175 items.push(<Match as ::treesitter_types::FromNode>::from_node(
6176 child, src,
6177 )?);
6178 }
6179 items
6180 },
6181 })
6182 }
6183}
6184impl ::treesitter_types::Spanned for MultiWayIf<'_> {
6185 fn span(&self) -> ::treesitter_types::Span {
6186 self.span
6187 }
6188}
6189#[derive(Debug, Clone)]
6190pub struct Namespace<'tree> {
6191 pub span: ::treesitter_types::Span,
6192 text: &'tree str,
6193}
6194impl<'tree> ::treesitter_types::FromNode<'tree> for Namespace<'tree> {
6195 fn from_node(
6196 node: ::tree_sitter::Node<'tree>,
6197 src: &'tree [u8],
6198 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6199 debug_assert_eq!(node.kind(), "namespace");
6200 Ok(Self {
6201 span: ::treesitter_types::Span::from(node),
6202 text: node.utf8_text(src)?,
6203 })
6204 }
6205}
6206impl<'tree> ::treesitter_types::LeafNode<'tree> for Namespace<'tree> {
6207 fn text(&self) -> &'tree str {
6208 self.text
6209 }
6210}
6211impl ::treesitter_types::Spanned for Namespace<'_> {
6212 fn span(&self) -> ::treesitter_types::Span {
6213 self.span
6214 }
6215}
6216#[derive(Debug, Clone)]
6217pub struct Negation<'tree> {
6218 pub span: ::treesitter_types::Span,
6219 pub expression: ::core::option::Option<Expression<'tree>>,
6220 pub minus: ::core::option::Option<NegationMinus>,
6221 pub number: ::core::option::Option<NegationNumber<'tree>>,
6222}
6223impl<'tree> ::treesitter_types::FromNode<'tree> for Negation<'tree> {
6224 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6225 fn from_node(
6226 node: ::tree_sitter::Node<'tree>,
6227 src: &'tree [u8],
6228 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6229 debug_assert_eq!(node.kind(), "negation");
6230 Ok(Self {
6231 span: ::treesitter_types::Span::from(node),
6232 expression: match node.child_by_field_name("expression") {
6233 Some(child) => Some(<Expression as ::treesitter_types::FromNode>::from_node(
6234 child, src,
6235 )?),
6236 None => None,
6237 },
6238 minus: match node.child_by_field_name("minus") {
6239 Some(child) => Some(<NegationMinus as ::treesitter_types::FromNode>::from_node(
6240 child, src,
6241 )?),
6242 None => None,
6243 },
6244 number: match node.child_by_field_name("number") {
6245 Some(child) => Some(<NegationNumber as ::treesitter_types::FromNode>::from_node(
6246 child, src,
6247 )?),
6248 None => None,
6249 },
6250 })
6251 }
6252}
6253impl ::treesitter_types::Spanned for Negation<'_> {
6254 fn span(&self) -> ::treesitter_types::Span {
6255 self.span
6256 }
6257}
6258#[derive(Debug, Clone)]
6259pub struct Newtype<'tree> {
6260 pub span: ::treesitter_types::Span,
6261 pub constructor: ::core::option::Option<NewtypeConstructor<'tree>>,
6262 pub constructors: ::core::option::Option<GadtConstructors<'tree>>,
6263 pub context: ::core::option::Option<Context<'tree>>,
6264 pub deriving: ::std::vec::Vec<Deriving<'tree>>,
6265 pub forall: ::core::option::Option<NewtypeForall<'tree>>,
6266 pub kind: ::core::option::Option<QuantifiedType<'tree>>,
6267 pub name: ::core::option::Option<NewtypeName<'tree>>,
6268 pub patterns: ::core::option::Option<NewtypePatterns<'tree>>,
6269 pub children: ::core::option::Option<NewtypeChildren<'tree>>,
6270}
6271impl<'tree> ::treesitter_types::FromNode<'tree> for Newtype<'tree> {
6272 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6273 fn from_node(
6274 node: ::tree_sitter::Node<'tree>,
6275 src: &'tree [u8],
6276 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6277 debug_assert_eq!(node.kind(), "newtype");
6278 Ok(Self {
6279 span: ::treesitter_types::Span::from(node),
6280 constructor: match node.child_by_field_name("constructor") {
6281 Some(child) => Some(
6282 <NewtypeConstructor as ::treesitter_types::FromNode>::from_node(child, src)?,
6283 ),
6284 None => None,
6285 },
6286 constructors: match node.child_by_field_name("constructors") {
6287 Some(child) => {
6288 Some(<GadtConstructors as ::treesitter_types::FromNode>::from_node(child, src)?)
6289 }
6290 None => None,
6291 },
6292 context: match node.child_by_field_name("context") {
6293 Some(child) => Some(<Context as ::treesitter_types::FromNode>::from_node(
6294 child, src,
6295 )?),
6296 None => None,
6297 },
6298 deriving: {
6299 let mut cursor = node.walk();
6300 let mut items = ::std::vec::Vec::new();
6301 for child in node.children_by_field_name("deriving", &mut cursor) {
6302 items.push(<Deriving as ::treesitter_types::FromNode>::from_node(
6303 child, src,
6304 )?);
6305 }
6306 items
6307 },
6308 forall: match node.child_by_field_name("forall") {
6309 Some(child) => Some(<NewtypeForall as ::treesitter_types::FromNode>::from_node(
6310 child, src,
6311 )?),
6312 None => None,
6313 },
6314 kind: match node.child_by_field_name("kind") {
6315 Some(child) => Some(<QuantifiedType as ::treesitter_types::FromNode>::from_node(
6316 child, src,
6317 )?),
6318 None => None,
6319 },
6320 name: match node.child_by_field_name("name") {
6321 Some(child) => Some(<NewtypeName as ::treesitter_types::FromNode>::from_node(
6322 child, src,
6323 )?),
6324 None => None,
6325 },
6326 patterns: match node.child_by_field_name("patterns") {
6327 Some(child) => {
6328 Some(<NewtypePatterns as ::treesitter_types::FromNode>::from_node(child, src)?)
6329 }
6330 None => None,
6331 },
6332 children: {
6333 #[allow(clippy::suspicious_else_formatting)]
6334 let non_field_children = {
6335 let mut cursor = node.walk();
6336 let mut result = ::std::vec::Vec::new();
6337 if cursor.goto_first_child() {
6338 loop {
6339 if cursor.field_name().is_none()
6340 && cursor.node().is_named()
6341 && !cursor.node().is_extra()
6342 {
6343 result.push(cursor.node());
6344 }
6345 if !cursor.goto_next_sibling() {
6346 break;
6347 }
6348 }
6349 }
6350 result
6351 };
6352 match non_field_children.first() {
6353 Some(&child) => Some(
6354 <NewtypeChildren as ::treesitter_types::FromNode>::from_node(child, src)?,
6355 ),
6356 None => None,
6357 }
6358 },
6359 })
6360 }
6361}
6362impl ::treesitter_types::Spanned for Newtype<'_> {
6363 fn span(&self) -> ::treesitter_types::Span {
6364 self.span
6365 }
6366}
6367#[derive(Debug, Clone)]
6368pub struct NewtypeConstructor<'tree> {
6369 pub span: ::treesitter_types::Span,
6370 pub field: NewtypeConstructorField<'tree>,
6371 pub name: NewtypeConstructorName<'tree>,
6372}
6373impl<'tree> ::treesitter_types::FromNode<'tree> for NewtypeConstructor<'tree> {
6374 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6375 fn from_node(
6376 node: ::tree_sitter::Node<'tree>,
6377 src: &'tree [u8],
6378 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6379 debug_assert_eq!(node.kind(), "newtype_constructor");
6380 Ok(Self {
6381 span: ::treesitter_types::Span::from(node),
6382 field: {
6383 let child = node
6384 .child_by_field_name("field")
6385 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("field", node))?;
6386 <NewtypeConstructorField as ::treesitter_types::FromNode>::from_node(child, src)?
6387 },
6388 name: {
6389 let child = node
6390 .child_by_field_name("name")
6391 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("name", node))?;
6392 <NewtypeConstructorName as ::treesitter_types::FromNode>::from_node(child, src)?
6393 },
6394 })
6395 }
6396}
6397impl ::treesitter_types::Spanned for NewtypeConstructor<'_> {
6398 fn span(&self) -> ::treesitter_types::Span {
6399 self.span
6400 }
6401}
6402#[derive(Debug, Clone)]
6403pub struct Operator<'tree> {
6404 pub span: ::treesitter_types::Span,
6405 text: &'tree str,
6406}
6407impl<'tree> ::treesitter_types::FromNode<'tree> for Operator<'tree> {
6408 fn from_node(
6409 node: ::tree_sitter::Node<'tree>,
6410 src: &'tree [u8],
6411 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6412 debug_assert_eq!(node.kind(), "operator");
6413 Ok(Self {
6414 span: ::treesitter_types::Span::from(node),
6415 text: node.utf8_text(src)?,
6416 })
6417 }
6418}
6419impl<'tree> ::treesitter_types::LeafNode<'tree> for Operator<'tree> {
6420 fn text(&self) -> &'tree str {
6421 self.text
6422 }
6423}
6424impl ::treesitter_types::Spanned for Operator<'_> {
6425 fn span(&self) -> ::treesitter_types::Span {
6426 self.span
6427 }
6428}
6429#[derive(Debug, Clone)]
6430pub struct Parens<'tree> {
6431 pub span: ::treesitter_types::Span,
6432 pub expression: ::core::option::Option<ParensExpression<'tree>>,
6433 pub kind: ::core::option::Option<QuantifiedType<'tree>>,
6434 pub name: ::core::option::Option<ParensName<'tree>>,
6435 pub pattern: ::core::option::Option<ParensPattern<'tree>>,
6436 pub patterns: ::core::option::Option<ParensPatterns<'tree>>,
6437 pub r#type: ::core::option::Option<ParensType<'tree>>,
6438 pub children: ::core::option::Option<ParensChildren<'tree>>,
6439}
6440impl<'tree> ::treesitter_types::FromNode<'tree> for Parens<'tree> {
6441 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6442 fn from_node(
6443 node: ::tree_sitter::Node<'tree>,
6444 src: &'tree [u8],
6445 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6446 debug_assert_eq!(node.kind(), "parens");
6447 Ok(Self {
6448 span: ::treesitter_types::Span::from(node),
6449 expression: match node.child_by_field_name("expression") {
6450 Some(child) => {
6451 Some(<ParensExpression as ::treesitter_types::FromNode>::from_node(child, src)?)
6452 }
6453 None => None,
6454 },
6455 kind: match node.child_by_field_name("kind") {
6456 Some(child) => Some(<QuantifiedType as ::treesitter_types::FromNode>::from_node(
6457 child, src,
6458 )?),
6459 None => None,
6460 },
6461 name: match node.child_by_field_name("name") {
6462 Some(child) => Some(<ParensName as ::treesitter_types::FromNode>::from_node(
6463 child, src,
6464 )?),
6465 None => None,
6466 },
6467 pattern: match node.child_by_field_name("pattern") {
6468 Some(child) => Some(<ParensPattern as ::treesitter_types::FromNode>::from_node(
6469 child, src,
6470 )?),
6471 None => None,
6472 },
6473 patterns: match node.child_by_field_name("patterns") {
6474 Some(child) => Some(<ParensPatterns as ::treesitter_types::FromNode>::from_node(
6475 child, src,
6476 )?),
6477 None => None,
6478 },
6479 r#type: match node.child_by_field_name("type") {
6480 Some(child) => Some(<ParensType as ::treesitter_types::FromNode>::from_node(
6481 child, src,
6482 )?),
6483 None => None,
6484 },
6485 children: {
6486 #[allow(clippy::suspicious_else_formatting)]
6487 let non_field_children = {
6488 let mut cursor = node.walk();
6489 let mut result = ::std::vec::Vec::new();
6490 if cursor.goto_first_child() {
6491 loop {
6492 if cursor.field_name().is_none()
6493 && cursor.node().is_named()
6494 && !cursor.node().is_extra()
6495 {
6496 result.push(cursor.node());
6497 }
6498 if !cursor.goto_next_sibling() {
6499 break;
6500 }
6501 }
6502 }
6503 result
6504 };
6505 match non_field_children.first() {
6506 Some(&child) => Some(
6507 <ParensChildren as ::treesitter_types::FromNode>::from_node(child, src)?,
6508 ),
6509 None => None,
6510 }
6511 },
6512 })
6513 }
6514}
6515impl ::treesitter_types::Spanned for Parens<'_> {
6516 fn span(&self) -> ::treesitter_types::Span {
6517 self.span
6518 }
6519}
6520#[derive(Debug, Clone)]
6521pub struct PatternGuard<'tree> {
6522 pub span: ::treesitter_types::Span,
6523 pub arrow: PatternGuardArrow,
6524 pub expression: PatternGuardExpression<'tree>,
6525 pub pattern: PatternGuardPattern<'tree>,
6526}
6527impl<'tree> ::treesitter_types::FromNode<'tree> for PatternGuard<'tree> {
6528 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6529 fn from_node(
6530 node: ::tree_sitter::Node<'tree>,
6531 src: &'tree [u8],
6532 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6533 debug_assert_eq!(node.kind(), "pattern_guard");
6534 Ok(Self {
6535 span: ::treesitter_types::Span::from(node),
6536 arrow: {
6537 let child = node
6538 .child_by_field_name("arrow")
6539 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("arrow", node))?;
6540 <PatternGuardArrow as ::treesitter_types::FromNode>::from_node(child, src)?
6541 },
6542 expression: {
6543 let child = node.child_by_field_name("expression").ok_or_else(|| {
6544 ::treesitter_types::ParseError::missing_field("expression", node)
6545 })?;
6546 <PatternGuardExpression as ::treesitter_types::FromNode>::from_node(child, src)?
6547 },
6548 pattern: {
6549 let child = node.child_by_field_name("pattern").ok_or_else(|| {
6550 ::treesitter_types::ParseError::missing_field("pattern", node)
6551 })?;
6552 <PatternGuardPattern as ::treesitter_types::FromNode>::from_node(child, src)?
6553 },
6554 })
6555 }
6556}
6557impl ::treesitter_types::Spanned for PatternGuard<'_> {
6558 fn span(&self) -> ::treesitter_types::Span {
6559 self.span
6560 }
6561}
6562#[derive(Debug, Clone)]
6563pub struct PatternSynonym<'tree> {
6564 pub span: ::treesitter_types::Span,
6565 pub children: PatternSynonymChildren<'tree>,
6566}
6567impl<'tree> ::treesitter_types::FromNode<'tree> for PatternSynonym<'tree> {
6568 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6569 fn from_node(
6570 node: ::tree_sitter::Node<'tree>,
6571 src: &'tree [u8],
6572 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6573 debug_assert_eq!(node.kind(), "pattern_synonym");
6574 Ok(Self {
6575 span: ::treesitter_types::Span::from(node),
6576 children: {
6577 #[allow(clippy::suspicious_else_formatting)]
6578 let non_field_children = {
6579 let mut cursor = node.walk();
6580 let mut result = ::std::vec::Vec::new();
6581 if cursor.goto_first_child() {
6582 loop {
6583 if cursor.field_name().is_none()
6584 && cursor.node().is_named()
6585 && !cursor.node().is_extra()
6586 {
6587 result.push(cursor.node());
6588 }
6589 if !cursor.goto_next_sibling() {
6590 break;
6591 }
6592 }
6593 }
6594 result
6595 };
6596 let child = if let Some(&c) = non_field_children.first() {
6597 c
6598 } else {
6599 let mut fallback_cursor = node.walk();
6600 let mut fallback_child = None;
6601 if fallback_cursor.goto_first_child() {
6602 loop {
6603 if fallback_cursor.field_name().is_none()
6604 && !fallback_cursor.node().is_extra()
6605 {
6606 let candidate = fallback_cursor.node();
6607 #[allow(clippy::needless_question_mark)]
6608 if (|| -> ::core::result::Result<
6609 _,
6610 ::treesitter_types::ParseError,
6611 > {
6612 let child = candidate;
6613 Ok(
6614 <PatternSynonymChildren as ::treesitter_types::FromNode>::from_node(
6615 child,
6616 src,
6617 )?,
6618 )
6619 })()
6620 .is_ok()
6621 {
6622 fallback_child = Some(candidate);
6623 break;
6624 }
6625 }
6626 if !fallback_cursor.goto_next_sibling() {
6627 break;
6628 }
6629 }
6630 }
6631 if fallback_child.is_none() {
6632 let mut cursor2 = node.walk();
6633 if cursor2.goto_first_child() {
6634 loop {
6635 if cursor2.node().is_named() && !cursor2.node().is_extra() {
6636 let candidate = cursor2.node();
6637 #[allow(clippy::needless_question_mark)]
6638 if (|| -> ::core::result::Result<
6639 _,
6640 ::treesitter_types::ParseError,
6641 > {
6642 let child = candidate;
6643 Ok(
6644 <PatternSynonymChildren as ::treesitter_types::FromNode>::from_node(
6645 child,
6646 src,
6647 )?,
6648 )
6649 })()
6650 .is_ok()
6651 {
6652 fallback_child = Some(candidate);
6653 break;
6654 }
6655 }
6656 if !cursor2.goto_next_sibling() {
6657 break;
6658 }
6659 }
6660 }
6661 }
6662 fallback_child.ok_or_else(|| {
6663 ::treesitter_types::ParseError::missing_field("children", node)
6664 })?
6665 };
6666 <PatternSynonymChildren as ::treesitter_types::FromNode>::from_node(child, src)?
6667 },
6668 })
6669 }
6670}
6671impl ::treesitter_types::Spanned for PatternSynonym<'_> {
6672 fn span(&self) -> ::treesitter_types::Span {
6673 self.span
6674 }
6675}
6676#[derive(Debug, Clone)]
6677pub struct Patterns<'tree> {
6678 pub span: ::treesitter_types::Span,
6679 pub children: ::std::vec::Vec<PatternsChildren<'tree>>,
6680}
6681impl<'tree> ::treesitter_types::FromNode<'tree> for Patterns<'tree> {
6682 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6683 fn from_node(
6684 node: ::tree_sitter::Node<'tree>,
6685 src: &'tree [u8],
6686 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6687 debug_assert_eq!(node.kind(), "patterns");
6688 Ok(Self {
6689 span: ::treesitter_types::Span::from(node),
6690 children: {
6691 #[allow(clippy::suspicious_else_formatting)]
6692 let non_field_children = {
6693 let mut cursor = node.walk();
6694 let mut result = ::std::vec::Vec::new();
6695 if cursor.goto_first_child() {
6696 loop {
6697 if cursor.field_name().is_none()
6698 && cursor.node().is_named()
6699 && !cursor.node().is_extra()
6700 {
6701 result.push(cursor.node());
6702 }
6703 if !cursor.goto_next_sibling() {
6704 break;
6705 }
6706 }
6707 }
6708 result
6709 };
6710 let mut items = ::std::vec::Vec::new();
6711 for child in non_field_children {
6712 items.push(
6713 <PatternsChildren as ::treesitter_types::FromNode>::from_node(child, src)?,
6714 );
6715 }
6716 items
6717 },
6718 })
6719 }
6720}
6721impl ::treesitter_types::Spanned for Patterns<'_> {
6722 fn span(&self) -> ::treesitter_types::Span {
6723 self.span
6724 }
6725}
6726#[derive(Debug, Clone)]
6727pub struct Prefix<'tree> {
6728 pub span: ::treesitter_types::Span,
6729 pub field: ::std::vec::Vec<PrefixField<'tree>>,
6730 pub name: ::core::option::Option<PrefixName<'tree>>,
6731 pub r#type: ::core::option::Option<QuantifiedType<'tree>>,
6732}
6733impl<'tree> ::treesitter_types::FromNode<'tree> for Prefix<'tree> {
6734 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6735 fn from_node(
6736 node: ::tree_sitter::Node<'tree>,
6737 src: &'tree [u8],
6738 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6739 debug_assert_eq!(node.kind(), "prefix");
6740 Ok(Self {
6741 span: ::treesitter_types::Span::from(node),
6742 field: {
6743 let mut cursor = node.walk();
6744 let mut items = ::std::vec::Vec::new();
6745 for child in node.children_by_field_name("field", &mut cursor) {
6746 items.push(<PrefixField as ::treesitter_types::FromNode>::from_node(
6747 child, src,
6748 )?);
6749 }
6750 items
6751 },
6752 name: match node.child_by_field_name("name") {
6753 Some(child) => Some(<PrefixName as ::treesitter_types::FromNode>::from_node(
6754 child, src,
6755 )?),
6756 None => None,
6757 },
6758 r#type: match node.child_by_field_name("type") {
6759 Some(child) => Some(<QuantifiedType as ::treesitter_types::FromNode>::from_node(
6760 child, src,
6761 )?),
6762 None => None,
6763 },
6764 })
6765 }
6766}
6767impl ::treesitter_types::Spanned for Prefix<'_> {
6768 fn span(&self) -> ::treesitter_types::Span {
6769 self.span
6770 }
6771}
6772#[derive(Debug, Clone)]
6773pub struct PrefixId<'tree> {
6774 pub span: ::treesitter_types::Span,
6775 pub children: PrefixIdChildren<'tree>,
6776}
6777impl<'tree> ::treesitter_types::FromNode<'tree> for PrefixId<'tree> {
6778 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
6779 fn from_node(
6780 node: ::tree_sitter::Node<'tree>,
6781 src: &'tree [u8],
6782 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6783 debug_assert_eq!(node.kind(), "prefix_id");
6784 Ok(Self {
6785 span: ::treesitter_types::Span::from(node),
6786 children: {
6787 #[allow(clippy::suspicious_else_formatting)]
6788 let non_field_children = {
6789 let mut cursor = node.walk();
6790 let mut result = ::std::vec::Vec::new();
6791 if cursor.goto_first_child() {
6792 loop {
6793 if cursor.field_name().is_none()
6794 && cursor.node().is_named()
6795 && !cursor.node().is_extra()
6796 {
6797 result.push(cursor.node());
6798 }
6799 if !cursor.goto_next_sibling() {
6800 break;
6801 }
6802 }
6803 }
6804 result
6805 };
6806 let child = if let Some(&c) = non_field_children.first() {
6807 c
6808 } else {
6809 let mut fallback_cursor = node.walk();
6810 let mut fallback_child = None;
6811 if fallback_cursor.goto_first_child() {
6812 loop {
6813 if fallback_cursor.field_name().is_none()
6814 && !fallback_cursor.node().is_extra()
6815 {
6816 let candidate = fallback_cursor.node();
6817 #[allow(clippy::needless_question_mark)]
6818 if (|| -> ::core::result::Result<
6819 _,
6820 ::treesitter_types::ParseError,
6821 > {
6822 let child = candidate;
6823 Ok(
6824 <PrefixIdChildren as ::treesitter_types::FromNode>::from_node(
6825 child,
6826 src,
6827 )?,
6828 )
6829 })()
6830 .is_ok()
6831 {
6832 fallback_child = Some(candidate);
6833 break;
6834 }
6835 }
6836 if !fallback_cursor.goto_next_sibling() {
6837 break;
6838 }
6839 }
6840 }
6841 if fallback_child.is_none() {
6842 let mut cursor2 = node.walk();
6843 if cursor2.goto_first_child() {
6844 loop {
6845 if cursor2.node().is_named() && !cursor2.node().is_extra() {
6846 let candidate = cursor2.node();
6847 #[allow(clippy::needless_question_mark)]
6848 if (|| -> ::core::result::Result<
6849 _,
6850 ::treesitter_types::ParseError,
6851 > {
6852 let child = candidate;
6853 Ok(
6854 <PrefixIdChildren as ::treesitter_types::FromNode>::from_node(
6855 child,
6856 src,
6857 )?,
6858 )
6859 })()
6860 .is_ok()
6861 {
6862 fallback_child = Some(candidate);
6863 break;
6864 }
6865 }
6866 if !cursor2.goto_next_sibling() {
6867 break;
6868 }
6869 }
6870 }
6871 }
6872 fallback_child.ok_or_else(|| {
6873 ::treesitter_types::ParseError::missing_field("children", node)
6874 })?
6875 };
6876 <PrefixIdChildren as ::treesitter_types::FromNode>::from_node(child, src)?
6877 },
6878 })
6879 }
6880}
6881impl ::treesitter_types::Spanned for PrefixId<'_> {
6882 fn span(&self) -> ::treesitter_types::Span {
6883 self.span
6884 }
6885}
6886#[derive(Debug, Clone)]
6887pub struct PrefixList<'tree> {
6888 pub span: ::treesitter_types::Span,
6889 text: &'tree str,
6890}
6891impl<'tree> ::treesitter_types::FromNode<'tree> for PrefixList<'tree> {
6892 fn from_node(
6893 node: ::tree_sitter::Node<'tree>,
6894 src: &'tree [u8],
6895 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6896 debug_assert_eq!(node.kind(), "prefix_list");
6897 Ok(Self {
6898 span: ::treesitter_types::Span::from(node),
6899 text: node.utf8_text(src)?,
6900 })
6901 }
6902}
6903impl<'tree> ::treesitter_types::LeafNode<'tree> for PrefixList<'tree> {
6904 fn text(&self) -> &'tree str {
6905 self.text
6906 }
6907}
6908impl ::treesitter_types::Spanned for PrefixList<'_> {
6909 fn span(&self) -> ::treesitter_types::Span {
6910 self.span
6911 }
6912}
6913#[derive(Debug, Clone)]
6914pub struct PrefixTuple<'tree> {
6915 pub span: ::treesitter_types::Span,
6916 text: &'tree str,
6917}
6918impl<'tree> ::treesitter_types::FromNode<'tree> for PrefixTuple<'tree> {
6919 fn from_node(
6920 node: ::tree_sitter::Node<'tree>,
6921 src: &'tree [u8],
6922 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6923 debug_assert_eq!(node.kind(), "prefix_tuple");
6924 Ok(Self {
6925 span: ::treesitter_types::Span::from(node),
6926 text: node.utf8_text(src)?,
6927 })
6928 }
6929}
6930impl<'tree> ::treesitter_types::LeafNode<'tree> for PrefixTuple<'tree> {
6931 fn text(&self) -> &'tree str {
6932 self.text
6933 }
6934}
6935impl ::treesitter_types::Spanned for PrefixTuple<'_> {
6936 fn span(&self) -> ::treesitter_types::Span {
6937 self.span
6938 }
6939}
6940#[derive(Debug, Clone)]
6941pub struct PrefixUnboxedSum<'tree> {
6942 pub span: ::treesitter_types::Span,
6943 text: &'tree str,
6944}
6945impl<'tree> ::treesitter_types::FromNode<'tree> for PrefixUnboxedSum<'tree> {
6946 fn from_node(
6947 node: ::tree_sitter::Node<'tree>,
6948 src: &'tree [u8],
6949 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6950 debug_assert_eq!(node.kind(), "prefix_unboxed_sum");
6951 Ok(Self {
6952 span: ::treesitter_types::Span::from(node),
6953 text: node.utf8_text(src)?,
6954 })
6955 }
6956}
6957impl<'tree> ::treesitter_types::LeafNode<'tree> for PrefixUnboxedSum<'tree> {
6958 fn text(&self) -> &'tree str {
6959 self.text
6960 }
6961}
6962impl ::treesitter_types::Spanned for PrefixUnboxedSum<'_> {
6963 fn span(&self) -> ::treesitter_types::Span {
6964 self.span
6965 }
6966}
6967#[derive(Debug, Clone)]
6968pub struct PrefixUnboxedTuple<'tree> {
6969 pub span: ::treesitter_types::Span,
6970 text: &'tree str,
6971}
6972impl<'tree> ::treesitter_types::FromNode<'tree> for PrefixUnboxedTuple<'tree> {
6973 fn from_node(
6974 node: ::tree_sitter::Node<'tree>,
6975 src: &'tree [u8],
6976 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
6977 debug_assert_eq!(node.kind(), "prefix_unboxed_tuple");
6978 Ok(Self {
6979 span: ::treesitter_types::Span::from(node),
6980 text: node.utf8_text(src)?,
6981 })
6982 }
6983}
6984impl<'tree> ::treesitter_types::LeafNode<'tree> for PrefixUnboxedTuple<'tree> {
6985 fn text(&self) -> &'tree str {
6986 self.text
6987 }
6988}
6989impl ::treesitter_types::Spanned for PrefixUnboxedTuple<'_> {
6990 fn span(&self) -> ::treesitter_types::Span {
6991 self.span
6992 }
6993}
6994#[derive(Debug, Clone)]
6995pub struct Projection<'tree> {
6996 pub span: ::treesitter_types::Span,
6997 pub expression: Expression<'tree>,
6998 pub field: FieldName<'tree>,
6999}
7000impl<'tree> ::treesitter_types::FromNode<'tree> for Projection<'tree> {
7001 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7002 fn from_node(
7003 node: ::tree_sitter::Node<'tree>,
7004 src: &'tree [u8],
7005 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7006 debug_assert_eq!(node.kind(), "projection");
7007 Ok(Self {
7008 span: ::treesitter_types::Span::from(node),
7009 expression: {
7010 let child = node.child_by_field_name("expression").ok_or_else(|| {
7011 ::treesitter_types::ParseError::missing_field("expression", node)
7012 })?;
7013 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
7014 },
7015 field: {
7016 let child = node
7017 .child_by_field_name("field")
7018 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("field", node))?;
7019 <FieldName as ::treesitter_types::FromNode>::from_node(child, src)?
7020 },
7021 })
7022 }
7023}
7024impl ::treesitter_types::Spanned for Projection<'_> {
7025 fn span(&self) -> ::treesitter_types::Span {
7026 self.span
7027 }
7028}
7029#[derive(Debug, Clone)]
7030pub struct ProjectionSelector<'tree> {
7031 pub span: ::treesitter_types::Span,
7032 pub field: ::std::vec::Vec<Variable<'tree>>,
7033}
7034impl<'tree> ::treesitter_types::FromNode<'tree> for ProjectionSelector<'tree> {
7035 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7036 fn from_node(
7037 node: ::tree_sitter::Node<'tree>,
7038 src: &'tree [u8],
7039 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7040 debug_assert_eq!(node.kind(), "projection_selector");
7041 Ok(Self {
7042 span: ::treesitter_types::Span::from(node),
7043 field: {
7044 let mut cursor = node.walk();
7045 let mut items = ::std::vec::Vec::new();
7046 for child in node.children_by_field_name("field", &mut cursor) {
7047 items.push(<Variable as ::treesitter_types::FromNode>::from_node(
7048 child, src,
7049 )?);
7050 }
7051 items
7052 },
7053 })
7054 }
7055}
7056impl ::treesitter_types::Spanned for ProjectionSelector<'_> {
7057 fn span(&self) -> ::treesitter_types::Span {
7058 self.span
7059 }
7060}
7061#[derive(Debug, Clone)]
7062pub struct Promoted<'tree> {
7063 pub span: ::treesitter_types::Span,
7064 pub children: PromotedChildren<'tree>,
7065}
7066impl<'tree> ::treesitter_types::FromNode<'tree> for Promoted<'tree> {
7067 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7068 fn from_node(
7069 node: ::tree_sitter::Node<'tree>,
7070 src: &'tree [u8],
7071 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7072 debug_assert_eq!(node.kind(), "promoted");
7073 Ok(Self {
7074 span: ::treesitter_types::Span::from(node),
7075 children: {
7076 #[allow(clippy::suspicious_else_formatting)]
7077 let non_field_children = {
7078 let mut cursor = node.walk();
7079 let mut result = ::std::vec::Vec::new();
7080 if cursor.goto_first_child() {
7081 loop {
7082 if cursor.field_name().is_none()
7083 && cursor.node().is_named()
7084 && !cursor.node().is_extra()
7085 {
7086 result.push(cursor.node());
7087 }
7088 if !cursor.goto_next_sibling() {
7089 break;
7090 }
7091 }
7092 }
7093 result
7094 };
7095 let child = if let Some(&c) = non_field_children.first() {
7096 c
7097 } else {
7098 let mut fallback_cursor = node.walk();
7099 let mut fallback_child = None;
7100 if fallback_cursor.goto_first_child() {
7101 loop {
7102 if fallback_cursor.field_name().is_none()
7103 && !fallback_cursor.node().is_extra()
7104 {
7105 let candidate = fallback_cursor.node();
7106 #[allow(clippy::needless_question_mark)]
7107 if (|| -> ::core::result::Result<
7108 _,
7109 ::treesitter_types::ParseError,
7110 > {
7111 let child = candidate;
7112 Ok(
7113 <PromotedChildren as ::treesitter_types::FromNode>::from_node(
7114 child,
7115 src,
7116 )?,
7117 )
7118 })()
7119 .is_ok()
7120 {
7121 fallback_child = Some(candidate);
7122 break;
7123 }
7124 }
7125 if !fallback_cursor.goto_next_sibling() {
7126 break;
7127 }
7128 }
7129 }
7130 if fallback_child.is_none() {
7131 let mut cursor2 = node.walk();
7132 if cursor2.goto_first_child() {
7133 loop {
7134 if cursor2.node().is_named() && !cursor2.node().is_extra() {
7135 let candidate = cursor2.node();
7136 #[allow(clippy::needless_question_mark)]
7137 if (|| -> ::core::result::Result<
7138 _,
7139 ::treesitter_types::ParseError,
7140 > {
7141 let child = candidate;
7142 Ok(
7143 <PromotedChildren as ::treesitter_types::FromNode>::from_node(
7144 child,
7145 src,
7146 )?,
7147 )
7148 })()
7149 .is_ok()
7150 {
7151 fallback_child = Some(candidate);
7152 break;
7153 }
7154 }
7155 if !cursor2.goto_next_sibling() {
7156 break;
7157 }
7158 }
7159 }
7160 }
7161 fallback_child.ok_or_else(|| {
7162 ::treesitter_types::ParseError::missing_field("children", node)
7163 })?
7164 };
7165 <PromotedChildren as ::treesitter_types::FromNode>::from_node(child, src)?
7166 },
7167 })
7168 }
7169}
7170impl ::treesitter_types::Spanned for Promoted<'_> {
7171 fn span(&self) -> ::treesitter_types::Span {
7172 self.span
7173 }
7174}
7175#[derive(Debug, Clone)]
7176pub struct Qualified<'tree> {
7177 pub span: ::treesitter_types::Span,
7178 pub id: QualifiedId<'tree>,
7179 pub module: Module<'tree>,
7180}
7181impl<'tree> ::treesitter_types::FromNode<'tree> for Qualified<'tree> {
7182 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7183 fn from_node(
7184 node: ::tree_sitter::Node<'tree>,
7185 src: &'tree [u8],
7186 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7187 debug_assert_eq!(node.kind(), "qualified");
7188 Ok(Self {
7189 span: ::treesitter_types::Span::from(node),
7190 id: {
7191 let child = node
7192 .child_by_field_name("id")
7193 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("id", node))?;
7194 <QualifiedId as ::treesitter_types::FromNode>::from_node(child, src)?
7195 },
7196 module: {
7197 let child = node
7198 .child_by_field_name("module")
7199 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("module", node))?;
7200 <Module as ::treesitter_types::FromNode>::from_node(child, src)?
7201 },
7202 })
7203 }
7204}
7205impl ::treesitter_types::Spanned for Qualified<'_> {
7206 fn span(&self) -> ::treesitter_types::Span {
7207 self.span
7208 }
7209}
7210#[derive(Debug, Clone)]
7211pub struct Qualifiers<'tree> {
7212 pub span: ::treesitter_types::Span,
7213 pub qualifier: ::std::vec::Vec<Qualifier<'tree>>,
7214}
7215impl<'tree> ::treesitter_types::FromNode<'tree> for Qualifiers<'tree> {
7216 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7217 fn from_node(
7218 node: ::tree_sitter::Node<'tree>,
7219 src: &'tree [u8],
7220 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7221 debug_assert_eq!(node.kind(), "qualifiers");
7222 Ok(Self {
7223 span: ::treesitter_types::Span::from(node),
7224 qualifier: {
7225 let mut cursor = node.walk();
7226 let mut items = ::std::vec::Vec::new();
7227 for child in node.children_by_field_name("qualifier", &mut cursor) {
7228 items.push(<Qualifier as ::treesitter_types::FromNode>::from_node(
7229 child, src,
7230 )?);
7231 }
7232 items
7233 },
7234 })
7235 }
7236}
7237impl ::treesitter_types::Spanned for Qualifiers<'_> {
7238 fn span(&self) -> ::treesitter_types::Span {
7239 self.span
7240 }
7241}
7242#[derive(Debug, Clone)]
7243pub struct QuantifiedVariables<'tree> {
7244 pub span: ::treesitter_types::Span,
7245 pub children: ::std::vec::Vec<QuantifiedVariablesChildren<'tree>>,
7246}
7247impl<'tree> ::treesitter_types::FromNode<'tree> for QuantifiedVariables<'tree> {
7248 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7249 fn from_node(
7250 node: ::tree_sitter::Node<'tree>,
7251 src: &'tree [u8],
7252 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7253 debug_assert_eq!(node.kind(), "quantified_variables");
7254 Ok(Self {
7255 span: ::treesitter_types::Span::from(node),
7256 children: {
7257 #[allow(clippy::suspicious_else_formatting)]
7258 let non_field_children = {
7259 let mut cursor = node.walk();
7260 let mut result = ::std::vec::Vec::new();
7261 if cursor.goto_first_child() {
7262 loop {
7263 if cursor.field_name().is_none()
7264 && cursor.node().is_named()
7265 && !cursor.node().is_extra()
7266 {
7267 result.push(cursor.node());
7268 }
7269 if !cursor.goto_next_sibling() {
7270 break;
7271 }
7272 }
7273 }
7274 result
7275 };
7276 let mut items = ::std::vec::Vec::new();
7277 for child in non_field_children {
7278 items.push(
7279 <QuantifiedVariablesChildren as ::treesitter_types::FromNode>::from_node(
7280 child, src,
7281 )?,
7282 );
7283 }
7284 items
7285 },
7286 })
7287 }
7288}
7289impl ::treesitter_types::Spanned for QuantifiedVariables<'_> {
7290 fn span(&self) -> ::treesitter_types::Span {
7291 self.span
7292 }
7293}
7294#[derive(Debug, Clone)]
7295pub struct Quasiquote<'tree> {
7296 pub span: ::treesitter_types::Span,
7297 pub body: ::core::option::Option<QuasiquoteBody<'tree>>,
7298 pub quoter: Quoter<'tree>,
7299}
7300impl<'tree> ::treesitter_types::FromNode<'tree> for Quasiquote<'tree> {
7301 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7302 fn from_node(
7303 node: ::tree_sitter::Node<'tree>,
7304 src: &'tree [u8],
7305 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7306 debug_assert_eq!(node.kind(), "quasiquote");
7307 Ok(Self {
7308 span: ::treesitter_types::Span::from(node),
7309 body: match node.child_by_field_name("body") {
7310 Some(child) => Some(<QuasiquoteBody as ::treesitter_types::FromNode>::from_node(
7311 child, src,
7312 )?),
7313 None => None,
7314 },
7315 quoter: {
7316 let child = node
7317 .child_by_field_name("quoter")
7318 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("quoter", node))?;
7319 <Quoter as ::treesitter_types::FromNode>::from_node(child, src)?
7320 },
7321 })
7322 }
7323}
7324impl ::treesitter_types::Spanned for Quasiquote<'_> {
7325 fn span(&self) -> ::treesitter_types::Span {
7326 self.span
7327 }
7328}
7329#[derive(Debug, Clone)]
7330pub struct Quote<'tree> {
7331 pub span: ::treesitter_types::Span,
7332 pub quoter: ::core::option::Option<QuoteQuoter>,
7333 pub children: ::core::option::Option<QuoteChildren<'tree>>,
7334}
7335impl<'tree> ::treesitter_types::FromNode<'tree> for Quote<'tree> {
7336 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7337 fn from_node(
7338 node: ::tree_sitter::Node<'tree>,
7339 src: &'tree [u8],
7340 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7341 debug_assert_eq!(node.kind(), "quote");
7342 Ok(Self {
7343 span: ::treesitter_types::Span::from(node),
7344 quoter: match node.child_by_field_name("quoter") {
7345 Some(child) => Some(<QuoteQuoter as ::treesitter_types::FromNode>::from_node(
7346 child, src,
7347 )?),
7348 None => None,
7349 },
7350 children: {
7351 #[allow(clippy::suspicious_else_formatting)]
7352 let non_field_children = {
7353 let mut cursor = node.walk();
7354 let mut result = ::std::vec::Vec::new();
7355 if cursor.goto_first_child() {
7356 loop {
7357 if cursor.field_name().is_none()
7358 && cursor.node().is_named()
7359 && !cursor.node().is_extra()
7360 {
7361 result.push(cursor.node());
7362 }
7363 if !cursor.goto_next_sibling() {
7364 break;
7365 }
7366 }
7367 }
7368 result
7369 };
7370 match non_field_children.first() {
7371 Some(&child) => Some(
7372 <QuoteChildren as ::treesitter_types::FromNode>::from_node(child, src)?,
7373 ),
7374 None => None,
7375 }
7376 },
7377 })
7378 }
7379}
7380impl ::treesitter_types::Spanned for Quote<'_> {
7381 fn span(&self) -> ::treesitter_types::Span {
7382 self.span
7383 }
7384}
7385#[derive(Debug, Clone)]
7386pub struct QuotedDecls<'tree> {
7387 pub span: ::treesitter_types::Span,
7388 pub declaration: ::std::vec::Vec<Declaration<'tree>>,
7389}
7390impl<'tree> ::treesitter_types::FromNode<'tree> for QuotedDecls<'tree> {
7391 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7392 fn from_node(
7393 node: ::tree_sitter::Node<'tree>,
7394 src: &'tree [u8],
7395 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7396 debug_assert_eq!(node.kind(), "quoted_decls");
7397 Ok(Self {
7398 span: ::treesitter_types::Span::from(node),
7399 declaration: {
7400 let mut cursor = node.walk();
7401 let mut items = ::std::vec::Vec::new();
7402 for child in node.children_by_field_name("declaration", &mut cursor) {
7403 items.push(<Declaration as ::treesitter_types::FromNode>::from_node(
7404 child, src,
7405 )?);
7406 }
7407 items
7408 },
7409 })
7410 }
7411}
7412impl ::treesitter_types::Spanned for QuotedDecls<'_> {
7413 fn span(&self) -> ::treesitter_types::Span {
7414 self.span
7415 }
7416}
7417#[derive(Debug, Clone)]
7418pub struct QuotedExpression<'tree> {
7419 pub span: ::treesitter_types::Span,
7420 pub children: QuotedExpressionChildren<'tree>,
7421}
7422impl<'tree> ::treesitter_types::FromNode<'tree> for QuotedExpression<'tree> {
7423 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7424 fn from_node(
7425 node: ::tree_sitter::Node<'tree>,
7426 src: &'tree [u8],
7427 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7428 debug_assert_eq!(node.kind(), "quoted_expression");
7429 Ok(Self {
7430 span: ::treesitter_types::Span::from(node),
7431 children: {
7432 #[allow(clippy::suspicious_else_formatting)]
7433 let non_field_children = {
7434 let mut cursor = node.walk();
7435 let mut result = ::std::vec::Vec::new();
7436 if cursor.goto_first_child() {
7437 loop {
7438 if cursor.field_name().is_none()
7439 && cursor.node().is_named()
7440 && !cursor.node().is_extra()
7441 {
7442 result.push(cursor.node());
7443 }
7444 if !cursor.goto_next_sibling() {
7445 break;
7446 }
7447 }
7448 }
7449 result
7450 };
7451 let child = if let Some(&c) = non_field_children.first() {
7452 c
7453 } else {
7454 let mut fallback_cursor = node.walk();
7455 let mut fallback_child = None;
7456 if fallback_cursor.goto_first_child() {
7457 loop {
7458 if fallback_cursor.field_name().is_none()
7459 && !fallback_cursor.node().is_extra()
7460 {
7461 let candidate = fallback_cursor.node();
7462 #[allow(clippy::needless_question_mark)]
7463 if (|| -> ::core::result::Result<
7464 _,
7465 ::treesitter_types::ParseError,
7466 > {
7467 let child = candidate;
7468 Ok(
7469 <QuotedExpressionChildren as ::treesitter_types::FromNode>::from_node(
7470 child,
7471 src,
7472 )?,
7473 )
7474 })()
7475 .is_ok()
7476 {
7477 fallback_child = Some(candidate);
7478 break;
7479 }
7480 }
7481 if !fallback_cursor.goto_next_sibling() {
7482 break;
7483 }
7484 }
7485 }
7486 if fallback_child.is_none() {
7487 let mut cursor2 = node.walk();
7488 if cursor2.goto_first_child() {
7489 loop {
7490 if cursor2.node().is_named() && !cursor2.node().is_extra() {
7491 let candidate = cursor2.node();
7492 #[allow(clippy::needless_question_mark)]
7493 if (|| -> ::core::result::Result<
7494 _,
7495 ::treesitter_types::ParseError,
7496 > {
7497 let child = candidate;
7498 Ok(
7499 <QuotedExpressionChildren as ::treesitter_types::FromNode>::from_node(
7500 child,
7501 src,
7502 )?,
7503 )
7504 })()
7505 .is_ok()
7506 {
7507 fallback_child = Some(candidate);
7508 break;
7509 }
7510 }
7511 if !cursor2.goto_next_sibling() {
7512 break;
7513 }
7514 }
7515 }
7516 }
7517 fallback_child.ok_or_else(|| {
7518 ::treesitter_types::ParseError::missing_field("children", node)
7519 })?
7520 };
7521 <QuotedExpressionChildren as ::treesitter_types::FromNode>::from_node(child, src)?
7522 },
7523 })
7524 }
7525}
7526impl ::treesitter_types::Spanned for QuotedExpression<'_> {
7527 fn span(&self) -> ::treesitter_types::Span {
7528 self.span
7529 }
7530}
7531#[derive(Debug, Clone)]
7532pub struct QuotedPattern<'tree> {
7533 pub span: ::treesitter_types::Span,
7534 pub children: QuotedPatternChildren<'tree>,
7535}
7536impl<'tree> ::treesitter_types::FromNode<'tree> for QuotedPattern<'tree> {
7537 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7538 fn from_node(
7539 node: ::tree_sitter::Node<'tree>,
7540 src: &'tree [u8],
7541 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7542 debug_assert_eq!(node.kind(), "quoted_pattern");
7543 Ok(Self {
7544 span: ::treesitter_types::Span::from(node),
7545 children: {
7546 #[allow(clippy::suspicious_else_formatting)]
7547 let non_field_children = {
7548 let mut cursor = node.walk();
7549 let mut result = ::std::vec::Vec::new();
7550 if cursor.goto_first_child() {
7551 loop {
7552 if cursor.field_name().is_none()
7553 && cursor.node().is_named()
7554 && !cursor.node().is_extra()
7555 {
7556 result.push(cursor.node());
7557 }
7558 if !cursor.goto_next_sibling() {
7559 break;
7560 }
7561 }
7562 }
7563 result
7564 };
7565 let child = if let Some(&c) = non_field_children.first() {
7566 c
7567 } else {
7568 let mut fallback_cursor = node.walk();
7569 let mut fallback_child = None;
7570 if fallback_cursor.goto_first_child() {
7571 loop {
7572 if fallback_cursor.field_name().is_none()
7573 && !fallback_cursor.node().is_extra()
7574 {
7575 let candidate = fallback_cursor.node();
7576 #[allow(clippy::needless_question_mark)]
7577 if (|| -> ::core::result::Result<
7578 _,
7579 ::treesitter_types::ParseError,
7580 > {
7581 let child = candidate;
7582 Ok(
7583 <QuotedPatternChildren as ::treesitter_types::FromNode>::from_node(
7584 child,
7585 src,
7586 )?,
7587 )
7588 })()
7589 .is_ok()
7590 {
7591 fallback_child = Some(candidate);
7592 break;
7593 }
7594 }
7595 if !fallback_cursor.goto_next_sibling() {
7596 break;
7597 }
7598 }
7599 }
7600 if fallback_child.is_none() {
7601 let mut cursor2 = node.walk();
7602 if cursor2.goto_first_child() {
7603 loop {
7604 if cursor2.node().is_named() && !cursor2.node().is_extra() {
7605 let candidate = cursor2.node();
7606 #[allow(clippy::needless_question_mark)]
7607 if (|| -> ::core::result::Result<
7608 _,
7609 ::treesitter_types::ParseError,
7610 > {
7611 let child = candidate;
7612 Ok(
7613 <QuotedPatternChildren as ::treesitter_types::FromNode>::from_node(
7614 child,
7615 src,
7616 )?,
7617 )
7618 })()
7619 .is_ok()
7620 {
7621 fallback_child = Some(candidate);
7622 break;
7623 }
7624 }
7625 if !cursor2.goto_next_sibling() {
7626 break;
7627 }
7628 }
7629 }
7630 }
7631 fallback_child.ok_or_else(|| {
7632 ::treesitter_types::ParseError::missing_field("children", node)
7633 })?
7634 };
7635 <QuotedPatternChildren as ::treesitter_types::FromNode>::from_node(child, src)?
7636 },
7637 })
7638 }
7639}
7640impl ::treesitter_types::Spanned for QuotedPattern<'_> {
7641 fn span(&self) -> ::treesitter_types::Span {
7642 self.span
7643 }
7644}
7645#[derive(Debug, Clone)]
7646pub struct QuotedType<'tree> {
7647 pub span: ::treesitter_types::Span,
7648 pub children: QuotedTypeChildren<'tree>,
7649}
7650impl<'tree> ::treesitter_types::FromNode<'tree> for QuotedType<'tree> {
7651 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7652 fn from_node(
7653 node: ::tree_sitter::Node<'tree>,
7654 src: &'tree [u8],
7655 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7656 debug_assert_eq!(node.kind(), "quoted_type");
7657 Ok(Self {
7658 span: ::treesitter_types::Span::from(node),
7659 children: {
7660 #[allow(clippy::suspicious_else_formatting)]
7661 let non_field_children = {
7662 let mut cursor = node.walk();
7663 let mut result = ::std::vec::Vec::new();
7664 if cursor.goto_first_child() {
7665 loop {
7666 if cursor.field_name().is_none()
7667 && cursor.node().is_named()
7668 && !cursor.node().is_extra()
7669 {
7670 result.push(cursor.node());
7671 }
7672 if !cursor.goto_next_sibling() {
7673 break;
7674 }
7675 }
7676 }
7677 result
7678 };
7679 let child = if let Some(&c) = non_field_children.first() {
7680 c
7681 } else {
7682 let mut fallback_cursor = node.walk();
7683 let mut fallback_child = None;
7684 if fallback_cursor.goto_first_child() {
7685 loop {
7686 if fallback_cursor.field_name().is_none()
7687 && !fallback_cursor.node().is_extra()
7688 {
7689 let candidate = fallback_cursor.node();
7690 #[allow(clippy::needless_question_mark)]
7691 if (|| -> ::core::result::Result<
7692 _,
7693 ::treesitter_types::ParseError,
7694 > {
7695 let child = candidate;
7696 Ok(
7697 <QuotedTypeChildren as ::treesitter_types::FromNode>::from_node(
7698 child,
7699 src,
7700 )?,
7701 )
7702 })()
7703 .is_ok()
7704 {
7705 fallback_child = Some(candidate);
7706 break;
7707 }
7708 }
7709 if !fallback_cursor.goto_next_sibling() {
7710 break;
7711 }
7712 }
7713 }
7714 if fallback_child.is_none() {
7715 let mut cursor2 = node.walk();
7716 if cursor2.goto_first_child() {
7717 loop {
7718 if cursor2.node().is_named() && !cursor2.node().is_extra() {
7719 let candidate = cursor2.node();
7720 #[allow(clippy::needless_question_mark)]
7721 if (|| -> ::core::result::Result<
7722 _,
7723 ::treesitter_types::ParseError,
7724 > {
7725 let child = candidate;
7726 Ok(
7727 <QuotedTypeChildren as ::treesitter_types::FromNode>::from_node(
7728 child,
7729 src,
7730 )?,
7731 )
7732 })()
7733 .is_ok()
7734 {
7735 fallback_child = Some(candidate);
7736 break;
7737 }
7738 }
7739 if !cursor2.goto_next_sibling() {
7740 break;
7741 }
7742 }
7743 }
7744 }
7745 fallback_child.ok_or_else(|| {
7746 ::treesitter_types::ParseError::missing_field("children", node)
7747 })?
7748 };
7749 <QuotedTypeChildren as ::treesitter_types::FromNode>::from_node(child, src)?
7750 },
7751 })
7752 }
7753}
7754impl ::treesitter_types::Spanned for QuotedType<'_> {
7755 fn span(&self) -> ::treesitter_types::Span {
7756 self.span
7757 }
7758}
7759#[derive(Debug, Clone)]
7760pub struct Quoter<'tree> {
7761 pub span: ::treesitter_types::Span,
7762 pub children: QuoterChildren<'tree>,
7763}
7764impl<'tree> ::treesitter_types::FromNode<'tree> for Quoter<'tree> {
7765 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7766 fn from_node(
7767 node: ::tree_sitter::Node<'tree>,
7768 src: &'tree [u8],
7769 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7770 debug_assert_eq!(node.kind(), "quoter");
7771 Ok(Self {
7772 span: ::treesitter_types::Span::from(node),
7773 children: {
7774 #[allow(clippy::suspicious_else_formatting)]
7775 let non_field_children = {
7776 let mut cursor = node.walk();
7777 let mut result = ::std::vec::Vec::new();
7778 if cursor.goto_first_child() {
7779 loop {
7780 if cursor.field_name().is_none()
7781 && cursor.node().is_named()
7782 && !cursor.node().is_extra()
7783 {
7784 result.push(cursor.node());
7785 }
7786 if !cursor.goto_next_sibling() {
7787 break;
7788 }
7789 }
7790 }
7791 result
7792 };
7793 let child = if let Some(&c) = non_field_children.first() {
7794 c
7795 } else {
7796 let mut fallback_cursor = node.walk();
7797 let mut fallback_child = None;
7798 if fallback_cursor.goto_first_child() {
7799 loop {
7800 if fallback_cursor.field_name().is_none()
7801 && !fallback_cursor.node().is_extra()
7802 {
7803 let candidate = fallback_cursor.node();
7804 #[allow(clippy::needless_question_mark)]
7805 if (|| -> ::core::result::Result<
7806 _,
7807 ::treesitter_types::ParseError,
7808 > {
7809 let child = candidate;
7810 Ok(
7811 <QuoterChildren as ::treesitter_types::FromNode>::from_node(
7812 child,
7813 src,
7814 )?,
7815 )
7816 })()
7817 .is_ok()
7818 {
7819 fallback_child = Some(candidate);
7820 break;
7821 }
7822 }
7823 if !fallback_cursor.goto_next_sibling() {
7824 break;
7825 }
7826 }
7827 }
7828 if fallback_child.is_none() {
7829 let mut cursor2 = node.walk();
7830 if cursor2.goto_first_child() {
7831 loop {
7832 if cursor2.node().is_named() && !cursor2.node().is_extra() {
7833 let candidate = cursor2.node();
7834 #[allow(clippy::needless_question_mark)]
7835 if (|| -> ::core::result::Result<
7836 _,
7837 ::treesitter_types::ParseError,
7838 > {
7839 let child = candidate;
7840 Ok(
7841 <QuoterChildren as ::treesitter_types::FromNode>::from_node(
7842 child,
7843 src,
7844 )?,
7845 )
7846 })()
7847 .is_ok()
7848 {
7849 fallback_child = Some(candidate);
7850 break;
7851 }
7852 }
7853 if !cursor2.goto_next_sibling() {
7854 break;
7855 }
7856 }
7857 }
7858 }
7859 fallback_child.ok_or_else(|| {
7860 ::treesitter_types::ParseError::missing_field("children", node)
7861 })?
7862 };
7863 <QuoterChildren as ::treesitter_types::FromNode>::from_node(child, src)?
7864 },
7865 })
7866 }
7867}
7868impl ::treesitter_types::Spanned for Quoter<'_> {
7869 fn span(&self) -> ::treesitter_types::Span {
7870 self.span
7871 }
7872}
7873#[derive(Debug, Clone)]
7874pub struct Rec<'tree> {
7875 pub span: ::treesitter_types::Span,
7876 pub statement: ::std::vec::Vec<Statement<'tree>>,
7877}
7878impl<'tree> ::treesitter_types::FromNode<'tree> for Rec<'tree> {
7879 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7880 fn from_node(
7881 node: ::tree_sitter::Node<'tree>,
7882 src: &'tree [u8],
7883 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7884 debug_assert_eq!(node.kind(), "rec");
7885 Ok(Self {
7886 span: ::treesitter_types::Span::from(node),
7887 statement: {
7888 let mut cursor = node.walk();
7889 let mut items = ::std::vec::Vec::new();
7890 for child in node.children_by_field_name("statement", &mut cursor) {
7891 items.push(<Statement as ::treesitter_types::FromNode>::from_node(
7892 child, src,
7893 )?);
7894 }
7895 items
7896 },
7897 })
7898 }
7899}
7900impl ::treesitter_types::Spanned for Rec<'_> {
7901 fn span(&self) -> ::treesitter_types::Span {
7902 self.span
7903 }
7904}
7905#[derive(Debug, Clone)]
7906pub struct Record<'tree> {
7907 pub span: ::treesitter_types::Span,
7908 pub arrow: ::std::vec::Vec<RecordArrow>,
7909 pub constructor: ::core::option::Option<Pattern<'tree>>,
7910 pub expression: ::core::option::Option<Expression<'tree>>,
7911 pub field: ::std::vec::Vec<RecordField<'tree>>,
7912 pub fields: ::core::option::Option<Fields<'tree>>,
7913 pub name: ::core::option::Option<Constructor<'tree>>,
7914 pub r#type: ::core::option::Option<QuantifiedType<'tree>>,
7915}
7916impl<'tree> ::treesitter_types::FromNode<'tree> for Record<'tree> {
7917 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7918 fn from_node(
7919 node: ::tree_sitter::Node<'tree>,
7920 src: &'tree [u8],
7921 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7922 debug_assert_eq!(node.kind(), "record");
7923 Ok(Self {
7924 span: ::treesitter_types::Span::from(node),
7925 arrow: {
7926 let mut cursor = node.walk();
7927 let mut items = ::std::vec::Vec::new();
7928 for child in node.children_by_field_name("arrow", &mut cursor) {
7929 items.push(<RecordArrow as ::treesitter_types::FromNode>::from_node(
7930 child, src,
7931 )?);
7932 }
7933 items
7934 },
7935 constructor: match node.child_by_field_name("constructor") {
7936 Some(child) => Some(<Pattern as ::treesitter_types::FromNode>::from_node(
7937 child, src,
7938 )?),
7939 None => None,
7940 },
7941 expression: match node.child_by_field_name("expression") {
7942 Some(child) => Some(<Expression as ::treesitter_types::FromNode>::from_node(
7943 child, src,
7944 )?),
7945 None => None,
7946 },
7947 field: {
7948 let mut cursor = node.walk();
7949 let mut items = ::std::vec::Vec::new();
7950 for child in node.children_by_field_name("field", &mut cursor) {
7951 items.push(<RecordField as ::treesitter_types::FromNode>::from_node(
7952 child, src,
7953 )?);
7954 }
7955 items
7956 },
7957 fields: match node.child_by_field_name("fields") {
7958 Some(child) => Some(<Fields as ::treesitter_types::FromNode>::from_node(
7959 child, src,
7960 )?),
7961 None => None,
7962 },
7963 name: match node.child_by_field_name("name") {
7964 Some(child) => Some(<Constructor as ::treesitter_types::FromNode>::from_node(
7965 child, src,
7966 )?),
7967 None => None,
7968 },
7969 r#type: match node.child_by_field_name("type") {
7970 Some(child) => Some(<QuantifiedType as ::treesitter_types::FromNode>::from_node(
7971 child, src,
7972 )?),
7973 None => None,
7974 },
7975 })
7976 }
7977}
7978impl ::treesitter_types::Spanned for Record<'_> {
7979 fn span(&self) -> ::treesitter_types::Span {
7980 self.span
7981 }
7982}
7983#[derive(Debug, Clone)]
7984pub struct RightSection<'tree> {
7985 pub span: ::treesitter_types::Span,
7986 pub right_operand: Expression<'tree>,
7987 pub children: RightSectionChildren<'tree>,
7988}
7989impl<'tree> ::treesitter_types::FromNode<'tree> for RightSection<'tree> {
7990 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
7991 fn from_node(
7992 node: ::tree_sitter::Node<'tree>,
7993 src: &'tree [u8],
7994 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
7995 debug_assert_eq!(node.kind(), "right_section");
7996 Ok(Self {
7997 span: ::treesitter_types::Span::from(node),
7998 right_operand: {
7999 let child = node.child_by_field_name("right_operand").ok_or_else(|| {
8000 ::treesitter_types::ParseError::missing_field("right_operand", node)
8001 })?;
8002 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
8003 },
8004 children: {
8005 #[allow(clippy::suspicious_else_formatting)]
8006 let non_field_children = {
8007 let mut cursor = node.walk();
8008 let mut result = ::std::vec::Vec::new();
8009 if cursor.goto_first_child() {
8010 loop {
8011 if cursor.field_name().is_none()
8012 && cursor.node().is_named()
8013 && !cursor.node().is_extra()
8014 {
8015 result.push(cursor.node());
8016 }
8017 if !cursor.goto_next_sibling() {
8018 break;
8019 }
8020 }
8021 }
8022 result
8023 };
8024 let child = if let Some(&c) = non_field_children.first() {
8025 c
8026 } else {
8027 let mut fallback_cursor = node.walk();
8028 let mut fallback_child = None;
8029 if fallback_cursor.goto_first_child() {
8030 loop {
8031 if fallback_cursor.field_name().is_none()
8032 && !fallback_cursor.node().is_extra()
8033 {
8034 let candidate = fallback_cursor.node();
8035 #[allow(clippy::needless_question_mark)]
8036 if (|| -> ::core::result::Result<
8037 _,
8038 ::treesitter_types::ParseError,
8039 > {
8040 let child = candidate;
8041 Ok(
8042 <RightSectionChildren as ::treesitter_types::FromNode>::from_node(
8043 child,
8044 src,
8045 )?,
8046 )
8047 })()
8048 .is_ok()
8049 {
8050 fallback_child = Some(candidate);
8051 break;
8052 }
8053 }
8054 if !fallback_cursor.goto_next_sibling() {
8055 break;
8056 }
8057 }
8058 }
8059 if fallback_child.is_none() {
8060 let mut cursor2 = node.walk();
8061 if cursor2.goto_first_child() {
8062 loop {
8063 if cursor2.node().is_named() && !cursor2.node().is_extra() {
8064 let candidate = cursor2.node();
8065 #[allow(clippy::needless_question_mark)]
8066 if (|| -> ::core::result::Result<
8067 _,
8068 ::treesitter_types::ParseError,
8069 > {
8070 let child = candidate;
8071 Ok(
8072 <RightSectionChildren as ::treesitter_types::FromNode>::from_node(
8073 child,
8074 src,
8075 )?,
8076 )
8077 })()
8078 .is_ok()
8079 {
8080 fallback_child = Some(candidate);
8081 break;
8082 }
8083 }
8084 if !cursor2.goto_next_sibling() {
8085 break;
8086 }
8087 }
8088 }
8089 }
8090 fallback_child.ok_or_else(|| {
8091 ::treesitter_types::ParseError::missing_field("children", node)
8092 })?
8093 };
8094 <RightSectionChildren as ::treesitter_types::FromNode>::from_node(child, src)?
8095 },
8096 })
8097 }
8098}
8099impl ::treesitter_types::Spanned for RightSection<'_> {
8100 fn span(&self) -> ::treesitter_types::Span {
8101 self.span
8102 }
8103}
8104#[derive(Debug, Clone)]
8105pub struct RoleAnnotation<'tree> {
8106 pub span: ::treesitter_types::Span,
8107 pub role: ::std::vec::Vec<TypeRole<'tree>>,
8108 pub r#type: RoleAnnotationType<'tree>,
8109}
8110impl<'tree> ::treesitter_types::FromNode<'tree> for RoleAnnotation<'tree> {
8111 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8112 fn from_node(
8113 node: ::tree_sitter::Node<'tree>,
8114 src: &'tree [u8],
8115 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8116 debug_assert_eq!(node.kind(), "role_annotation");
8117 Ok(Self {
8118 span: ::treesitter_types::Span::from(node),
8119 role: {
8120 let mut cursor = node.walk();
8121 let mut items = ::std::vec::Vec::new();
8122 for child in node.children_by_field_name("role", &mut cursor) {
8123 items.push(<TypeRole as ::treesitter_types::FromNode>::from_node(
8124 child, src,
8125 )?);
8126 }
8127 items
8128 },
8129 r#type: {
8130 let child = node
8131 .child_by_field_name("type")
8132 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("type", node))?;
8133 <RoleAnnotationType as ::treesitter_types::FromNode>::from_node(child, src)?
8134 },
8135 })
8136 }
8137}
8138impl ::treesitter_types::Spanned for RoleAnnotation<'_> {
8139 fn span(&self) -> ::treesitter_types::Span {
8140 self.span
8141 }
8142}
8143#[derive(Debug, Clone)]
8144pub struct Signature<'tree> {
8145 pub span: ::treesitter_types::Span,
8146 pub constraint: ::core::option::Option<Constraints<'tree>>,
8147 pub expression: ::core::option::Option<Expression<'tree>>,
8148 pub kind: ::core::option::Option<QuantifiedType<'tree>>,
8149 pub name: ::core::option::Option<SignatureName<'tree>>,
8150 pub names: ::core::option::Option<BindingList<'tree>>,
8151 pub pattern: ::core::option::Option<Pattern<'tree>>,
8152 pub synonym: ::core::option::Option<SignatureSynonym<'tree>>,
8153 pub r#type: ::core::option::Option<QuantifiedType<'tree>>,
8154}
8155impl<'tree> ::treesitter_types::FromNode<'tree> for Signature<'tree> {
8156 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8157 fn from_node(
8158 node: ::tree_sitter::Node<'tree>,
8159 src: &'tree [u8],
8160 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8161 debug_assert_eq!(node.kind(), "signature");
8162 Ok(Self {
8163 span: ::treesitter_types::Span::from(node),
8164 constraint: match node.child_by_field_name("constraint") {
8165 Some(child) => Some(<Constraints as ::treesitter_types::FromNode>::from_node(
8166 child, src,
8167 )?),
8168 None => None,
8169 },
8170 expression: match node.child_by_field_name("expression") {
8171 Some(child) => Some(<Expression as ::treesitter_types::FromNode>::from_node(
8172 child, src,
8173 )?),
8174 None => None,
8175 },
8176 kind: match node.child_by_field_name("kind") {
8177 Some(child) => Some(<QuantifiedType as ::treesitter_types::FromNode>::from_node(
8178 child, src,
8179 )?),
8180 None => None,
8181 },
8182 name: match node.child_by_field_name("name") {
8183 Some(child) => Some(<SignatureName as ::treesitter_types::FromNode>::from_node(
8184 child, src,
8185 )?),
8186 None => None,
8187 },
8188 names: match node.child_by_field_name("names") {
8189 Some(child) => Some(<BindingList as ::treesitter_types::FromNode>::from_node(
8190 child, src,
8191 )?),
8192 None => None,
8193 },
8194 pattern: match node.child_by_field_name("pattern") {
8195 Some(child) => Some(<Pattern as ::treesitter_types::FromNode>::from_node(
8196 child, src,
8197 )?),
8198 None => None,
8199 },
8200 synonym: match node.child_by_field_name("synonym") {
8201 Some(child) => {
8202 Some(<SignatureSynonym as ::treesitter_types::FromNode>::from_node(child, src)?)
8203 }
8204 None => None,
8205 },
8206 r#type: match node.child_by_field_name("type") {
8207 Some(child) => Some(<QuantifiedType as ::treesitter_types::FromNode>::from_node(
8208 child, src,
8209 )?),
8210 None => None,
8211 },
8212 })
8213 }
8214}
8215impl ::treesitter_types::Spanned for Signature<'_> {
8216 fn span(&self) -> ::treesitter_types::Span {
8217 self.span
8218 }
8219}
8220#[derive(Debug, Clone)]
8221pub struct Special<'tree> {
8222 pub span: ::treesitter_types::Span,
8223 pub children: SpecialChildren<'tree>,
8224}
8225impl<'tree> ::treesitter_types::FromNode<'tree> for Special<'tree> {
8226 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8227 fn from_node(
8228 node: ::tree_sitter::Node<'tree>,
8229 src: &'tree [u8],
8230 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8231 debug_assert_eq!(node.kind(), "special");
8232 Ok(Self {
8233 span: ::treesitter_types::Span::from(node),
8234 children: {
8235 #[allow(clippy::suspicious_else_formatting)]
8236 let non_field_children = {
8237 let mut cursor = node.walk();
8238 let mut result = ::std::vec::Vec::new();
8239 if cursor.goto_first_child() {
8240 loop {
8241 if cursor.field_name().is_none()
8242 && cursor.node().is_named()
8243 && !cursor.node().is_extra()
8244 {
8245 result.push(cursor.node());
8246 }
8247 if !cursor.goto_next_sibling() {
8248 break;
8249 }
8250 }
8251 }
8252 result
8253 };
8254 let child = if let Some(&c) = non_field_children.first() {
8255 c
8256 } else {
8257 let mut fallback_cursor = node.walk();
8258 let mut fallback_child = None;
8259 if fallback_cursor.goto_first_child() {
8260 loop {
8261 if fallback_cursor.field_name().is_none()
8262 && !fallback_cursor.node().is_extra()
8263 {
8264 let candidate = fallback_cursor.node();
8265 #[allow(clippy::needless_question_mark)]
8266 if (|| -> ::core::result::Result<
8267 _,
8268 ::treesitter_types::ParseError,
8269 > {
8270 let child = candidate;
8271 Ok(
8272 <SpecialChildren as ::treesitter_types::FromNode>::from_node(
8273 child,
8274 src,
8275 )?,
8276 )
8277 })()
8278 .is_ok()
8279 {
8280 fallback_child = Some(candidate);
8281 break;
8282 }
8283 }
8284 if !fallback_cursor.goto_next_sibling() {
8285 break;
8286 }
8287 }
8288 }
8289 if fallback_child.is_none() {
8290 let mut cursor2 = node.walk();
8291 if cursor2.goto_first_child() {
8292 loop {
8293 if cursor2.node().is_named() && !cursor2.node().is_extra() {
8294 let candidate = cursor2.node();
8295 #[allow(clippy::needless_question_mark)]
8296 if (|| -> ::core::result::Result<
8297 _,
8298 ::treesitter_types::ParseError,
8299 > {
8300 let child = candidate;
8301 Ok(
8302 <SpecialChildren as ::treesitter_types::FromNode>::from_node(
8303 child,
8304 src,
8305 )?,
8306 )
8307 })()
8308 .is_ok()
8309 {
8310 fallback_child = Some(candidate);
8311 break;
8312 }
8313 }
8314 if !cursor2.goto_next_sibling() {
8315 break;
8316 }
8317 }
8318 }
8319 }
8320 fallback_child.ok_or_else(|| {
8321 ::treesitter_types::ParseError::missing_field("children", node)
8322 })?
8323 };
8324 <SpecialChildren as ::treesitter_types::FromNode>::from_node(child, src)?
8325 },
8326 })
8327 }
8328}
8329impl ::treesitter_types::Spanned for Special<'_> {
8330 fn span(&self) -> ::treesitter_types::Span {
8331 self.span
8332 }
8333}
8334#[derive(Debug, Clone)]
8335pub struct Splice<'tree> {
8336 pub span: ::treesitter_types::Span,
8337 pub expression: SpliceExpression<'tree>,
8338}
8339impl<'tree> ::treesitter_types::FromNode<'tree> for Splice<'tree> {
8340 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8341 fn from_node(
8342 node: ::tree_sitter::Node<'tree>,
8343 src: &'tree [u8],
8344 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8345 debug_assert_eq!(node.kind(), "splice");
8346 Ok(Self {
8347 span: ::treesitter_types::Span::from(node),
8348 expression: {
8349 let child = node.child_by_field_name("expression").ok_or_else(|| {
8350 ::treesitter_types::ParseError::missing_field("expression", node)
8351 })?;
8352 <SpliceExpression as ::treesitter_types::FromNode>::from_node(child, src)?
8353 },
8354 })
8355 }
8356}
8357impl ::treesitter_types::Spanned for Splice<'_> {
8358 fn span(&self) -> ::treesitter_types::Span {
8359 self.span
8360 }
8361}
8362#[derive(Debug, Clone)]
8363pub struct Star<'tree> {
8364 pub span: ::treesitter_types::Span,
8365 text: &'tree str,
8366}
8367impl<'tree> ::treesitter_types::FromNode<'tree> for Star<'tree> {
8368 fn from_node(
8369 node: ::tree_sitter::Node<'tree>,
8370 src: &'tree [u8],
8371 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8372 debug_assert_eq!(node.kind(), "star");
8373 Ok(Self {
8374 span: ::treesitter_types::Span::from(node),
8375 text: node.utf8_text(src)?,
8376 })
8377 }
8378}
8379impl<'tree> ::treesitter_types::LeafNode<'tree> for Star<'tree> {
8380 fn text(&self) -> &'tree str {
8381 self.text
8382 }
8383}
8384impl ::treesitter_types::Spanned for Star<'_> {
8385 fn span(&self) -> ::treesitter_types::Span {
8386 self.span
8387 }
8388}
8389#[derive(Debug, Clone)]
8390pub struct Strict<'tree> {
8391 pub span: ::treesitter_types::Span,
8392 pub pattern: Pattern<'tree>,
8393}
8394impl<'tree> ::treesitter_types::FromNode<'tree> for Strict<'tree> {
8395 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8396 fn from_node(
8397 node: ::tree_sitter::Node<'tree>,
8398 src: &'tree [u8],
8399 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8400 debug_assert_eq!(node.kind(), "strict");
8401 Ok(Self {
8402 span: ::treesitter_types::Span::from(node),
8403 pattern: {
8404 let child = node.child_by_field_name("pattern").ok_or_else(|| {
8405 ::treesitter_types::ParseError::missing_field("pattern", node)
8406 })?;
8407 <Pattern as ::treesitter_types::FromNode>::from_node(child, src)?
8408 },
8409 })
8410 }
8411}
8412impl ::treesitter_types::Spanned for Strict<'_> {
8413 fn span(&self) -> ::treesitter_types::Span {
8414 self.span
8415 }
8416}
8417#[derive(Debug, Clone)]
8418pub struct StrictField<'tree> {
8419 pub span: ::treesitter_types::Span,
8420 pub r#type: Type<'tree>,
8421}
8422impl<'tree> ::treesitter_types::FromNode<'tree> for StrictField<'tree> {
8423 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8424 fn from_node(
8425 node: ::tree_sitter::Node<'tree>,
8426 src: &'tree [u8],
8427 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8428 debug_assert_eq!(node.kind(), "strict_field");
8429 Ok(Self {
8430 span: ::treesitter_types::Span::from(node),
8431 r#type: {
8432 let child = node
8433 .child_by_field_name("type")
8434 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("type", node))?;
8435 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
8436 },
8437 })
8438 }
8439}
8440impl ::treesitter_types::Spanned for StrictField<'_> {
8441 fn span(&self) -> ::treesitter_types::Span {
8442 self.span
8443 }
8444}
8445#[derive(Debug, Clone)]
8446pub struct ThQuotedName<'tree> {
8447 pub span: ::treesitter_types::Span,
8448 pub name: ::core::option::Option<ThQuotedNameName<'tree>>,
8449 pub r#type: ::core::option::Option<Type<'tree>>,
8450}
8451impl<'tree> ::treesitter_types::FromNode<'tree> for ThQuotedName<'tree> {
8452 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8453 fn from_node(
8454 node: ::tree_sitter::Node<'tree>,
8455 src: &'tree [u8],
8456 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8457 debug_assert_eq!(node.kind(), "th_quoted_name");
8458 Ok(Self {
8459 span: ::treesitter_types::Span::from(node),
8460 name: match node.child_by_field_name("name") {
8461 Some(child) => {
8462 Some(<ThQuotedNameName as ::treesitter_types::FromNode>::from_node(child, src)?)
8463 }
8464 None => None,
8465 },
8466 r#type: match node.child_by_field_name("type") {
8467 Some(child) => Some(<Type as ::treesitter_types::FromNode>::from_node(
8468 child, src,
8469 )?),
8470 None => None,
8471 },
8472 })
8473 }
8474}
8475impl ::treesitter_types::Spanned for ThQuotedName<'_> {
8476 fn span(&self) -> ::treesitter_types::Span {
8477 self.span
8478 }
8479}
8480#[derive(Debug, Clone)]
8481pub struct TopSplice<'tree> {
8482 pub span: ::treesitter_types::Span,
8483 pub children: Expression<'tree>,
8484}
8485impl<'tree> ::treesitter_types::FromNode<'tree> for TopSplice<'tree> {
8486 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8487 fn from_node(
8488 node: ::tree_sitter::Node<'tree>,
8489 src: &'tree [u8],
8490 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8491 debug_assert_eq!(node.kind(), "top_splice");
8492 Ok(Self {
8493 span: ::treesitter_types::Span::from(node),
8494 children: {
8495 #[allow(clippy::suspicious_else_formatting)]
8496 let non_field_children = {
8497 let mut cursor = node.walk();
8498 let mut result = ::std::vec::Vec::new();
8499 if cursor.goto_first_child() {
8500 loop {
8501 if cursor.field_name().is_none()
8502 && cursor.node().is_named()
8503 && !cursor.node().is_extra()
8504 {
8505 result.push(cursor.node());
8506 }
8507 if !cursor.goto_next_sibling() {
8508 break;
8509 }
8510 }
8511 }
8512 result
8513 };
8514 let child = if let Some(&c) = non_field_children.first() {
8515 c
8516 } else {
8517 let mut fallback_cursor = node.walk();
8518 let mut fallback_child = None;
8519 if fallback_cursor.goto_first_child() {
8520 loop {
8521 if fallback_cursor.field_name().is_none()
8522 && !fallback_cursor.node().is_extra()
8523 {
8524 let candidate = fallback_cursor.node();
8525 #[allow(clippy::needless_question_mark)]
8526 if (|| -> ::core::result::Result<
8527 _,
8528 ::treesitter_types::ParseError,
8529 > {
8530 let child = candidate;
8531 Ok(
8532 <Expression as ::treesitter_types::FromNode>::from_node(
8533 child,
8534 src,
8535 )?,
8536 )
8537 })()
8538 .is_ok()
8539 {
8540 fallback_child = Some(candidate);
8541 break;
8542 }
8543 }
8544 if !fallback_cursor.goto_next_sibling() {
8545 break;
8546 }
8547 }
8548 }
8549 if fallback_child.is_none() {
8550 let mut cursor2 = node.walk();
8551 if cursor2.goto_first_child() {
8552 loop {
8553 if cursor2.node().is_named() && !cursor2.node().is_extra() {
8554 let candidate = cursor2.node();
8555 #[allow(clippy::needless_question_mark)]
8556 if (|| -> ::core::result::Result<
8557 _,
8558 ::treesitter_types::ParseError,
8559 > {
8560 let child = candidate;
8561 Ok(
8562 <Expression as ::treesitter_types::FromNode>::from_node(
8563 child,
8564 src,
8565 )?,
8566 )
8567 })()
8568 .is_ok()
8569 {
8570 fallback_child = Some(candidate);
8571 break;
8572 }
8573 }
8574 if !cursor2.goto_next_sibling() {
8575 break;
8576 }
8577 }
8578 }
8579 }
8580 fallback_child.ok_or_else(|| {
8581 ::treesitter_types::ParseError::missing_field("children", node)
8582 })?
8583 };
8584 <Expression as ::treesitter_types::FromNode>::from_node(child, src)?
8585 },
8586 })
8587 }
8588}
8589impl ::treesitter_types::Spanned for TopSplice<'_> {
8590 fn span(&self) -> ::treesitter_types::Span {
8591 self.span
8592 }
8593}
8594#[derive(Debug, Clone)]
8595pub struct Transform<'tree> {
8596 pub span: ::treesitter_types::Span,
8597 pub key: ::core::option::Option<TransformKey<'tree>>,
8598 pub transformation: TransformTransformation<'tree>,
8599}
8600impl<'tree> ::treesitter_types::FromNode<'tree> for Transform<'tree> {
8601 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8602 fn from_node(
8603 node: ::tree_sitter::Node<'tree>,
8604 src: &'tree [u8],
8605 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8606 debug_assert_eq!(node.kind(), "transform");
8607 Ok(Self {
8608 span: ::treesitter_types::Span::from(node),
8609 key: match node.child_by_field_name("key") {
8610 Some(child) => Some(<TransformKey as ::treesitter_types::FromNode>::from_node(
8611 child, src,
8612 )?),
8613 None => None,
8614 },
8615 transformation: {
8616 let child = node.child_by_field_name("transformation").ok_or_else(|| {
8617 ::treesitter_types::ParseError::missing_field("transformation", node)
8618 })?;
8619 <TransformTransformation as ::treesitter_types::FromNode>::from_node(child, src)?
8620 },
8621 })
8622 }
8623}
8624impl ::treesitter_types::Spanned for Transform<'_> {
8625 fn span(&self) -> ::treesitter_types::Span {
8626 self.span
8627 }
8628}
8629#[derive(Debug, Clone)]
8630pub struct Tuple<'tree> {
8631 pub span: ::treesitter_types::Span,
8632 pub element: ::std::vec::Vec<TupleElement<'tree>>,
8633 pub children: ::std::vec::Vec<Constraints<'tree>>,
8634}
8635impl<'tree> ::treesitter_types::FromNode<'tree> for Tuple<'tree> {
8636 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8637 fn from_node(
8638 node: ::tree_sitter::Node<'tree>,
8639 src: &'tree [u8],
8640 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8641 debug_assert_eq!(node.kind(), "tuple");
8642 Ok(Self {
8643 span: ::treesitter_types::Span::from(node),
8644 element: {
8645 let mut cursor = node.walk();
8646 let mut items = ::std::vec::Vec::new();
8647 for child in node.children_by_field_name("element", &mut cursor) {
8648 items.push(<TupleElement as ::treesitter_types::FromNode>::from_node(
8649 child, src,
8650 )?);
8651 }
8652 items
8653 },
8654 children: {
8655 #[allow(clippy::suspicious_else_formatting)]
8656 let non_field_children = {
8657 let mut cursor = node.walk();
8658 let mut result = ::std::vec::Vec::new();
8659 if cursor.goto_first_child() {
8660 loop {
8661 if cursor.field_name().is_none()
8662 && cursor.node().is_named()
8663 && !cursor.node().is_extra()
8664 {
8665 result.push(cursor.node());
8666 }
8667 if !cursor.goto_next_sibling() {
8668 break;
8669 }
8670 }
8671 }
8672 result
8673 };
8674 let mut items = ::std::vec::Vec::new();
8675 for child in non_field_children {
8676 items.push(<Constraints as ::treesitter_types::FromNode>::from_node(
8677 child, src,
8678 )?);
8679 }
8680 items
8681 },
8682 })
8683 }
8684}
8685impl ::treesitter_types::Spanned for Tuple<'_> {
8686 fn span(&self) -> ::treesitter_types::Span {
8687 self.span
8688 }
8689}
8690#[derive(Debug, Clone)]
8691pub struct TypeApplication<'tree> {
8692 pub span: ::treesitter_types::Span,
8693 pub r#type: Type<'tree>,
8694}
8695impl<'tree> ::treesitter_types::FromNode<'tree> for TypeApplication<'tree> {
8696 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8697 fn from_node(
8698 node: ::tree_sitter::Node<'tree>,
8699 src: &'tree [u8],
8700 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8701 debug_assert_eq!(node.kind(), "type_application");
8702 Ok(Self {
8703 span: ::treesitter_types::Span::from(node),
8704 r#type: {
8705 let child = node
8706 .child_by_field_name("type")
8707 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("type", node))?;
8708 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
8709 },
8710 })
8711 }
8712}
8713impl ::treesitter_types::Spanned for TypeApplication<'_> {
8714 fn span(&self) -> ::treesitter_types::Span {
8715 self.span
8716 }
8717}
8718#[derive(Debug, Clone)]
8719pub struct TypeBinder<'tree> {
8720 pub span: ::treesitter_types::Span,
8721 pub r#type: Type<'tree>,
8722}
8723impl<'tree> ::treesitter_types::FromNode<'tree> for TypeBinder<'tree> {
8724 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8725 fn from_node(
8726 node: ::tree_sitter::Node<'tree>,
8727 src: &'tree [u8],
8728 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8729 debug_assert_eq!(node.kind(), "type_binder");
8730 Ok(Self {
8731 span: ::treesitter_types::Span::from(node),
8732 r#type: {
8733 let child = node
8734 .child_by_field_name("type")
8735 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("type", node))?;
8736 <Type as ::treesitter_types::FromNode>::from_node(child, src)?
8737 },
8738 })
8739 }
8740}
8741impl ::treesitter_types::Spanned for TypeBinder<'_> {
8742 fn span(&self) -> ::treesitter_types::Span {
8743 self.span
8744 }
8745}
8746#[derive(Debug, Clone)]
8747pub struct TypeFamily<'tree> {
8748 pub span: ::treesitter_types::Span,
8749 pub closed_family: ::core::option::Option<TypeFamilyClosedFamily<'tree>>,
8750 pub kind: ::core::option::Option<QuantifiedType<'tree>>,
8751 pub name: ::core::option::Option<TypeFamilyName<'tree>>,
8752 pub patterns: ::core::option::Option<TypeParams<'tree>>,
8753 pub children: ::std::vec::Vec<TypeFamilyChildren<'tree>>,
8754}
8755impl<'tree> ::treesitter_types::FromNode<'tree> for TypeFamily<'tree> {
8756 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8757 fn from_node(
8758 node: ::tree_sitter::Node<'tree>,
8759 src: &'tree [u8],
8760 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8761 debug_assert_eq!(node.kind(), "type_family");
8762 Ok(Self {
8763 span: ::treesitter_types::Span::from(node),
8764 closed_family: match node.child_by_field_name("closed_family") {
8765 Some(child) => Some(
8766 <TypeFamilyClosedFamily as ::treesitter_types::FromNode>::from_node(
8767 child, src,
8768 )?,
8769 ),
8770 None => None,
8771 },
8772 kind: match node.child_by_field_name("kind") {
8773 Some(child) => Some(<QuantifiedType as ::treesitter_types::FromNode>::from_node(
8774 child, src,
8775 )?),
8776 None => None,
8777 },
8778 name: match node.child_by_field_name("name") {
8779 Some(child) => Some(<TypeFamilyName as ::treesitter_types::FromNode>::from_node(
8780 child, src,
8781 )?),
8782 None => None,
8783 },
8784 patterns: match node.child_by_field_name("patterns") {
8785 Some(child) => Some(<TypeParams as ::treesitter_types::FromNode>::from_node(
8786 child, src,
8787 )?),
8788 None => None,
8789 },
8790 children: {
8791 #[allow(clippy::suspicious_else_formatting)]
8792 let non_field_children = {
8793 let mut cursor = node.walk();
8794 let mut result = ::std::vec::Vec::new();
8795 if cursor.goto_first_child() {
8796 loop {
8797 if cursor.field_name().is_none()
8798 && cursor.node().is_named()
8799 && !cursor.node().is_extra()
8800 {
8801 result.push(cursor.node());
8802 }
8803 if !cursor.goto_next_sibling() {
8804 break;
8805 }
8806 }
8807 }
8808 result
8809 };
8810 let mut items = ::std::vec::Vec::new();
8811 for child in non_field_children {
8812 items.push(
8813 <TypeFamilyChildren as ::treesitter_types::FromNode>::from_node(
8814 child, src,
8815 )?,
8816 );
8817 }
8818 items
8819 },
8820 })
8821 }
8822}
8823impl ::treesitter_types::Spanned for TypeFamily<'_> {
8824 fn span(&self) -> ::treesitter_types::Span {
8825 self.span
8826 }
8827}
8828#[derive(Debug, Clone)]
8829pub struct TypeFamilyInjectivity<'tree> {
8830 pub span: ::treesitter_types::Span,
8831 pub determined: ::std::vec::Vec<Variable<'tree>>,
8832 pub result: Variable<'tree>,
8833}
8834impl<'tree> ::treesitter_types::FromNode<'tree> for TypeFamilyInjectivity<'tree> {
8835 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8836 fn from_node(
8837 node: ::tree_sitter::Node<'tree>,
8838 src: &'tree [u8],
8839 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8840 debug_assert_eq!(node.kind(), "type_family_injectivity");
8841 Ok(Self {
8842 span: ::treesitter_types::Span::from(node),
8843 determined: {
8844 let mut cursor = node.walk();
8845 let mut items = ::std::vec::Vec::new();
8846 for child in node.children_by_field_name("determined", &mut cursor) {
8847 items.push(<Variable as ::treesitter_types::FromNode>::from_node(
8848 child, src,
8849 )?);
8850 }
8851 items
8852 },
8853 result: {
8854 let child = node
8855 .child_by_field_name("result")
8856 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("result", node))?;
8857 <Variable as ::treesitter_types::FromNode>::from_node(child, src)?
8858 },
8859 })
8860 }
8861}
8862impl ::treesitter_types::Spanned for TypeFamilyInjectivity<'_> {
8863 fn span(&self) -> ::treesitter_types::Span {
8864 self.span
8865 }
8866}
8867#[derive(Debug, Clone)]
8868pub struct TypeFamilyResult<'tree> {
8869 pub span: ::treesitter_types::Span,
8870 pub result: QuantifiedType<'tree>,
8871}
8872impl<'tree> ::treesitter_types::FromNode<'tree> for TypeFamilyResult<'tree> {
8873 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8874 fn from_node(
8875 node: ::tree_sitter::Node<'tree>,
8876 src: &'tree [u8],
8877 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8878 debug_assert_eq!(node.kind(), "type_family_result");
8879 Ok(Self {
8880 span: ::treesitter_types::Span::from(node),
8881 result: {
8882 let child = node
8883 .child_by_field_name("result")
8884 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("result", node))?;
8885 <QuantifiedType as ::treesitter_types::FromNode>::from_node(child, src)?
8886 },
8887 })
8888 }
8889}
8890impl ::treesitter_types::Spanned for TypeFamilyResult<'_> {
8891 fn span(&self) -> ::treesitter_types::Span {
8892 self.span
8893 }
8894}
8895#[derive(Debug, Clone)]
8896pub struct TypeInstance<'tree> {
8897 pub span: ::treesitter_types::Span,
8898 pub forall: ::core::option::Option<TypeInstanceForall<'tree>>,
8899 pub name: ::core::option::Option<TypeInstanceName<'tree>>,
8900 pub patterns: ::core::option::Option<TypePatterns<'tree>>,
8901 pub children: ::std::vec::Vec<TypeInstanceChildren<'tree>>,
8902}
8903impl<'tree> ::treesitter_types::FromNode<'tree> for TypeInstance<'tree> {
8904 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8905 fn from_node(
8906 node: ::tree_sitter::Node<'tree>,
8907 src: &'tree [u8],
8908 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8909 debug_assert_eq!(node.kind(), "type_instance");
8910 Ok(Self {
8911 span: ::treesitter_types::Span::from(node),
8912 forall: match node.child_by_field_name("forall") {
8913 Some(child) => Some(
8914 <TypeInstanceForall as ::treesitter_types::FromNode>::from_node(child, src)?,
8915 ),
8916 None => None,
8917 },
8918 name: match node.child_by_field_name("name") {
8919 Some(child) => {
8920 Some(<TypeInstanceName as ::treesitter_types::FromNode>::from_node(child, src)?)
8921 }
8922 None => None,
8923 },
8924 patterns: match node.child_by_field_name("patterns") {
8925 Some(child) => Some(<TypePatterns as ::treesitter_types::FromNode>::from_node(
8926 child, src,
8927 )?),
8928 None => None,
8929 },
8930 children: {
8931 #[allow(clippy::suspicious_else_formatting)]
8932 let non_field_children = {
8933 let mut cursor = node.walk();
8934 let mut result = ::std::vec::Vec::new();
8935 if cursor.goto_first_child() {
8936 loop {
8937 if cursor.field_name().is_none()
8938 && cursor.node().is_named()
8939 && !cursor.node().is_extra()
8940 {
8941 result.push(cursor.node());
8942 }
8943 if !cursor.goto_next_sibling() {
8944 break;
8945 }
8946 }
8947 }
8948 result
8949 };
8950 let mut items = ::std::vec::Vec::new();
8951 for child in non_field_children {
8952 items.push(
8953 <TypeInstanceChildren as ::treesitter_types::FromNode>::from_node(
8954 child, src,
8955 )?,
8956 );
8957 }
8958 items
8959 },
8960 })
8961 }
8962}
8963impl ::treesitter_types::Spanned for TypeInstance<'_> {
8964 fn span(&self) -> ::treesitter_types::Span {
8965 self.span
8966 }
8967}
8968#[derive(Debug, Clone)]
8969pub struct TypeParams<'tree> {
8970 pub span: ::treesitter_types::Span,
8971 pub children: ::std::vec::Vec<TypeParam<'tree>>,
8972}
8973impl<'tree> ::treesitter_types::FromNode<'tree> for TypeParams<'tree> {
8974 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
8975 fn from_node(
8976 node: ::tree_sitter::Node<'tree>,
8977 src: &'tree [u8],
8978 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
8979 debug_assert_eq!(node.kind(), "type_params");
8980 Ok(Self {
8981 span: ::treesitter_types::Span::from(node),
8982 children: {
8983 #[allow(clippy::suspicious_else_formatting)]
8984 let non_field_children = {
8985 let mut cursor = node.walk();
8986 let mut result = ::std::vec::Vec::new();
8987 if cursor.goto_first_child() {
8988 loop {
8989 if cursor.field_name().is_none()
8990 && cursor.node().is_named()
8991 && !cursor.node().is_extra()
8992 {
8993 result.push(cursor.node());
8994 }
8995 if !cursor.goto_next_sibling() {
8996 break;
8997 }
8998 }
8999 }
9000 result
9001 };
9002 let mut items = ::std::vec::Vec::new();
9003 for child in non_field_children {
9004 items.push(<TypeParam as ::treesitter_types::FromNode>::from_node(
9005 child, src,
9006 )?);
9007 }
9008 items
9009 },
9010 })
9011 }
9012}
9013impl ::treesitter_types::Spanned for TypeParams<'_> {
9014 fn span(&self) -> ::treesitter_types::Span {
9015 self.span
9016 }
9017}
9018#[derive(Debug, Clone)]
9019pub struct TypePatterns<'tree> {
9020 pub span: ::treesitter_types::Span,
9021 pub children: ::std::vec::Vec<TypePatternsChildren<'tree>>,
9022}
9023impl<'tree> ::treesitter_types::FromNode<'tree> for TypePatterns<'tree> {
9024 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9025 fn from_node(
9026 node: ::tree_sitter::Node<'tree>,
9027 src: &'tree [u8],
9028 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9029 debug_assert_eq!(node.kind(), "type_patterns");
9030 Ok(Self {
9031 span: ::treesitter_types::Span::from(node),
9032 children: {
9033 #[allow(clippy::suspicious_else_formatting)]
9034 let non_field_children = {
9035 let mut cursor = node.walk();
9036 let mut result = ::std::vec::Vec::new();
9037 if cursor.goto_first_child() {
9038 loop {
9039 if cursor.field_name().is_none()
9040 && cursor.node().is_named()
9041 && !cursor.node().is_extra()
9042 {
9043 result.push(cursor.node());
9044 }
9045 if !cursor.goto_next_sibling() {
9046 break;
9047 }
9048 }
9049 }
9050 result
9051 };
9052 let mut items = ::std::vec::Vec::new();
9053 for child in non_field_children {
9054 items.push(
9055 <TypePatternsChildren as ::treesitter_types::FromNode>::from_node(
9056 child, src,
9057 )?,
9058 );
9059 }
9060 items
9061 },
9062 })
9063 }
9064}
9065impl ::treesitter_types::Spanned for TypePatterns<'_> {
9066 fn span(&self) -> ::treesitter_types::Span {
9067 self.span
9068 }
9069}
9070#[derive(Debug, Clone)]
9071pub struct TypeRole<'tree> {
9072 pub span: ::treesitter_types::Span,
9073 text: &'tree str,
9074}
9075impl<'tree> ::treesitter_types::FromNode<'tree> for TypeRole<'tree> {
9076 fn from_node(
9077 node: ::tree_sitter::Node<'tree>,
9078 src: &'tree [u8],
9079 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9080 debug_assert_eq!(node.kind(), "type_role");
9081 Ok(Self {
9082 span: ::treesitter_types::Span::from(node),
9083 text: node.utf8_text(src)?,
9084 })
9085 }
9086}
9087impl<'tree> ::treesitter_types::LeafNode<'tree> for TypeRole<'tree> {
9088 fn text(&self) -> &'tree str {
9089 self.text
9090 }
9091}
9092impl ::treesitter_types::Spanned for TypeRole<'_> {
9093 fn span(&self) -> ::treesitter_types::Span {
9094 self.span
9095 }
9096}
9097#[derive(Debug, Clone)]
9098pub struct TypeSynomym<'tree> {
9099 pub span: ::treesitter_types::Span,
9100 pub name: ::core::option::Option<TypeSynomymName<'tree>>,
9101 pub patterns: ::core::option::Option<TypeParams<'tree>>,
9102 pub r#type: TypeSynomymType<'tree>,
9103 pub children: ::core::option::Option<TypeSynomymChildren<'tree>>,
9104}
9105impl<'tree> ::treesitter_types::FromNode<'tree> for TypeSynomym<'tree> {
9106 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9107 fn from_node(
9108 node: ::tree_sitter::Node<'tree>,
9109 src: &'tree [u8],
9110 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9111 debug_assert_eq!(node.kind(), "type_synomym");
9112 Ok(Self {
9113 span: ::treesitter_types::Span::from(node),
9114 name: match node.child_by_field_name("name") {
9115 Some(child) => {
9116 Some(<TypeSynomymName as ::treesitter_types::FromNode>::from_node(child, src)?)
9117 }
9118 None => None,
9119 },
9120 patterns: match node.child_by_field_name("patterns") {
9121 Some(child) => Some(<TypeParams as ::treesitter_types::FromNode>::from_node(
9122 child, src,
9123 )?),
9124 None => None,
9125 },
9126 r#type: {
9127 let child = node
9128 .child_by_field_name("type")
9129 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("type", node))?;
9130 <TypeSynomymType as ::treesitter_types::FromNode>::from_node(child, src)?
9131 },
9132 children: {
9133 #[allow(clippy::suspicious_else_formatting)]
9134 let non_field_children = {
9135 let mut cursor = node.walk();
9136 let mut result = ::std::vec::Vec::new();
9137 if cursor.goto_first_child() {
9138 loop {
9139 if cursor.field_name().is_none()
9140 && cursor.node().is_named()
9141 && !cursor.node().is_extra()
9142 {
9143 result.push(cursor.node());
9144 }
9145 if !cursor.goto_next_sibling() {
9146 break;
9147 }
9148 }
9149 }
9150 result
9151 };
9152 match non_field_children.first() {
9153 Some(&child) => Some(
9154 <TypeSynomymChildren as ::treesitter_types::FromNode>::from_node(
9155 child, src,
9156 )?,
9157 ),
9158 None => None,
9159 }
9160 },
9161 })
9162 }
9163}
9164impl ::treesitter_types::Spanned for TypeSynomym<'_> {
9165 fn span(&self) -> ::treesitter_types::Span {
9166 self.span
9167 }
9168}
9169#[derive(Debug, Clone)]
9170pub struct TypedQuote<'tree> {
9171 pub span: ::treesitter_types::Span,
9172 pub children: ::core::option::Option<QuotedExpression<'tree>>,
9173}
9174impl<'tree> ::treesitter_types::FromNode<'tree> for TypedQuote<'tree> {
9175 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9176 fn from_node(
9177 node: ::tree_sitter::Node<'tree>,
9178 src: &'tree [u8],
9179 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9180 debug_assert_eq!(node.kind(), "typed_quote");
9181 Ok(Self {
9182 span: ::treesitter_types::Span::from(node),
9183 children: {
9184 #[allow(clippy::suspicious_else_formatting)]
9185 let non_field_children = {
9186 let mut cursor = node.walk();
9187 let mut result = ::std::vec::Vec::new();
9188 if cursor.goto_first_child() {
9189 loop {
9190 if cursor.field_name().is_none()
9191 && cursor.node().is_named()
9192 && !cursor.node().is_extra()
9193 {
9194 result.push(cursor.node());
9195 }
9196 if !cursor.goto_next_sibling() {
9197 break;
9198 }
9199 }
9200 }
9201 result
9202 };
9203 match non_field_children.first() {
9204 Some(&child) => Some(
9205 <QuotedExpression as ::treesitter_types::FromNode>::from_node(child, src)?,
9206 ),
9207 None => None,
9208 }
9209 },
9210 })
9211 }
9212}
9213impl ::treesitter_types::Spanned for TypedQuote<'_> {
9214 fn span(&self) -> ::treesitter_types::Span {
9215 self.span
9216 }
9217}
9218#[derive(Debug, Clone)]
9219pub struct UnboxedSum<'tree> {
9220 pub span: ::treesitter_types::Span,
9221 pub element: ::std::vec::Vec<UnboxedSumElement<'tree>>,
9222}
9223impl<'tree> ::treesitter_types::FromNode<'tree> for UnboxedSum<'tree> {
9224 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9225 fn from_node(
9226 node: ::tree_sitter::Node<'tree>,
9227 src: &'tree [u8],
9228 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9229 debug_assert_eq!(node.kind(), "unboxed_sum");
9230 Ok(Self {
9231 span: ::treesitter_types::Span::from(node),
9232 element: {
9233 let mut cursor = node.walk();
9234 let mut items = ::std::vec::Vec::new();
9235 for child in node.children_by_field_name("element", &mut cursor) {
9236 items.push(
9237 <UnboxedSumElement as ::treesitter_types::FromNode>::from_node(child, src)?,
9238 );
9239 }
9240 items
9241 },
9242 })
9243 }
9244}
9245impl ::treesitter_types::Spanned for UnboxedSum<'_> {
9246 fn span(&self) -> ::treesitter_types::Span {
9247 self.span
9248 }
9249}
9250#[derive(Debug, Clone)]
9251pub struct UnboxedTuple<'tree> {
9252 pub span: ::treesitter_types::Span,
9253 pub element: ::std::vec::Vec<UnboxedTupleElement<'tree>>,
9254}
9255impl<'tree> ::treesitter_types::FromNode<'tree> for UnboxedTuple<'tree> {
9256 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9257 fn from_node(
9258 node: ::tree_sitter::Node<'tree>,
9259 src: &'tree [u8],
9260 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9261 debug_assert_eq!(node.kind(), "unboxed_tuple");
9262 Ok(Self {
9263 span: ::treesitter_types::Span::from(node),
9264 element: {
9265 let mut cursor = node.walk();
9266 let mut items = ::std::vec::Vec::new();
9267 for child in node.children_by_field_name("element", &mut cursor) {
9268 items.push(
9269 <UnboxedTupleElement as ::treesitter_types::FromNode>::from_node(
9270 child, src,
9271 )?,
9272 );
9273 }
9274 items
9275 },
9276 })
9277 }
9278}
9279impl ::treesitter_types::Spanned for UnboxedTuple<'_> {
9280 fn span(&self) -> ::treesitter_types::Span {
9281 self.span
9282 }
9283}
9284#[derive(Debug, Clone)]
9285pub struct UnboxedUnit<'tree> {
9286 pub span: ::treesitter_types::Span,
9287 text: &'tree str,
9288}
9289impl<'tree> ::treesitter_types::FromNode<'tree> for UnboxedUnit<'tree> {
9290 fn from_node(
9291 node: ::tree_sitter::Node<'tree>,
9292 src: &'tree [u8],
9293 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9294 debug_assert_eq!(node.kind(), "unboxed_unit");
9295 Ok(Self {
9296 span: ::treesitter_types::Span::from(node),
9297 text: node.utf8_text(src)?,
9298 })
9299 }
9300}
9301impl<'tree> ::treesitter_types::LeafNode<'tree> for UnboxedUnit<'tree> {
9302 fn text(&self) -> &'tree str {
9303 self.text
9304 }
9305}
9306impl ::treesitter_types::Spanned for UnboxedUnit<'_> {
9307 fn span(&self) -> ::treesitter_types::Span {
9308 self.span
9309 }
9310}
9311#[derive(Debug, Clone)]
9312pub struct Unit<'tree> {
9313 pub span: ::treesitter_types::Span,
9314 text: &'tree str,
9315}
9316impl<'tree> ::treesitter_types::FromNode<'tree> for Unit<'tree> {
9317 fn from_node(
9318 node: ::tree_sitter::Node<'tree>,
9319 src: &'tree [u8],
9320 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9321 debug_assert_eq!(node.kind(), "unit");
9322 Ok(Self {
9323 span: ::treesitter_types::Span::from(node),
9324 text: node.utf8_text(src)?,
9325 })
9326 }
9327}
9328impl<'tree> ::treesitter_types::LeafNode<'tree> for Unit<'tree> {
9329 fn text(&self) -> &'tree str {
9330 self.text
9331 }
9332}
9333impl ::treesitter_types::Spanned for Unit<'_> {
9334 fn span(&self) -> ::treesitter_types::Span {
9335 self.span
9336 }
9337}
9338#[derive(Debug, Clone)]
9339pub struct Via<'tree> {
9340 pub span: ::treesitter_types::Span,
9341 pub r#type: QuantifiedType<'tree>,
9342}
9343impl<'tree> ::treesitter_types::FromNode<'tree> for Via<'tree> {
9344 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9345 fn from_node(
9346 node: ::tree_sitter::Node<'tree>,
9347 src: &'tree [u8],
9348 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9349 debug_assert_eq!(node.kind(), "via");
9350 Ok(Self {
9351 span: ::treesitter_types::Span::from(node),
9352 r#type: {
9353 let child = node
9354 .child_by_field_name("type")
9355 .ok_or_else(|| ::treesitter_types::ParseError::missing_field("type", node))?;
9356 <QuantifiedType as ::treesitter_types::FromNode>::from_node(child, src)?
9357 },
9358 })
9359 }
9360}
9361impl ::treesitter_types::Spanned for Via<'_> {
9362 fn span(&self) -> ::treesitter_types::Span {
9363 self.span
9364 }
9365}
9366#[derive(Debug, Clone)]
9367pub struct ViewPattern<'tree> {
9368 pub span: ::treesitter_types::Span,
9369 pub expression: ViewPatternExpression<'tree>,
9370 pub pattern: ViewPatternPattern<'tree>,
9371}
9372impl<'tree> ::treesitter_types::FromNode<'tree> for ViewPattern<'tree> {
9373 #[allow(clippy::match_single_binding, clippy::suspicious_else_formatting)]
9374 fn from_node(
9375 node: ::tree_sitter::Node<'tree>,
9376 src: &'tree [u8],
9377 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9378 debug_assert_eq!(node.kind(), "view_pattern");
9379 Ok(Self {
9380 span: ::treesitter_types::Span::from(node),
9381 expression: {
9382 let child = node.child_by_field_name("expression").ok_or_else(|| {
9383 ::treesitter_types::ParseError::missing_field("expression", node)
9384 })?;
9385 <ViewPatternExpression as ::treesitter_types::FromNode>::from_node(child, src)?
9386 },
9387 pattern: {
9388 let child = node.child_by_field_name("pattern").ok_or_else(|| {
9389 ::treesitter_types::ParseError::missing_field("pattern", node)
9390 })?;
9391 <ViewPatternPattern as ::treesitter_types::FromNode>::from_node(child, src)?
9392 },
9393 })
9394 }
9395}
9396impl ::treesitter_types::Spanned for ViewPattern<'_> {
9397 fn span(&self) -> ::treesitter_types::Span {
9398 self.span
9399 }
9400}
9401#[derive(Debug, Clone)]
9402pub struct Wildcard<'tree> {
9403 pub span: ::treesitter_types::Span,
9404 text: &'tree str,
9405}
9406impl<'tree> ::treesitter_types::FromNode<'tree> for Wildcard<'tree> {
9407 fn from_node(
9408 node: ::tree_sitter::Node<'tree>,
9409 src: &'tree [u8],
9410 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9411 debug_assert_eq!(node.kind(), "wildcard");
9412 Ok(Self {
9413 span: ::treesitter_types::Span::from(node),
9414 text: node.utf8_text(src)?,
9415 })
9416 }
9417}
9418impl<'tree> ::treesitter_types::LeafNode<'tree> for Wildcard<'tree> {
9419 fn text(&self) -> &'tree str {
9420 self.text
9421 }
9422}
9423impl ::treesitter_types::Spanned for Wildcard<'_> {
9424 fn span(&self) -> ::treesitter_types::Span {
9425 self.span
9426 }
9427}
9428#[derive(Debug, Clone)]
9429pub struct AllNames<'tree> {
9430 pub span: ::treesitter_types::Span,
9431 text: &'tree str,
9432}
9433impl<'tree> ::treesitter_types::FromNode<'tree> for AllNames<'tree> {
9434 fn from_node(
9435 node: ::tree_sitter::Node<'tree>,
9436 src: &'tree [u8],
9437 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9438 debug_assert_eq!(node.kind(), "all_names");
9439 Ok(Self {
9440 span: ::treesitter_types::Span::from(node),
9441 text: node.utf8_text(src)?,
9442 })
9443 }
9444}
9445impl<'tree> ::treesitter_types::LeafNode<'tree> for AllNames<'tree> {
9446 fn text(&self) -> &'tree str {
9447 self.text
9448 }
9449}
9450impl ::treesitter_types::Spanned for AllNames<'_> {
9451 fn span(&self) -> ::treesitter_types::Span {
9452 self.span
9453 }
9454}
9455#[derive(Debug, Clone)]
9456pub struct CallingConvention<'tree> {
9457 pub span: ::treesitter_types::Span,
9458 text: &'tree str,
9459}
9460impl<'tree> ::treesitter_types::FromNode<'tree> for CallingConvention<'tree> {
9461 fn from_node(
9462 node: ::tree_sitter::Node<'tree>,
9463 src: &'tree [u8],
9464 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9465 debug_assert_eq!(node.kind(), "calling_convention");
9466 Ok(Self {
9467 span: ::treesitter_types::Span::from(node),
9468 text: node.utf8_text(src)?,
9469 })
9470 }
9471}
9472impl<'tree> ::treesitter_types::LeafNode<'tree> for CallingConvention<'tree> {
9473 fn text(&self) -> &'tree str {
9474 self.text
9475 }
9476}
9477impl ::treesitter_types::Spanned for CallingConvention<'_> {
9478 fn span(&self) -> ::treesitter_types::Span {
9479 self.span
9480 }
9481}
9482#[derive(Debug, Clone)]
9483pub struct Char<'tree> {
9484 pub span: ::treesitter_types::Span,
9485 text: &'tree str,
9486}
9487impl<'tree> ::treesitter_types::FromNode<'tree> for Char<'tree> {
9488 fn from_node(
9489 node: ::tree_sitter::Node<'tree>,
9490 src: &'tree [u8],
9491 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9492 debug_assert_eq!(node.kind(), "char");
9493 Ok(Self {
9494 span: ::treesitter_types::Span::from(node),
9495 text: node.utf8_text(src)?,
9496 })
9497 }
9498}
9499impl<'tree> ::treesitter_types::LeafNode<'tree> for Char<'tree> {
9500 fn text(&self) -> &'tree str {
9501 self.text
9502 }
9503}
9504impl ::treesitter_types::Spanned for Char<'_> {
9505 fn span(&self) -> ::treesitter_types::Span {
9506 self.span
9507 }
9508}
9509#[derive(Debug, Clone)]
9510pub struct Comment<'tree> {
9511 pub span: ::treesitter_types::Span,
9512 text: &'tree str,
9513}
9514impl<'tree> ::treesitter_types::FromNode<'tree> for Comment<'tree> {
9515 fn from_node(
9516 node: ::tree_sitter::Node<'tree>,
9517 src: &'tree [u8],
9518 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9519 debug_assert_eq!(node.kind(), "comment");
9520 Ok(Self {
9521 span: ::treesitter_types::Span::from(node),
9522 text: node.utf8_text(src)?,
9523 })
9524 }
9525}
9526impl<'tree> ::treesitter_types::LeafNode<'tree> for Comment<'tree> {
9527 fn text(&self) -> &'tree str {
9528 self.text
9529 }
9530}
9531impl ::treesitter_types::Spanned for Comment<'_> {
9532 fn span(&self) -> ::treesitter_types::Span {
9533 self.span
9534 }
9535}
9536#[derive(Debug, Clone)]
9537pub struct Constructor<'tree> {
9538 pub span: ::treesitter_types::Span,
9539 text: &'tree str,
9540}
9541impl<'tree> ::treesitter_types::FromNode<'tree> for Constructor<'tree> {
9542 fn from_node(
9543 node: ::tree_sitter::Node<'tree>,
9544 src: &'tree [u8],
9545 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9546 debug_assert_eq!(node.kind(), "constructor");
9547 Ok(Self {
9548 span: ::treesitter_types::Span::from(node),
9549 text: node.utf8_text(src)?,
9550 })
9551 }
9552}
9553impl<'tree> ::treesitter_types::LeafNode<'tree> for Constructor<'tree> {
9554 fn text(&self) -> &'tree str {
9555 self.text
9556 }
9557}
9558impl ::treesitter_types::Spanned for Constructor<'_> {
9559 fn span(&self) -> ::treesitter_types::Span {
9560 self.span
9561 }
9562}
9563#[derive(Debug, Clone)]
9564pub struct Cpp<'tree> {
9565 pub span: ::treesitter_types::Span,
9566 text: &'tree str,
9567}
9568impl<'tree> ::treesitter_types::FromNode<'tree> for Cpp<'tree> {
9569 fn from_node(
9570 node: ::tree_sitter::Node<'tree>,
9571 src: &'tree [u8],
9572 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9573 debug_assert_eq!(node.kind(), "cpp");
9574 Ok(Self {
9575 span: ::treesitter_types::Span::from(node),
9576 text: node.utf8_text(src)?,
9577 })
9578 }
9579}
9580impl<'tree> ::treesitter_types::LeafNode<'tree> for Cpp<'tree> {
9581 fn text(&self) -> &'tree str {
9582 self.text
9583 }
9584}
9585impl ::treesitter_types::Spanned for Cpp<'_> {
9586 fn span(&self) -> ::treesitter_types::Span {
9587 self.span
9588 }
9589}
9590#[derive(Debug, Clone)]
9591pub struct Float<'tree> {
9592 pub span: ::treesitter_types::Span,
9593 text: &'tree str,
9594}
9595impl<'tree> ::treesitter_types::FromNode<'tree> for Float<'tree> {
9596 fn from_node(
9597 node: ::tree_sitter::Node<'tree>,
9598 src: &'tree [u8],
9599 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9600 debug_assert_eq!(node.kind(), "float");
9601 Ok(Self {
9602 span: ::treesitter_types::Span::from(node),
9603 text: node.utf8_text(src)?,
9604 })
9605 }
9606}
9607impl<'tree> ::treesitter_types::LeafNode<'tree> for Float<'tree> {
9608 fn text(&self) -> &'tree str {
9609 self.text
9610 }
9611}
9612impl ::treesitter_types::Spanned for Float<'_> {
9613 fn span(&self) -> ::treesitter_types::Span {
9614 self.span
9615 }
9616}
9617#[derive(Debug, Clone)]
9618pub struct Haddock<'tree> {
9619 pub span: ::treesitter_types::Span,
9620 text: &'tree str,
9621}
9622impl<'tree> ::treesitter_types::FromNode<'tree> for Haddock<'tree> {
9623 fn from_node(
9624 node: ::tree_sitter::Node<'tree>,
9625 src: &'tree [u8],
9626 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9627 debug_assert_eq!(node.kind(), "haddock");
9628 Ok(Self {
9629 span: ::treesitter_types::Span::from(node),
9630 text: node.utf8_text(src)?,
9631 })
9632 }
9633}
9634impl<'tree> ::treesitter_types::LeafNode<'tree> for Haddock<'tree> {
9635 fn text(&self) -> &'tree str {
9636 self.text
9637 }
9638}
9639impl ::treesitter_types::Spanned for Haddock<'_> {
9640 fn span(&self) -> ::treesitter_types::Span {
9641 self.span
9642 }
9643}
9644#[derive(Debug, Clone)]
9645pub struct ImplicitVariable<'tree> {
9646 pub span: ::treesitter_types::Span,
9647 text: &'tree str,
9648}
9649impl<'tree> ::treesitter_types::FromNode<'tree> for ImplicitVariable<'tree> {
9650 fn from_node(
9651 node: ::tree_sitter::Node<'tree>,
9652 src: &'tree [u8],
9653 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9654 debug_assert_eq!(node.kind(), "implicit_variable");
9655 Ok(Self {
9656 span: ::treesitter_types::Span::from(node),
9657 text: node.utf8_text(src)?,
9658 })
9659 }
9660}
9661impl<'tree> ::treesitter_types::LeafNode<'tree> for ImplicitVariable<'tree> {
9662 fn text(&self) -> &'tree str {
9663 self.text
9664 }
9665}
9666impl ::treesitter_types::Spanned for ImplicitVariable<'_> {
9667 fn span(&self) -> ::treesitter_types::Span {
9668 self.span
9669 }
9670}
9671#[derive(Debug, Clone)]
9672pub struct ImportPackage<'tree> {
9673 pub span: ::treesitter_types::Span,
9674 text: &'tree str,
9675}
9676impl<'tree> ::treesitter_types::FromNode<'tree> for ImportPackage<'tree> {
9677 fn from_node(
9678 node: ::tree_sitter::Node<'tree>,
9679 src: &'tree [u8],
9680 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9681 debug_assert_eq!(node.kind(), "import_package");
9682 Ok(Self {
9683 span: ::treesitter_types::Span::from(node),
9684 text: node.utf8_text(src)?,
9685 })
9686 }
9687}
9688impl<'tree> ::treesitter_types::LeafNode<'tree> for ImportPackage<'tree> {
9689 fn text(&self) -> &'tree str {
9690 self.text
9691 }
9692}
9693impl ::treesitter_types::Spanned for ImportPackage<'_> {
9694 fn span(&self) -> ::treesitter_types::Span {
9695 self.span
9696 }
9697}
9698#[derive(Debug, Clone)]
9699pub struct Label<'tree> {
9700 pub span: ::treesitter_types::Span,
9701 text: &'tree str,
9702}
9703impl<'tree> ::treesitter_types::FromNode<'tree> for Label<'tree> {
9704 fn from_node(
9705 node: ::tree_sitter::Node<'tree>,
9706 src: &'tree [u8],
9707 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9708 debug_assert_eq!(node.kind(), "label");
9709 Ok(Self {
9710 span: ::treesitter_types::Span::from(node),
9711 text: node.utf8_text(src)?,
9712 })
9713 }
9714}
9715impl<'tree> ::treesitter_types::LeafNode<'tree> for Label<'tree> {
9716 fn text(&self) -> &'tree str {
9717 self.text
9718 }
9719}
9720impl ::treesitter_types::Spanned for Label<'_> {
9721 fn span(&self) -> ::treesitter_types::Span {
9722 self.span
9723 }
9724}
9725#[derive(Debug, Clone)]
9726pub struct ModuleId<'tree> {
9727 pub span: ::treesitter_types::Span,
9728 text: &'tree str,
9729}
9730impl<'tree> ::treesitter_types::FromNode<'tree> for ModuleId<'tree> {
9731 fn from_node(
9732 node: ::tree_sitter::Node<'tree>,
9733 src: &'tree [u8],
9734 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9735 debug_assert_eq!(node.kind(), "module_id");
9736 Ok(Self {
9737 span: ::treesitter_types::Span::from(node),
9738 text: node.utf8_text(src)?,
9739 })
9740 }
9741}
9742impl<'tree> ::treesitter_types::LeafNode<'tree> for ModuleId<'tree> {
9743 fn text(&self) -> &'tree str {
9744 self.text
9745 }
9746}
9747impl ::treesitter_types::Spanned for ModuleId<'_> {
9748 fn span(&self) -> ::treesitter_types::Span {
9749 self.span
9750 }
9751}
9752#[derive(Debug, Clone)]
9753pub struct Name<'tree> {
9754 pub span: ::treesitter_types::Span,
9755 text: &'tree str,
9756}
9757impl<'tree> ::treesitter_types::FromNode<'tree> for Name<'tree> {
9758 fn from_node(
9759 node: ::tree_sitter::Node<'tree>,
9760 src: &'tree [u8],
9761 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9762 debug_assert_eq!(node.kind(), "name");
9763 Ok(Self {
9764 span: ::treesitter_types::Span::from(node),
9765 text: node.utf8_text(src)?,
9766 })
9767 }
9768}
9769impl<'tree> ::treesitter_types::LeafNode<'tree> for Name<'tree> {
9770 fn text(&self) -> &'tree str {
9771 self.text
9772 }
9773}
9774impl ::treesitter_types::Spanned for Name<'_> {
9775 fn span(&self) -> ::treesitter_types::Span {
9776 self.span
9777 }
9778}
9779#[derive(Debug, Clone)]
9780pub struct Pragma<'tree> {
9781 pub span: ::treesitter_types::Span,
9782 text: &'tree str,
9783}
9784impl<'tree> ::treesitter_types::FromNode<'tree> for Pragma<'tree> {
9785 fn from_node(
9786 node: ::tree_sitter::Node<'tree>,
9787 src: &'tree [u8],
9788 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9789 debug_assert_eq!(node.kind(), "pragma");
9790 Ok(Self {
9791 span: ::treesitter_types::Span::from(node),
9792 text: node.utf8_text(src)?,
9793 })
9794 }
9795}
9796impl<'tree> ::treesitter_types::LeafNode<'tree> for Pragma<'tree> {
9797 fn text(&self) -> &'tree str {
9798 self.text
9799 }
9800}
9801impl ::treesitter_types::Spanned for Pragma<'_> {
9802 fn span(&self) -> ::treesitter_types::Span {
9803 self.span
9804 }
9805}
9806#[derive(Debug, Clone)]
9807pub struct QuasiquoteBody<'tree> {
9808 pub span: ::treesitter_types::Span,
9809 text: &'tree str,
9810}
9811impl<'tree> ::treesitter_types::FromNode<'tree> for QuasiquoteBody<'tree> {
9812 fn from_node(
9813 node: ::tree_sitter::Node<'tree>,
9814 src: &'tree [u8],
9815 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9816 debug_assert_eq!(node.kind(), "quasiquote_body");
9817 Ok(Self {
9818 span: ::treesitter_types::Span::from(node),
9819 text: node.utf8_text(src)?,
9820 })
9821 }
9822}
9823impl<'tree> ::treesitter_types::LeafNode<'tree> for QuasiquoteBody<'tree> {
9824 fn text(&self) -> &'tree str {
9825 self.text
9826 }
9827}
9828impl ::treesitter_types::Spanned for QuasiquoteBody<'_> {
9829 fn span(&self) -> ::treesitter_types::Span {
9830 self.span
9831 }
9832}
9833#[derive(Debug, Clone)]
9834pub struct Safety<'tree> {
9835 pub span: ::treesitter_types::Span,
9836 text: &'tree str,
9837}
9838impl<'tree> ::treesitter_types::FromNode<'tree> for Safety<'tree> {
9839 fn from_node(
9840 node: ::tree_sitter::Node<'tree>,
9841 src: &'tree [u8],
9842 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9843 debug_assert_eq!(node.kind(), "safety");
9844 Ok(Self {
9845 span: ::treesitter_types::Span::from(node),
9846 text: node.utf8_text(src)?,
9847 })
9848 }
9849}
9850impl<'tree> ::treesitter_types::LeafNode<'tree> for Safety<'tree> {
9851 fn text(&self) -> &'tree str {
9852 self.text
9853 }
9854}
9855impl ::treesitter_types::Spanned for Safety<'_> {
9856 fn span(&self) -> ::treesitter_types::Span {
9857 self.span
9858 }
9859}
9860#[derive(Debug, Clone)]
9861pub struct String<'tree> {
9862 pub span: ::treesitter_types::Span,
9863 text: &'tree str,
9864}
9865impl<'tree> ::treesitter_types::FromNode<'tree> for String<'tree> {
9866 fn from_node(
9867 node: ::tree_sitter::Node<'tree>,
9868 src: &'tree [u8],
9869 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9870 debug_assert_eq!(node.kind(), "string");
9871 Ok(Self {
9872 span: ::treesitter_types::Span::from(node),
9873 text: node.utf8_text(src)?,
9874 })
9875 }
9876}
9877impl<'tree> ::treesitter_types::LeafNode<'tree> for String<'tree> {
9878 fn text(&self) -> &'tree str {
9879 self.text
9880 }
9881}
9882impl ::treesitter_types::Spanned for String<'_> {
9883 fn span(&self) -> ::treesitter_types::Span {
9884 self.span
9885 }
9886}
9887#[derive(Debug, Clone)]
9888pub struct Variable<'tree> {
9889 pub span: ::treesitter_types::Span,
9890 text: &'tree str,
9891}
9892impl<'tree> ::treesitter_types::FromNode<'tree> for Variable<'tree> {
9893 fn from_node(
9894 node: ::tree_sitter::Node<'tree>,
9895 src: &'tree [u8],
9896 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9897 debug_assert_eq!(node.kind(), "variable");
9898 Ok(Self {
9899 span: ::treesitter_types::Span::from(node),
9900 text: node.utf8_text(src)?,
9901 })
9902 }
9903}
9904impl<'tree> ::treesitter_types::LeafNode<'tree> for Variable<'tree> {
9905 fn text(&self) -> &'tree str {
9906 self.text
9907 }
9908}
9909impl ::treesitter_types::Spanned for Variable<'_> {
9910 fn span(&self) -> ::treesitter_types::Span {
9911 self.span
9912 }
9913}
9914#[derive(Debug, Clone)]
9915pub enum AlternativePattern<'tree> {
9916 Pattern(::std::boxed::Box<Pattern<'tree>>),
9917 Signature(::std::boxed::Box<Signature<'tree>>),
9918}
9919impl<'tree> ::treesitter_types::FromNode<'tree> for AlternativePattern<'tree> {
9920 #[allow(clippy::collapsible_else_if)]
9921 fn from_node(
9922 node: ::tree_sitter::Node<'tree>,
9923 src: &'tree [u8],
9924 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9925 match node.kind() {
9926 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
9927 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
9928 ))),
9929 _other => {
9930 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
9931 Ok(Self::Pattern(::std::boxed::Box::new(v)))
9932 } else {
9933 Err(::treesitter_types::ParseError::unexpected_kind(
9934 _other, node,
9935 ))
9936 }
9937 }
9938 }
9939 }
9940}
9941impl ::treesitter_types::Spanned for AlternativePattern<'_> {
9942 fn span(&self) -> ::treesitter_types::Span {
9943 match self {
9944 Self::Pattern(inner) => inner.span(),
9945 Self::Signature(inner) => inner.span(),
9946 }
9947 }
9948}
9949#[derive(Debug, Clone)]
9950pub enum ApplyArgument<'tree> {
9951 ExplicitType(::std::boxed::Box<ExplicitType<'tree>>),
9952 Expression(::std::boxed::Box<Expression<'tree>>),
9953 KindApplication(::std::boxed::Box<KindApplication<'tree>>),
9954 Pattern(::std::boxed::Box<Pattern<'tree>>),
9955 Type(::std::boxed::Box<Type<'tree>>),
9956 TypeApplication(::std::boxed::Box<TypeApplication<'tree>>),
9957 TypeBinder(::std::boxed::Box<TypeBinder<'tree>>),
9958}
9959impl<'tree> ::treesitter_types::FromNode<'tree> for ApplyArgument<'tree> {
9960 #[allow(clippy::collapsible_else_if)]
9961 fn from_node(
9962 node: ::tree_sitter::Node<'tree>,
9963 src: &'tree [u8],
9964 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
9965 match node.kind() {
9966 "explicit_type" => Ok(Self::ExplicitType(::std::boxed::Box::new(
9967 <ExplicitType as ::treesitter_types::FromNode>::from_node(node, src)?,
9968 ))),
9969 "kind_application" => Ok(Self::KindApplication(::std::boxed::Box::new(
9970 <KindApplication as ::treesitter_types::FromNode>::from_node(node, src)?,
9971 ))),
9972 "type_application" => Ok(Self::TypeApplication(::std::boxed::Box::new(
9973 <TypeApplication as ::treesitter_types::FromNode>::from_node(node, src)?,
9974 ))),
9975 "type_binder" => Ok(Self::TypeBinder(::std::boxed::Box::new(
9976 <TypeBinder as ::treesitter_types::FromNode>::from_node(node, src)?,
9977 ))),
9978 _other => {
9979 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
9980 Ok(Self::Expression(::std::boxed::Box::new(v)))
9981 } else {
9982 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
9983 Ok(Self::Pattern(::std::boxed::Box::new(v)))
9984 } else {
9985 if let Ok(v) = <Type as ::treesitter_types::FromNode>::from_node(node, src)
9986 {
9987 Ok(Self::Type(::std::boxed::Box::new(v)))
9988 } else {
9989 Err(::treesitter_types::ParseError::unexpected_kind(
9990 _other, node,
9991 ))
9992 }
9993 }
9994 }
9995 }
9996 }
9997 }
9998}
9999impl ::treesitter_types::Spanned for ApplyArgument<'_> {
10000 fn span(&self) -> ::treesitter_types::Span {
10001 match self {
10002 Self::ExplicitType(inner) => inner.span(),
10003 Self::Expression(inner) => inner.span(),
10004 Self::KindApplication(inner) => inner.span(),
10005 Self::Pattern(inner) => inner.span(),
10006 Self::Type(inner) => inner.span(),
10007 Self::TypeApplication(inner) => inner.span(),
10008 Self::TypeBinder(inner) => inner.span(),
10009 }
10010 }
10011}
10012#[derive(Debug, Clone)]
10013pub enum ApplyConstructor<'tree> {
10014 Constraint(::std::boxed::Box<Constraint<'tree>>),
10015 Type(::std::boxed::Box<Type<'tree>>),
10016}
10017impl<'tree> ::treesitter_types::FromNode<'tree> for ApplyConstructor<'tree> {
10018 #[allow(clippy::collapsible_else_if)]
10019 fn from_node(
10020 node: ::tree_sitter::Node<'tree>,
10021 src: &'tree [u8],
10022 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10023 if let Ok(v) = <Constraint as ::treesitter_types::FromNode>::from_node(node, src) {
10024 Ok(Self::Constraint(::std::boxed::Box::new(v)))
10025 } else {
10026 if let Ok(v) = <Type as ::treesitter_types::FromNode>::from_node(node, src) {
10027 Ok(Self::Type(::std::boxed::Box::new(v)))
10028 } else {
10029 Err(::treesitter_types::ParseError::unexpected_kind(
10030 node.kind(),
10031 node,
10032 ))
10033 }
10034 }
10035 }
10036}
10037impl ::treesitter_types::Spanned for ApplyConstructor<'_> {
10038 fn span(&self) -> ::treesitter_types::Span {
10039 match self {
10040 Self::Constraint(inner) => inner.span(),
10041 Self::Type(inner) => inner.span(),
10042 }
10043 }
10044}
10045#[derive(Debug, Clone)]
10046pub enum ApplyFunction<'tree> {
10047 Expression(::std::boxed::Box<Expression<'tree>>),
10048 Pattern(::std::boxed::Box<Pattern<'tree>>),
10049}
10050impl<'tree> ::treesitter_types::FromNode<'tree> for ApplyFunction<'tree> {
10051 #[allow(clippy::collapsible_else_if)]
10052 fn from_node(
10053 node: ::tree_sitter::Node<'tree>,
10054 src: &'tree [u8],
10055 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10056 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
10057 Ok(Self::Expression(::std::boxed::Box::new(v)))
10058 } else {
10059 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
10060 Ok(Self::Pattern(::std::boxed::Box::new(v)))
10061 } else {
10062 Err(::treesitter_types::ParseError::unexpected_kind(
10063 node.kind(),
10064 node,
10065 ))
10066 }
10067 }
10068 }
10069}
10070impl ::treesitter_types::Spanned for ApplyFunction<'_> {
10071 fn span(&self) -> ::treesitter_types::Span {
10072 match self {
10073 Self::Expression(inner) => inner.span(),
10074 Self::Pattern(inner) => inner.span(),
10075 }
10076 }
10077}
10078#[derive(Debug, Clone)]
10079pub enum ArithmeticSequenceFrom<'tree> {
10080 Expression(::std::boxed::Box<Expression<'tree>>),
10081 Signature(::std::boxed::Box<Signature<'tree>>),
10082}
10083impl<'tree> ::treesitter_types::FromNode<'tree> for ArithmeticSequenceFrom<'tree> {
10084 #[allow(clippy::collapsible_else_if)]
10085 fn from_node(
10086 node: ::tree_sitter::Node<'tree>,
10087 src: &'tree [u8],
10088 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10089 match node.kind() {
10090 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
10091 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
10092 ))),
10093 _other => {
10094 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
10095 Ok(Self::Expression(::std::boxed::Box::new(v)))
10096 } else {
10097 Err(::treesitter_types::ParseError::unexpected_kind(
10098 _other, node,
10099 ))
10100 }
10101 }
10102 }
10103 }
10104}
10105impl ::treesitter_types::Spanned for ArithmeticSequenceFrom<'_> {
10106 fn span(&self) -> ::treesitter_types::Span {
10107 match self {
10108 Self::Expression(inner) => inner.span(),
10109 Self::Signature(inner) => inner.span(),
10110 }
10111 }
10112}
10113#[derive(Debug, Clone)]
10114pub enum ArithmeticSequenceStep<'tree> {
10115 Expression(::std::boxed::Box<Expression<'tree>>),
10116 Signature(::std::boxed::Box<Signature<'tree>>),
10117}
10118impl<'tree> ::treesitter_types::FromNode<'tree> for ArithmeticSequenceStep<'tree> {
10119 #[allow(clippy::collapsible_else_if)]
10120 fn from_node(
10121 node: ::tree_sitter::Node<'tree>,
10122 src: &'tree [u8],
10123 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10124 match node.kind() {
10125 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
10126 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
10127 ))),
10128 _other => {
10129 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
10130 Ok(Self::Expression(::std::boxed::Box::new(v)))
10131 } else {
10132 Err(::treesitter_types::ParseError::unexpected_kind(
10133 _other, node,
10134 ))
10135 }
10136 }
10137 }
10138 }
10139}
10140impl ::treesitter_types::Spanned for ArithmeticSequenceStep<'_> {
10141 fn span(&self) -> ::treesitter_types::Span {
10142 match self {
10143 Self::Expression(inner) => inner.span(),
10144 Self::Signature(inner) => inner.span(),
10145 }
10146 }
10147}
10148#[derive(Debug, Clone)]
10149pub enum ArithmeticSequenceTo<'tree> {
10150 Expression(::std::boxed::Box<Expression<'tree>>),
10151 Signature(::std::boxed::Box<Signature<'tree>>),
10152}
10153impl<'tree> ::treesitter_types::FromNode<'tree> for ArithmeticSequenceTo<'tree> {
10154 #[allow(clippy::collapsible_else_if)]
10155 fn from_node(
10156 node: ::tree_sitter::Node<'tree>,
10157 src: &'tree [u8],
10158 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10159 match node.kind() {
10160 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
10161 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
10162 ))),
10163 _other => {
10164 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
10165 Ok(Self::Expression(::std::boxed::Box::new(v)))
10166 } else {
10167 Err(::treesitter_types::ParseError::unexpected_kind(
10168 _other, node,
10169 ))
10170 }
10171 }
10172 }
10173 }
10174}
10175impl ::treesitter_types::Spanned for ArithmeticSequenceTo<'_> {
10176 fn span(&self) -> ::treesitter_types::Span {
10177 match self {
10178 Self::Expression(inner) => inner.span(),
10179 Self::Signature(inner) => inner.span(),
10180 }
10181 }
10182}
10183#[derive(Debug, Clone)]
10184pub enum AssociatedTypeNamespace {
10185 Type(::treesitter_types::Span),
10186}
10187impl<'tree> ::treesitter_types::FromNode<'tree> for AssociatedTypeNamespace {
10188 #[allow(clippy::collapsible_else_if)]
10189 fn from_node(
10190 node: ::tree_sitter::Node<'tree>,
10191 _src: &'tree [u8],
10192 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10193 match node.kind() {
10194 "type" => Ok(Self::Type(::treesitter_types::Span::from(node))),
10195 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
10196 }
10197 }
10198}
10199impl ::treesitter_types::Spanned for AssociatedTypeNamespace {
10200 fn span(&self) -> ::treesitter_types::Span {
10201 match self {
10202 Self::Type(span) => *span,
10203 }
10204 }
10205}
10206#[derive(Debug, Clone)]
10207pub enum AssociatedTypeType<'tree> {
10208 Name(::std::boxed::Box<Name<'tree>>),
10209 Qualified(::std::boxed::Box<Qualified<'tree>>),
10210}
10211impl<'tree> ::treesitter_types::FromNode<'tree> for AssociatedTypeType<'tree> {
10212 #[allow(clippy::collapsible_else_if)]
10213 fn from_node(
10214 node: ::tree_sitter::Node<'tree>,
10215 src: &'tree [u8],
10216 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10217 match node.kind() {
10218 "name" => Ok(Self::Name(::std::boxed::Box::new(
10219 <Name as ::treesitter_types::FromNode>::from_node(node, src)?,
10220 ))),
10221 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
10222 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
10223 ))),
10224 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
10225 }
10226 }
10227}
10228impl ::treesitter_types::Spanned for AssociatedTypeType<'_> {
10229 fn span(&self) -> ::treesitter_types::Span {
10230 match self {
10231 Self::Name(inner) => inner.span(),
10232 Self::Qualified(inner) => inner.span(),
10233 }
10234 }
10235}
10236#[derive(Debug, Clone)]
10237pub enum BindArrow {
10238 LArrow(::treesitter_types::Span),
10239 X(::treesitter_types::Span),
10240}
10241impl<'tree> ::treesitter_types::FromNode<'tree> for BindArrow {
10242 #[allow(clippy::collapsible_else_if)]
10243 fn from_node(
10244 node: ::tree_sitter::Node<'tree>,
10245 _src: &'tree [u8],
10246 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10247 match node.kind() {
10248 "<-" => Ok(Self::LArrow(::treesitter_types::Span::from(node))),
10249 "←" => Ok(Self::X(::treesitter_types::Span::from(node))),
10250 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
10251 }
10252 }
10253}
10254impl ::treesitter_types::Spanned for BindArrow {
10255 fn span(&self) -> ::treesitter_types::Span {
10256 match self {
10257 Self::LArrow(span) => *span,
10258 Self::X(span) => *span,
10259 }
10260 }
10261}
10262#[derive(Debug, Clone)]
10263pub enum BindExpression<'tree> {
10264 Expression(::std::boxed::Box<Expression<'tree>>),
10265 Signature(::std::boxed::Box<Signature<'tree>>),
10266}
10267impl<'tree> ::treesitter_types::FromNode<'tree> for BindExpression<'tree> {
10268 #[allow(clippy::collapsible_else_if)]
10269 fn from_node(
10270 node: ::tree_sitter::Node<'tree>,
10271 src: &'tree [u8],
10272 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10273 match node.kind() {
10274 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
10275 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
10276 ))),
10277 _other => {
10278 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
10279 Ok(Self::Expression(::std::boxed::Box::new(v)))
10280 } else {
10281 Err(::treesitter_types::ParseError::unexpected_kind(
10282 _other, node,
10283 ))
10284 }
10285 }
10286 }
10287 }
10288}
10289impl ::treesitter_types::Spanned for BindExpression<'_> {
10290 fn span(&self) -> ::treesitter_types::Span {
10291 match self {
10292 Self::Expression(inner) => inner.span(),
10293 Self::Signature(inner) => inner.span(),
10294 }
10295 }
10296}
10297#[derive(Debug, Clone)]
10298pub enum BindName<'tree> {
10299 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
10300 Variable(::std::boxed::Box<Variable<'tree>>),
10301}
10302impl<'tree> ::treesitter_types::FromNode<'tree> for BindName<'tree> {
10303 #[allow(clippy::collapsible_else_if)]
10304 fn from_node(
10305 node: ::tree_sitter::Node<'tree>,
10306 src: &'tree [u8],
10307 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10308 match node.kind() {
10309 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
10310 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
10311 ))),
10312 "variable" => Ok(Self::Variable(::std::boxed::Box::new(
10313 <Variable as ::treesitter_types::FromNode>::from_node(node, src)?,
10314 ))),
10315 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
10316 }
10317 }
10318}
10319impl ::treesitter_types::Spanned for BindName<'_> {
10320 fn span(&self) -> ::treesitter_types::Span {
10321 match self {
10322 Self::PrefixId(inner) => inner.span(),
10323 Self::Variable(inner) => inner.span(),
10324 }
10325 }
10326}
10327#[derive(Debug, Clone)]
10328pub enum BindPattern<'tree> {
10329 Pattern(::std::boxed::Box<Pattern<'tree>>),
10330 Signature(::std::boxed::Box<Signature<'tree>>),
10331}
10332impl<'tree> ::treesitter_types::FromNode<'tree> for BindPattern<'tree> {
10333 #[allow(clippy::collapsible_else_if)]
10334 fn from_node(
10335 node: ::tree_sitter::Node<'tree>,
10336 src: &'tree [u8],
10337 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10338 match node.kind() {
10339 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
10340 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
10341 ))),
10342 _other => {
10343 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
10344 Ok(Self::Pattern(::std::boxed::Box::new(v)))
10345 } else {
10346 Err(::treesitter_types::ParseError::unexpected_kind(
10347 _other, node,
10348 ))
10349 }
10350 }
10351 }
10352 }
10353}
10354impl ::treesitter_types::Spanned for BindPattern<'_> {
10355 fn span(&self) -> ::treesitter_types::Span {
10356 match self {
10357 Self::Pattern(inner) => inner.span(),
10358 Self::Signature(inner) => inner.span(),
10359 }
10360 }
10361}
10362#[derive(Debug, Clone)]
10363pub enum BindingListName<'tree> {
10364 Constructor(::std::boxed::Box<Constructor<'tree>>),
10365 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
10366 Variable(::std::boxed::Box<Variable<'tree>>),
10367}
10368impl<'tree> ::treesitter_types::FromNode<'tree> for BindingListName<'tree> {
10369 #[allow(clippy::collapsible_else_if)]
10370 fn from_node(
10371 node: ::tree_sitter::Node<'tree>,
10372 src: &'tree [u8],
10373 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10374 match node.kind() {
10375 "constructor" => Ok(Self::Constructor(::std::boxed::Box::new(
10376 <Constructor as ::treesitter_types::FromNode>::from_node(node, src)?,
10377 ))),
10378 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
10379 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
10380 ))),
10381 "variable" => Ok(Self::Variable(::std::boxed::Box::new(
10382 <Variable as ::treesitter_types::FromNode>::from_node(node, src)?,
10383 ))),
10384 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
10385 }
10386 }
10387}
10388impl ::treesitter_types::Spanned for BindingListName<'_> {
10389 fn span(&self) -> ::treesitter_types::Span {
10390 match self {
10391 Self::Constructor(inner) => inner.span(),
10392 Self::PrefixId(inner) => inner.span(),
10393 Self::Variable(inner) => inner.span(),
10394 }
10395 }
10396}
10397#[derive(Debug, Clone)]
10398pub enum BooleanChildren<'tree> {
10399 Expression(::std::boxed::Box<Expression<'tree>>),
10400 Signature(::std::boxed::Box<Signature<'tree>>),
10401}
10402impl<'tree> ::treesitter_types::FromNode<'tree> for BooleanChildren<'tree> {
10403 #[allow(clippy::collapsible_else_if)]
10404 fn from_node(
10405 node: ::tree_sitter::Node<'tree>,
10406 src: &'tree [u8],
10407 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10408 match node.kind() {
10409 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
10410 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
10411 ))),
10412 _other => {
10413 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
10414 Ok(Self::Expression(::std::boxed::Box::new(v)))
10415 } else {
10416 Err(::treesitter_types::ParseError::unexpected_kind(
10417 _other, node,
10418 ))
10419 }
10420 }
10421 }
10422 }
10423}
10424impl ::treesitter_types::Spanned for BooleanChildren<'_> {
10425 fn span(&self) -> ::treesitter_types::Span {
10426 match self {
10427 Self::Expression(inner) => inner.span(),
10428 Self::Signature(inner) => inner.span(),
10429 }
10430 }
10431}
10432#[derive(Debug, Clone)]
10433pub enum CaseChildren<'tree> {
10434 Expression(::std::boxed::Box<Expression<'tree>>),
10435 Signature(::std::boxed::Box<Signature<'tree>>),
10436}
10437impl<'tree> ::treesitter_types::FromNode<'tree> for CaseChildren<'tree> {
10438 #[allow(clippy::collapsible_else_if)]
10439 fn from_node(
10440 node: ::tree_sitter::Node<'tree>,
10441 src: &'tree [u8],
10442 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10443 match node.kind() {
10444 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
10445 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
10446 ))),
10447 _other => {
10448 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
10449 Ok(Self::Expression(::std::boxed::Box::new(v)))
10450 } else {
10451 Err(::treesitter_types::ParseError::unexpected_kind(
10452 _other, node,
10453 ))
10454 }
10455 }
10456 }
10457 }
10458}
10459impl ::treesitter_types::Spanned for CaseChildren<'_> {
10460 fn span(&self) -> ::treesitter_types::Span {
10461 match self {
10462 Self::Expression(inner) => inner.span(),
10463 Self::Signature(inner) => inner.span(),
10464 }
10465 }
10466}
10467#[derive(Debug, Clone)]
10468pub enum ChildrenElement<'tree> {
10469 AllNames(::std::boxed::Box<AllNames<'tree>>),
10470 AssociatedType(::std::boxed::Box<AssociatedType<'tree>>),
10471 Constructor(::std::boxed::Box<Constructor<'tree>>),
10472 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
10473 Qualified(::std::boxed::Box<Qualified<'tree>>),
10474 Variable(::std::boxed::Box<Variable<'tree>>),
10475}
10476impl<'tree> ::treesitter_types::FromNode<'tree> for ChildrenElement<'tree> {
10477 #[allow(clippy::collapsible_else_if)]
10478 fn from_node(
10479 node: ::tree_sitter::Node<'tree>,
10480 src: &'tree [u8],
10481 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10482 match node.kind() {
10483 "all_names" => Ok(Self::AllNames(::std::boxed::Box::new(
10484 <AllNames as ::treesitter_types::FromNode>::from_node(node, src)?,
10485 ))),
10486 "associated_type" => Ok(Self::AssociatedType(::std::boxed::Box::new(
10487 <AssociatedType as ::treesitter_types::FromNode>::from_node(node, src)?,
10488 ))),
10489 "constructor" => Ok(Self::Constructor(::std::boxed::Box::new(
10490 <Constructor as ::treesitter_types::FromNode>::from_node(node, src)?,
10491 ))),
10492 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
10493 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
10494 ))),
10495 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
10496 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
10497 ))),
10498 "variable" => Ok(Self::Variable(::std::boxed::Box::new(
10499 <Variable as ::treesitter_types::FromNode>::from_node(node, src)?,
10500 ))),
10501 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
10502 }
10503 }
10504}
10505impl ::treesitter_types::Spanned for ChildrenElement<'_> {
10506 fn span(&self) -> ::treesitter_types::Span {
10507 match self {
10508 Self::AllNames(inner) => inner.span(),
10509 Self::AssociatedType(inner) => inner.span(),
10510 Self::Constructor(inner) => inner.span(),
10511 Self::PrefixId(inner) => inner.span(),
10512 Self::Qualified(inner) => inner.span(),
10513 Self::Variable(inner) => inner.span(),
10514 }
10515 }
10516}
10517#[derive(Debug, Clone)]
10518pub enum ClassName<'tree> {
10519 Name(::std::boxed::Box<Name<'tree>>),
10520 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
10521 PrefixList(::std::boxed::Box<PrefixList<'tree>>),
10522 Unit(::std::boxed::Box<Unit<'tree>>),
10523}
10524impl<'tree> ::treesitter_types::FromNode<'tree> for ClassName<'tree> {
10525 #[allow(clippy::collapsible_else_if)]
10526 fn from_node(
10527 node: ::tree_sitter::Node<'tree>,
10528 src: &'tree [u8],
10529 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10530 match node.kind() {
10531 "name" => Ok(Self::Name(::std::boxed::Box::new(
10532 <Name as ::treesitter_types::FromNode>::from_node(node, src)?,
10533 ))),
10534 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
10535 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
10536 ))),
10537 "prefix_list" => Ok(Self::PrefixList(::std::boxed::Box::new(
10538 <PrefixList as ::treesitter_types::FromNode>::from_node(node, src)?,
10539 ))),
10540 "unit" => Ok(Self::Unit(::std::boxed::Box::new(
10541 <Unit as ::treesitter_types::FromNode>::from_node(node, src)?,
10542 ))),
10543 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
10544 }
10545 }
10546}
10547impl ::treesitter_types::Spanned for ClassName<'_> {
10548 fn span(&self) -> ::treesitter_types::Span {
10549 match self {
10550 Self::Name(inner) => inner.span(),
10551 Self::PrefixId(inner) => inner.span(),
10552 Self::PrefixList(inner) => inner.span(),
10553 Self::Unit(inner) => inner.span(),
10554 }
10555 }
10556}
10557#[derive(Debug, Clone)]
10558pub enum ClassChildren<'tree> {
10559 Infix(::std::boxed::Box<Infix<'tree>>),
10560 Parens(::std::boxed::Box<Parens<'tree>>),
10561}
10562impl<'tree> ::treesitter_types::FromNode<'tree> for ClassChildren<'tree> {
10563 #[allow(clippy::collapsible_else_if)]
10564 fn from_node(
10565 node: ::tree_sitter::Node<'tree>,
10566 src: &'tree [u8],
10567 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10568 match node.kind() {
10569 "infix" => Ok(Self::Infix(::std::boxed::Box::new(
10570 <Infix as ::treesitter_types::FromNode>::from_node(node, src)?,
10571 ))),
10572 "parens" => Ok(Self::Parens(::std::boxed::Box::new(
10573 <Parens as ::treesitter_types::FromNode>::from_node(node, src)?,
10574 ))),
10575 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
10576 }
10577 }
10578}
10579impl ::treesitter_types::Spanned for ClassChildren<'_> {
10580 fn span(&self) -> ::treesitter_types::Span {
10581 match self {
10582 Self::Infix(inner) => inner.span(),
10583 Self::Parens(inner) => inner.span(),
10584 }
10585 }
10586}
10587#[derive(Debug, Clone)]
10588pub enum ConditionalElse<'tree> {
10589 Expression(::std::boxed::Box<Expression<'tree>>),
10590 Signature(::std::boxed::Box<Signature<'tree>>),
10591}
10592impl<'tree> ::treesitter_types::FromNode<'tree> for ConditionalElse<'tree> {
10593 #[allow(clippy::collapsible_else_if)]
10594 fn from_node(
10595 node: ::tree_sitter::Node<'tree>,
10596 src: &'tree [u8],
10597 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10598 match node.kind() {
10599 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
10600 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
10601 ))),
10602 _other => {
10603 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
10604 Ok(Self::Expression(::std::boxed::Box::new(v)))
10605 } else {
10606 Err(::treesitter_types::ParseError::unexpected_kind(
10607 _other, node,
10608 ))
10609 }
10610 }
10611 }
10612 }
10613}
10614impl ::treesitter_types::Spanned for ConditionalElse<'_> {
10615 fn span(&self) -> ::treesitter_types::Span {
10616 match self {
10617 Self::Expression(inner) => inner.span(),
10618 Self::Signature(inner) => inner.span(),
10619 }
10620 }
10621}
10622#[derive(Debug, Clone)]
10623pub enum ConditionalIf<'tree> {
10624 Expression(::std::boxed::Box<Expression<'tree>>),
10625 Signature(::std::boxed::Box<Signature<'tree>>),
10626}
10627impl<'tree> ::treesitter_types::FromNode<'tree> for ConditionalIf<'tree> {
10628 #[allow(clippy::collapsible_else_if)]
10629 fn from_node(
10630 node: ::tree_sitter::Node<'tree>,
10631 src: &'tree [u8],
10632 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10633 match node.kind() {
10634 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
10635 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
10636 ))),
10637 _other => {
10638 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
10639 Ok(Self::Expression(::std::boxed::Box::new(v)))
10640 } else {
10641 Err(::treesitter_types::ParseError::unexpected_kind(
10642 _other, node,
10643 ))
10644 }
10645 }
10646 }
10647 }
10648}
10649impl ::treesitter_types::Spanned for ConditionalIf<'_> {
10650 fn span(&self) -> ::treesitter_types::Span {
10651 match self {
10652 Self::Expression(inner) => inner.span(),
10653 Self::Signature(inner) => inner.span(),
10654 }
10655 }
10656}
10657#[derive(Debug, Clone)]
10658pub enum ConditionalThen<'tree> {
10659 Expression(::std::boxed::Box<Expression<'tree>>),
10660 Signature(::std::boxed::Box<Signature<'tree>>),
10661}
10662impl<'tree> ::treesitter_types::FromNode<'tree> for ConditionalThen<'tree> {
10663 #[allow(clippy::collapsible_else_if)]
10664 fn from_node(
10665 node: ::tree_sitter::Node<'tree>,
10666 src: &'tree [u8],
10667 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10668 match node.kind() {
10669 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
10670 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
10671 ))),
10672 _other => {
10673 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
10674 Ok(Self::Expression(::std::boxed::Box::new(v)))
10675 } else {
10676 Err(::treesitter_types::ParseError::unexpected_kind(
10677 _other, node,
10678 ))
10679 }
10680 }
10681 }
10682 }
10683}
10684impl ::treesitter_types::Spanned for ConditionalThen<'_> {
10685 fn span(&self) -> ::treesitter_types::Span {
10686 match self {
10687 Self::Expression(inner) => inner.span(),
10688 Self::Signature(inner) => inner.span(),
10689 }
10690 }
10691}
10692#[derive(Debug, Clone)]
10693pub enum ConstructorSynonymName<'tree> {
10694 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
10695 Variable(::std::boxed::Box<Variable<'tree>>),
10696}
10697impl<'tree> ::treesitter_types::FromNode<'tree> for ConstructorSynonymName<'tree> {
10698 #[allow(clippy::collapsible_else_if)]
10699 fn from_node(
10700 node: ::tree_sitter::Node<'tree>,
10701 src: &'tree [u8],
10702 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10703 match node.kind() {
10704 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
10705 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
10706 ))),
10707 "variable" => Ok(Self::Variable(::std::boxed::Box::new(
10708 <Variable as ::treesitter_types::FromNode>::from_node(node, src)?,
10709 ))),
10710 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
10711 }
10712 }
10713}
10714impl ::treesitter_types::Spanned for ConstructorSynonymName<'_> {
10715 fn span(&self) -> ::treesitter_types::Span {
10716 match self {
10717 Self::PrefixId(inner) => inner.span(),
10718 Self::Variable(inner) => inner.span(),
10719 }
10720 }
10721}
10722#[derive(Debug, Clone)]
10723pub enum ConstructorSynonymPattern<'tree> {
10724 Pattern(::std::boxed::Box<Pattern<'tree>>),
10725 Signature(::std::boxed::Box<Signature<'tree>>),
10726}
10727impl<'tree> ::treesitter_types::FromNode<'tree> for ConstructorSynonymPattern<'tree> {
10728 #[allow(clippy::collapsible_else_if)]
10729 fn from_node(
10730 node: ::tree_sitter::Node<'tree>,
10731 src: &'tree [u8],
10732 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10733 match node.kind() {
10734 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
10735 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
10736 ))),
10737 _other => {
10738 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
10739 Ok(Self::Pattern(::std::boxed::Box::new(v)))
10740 } else {
10741 Err(::treesitter_types::ParseError::unexpected_kind(
10742 _other, node,
10743 ))
10744 }
10745 }
10746 }
10747 }
10748}
10749impl ::treesitter_types::Spanned for ConstructorSynonymPattern<'_> {
10750 fn span(&self) -> ::treesitter_types::Span {
10751 match self {
10752 Self::Pattern(inner) => inner.span(),
10753 Self::Signature(inner) => inner.span(),
10754 }
10755 }
10756}
10757#[derive(Debug, Clone)]
10758pub enum ContextArrow {
10759 FatArrow(::treesitter_types::Span),
10760 X(::treesitter_types::Span),
10761}
10762impl<'tree> ::treesitter_types::FromNode<'tree> for ContextArrow {
10763 #[allow(clippy::collapsible_else_if)]
10764 fn from_node(
10765 node: ::tree_sitter::Node<'tree>,
10766 _src: &'tree [u8],
10767 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10768 match node.kind() {
10769 "=>" => Ok(Self::FatArrow(::treesitter_types::Span::from(node))),
10770 "⇒" => Ok(Self::X(::treesitter_types::Span::from(node))),
10771 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
10772 }
10773 }
10774}
10775impl ::treesitter_types::Spanned for ContextArrow {
10776 fn span(&self) -> ::treesitter_types::Span {
10777 match self {
10778 Self::FatArrow(span) => *span,
10779 Self::X(span) => *span,
10780 }
10781 }
10782}
10783#[derive(Debug, Clone)]
10784pub enum DataConstructorConstructor<'tree> {
10785 Infix(::std::boxed::Box<Infix<'tree>>),
10786 Prefix(::std::boxed::Box<Prefix<'tree>>),
10787 Record(::std::boxed::Box<Record<'tree>>),
10788 Special(::std::boxed::Box<Special<'tree>>),
10789}
10790impl<'tree> ::treesitter_types::FromNode<'tree> for DataConstructorConstructor<'tree> {
10791 #[allow(clippy::collapsible_else_if)]
10792 fn from_node(
10793 node: ::tree_sitter::Node<'tree>,
10794 src: &'tree [u8],
10795 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10796 match node.kind() {
10797 "infix" => Ok(Self::Infix(::std::boxed::Box::new(
10798 <Infix as ::treesitter_types::FromNode>::from_node(node, src)?,
10799 ))),
10800 "prefix" => Ok(Self::Prefix(::std::boxed::Box::new(
10801 <Prefix as ::treesitter_types::FromNode>::from_node(node, src)?,
10802 ))),
10803 "record" => Ok(Self::Record(::std::boxed::Box::new(
10804 <Record as ::treesitter_types::FromNode>::from_node(node, src)?,
10805 ))),
10806 "special" => Ok(Self::Special(::std::boxed::Box::new(
10807 <Special as ::treesitter_types::FromNode>::from_node(node, src)?,
10808 ))),
10809 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
10810 }
10811 }
10812}
10813impl ::treesitter_types::Spanned for DataConstructorConstructor<'_> {
10814 fn span(&self) -> ::treesitter_types::Span {
10815 match self {
10816 Self::Infix(inner) => inner.span(),
10817 Self::Prefix(inner) => inner.span(),
10818 Self::Record(inner) => inner.span(),
10819 Self::Special(inner) => inner.span(),
10820 }
10821 }
10822}
10823#[derive(Debug, Clone)]
10824pub enum DataConstructorForall<'tree> {
10825 Forall(::std::boxed::Box<Forall<'tree>>),
10826 ForallRequired(::std::boxed::Box<ForallRequired<'tree>>),
10827}
10828impl<'tree> ::treesitter_types::FromNode<'tree> for DataConstructorForall<'tree> {
10829 #[allow(clippy::collapsible_else_if)]
10830 fn from_node(
10831 node: ::tree_sitter::Node<'tree>,
10832 src: &'tree [u8],
10833 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10834 match node.kind() {
10835 "forall" => Ok(Self::Forall(::std::boxed::Box::new(
10836 <Forall as ::treesitter_types::FromNode>::from_node(node, src)?,
10837 ))),
10838 "forall_required" => Ok(Self::ForallRequired(::std::boxed::Box::new(
10839 <ForallRequired as ::treesitter_types::FromNode>::from_node(node, src)?,
10840 ))),
10841 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
10842 }
10843 }
10844}
10845impl ::treesitter_types::Spanned for DataConstructorForall<'_> {
10846 fn span(&self) -> ::treesitter_types::Span {
10847 match self {
10848 Self::Forall(inner) => inner.span(),
10849 Self::ForallRequired(inner) => inner.span(),
10850 }
10851 }
10852}
10853#[derive(Debug, Clone)]
10854pub enum DataFamilyName<'tree> {
10855 Name(::std::boxed::Box<Name<'tree>>),
10856 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
10857 PrefixList(::std::boxed::Box<PrefixList<'tree>>),
10858 Unit(::std::boxed::Box<Unit<'tree>>),
10859}
10860impl<'tree> ::treesitter_types::FromNode<'tree> for DataFamilyName<'tree> {
10861 #[allow(clippy::collapsible_else_if)]
10862 fn from_node(
10863 node: ::tree_sitter::Node<'tree>,
10864 src: &'tree [u8],
10865 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10866 match node.kind() {
10867 "name" => Ok(Self::Name(::std::boxed::Box::new(
10868 <Name as ::treesitter_types::FromNode>::from_node(node, src)?,
10869 ))),
10870 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
10871 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
10872 ))),
10873 "prefix_list" => Ok(Self::PrefixList(::std::boxed::Box::new(
10874 <PrefixList as ::treesitter_types::FromNode>::from_node(node, src)?,
10875 ))),
10876 "unit" => Ok(Self::Unit(::std::boxed::Box::new(
10877 <Unit as ::treesitter_types::FromNode>::from_node(node, src)?,
10878 ))),
10879 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
10880 }
10881 }
10882}
10883impl ::treesitter_types::Spanned for DataFamilyName<'_> {
10884 fn span(&self) -> ::treesitter_types::Span {
10885 match self {
10886 Self::Name(inner) => inner.span(),
10887 Self::PrefixId(inner) => inner.span(),
10888 Self::PrefixList(inner) => inner.span(),
10889 Self::Unit(inner) => inner.span(),
10890 }
10891 }
10892}
10893#[derive(Debug, Clone)]
10894pub enum DataFamilyChildren<'tree> {
10895 Infix(::std::boxed::Box<Infix<'tree>>),
10896 Parens(::std::boxed::Box<Parens<'tree>>),
10897}
10898impl<'tree> ::treesitter_types::FromNode<'tree> for DataFamilyChildren<'tree> {
10899 #[allow(clippy::collapsible_else_if)]
10900 fn from_node(
10901 node: ::tree_sitter::Node<'tree>,
10902 src: &'tree [u8],
10903 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10904 match node.kind() {
10905 "infix" => Ok(Self::Infix(::std::boxed::Box::new(
10906 <Infix as ::treesitter_types::FromNode>::from_node(node, src)?,
10907 ))),
10908 "parens" => Ok(Self::Parens(::std::boxed::Box::new(
10909 <Parens as ::treesitter_types::FromNode>::from_node(node, src)?,
10910 ))),
10911 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
10912 }
10913 }
10914}
10915impl ::treesitter_types::Spanned for DataFamilyChildren<'_> {
10916 fn span(&self) -> ::treesitter_types::Span {
10917 match self {
10918 Self::Infix(inner) => inner.span(),
10919 Self::Parens(inner) => inner.span(),
10920 }
10921 }
10922}
10923#[derive(Debug, Clone)]
10924pub enum DataInstanceChildren<'tree> {
10925 DataType(::std::boxed::Box<DataType<'tree>>),
10926 Newtype(::std::boxed::Box<Newtype<'tree>>),
10927}
10928impl<'tree> ::treesitter_types::FromNode<'tree> for DataInstanceChildren<'tree> {
10929 #[allow(clippy::collapsible_else_if)]
10930 fn from_node(
10931 node: ::tree_sitter::Node<'tree>,
10932 src: &'tree [u8],
10933 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10934 match node.kind() {
10935 "data_type" => Ok(Self::DataType(::std::boxed::Box::new(
10936 <DataType as ::treesitter_types::FromNode>::from_node(node, src)?,
10937 ))),
10938 "newtype" => Ok(Self::Newtype(::std::boxed::Box::new(
10939 <Newtype as ::treesitter_types::FromNode>::from_node(node, src)?,
10940 ))),
10941 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
10942 }
10943 }
10944}
10945impl ::treesitter_types::Spanned for DataInstanceChildren<'_> {
10946 fn span(&self) -> ::treesitter_types::Span {
10947 match self {
10948 Self::DataType(inner) => inner.span(),
10949 Self::Newtype(inner) => inner.span(),
10950 }
10951 }
10952}
10953#[derive(Debug, Clone)]
10954pub enum DataTypeConstructors<'tree> {
10955 DataConstructors(::std::boxed::Box<DataConstructors<'tree>>),
10956 GadtConstructors(::std::boxed::Box<GadtConstructors<'tree>>),
10957}
10958impl<'tree> ::treesitter_types::FromNode<'tree> for DataTypeConstructors<'tree> {
10959 #[allow(clippy::collapsible_else_if)]
10960 fn from_node(
10961 node: ::tree_sitter::Node<'tree>,
10962 src: &'tree [u8],
10963 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10964 match node.kind() {
10965 "data_constructors" => Ok(Self::DataConstructors(::std::boxed::Box::new(
10966 <DataConstructors as ::treesitter_types::FromNode>::from_node(node, src)?,
10967 ))),
10968 "gadt_constructors" => Ok(Self::GadtConstructors(::std::boxed::Box::new(
10969 <GadtConstructors as ::treesitter_types::FromNode>::from_node(node, src)?,
10970 ))),
10971 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
10972 }
10973 }
10974}
10975impl ::treesitter_types::Spanned for DataTypeConstructors<'_> {
10976 fn span(&self) -> ::treesitter_types::Span {
10977 match self {
10978 Self::DataConstructors(inner) => inner.span(),
10979 Self::GadtConstructors(inner) => inner.span(),
10980 }
10981 }
10982}
10983#[derive(Debug, Clone)]
10984pub enum DataTypeForall<'tree> {
10985 Forall(::std::boxed::Box<Forall<'tree>>),
10986 ForallRequired(::std::boxed::Box<ForallRequired<'tree>>),
10987}
10988impl<'tree> ::treesitter_types::FromNode<'tree> for DataTypeForall<'tree> {
10989 #[allow(clippy::collapsible_else_if)]
10990 fn from_node(
10991 node: ::tree_sitter::Node<'tree>,
10992 src: &'tree [u8],
10993 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
10994 match node.kind() {
10995 "forall" => Ok(Self::Forall(::std::boxed::Box::new(
10996 <Forall as ::treesitter_types::FromNode>::from_node(node, src)?,
10997 ))),
10998 "forall_required" => Ok(Self::ForallRequired(::std::boxed::Box::new(
10999 <ForallRequired as ::treesitter_types::FromNode>::from_node(node, src)?,
11000 ))),
11001 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11002 }
11003 }
11004}
11005impl ::treesitter_types::Spanned for DataTypeForall<'_> {
11006 fn span(&self) -> ::treesitter_types::Span {
11007 match self {
11008 Self::Forall(inner) => inner.span(),
11009 Self::ForallRequired(inner) => inner.span(),
11010 }
11011 }
11012}
11013#[derive(Debug, Clone)]
11014pub enum DataTypeName<'tree> {
11015 Name(::std::boxed::Box<Name<'tree>>),
11016 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
11017 PrefixList(::std::boxed::Box<PrefixList<'tree>>),
11018 Qualified(::std::boxed::Box<Qualified<'tree>>),
11019 Unit(::std::boxed::Box<Unit<'tree>>),
11020}
11021impl<'tree> ::treesitter_types::FromNode<'tree> for DataTypeName<'tree> {
11022 #[allow(clippy::collapsible_else_if)]
11023 fn from_node(
11024 node: ::tree_sitter::Node<'tree>,
11025 src: &'tree [u8],
11026 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11027 match node.kind() {
11028 "name" => Ok(Self::Name(::std::boxed::Box::new(
11029 <Name as ::treesitter_types::FromNode>::from_node(node, src)?,
11030 ))),
11031 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
11032 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
11033 ))),
11034 "prefix_list" => Ok(Self::PrefixList(::std::boxed::Box::new(
11035 <PrefixList as ::treesitter_types::FromNode>::from_node(node, src)?,
11036 ))),
11037 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
11038 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
11039 ))),
11040 "unit" => Ok(Self::Unit(::std::boxed::Box::new(
11041 <Unit as ::treesitter_types::FromNode>::from_node(node, src)?,
11042 ))),
11043 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11044 }
11045 }
11046}
11047impl ::treesitter_types::Spanned for DataTypeName<'_> {
11048 fn span(&self) -> ::treesitter_types::Span {
11049 match self {
11050 Self::Name(inner) => inner.span(),
11051 Self::PrefixId(inner) => inner.span(),
11052 Self::PrefixList(inner) => inner.span(),
11053 Self::Qualified(inner) => inner.span(),
11054 Self::Unit(inner) => inner.span(),
11055 }
11056 }
11057}
11058#[derive(Debug, Clone)]
11059pub enum DataTypePatterns<'tree> {
11060 TypeParams(::std::boxed::Box<TypeParams<'tree>>),
11061 TypePatterns(::std::boxed::Box<TypePatterns<'tree>>),
11062}
11063impl<'tree> ::treesitter_types::FromNode<'tree> for DataTypePatterns<'tree> {
11064 #[allow(clippy::collapsible_else_if)]
11065 fn from_node(
11066 node: ::tree_sitter::Node<'tree>,
11067 src: &'tree [u8],
11068 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11069 match node.kind() {
11070 "type_params" => Ok(Self::TypeParams(::std::boxed::Box::new(
11071 <TypeParams as ::treesitter_types::FromNode>::from_node(node, src)?,
11072 ))),
11073 "type_patterns" => Ok(Self::TypePatterns(::std::boxed::Box::new(
11074 <TypePatterns as ::treesitter_types::FromNode>::from_node(node, src)?,
11075 ))),
11076 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11077 }
11078 }
11079}
11080impl ::treesitter_types::Spanned for DataTypePatterns<'_> {
11081 fn span(&self) -> ::treesitter_types::Span {
11082 match self {
11083 Self::TypeParams(inner) => inner.span(),
11084 Self::TypePatterns(inner) => inner.span(),
11085 }
11086 }
11087}
11088#[derive(Debug, Clone)]
11089pub enum DataTypeChildren<'tree> {
11090 Infix(::std::boxed::Box<Infix<'tree>>),
11091 Parens(::std::boxed::Box<Parens<'tree>>),
11092}
11093impl<'tree> ::treesitter_types::FromNode<'tree> for DataTypeChildren<'tree> {
11094 #[allow(clippy::collapsible_else_if)]
11095 fn from_node(
11096 node: ::tree_sitter::Node<'tree>,
11097 src: &'tree [u8],
11098 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11099 match node.kind() {
11100 "infix" => Ok(Self::Infix(::std::boxed::Box::new(
11101 <Infix as ::treesitter_types::FromNode>::from_node(node, src)?,
11102 ))),
11103 "parens" => Ok(Self::Parens(::std::boxed::Box::new(
11104 <Parens as ::treesitter_types::FromNode>::from_node(node, src)?,
11105 ))),
11106 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11107 }
11108 }
11109}
11110impl ::treesitter_types::Spanned for DataTypeChildren<'_> {
11111 fn span(&self) -> ::treesitter_types::Span {
11112 match self {
11113 Self::Infix(inner) => inner.span(),
11114 Self::Parens(inner) => inner.span(),
11115 }
11116 }
11117}
11118#[derive(Debug, Clone)]
11119pub enum DeclarationsChildren<'tree> {
11120 Declaration(::std::boxed::Box<Declaration<'tree>>),
11121 Import(::std::boxed::Box<Import<'tree>>),
11122}
11123impl<'tree> ::treesitter_types::FromNode<'tree> for DeclarationsChildren<'tree> {
11124 #[allow(clippy::collapsible_else_if)]
11125 fn from_node(
11126 node: ::tree_sitter::Node<'tree>,
11127 src: &'tree [u8],
11128 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11129 match node.kind() {
11130 "import" => Ok(Self::Import(::std::boxed::Box::new(
11131 <Import as ::treesitter_types::FromNode>::from_node(node, src)?,
11132 ))),
11133 _other => {
11134 if let Ok(v) = <Declaration as ::treesitter_types::FromNode>::from_node(node, src) {
11135 Ok(Self::Declaration(::std::boxed::Box::new(v)))
11136 } else {
11137 Err(::treesitter_types::ParseError::unexpected_kind(
11138 _other, node,
11139 ))
11140 }
11141 }
11142 }
11143 }
11144}
11145impl ::treesitter_types::Spanned for DeclarationsChildren<'_> {
11146 fn span(&self) -> ::treesitter_types::Span {
11147 match self {
11148 Self::Declaration(inner) => inner.span(),
11149 Self::Import(inner) => inner.span(),
11150 }
11151 }
11152}
11153#[derive(Debug, Clone)]
11154pub enum DefaultTypesType<'tree> {
11155 QuantifiedType(::std::boxed::Box<QuantifiedType<'tree>>),
11156 Signature(::std::boxed::Box<Signature<'tree>>),
11157}
11158impl<'tree> ::treesitter_types::FromNode<'tree> for DefaultTypesType<'tree> {
11159 #[allow(clippy::collapsible_else_if)]
11160 fn from_node(
11161 node: ::tree_sitter::Node<'tree>,
11162 src: &'tree [u8],
11163 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11164 match node.kind() {
11165 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
11166 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
11167 ))),
11168 _other => {
11169 if let Ok(v) =
11170 <QuantifiedType as ::treesitter_types::FromNode>::from_node(node, src)
11171 {
11172 Ok(Self::QuantifiedType(::std::boxed::Box::new(v)))
11173 } else {
11174 Err(::treesitter_types::ParseError::unexpected_kind(
11175 _other, node,
11176 ))
11177 }
11178 }
11179 }
11180 }
11181}
11182impl ::treesitter_types::Spanned for DefaultTypesType<'_> {
11183 fn span(&self) -> ::treesitter_types::Span {
11184 match self {
11185 Self::QuantifiedType(inner) => inner.span(),
11186 Self::Signature(inner) => inner.span(),
11187 }
11188 }
11189}
11190#[derive(Debug, Clone)]
11191pub enum DerivingInstanceForall<'tree> {
11192 Forall(::std::boxed::Box<Forall<'tree>>),
11193 ForallRequired(::std::boxed::Box<ForallRequired<'tree>>),
11194}
11195impl<'tree> ::treesitter_types::FromNode<'tree> for DerivingInstanceForall<'tree> {
11196 #[allow(clippy::collapsible_else_if)]
11197 fn from_node(
11198 node: ::tree_sitter::Node<'tree>,
11199 src: &'tree [u8],
11200 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11201 match node.kind() {
11202 "forall" => Ok(Self::Forall(::std::boxed::Box::new(
11203 <Forall as ::treesitter_types::FromNode>::from_node(node, src)?,
11204 ))),
11205 "forall_required" => Ok(Self::ForallRequired(::std::boxed::Box::new(
11206 <ForallRequired as ::treesitter_types::FromNode>::from_node(node, src)?,
11207 ))),
11208 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11209 }
11210 }
11211}
11212impl ::treesitter_types::Spanned for DerivingInstanceForall<'_> {
11213 fn span(&self) -> ::treesitter_types::Span {
11214 match self {
11215 Self::Forall(inner) => inner.span(),
11216 Self::ForallRequired(inner) => inner.span(),
11217 }
11218 }
11219}
11220#[derive(Debug, Clone)]
11221pub enum DerivingInstanceName<'tree> {
11222 Name(::std::boxed::Box<Name<'tree>>),
11223 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
11224 Qualified(::std::boxed::Box<Qualified<'tree>>),
11225}
11226impl<'tree> ::treesitter_types::FromNode<'tree> for DerivingInstanceName<'tree> {
11227 #[allow(clippy::collapsible_else_if)]
11228 fn from_node(
11229 node: ::tree_sitter::Node<'tree>,
11230 src: &'tree [u8],
11231 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11232 match node.kind() {
11233 "name" => Ok(Self::Name(::std::boxed::Box::new(
11234 <Name as ::treesitter_types::FromNode>::from_node(node, src)?,
11235 ))),
11236 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
11237 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
11238 ))),
11239 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
11240 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
11241 ))),
11242 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11243 }
11244 }
11245}
11246impl ::treesitter_types::Spanned for DerivingInstanceName<'_> {
11247 fn span(&self) -> ::treesitter_types::Span {
11248 match self {
11249 Self::Name(inner) => inner.span(),
11250 Self::PrefixId(inner) => inner.span(),
11251 Self::Qualified(inner) => inner.span(),
11252 }
11253 }
11254}
11255#[derive(Debug, Clone)]
11256pub enum DerivingInstanceChildren<'tree> {
11257 Infix(::std::boxed::Box<Infix<'tree>>),
11258 Parens(::std::boxed::Box<Parens<'tree>>),
11259}
11260impl<'tree> ::treesitter_types::FromNode<'tree> for DerivingInstanceChildren<'tree> {
11261 #[allow(clippy::collapsible_else_if)]
11262 fn from_node(
11263 node: ::tree_sitter::Node<'tree>,
11264 src: &'tree [u8],
11265 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11266 match node.kind() {
11267 "infix" => Ok(Self::Infix(::std::boxed::Box::new(
11268 <Infix as ::treesitter_types::FromNode>::from_node(node, src)?,
11269 ))),
11270 "parens" => Ok(Self::Parens(::std::boxed::Box::new(
11271 <Parens as ::treesitter_types::FromNode>::from_node(node, src)?,
11272 ))),
11273 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11274 }
11275 }
11276}
11277impl ::treesitter_types::Spanned for DerivingInstanceChildren<'_> {
11278 fn span(&self) -> ::treesitter_types::Span {
11279 match self {
11280 Self::Infix(inner) => inner.span(),
11281 Self::Parens(inner) => inner.span(),
11282 }
11283 }
11284}
11285#[derive(Debug, Clone)]
11286pub enum DoModuleId {
11287 Do(::treesitter_types::Span),
11288 Mdo(::treesitter_types::Span),
11289}
11290impl<'tree> ::treesitter_types::FromNode<'tree> for DoModuleId {
11291 #[allow(clippy::collapsible_else_if)]
11292 fn from_node(
11293 node: ::tree_sitter::Node<'tree>,
11294 _src: &'tree [u8],
11295 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11296 match node.kind() {
11297 "do" => Ok(Self::Do(::treesitter_types::Span::from(node))),
11298 "mdo" => Ok(Self::Mdo(::treesitter_types::Span::from(node))),
11299 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11300 }
11301 }
11302}
11303impl ::treesitter_types::Spanned for DoModuleId {
11304 fn span(&self) -> ::treesitter_types::Span {
11305 match self {
11306 Self::Do(span) => *span,
11307 Self::Mdo(span) => *span,
11308 }
11309 }
11310}
11311#[derive(Debug, Clone)]
11312pub enum EquationForall<'tree> {
11313 Forall(::std::boxed::Box<Forall<'tree>>),
11314 ForallRequired(::std::boxed::Box<ForallRequired<'tree>>),
11315}
11316impl<'tree> ::treesitter_types::FromNode<'tree> for EquationForall<'tree> {
11317 #[allow(clippy::collapsible_else_if)]
11318 fn from_node(
11319 node: ::tree_sitter::Node<'tree>,
11320 src: &'tree [u8],
11321 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11322 match node.kind() {
11323 "forall" => Ok(Self::Forall(::std::boxed::Box::new(
11324 <Forall as ::treesitter_types::FromNode>::from_node(node, src)?,
11325 ))),
11326 "forall_required" => Ok(Self::ForallRequired(::std::boxed::Box::new(
11327 <ForallRequired as ::treesitter_types::FromNode>::from_node(node, src)?,
11328 ))),
11329 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11330 }
11331 }
11332}
11333impl ::treesitter_types::Spanned for EquationForall<'_> {
11334 fn span(&self) -> ::treesitter_types::Span {
11335 match self {
11336 Self::Forall(inner) => inner.span(),
11337 Self::ForallRequired(inner) => inner.span(),
11338 }
11339 }
11340}
11341#[derive(Debug, Clone)]
11342pub enum EquationName<'tree> {
11343 Name(::std::boxed::Box<Name<'tree>>),
11344 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
11345 Qualified(::std::boxed::Box<Qualified<'tree>>),
11346}
11347impl<'tree> ::treesitter_types::FromNode<'tree> for EquationName<'tree> {
11348 #[allow(clippy::collapsible_else_if)]
11349 fn from_node(
11350 node: ::tree_sitter::Node<'tree>,
11351 src: &'tree [u8],
11352 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11353 match node.kind() {
11354 "name" => Ok(Self::Name(::std::boxed::Box::new(
11355 <Name as ::treesitter_types::FromNode>::from_node(node, src)?,
11356 ))),
11357 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
11358 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
11359 ))),
11360 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
11361 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
11362 ))),
11363 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11364 }
11365 }
11366}
11367impl ::treesitter_types::Spanned for EquationName<'_> {
11368 fn span(&self) -> ::treesitter_types::Span {
11369 match self {
11370 Self::Name(inner) => inner.span(),
11371 Self::PrefixId(inner) => inner.span(),
11372 Self::Qualified(inner) => inner.span(),
11373 }
11374 }
11375}
11376#[derive(Debug, Clone)]
11377pub enum EquationPattern<'tree> {
11378 Pattern(::std::boxed::Box<Pattern<'tree>>),
11379 Signature(::std::boxed::Box<Signature<'tree>>),
11380}
11381impl<'tree> ::treesitter_types::FromNode<'tree> for EquationPattern<'tree> {
11382 #[allow(clippy::collapsible_else_if)]
11383 fn from_node(
11384 node: ::tree_sitter::Node<'tree>,
11385 src: &'tree [u8],
11386 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11387 match node.kind() {
11388 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
11389 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
11390 ))),
11391 _other => {
11392 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
11393 Ok(Self::Pattern(::std::boxed::Box::new(v)))
11394 } else {
11395 Err(::treesitter_types::ParseError::unexpected_kind(
11396 _other, node,
11397 ))
11398 }
11399 }
11400 }
11401 }
11402}
11403impl ::treesitter_types::Spanned for EquationPattern<'_> {
11404 fn span(&self) -> ::treesitter_types::Span {
11405 match self {
11406 Self::Pattern(inner) => inner.span(),
11407 Self::Signature(inner) => inner.span(),
11408 }
11409 }
11410}
11411#[derive(Debug, Clone)]
11412pub enum EquationChildren<'tree> {
11413 Infix(::std::boxed::Box<Infix<'tree>>),
11414 Parens(::std::boxed::Box<Parens<'tree>>),
11415 QuantifiedType(::std::boxed::Box<QuantifiedType<'tree>>),
11416}
11417impl<'tree> ::treesitter_types::FromNode<'tree> for EquationChildren<'tree> {
11418 #[allow(clippy::collapsible_else_if)]
11419 fn from_node(
11420 node: ::tree_sitter::Node<'tree>,
11421 src: &'tree [u8],
11422 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11423 match node.kind() {
11424 "infix" => Ok(Self::Infix(::std::boxed::Box::new(
11425 <Infix as ::treesitter_types::FromNode>::from_node(node, src)?,
11426 ))),
11427 "parens" => Ok(Self::Parens(::std::boxed::Box::new(
11428 <Parens as ::treesitter_types::FromNode>::from_node(node, src)?,
11429 ))),
11430 _other => {
11431 if let Ok(v) =
11432 <QuantifiedType as ::treesitter_types::FromNode>::from_node(node, src)
11433 {
11434 Ok(Self::QuantifiedType(::std::boxed::Box::new(v)))
11435 } else {
11436 Err(::treesitter_types::ParseError::unexpected_kind(
11437 _other, node,
11438 ))
11439 }
11440 }
11441 }
11442 }
11443}
11444impl ::treesitter_types::Spanned for EquationChildren<'_> {
11445 fn span(&self) -> ::treesitter_types::Span {
11446 match self {
11447 Self::Infix(inner) => inner.span(),
11448 Self::Parens(inner) => inner.span(),
11449 Self::QuantifiedType(inner) => inner.span(),
11450 }
11451 }
11452}
11453#[derive(Debug, Clone)]
11454pub enum ExpChildren<'tree> {
11455 Expression(::std::boxed::Box<Expression<'tree>>),
11456 Signature(::std::boxed::Box<Signature<'tree>>),
11457}
11458impl<'tree> ::treesitter_types::FromNode<'tree> for ExpChildren<'tree> {
11459 #[allow(clippy::collapsible_else_if)]
11460 fn from_node(
11461 node: ::tree_sitter::Node<'tree>,
11462 src: &'tree [u8],
11463 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11464 match node.kind() {
11465 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
11466 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
11467 ))),
11468 _other => {
11469 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
11470 Ok(Self::Expression(::std::boxed::Box::new(v)))
11471 } else {
11472 Err(::treesitter_types::ParseError::unexpected_kind(
11473 _other, node,
11474 ))
11475 }
11476 }
11477 }
11478 }
11479}
11480impl ::treesitter_types::Spanned for ExpChildren<'_> {
11481 fn span(&self) -> ::treesitter_types::Span {
11482 match self {
11483 Self::Expression(inner) => inner.span(),
11484 Self::Signature(inner) => inner.span(),
11485 }
11486 }
11487}
11488#[derive(Debug, Clone)]
11489pub enum ExportType<'tree> {
11490 Name(::std::boxed::Box<Name<'tree>>),
11491 Qualified(::std::boxed::Box<Qualified<'tree>>),
11492}
11493impl<'tree> ::treesitter_types::FromNode<'tree> for ExportType<'tree> {
11494 #[allow(clippy::collapsible_else_if)]
11495 fn from_node(
11496 node: ::tree_sitter::Node<'tree>,
11497 src: &'tree [u8],
11498 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11499 match node.kind() {
11500 "name" => Ok(Self::Name(::std::boxed::Box::new(
11501 <Name as ::treesitter_types::FromNode>::from_node(node, src)?,
11502 ))),
11503 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
11504 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
11505 ))),
11506 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11507 }
11508 }
11509}
11510impl ::treesitter_types::Spanned for ExportType<'_> {
11511 fn span(&self) -> ::treesitter_types::Span {
11512 match self {
11513 Self::Name(inner) => inner.span(),
11514 Self::Qualified(inner) => inner.span(),
11515 }
11516 }
11517}
11518#[derive(Debug, Clone)]
11519pub enum ExportVariable<'tree> {
11520 Qualified(::std::boxed::Box<Qualified<'tree>>),
11521 Variable(::std::boxed::Box<Variable<'tree>>),
11522}
11523impl<'tree> ::treesitter_types::FromNode<'tree> for ExportVariable<'tree> {
11524 #[allow(clippy::collapsible_else_if)]
11525 fn from_node(
11526 node: ::tree_sitter::Node<'tree>,
11527 src: &'tree [u8],
11528 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11529 match node.kind() {
11530 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
11531 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
11532 ))),
11533 "variable" => Ok(Self::Variable(::std::boxed::Box::new(
11534 <Variable as ::treesitter_types::FromNode>::from_node(node, src)?,
11535 ))),
11536 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11537 }
11538 }
11539}
11540impl ::treesitter_types::Spanned for ExportVariable<'_> {
11541 fn span(&self) -> ::treesitter_types::Span {
11542 match self {
11543 Self::Qualified(inner) => inner.span(),
11544 Self::Variable(inner) => inner.span(),
11545 }
11546 }
11547}
11548#[derive(Debug, Clone)]
11549pub enum FieldParameter<'tree> {
11550 LazyField(::std::boxed::Box<LazyField<'tree>>),
11551 QuantifiedType(::std::boxed::Box<QuantifiedType<'tree>>),
11552 StrictField(::std::boxed::Box<StrictField<'tree>>),
11553}
11554impl<'tree> ::treesitter_types::FromNode<'tree> for FieldParameter<'tree> {
11555 #[allow(clippy::collapsible_else_if)]
11556 fn from_node(
11557 node: ::tree_sitter::Node<'tree>,
11558 src: &'tree [u8],
11559 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11560 match node.kind() {
11561 "lazy_field" => Ok(Self::LazyField(::std::boxed::Box::new(
11562 <LazyField as ::treesitter_types::FromNode>::from_node(node, src)?,
11563 ))),
11564 "strict_field" => Ok(Self::StrictField(::std::boxed::Box::new(
11565 <StrictField as ::treesitter_types::FromNode>::from_node(node, src)?,
11566 ))),
11567 _other => {
11568 if let Ok(v) =
11569 <QuantifiedType as ::treesitter_types::FromNode>::from_node(node, src)
11570 {
11571 Ok(Self::QuantifiedType(::std::boxed::Box::new(v)))
11572 } else {
11573 Err(::treesitter_types::ParseError::unexpected_kind(
11574 _other, node,
11575 ))
11576 }
11577 }
11578 }
11579 }
11580}
11581impl ::treesitter_types::Spanned for FieldParameter<'_> {
11582 fn span(&self) -> ::treesitter_types::Span {
11583 match self {
11584 Self::LazyField(inner) => inner.span(),
11585 Self::QuantifiedType(inner) => inner.span(),
11586 Self::StrictField(inner) => inner.span(),
11587 }
11588 }
11589}
11590#[derive(Debug, Clone)]
11591pub enum FieldType<'tree> {
11592 LazyField(::std::boxed::Box<LazyField<'tree>>),
11593 QuantifiedType(::std::boxed::Box<QuantifiedType<'tree>>),
11594 StrictField(::std::boxed::Box<StrictField<'tree>>),
11595}
11596impl<'tree> ::treesitter_types::FromNode<'tree> for FieldType<'tree> {
11597 #[allow(clippy::collapsible_else_if)]
11598 fn from_node(
11599 node: ::tree_sitter::Node<'tree>,
11600 src: &'tree [u8],
11601 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11602 match node.kind() {
11603 "lazy_field" => Ok(Self::LazyField(::std::boxed::Box::new(
11604 <LazyField as ::treesitter_types::FromNode>::from_node(node, src)?,
11605 ))),
11606 "strict_field" => Ok(Self::StrictField(::std::boxed::Box::new(
11607 <StrictField as ::treesitter_types::FromNode>::from_node(node, src)?,
11608 ))),
11609 _other => {
11610 if let Ok(v) =
11611 <QuantifiedType as ::treesitter_types::FromNode>::from_node(node, src)
11612 {
11613 Ok(Self::QuantifiedType(::std::boxed::Box::new(v)))
11614 } else {
11615 Err(::treesitter_types::ParseError::unexpected_kind(
11616 _other, node,
11617 ))
11618 }
11619 }
11620 }
11621 }
11622}
11623impl ::treesitter_types::Spanned for FieldType<'_> {
11624 fn span(&self) -> ::treesitter_types::Span {
11625 match self {
11626 Self::LazyField(inner) => inner.span(),
11627 Self::QuantifiedType(inner) => inner.span(),
11628 Self::StrictField(inner) => inner.span(),
11629 }
11630 }
11631}
11632#[derive(Debug, Clone)]
11633pub enum FieldPathField<'tree> {
11634 FieldName(::std::boxed::Box<FieldName<'tree>>),
11635 Qualified(::std::boxed::Box<Qualified<'tree>>),
11636}
11637impl<'tree> ::treesitter_types::FromNode<'tree> for FieldPathField<'tree> {
11638 #[allow(clippy::collapsible_else_if)]
11639 fn from_node(
11640 node: ::tree_sitter::Node<'tree>,
11641 src: &'tree [u8],
11642 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11643 match node.kind() {
11644 "field_name" => Ok(Self::FieldName(::std::boxed::Box::new(
11645 <FieldName as ::treesitter_types::FromNode>::from_node(node, src)?,
11646 ))),
11647 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
11648 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
11649 ))),
11650 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11651 }
11652 }
11653}
11654impl ::treesitter_types::Spanned for FieldPathField<'_> {
11655 fn span(&self) -> ::treesitter_types::Span {
11656 match self {
11657 Self::FieldName(inner) => inner.span(),
11658 Self::Qualified(inner) => inner.span(),
11659 }
11660 }
11661}
11662#[derive(Debug, Clone)]
11663pub enum FieldPatternField<'tree> {
11664 FieldName(::std::boxed::Box<FieldName<'tree>>),
11665 Qualified(::std::boxed::Box<Qualified<'tree>>),
11666}
11667impl<'tree> ::treesitter_types::FromNode<'tree> for FieldPatternField<'tree> {
11668 #[allow(clippy::collapsible_else_if)]
11669 fn from_node(
11670 node: ::tree_sitter::Node<'tree>,
11671 src: &'tree [u8],
11672 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11673 match node.kind() {
11674 "field_name" => Ok(Self::FieldName(::std::boxed::Box::new(
11675 <FieldName as ::treesitter_types::FromNode>::from_node(node, src)?,
11676 ))),
11677 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
11678 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
11679 ))),
11680 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11681 }
11682 }
11683}
11684impl ::treesitter_types::Spanned for FieldPatternField<'_> {
11685 fn span(&self) -> ::treesitter_types::Span {
11686 match self {
11687 Self::FieldName(inner) => inner.span(),
11688 Self::Qualified(inner) => inner.span(),
11689 }
11690 }
11691}
11692#[derive(Debug, Clone)]
11693pub enum FieldPatternPattern<'tree> {
11694 Pattern(::std::boxed::Box<Pattern<'tree>>),
11695 Signature(::std::boxed::Box<Signature<'tree>>),
11696 ViewPattern(::std::boxed::Box<ViewPattern<'tree>>),
11697}
11698impl<'tree> ::treesitter_types::FromNode<'tree> for FieldPatternPattern<'tree> {
11699 #[allow(clippy::collapsible_else_if)]
11700 fn from_node(
11701 node: ::tree_sitter::Node<'tree>,
11702 src: &'tree [u8],
11703 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11704 match node.kind() {
11705 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
11706 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
11707 ))),
11708 "view_pattern" => Ok(Self::ViewPattern(::std::boxed::Box::new(
11709 <ViewPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
11710 ))),
11711 _other => {
11712 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
11713 Ok(Self::Pattern(::std::boxed::Box::new(v)))
11714 } else {
11715 Err(::treesitter_types::ParseError::unexpected_kind(
11716 _other, node,
11717 ))
11718 }
11719 }
11720 }
11721 }
11722}
11723impl ::treesitter_types::Spanned for FieldPatternPattern<'_> {
11724 fn span(&self) -> ::treesitter_types::Span {
11725 match self {
11726 Self::Pattern(inner) => inner.span(),
11727 Self::Signature(inner) => inner.span(),
11728 Self::ViewPattern(inner) => inner.span(),
11729 }
11730 }
11731}
11732#[derive(Debug, Clone)]
11733pub enum FieldUpdateExpression<'tree> {
11734 Expression(::std::boxed::Box<Expression<'tree>>),
11735 Signature(::std::boxed::Box<Signature<'tree>>),
11736}
11737impl<'tree> ::treesitter_types::FromNode<'tree> for FieldUpdateExpression<'tree> {
11738 #[allow(clippy::collapsible_else_if)]
11739 fn from_node(
11740 node: ::tree_sitter::Node<'tree>,
11741 src: &'tree [u8],
11742 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11743 match node.kind() {
11744 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
11745 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
11746 ))),
11747 _other => {
11748 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
11749 Ok(Self::Expression(::std::boxed::Box::new(v)))
11750 } else {
11751 Err(::treesitter_types::ParseError::unexpected_kind(
11752 _other, node,
11753 ))
11754 }
11755 }
11756 }
11757 }
11758}
11759impl ::treesitter_types::Spanned for FieldUpdateExpression<'_> {
11760 fn span(&self) -> ::treesitter_types::Span {
11761 match self {
11762 Self::Expression(inner) => inner.span(),
11763 Self::Signature(inner) => inner.span(),
11764 }
11765 }
11766}
11767#[derive(Debug, Clone)]
11768pub enum FieldUpdateField<'tree> {
11769 FieldName(::std::boxed::Box<FieldName<'tree>>),
11770 FieldPath(::std::boxed::Box<FieldPath<'tree>>),
11771 Qualified(::std::boxed::Box<Qualified<'tree>>),
11772}
11773impl<'tree> ::treesitter_types::FromNode<'tree> for FieldUpdateField<'tree> {
11774 #[allow(clippy::collapsible_else_if)]
11775 fn from_node(
11776 node: ::tree_sitter::Node<'tree>,
11777 src: &'tree [u8],
11778 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11779 match node.kind() {
11780 "field_name" => Ok(Self::FieldName(::std::boxed::Box::new(
11781 <FieldName as ::treesitter_types::FromNode>::from_node(node, src)?,
11782 ))),
11783 "field_path" => Ok(Self::FieldPath(::std::boxed::Box::new(
11784 <FieldPath as ::treesitter_types::FromNode>::from_node(node, src)?,
11785 ))),
11786 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
11787 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
11788 ))),
11789 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11790 }
11791 }
11792}
11793impl ::treesitter_types::Spanned for FieldUpdateField<'_> {
11794 fn span(&self) -> ::treesitter_types::Span {
11795 match self {
11796 Self::FieldName(inner) => inner.span(),
11797 Self::FieldPath(inner) => inner.span(),
11798 Self::Qualified(inner) => inner.span(),
11799 }
11800 }
11801}
11802#[derive(Debug, Clone)]
11803pub enum FixityAssociativity {
11804 Infix(::treesitter_types::Span),
11805 Infixl(::treesitter_types::Span),
11806 Infixr(::treesitter_types::Span),
11807}
11808impl<'tree> ::treesitter_types::FromNode<'tree> for FixityAssociativity {
11809 #[allow(clippy::collapsible_else_if)]
11810 fn from_node(
11811 node: ::tree_sitter::Node<'tree>,
11812 _src: &'tree [u8],
11813 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11814 match node.kind() {
11815 "infix" => Ok(Self::Infix(::treesitter_types::Span::from(node))),
11816 "infixl" => Ok(Self::Infixl(::treesitter_types::Span::from(node))),
11817 "infixr" => Ok(Self::Infixr(::treesitter_types::Span::from(node))),
11818 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11819 }
11820 }
11821}
11822impl ::treesitter_types::Spanned for FixityAssociativity {
11823 fn span(&self) -> ::treesitter_types::Span {
11824 match self {
11825 Self::Infix(span) => *span,
11826 Self::Infixl(span) => *span,
11827 Self::Infixr(span) => *span,
11828 }
11829 }
11830}
11831#[derive(Debug, Clone)]
11832pub enum FixityOperator<'tree> {
11833 Comma(::treesitter_types::Span),
11834 ConstructorOperator(::std::boxed::Box<ConstructorOperator<'tree>>),
11835 InfixId(::std::boxed::Box<InfixId<'tree>>),
11836 Operator(::std::boxed::Box<Operator<'tree>>),
11837}
11838impl<'tree> ::treesitter_types::FromNode<'tree> for FixityOperator<'tree> {
11839 #[allow(clippy::collapsible_else_if)]
11840 fn from_node(
11841 node: ::tree_sitter::Node<'tree>,
11842 src: &'tree [u8],
11843 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11844 match node.kind() {
11845 "," => Ok(Self::Comma(::treesitter_types::Span::from(node))),
11846 "constructor_operator" => Ok(Self::ConstructorOperator(::std::boxed::Box::new(
11847 <ConstructorOperator as ::treesitter_types::FromNode>::from_node(node, src)?,
11848 ))),
11849 "infix_id" => Ok(Self::InfixId(::std::boxed::Box::new(
11850 <InfixId as ::treesitter_types::FromNode>::from_node(node, src)?,
11851 ))),
11852 "operator" => Ok(Self::Operator(::std::boxed::Box::new(
11853 <Operator as ::treesitter_types::FromNode>::from_node(node, src)?,
11854 ))),
11855 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11856 }
11857 }
11858}
11859impl ::treesitter_types::Spanned for FixityOperator<'_> {
11860 fn span(&self) -> ::treesitter_types::Span {
11861 match self {
11862 Self::Comma(span) => *span,
11863 Self::ConstructorOperator(inner) => inner.span(),
11864 Self::InfixId(inner) => inner.span(),
11865 Self::Operator(inner) => inner.span(),
11866 }
11867 }
11868}
11869#[derive(Debug, Clone)]
11870pub enum ForallQuantifier {
11871 Forall(::treesitter_types::Span),
11872 X(::treesitter_types::Span),
11873}
11874impl<'tree> ::treesitter_types::FromNode<'tree> for ForallQuantifier {
11875 #[allow(clippy::collapsible_else_if)]
11876 fn from_node(
11877 node: ::tree_sitter::Node<'tree>,
11878 _src: &'tree [u8],
11879 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11880 match node.kind() {
11881 "forall" => Ok(Self::Forall(::treesitter_types::Span::from(node))),
11882 "∀" => Ok(Self::X(::treesitter_types::Span::from(node))),
11883 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11884 }
11885 }
11886}
11887impl ::treesitter_types::Spanned for ForallQuantifier {
11888 fn span(&self) -> ::treesitter_types::Span {
11889 match self {
11890 Self::Forall(span) => *span,
11891 Self::X(span) => *span,
11892 }
11893 }
11894}
11895#[derive(Debug, Clone)]
11896pub enum ForallRequiredQuantifier {
11897 Forall(::treesitter_types::Span),
11898 X(::treesitter_types::Span),
11899}
11900impl<'tree> ::treesitter_types::FromNode<'tree> for ForallRequiredQuantifier {
11901 #[allow(clippy::collapsible_else_if)]
11902 fn from_node(
11903 node: ::tree_sitter::Node<'tree>,
11904 _src: &'tree [u8],
11905 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11906 match node.kind() {
11907 "forall" => Ok(Self::Forall(::treesitter_types::Span::from(node))),
11908 "∀" => Ok(Self::X(::treesitter_types::Span::from(node))),
11909 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11910 }
11911 }
11912}
11913impl ::treesitter_types::Spanned for ForallRequiredQuantifier {
11914 fn span(&self) -> ::treesitter_types::Span {
11915 match self {
11916 Self::Forall(span) => *span,
11917 Self::X(span) => *span,
11918 }
11919 }
11920}
11921#[derive(Debug, Clone)]
11922pub enum FunctionArrow {
11923 Arrow(::treesitter_types::Span),
11924 X(::treesitter_types::Span),
11925}
11926impl<'tree> ::treesitter_types::FromNode<'tree> for FunctionArrow {
11927 #[allow(clippy::collapsible_else_if)]
11928 fn from_node(
11929 node: ::tree_sitter::Node<'tree>,
11930 _src: &'tree [u8],
11931 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11932 match node.kind() {
11933 "->" => Ok(Self::Arrow(::treesitter_types::Span::from(node))),
11934 "→" => Ok(Self::X(::treesitter_types::Span::from(node))),
11935 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11936 }
11937 }
11938}
11939impl ::treesitter_types::Spanned for FunctionArrow {
11940 fn span(&self) -> ::treesitter_types::Span {
11941 match self {
11942 Self::Arrow(span) => *span,
11943 Self::X(span) => *span,
11944 }
11945 }
11946}
11947#[derive(Debug, Clone)]
11948pub enum FunctionName<'tree> {
11949 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
11950 Variable(::std::boxed::Box<Variable<'tree>>),
11951}
11952impl<'tree> ::treesitter_types::FromNode<'tree> for FunctionName<'tree> {
11953 #[allow(clippy::collapsible_else_if)]
11954 fn from_node(
11955 node: ::tree_sitter::Node<'tree>,
11956 src: &'tree [u8],
11957 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11958 match node.kind() {
11959 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
11960 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
11961 ))),
11962 "variable" => Ok(Self::Variable(::std::boxed::Box::new(
11963 <Variable as ::treesitter_types::FromNode>::from_node(node, src)?,
11964 ))),
11965 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
11966 }
11967 }
11968}
11969impl ::treesitter_types::Spanned for FunctionName<'_> {
11970 fn span(&self) -> ::treesitter_types::Span {
11971 match self {
11972 Self::PrefixId(inner) => inner.span(),
11973 Self::Variable(inner) => inner.span(),
11974 }
11975 }
11976}
11977#[derive(Debug, Clone)]
11978pub enum FunctionParameter<'tree> {
11979 LazyField(::std::boxed::Box<LazyField<'tree>>),
11980 QuantifiedType(::std::boxed::Box<QuantifiedType<'tree>>),
11981 StrictField(::std::boxed::Box<StrictField<'tree>>),
11982}
11983impl<'tree> ::treesitter_types::FromNode<'tree> for FunctionParameter<'tree> {
11984 #[allow(clippy::collapsible_else_if)]
11985 fn from_node(
11986 node: ::tree_sitter::Node<'tree>,
11987 src: &'tree [u8],
11988 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
11989 match node.kind() {
11990 "lazy_field" => Ok(Self::LazyField(::std::boxed::Box::new(
11991 <LazyField as ::treesitter_types::FromNode>::from_node(node, src)?,
11992 ))),
11993 "strict_field" => Ok(Self::StrictField(::std::boxed::Box::new(
11994 <StrictField as ::treesitter_types::FromNode>::from_node(node, src)?,
11995 ))),
11996 _other => {
11997 if let Ok(v) =
11998 <QuantifiedType as ::treesitter_types::FromNode>::from_node(node, src)
11999 {
12000 Ok(Self::QuantifiedType(::std::boxed::Box::new(v)))
12001 } else {
12002 Err(::treesitter_types::ParseError::unexpected_kind(
12003 _other, node,
12004 ))
12005 }
12006 }
12007 }
12008 }
12009}
12010impl ::treesitter_types::Spanned for FunctionParameter<'_> {
12011 fn span(&self) -> ::treesitter_types::Span {
12012 match self {
12013 Self::LazyField(inner) => inner.span(),
12014 Self::QuantifiedType(inner) => inner.span(),
12015 Self::StrictField(inner) => inner.span(),
12016 }
12017 }
12018}
12019#[derive(Debug, Clone)]
12020pub enum FunctionHeadParensName<'tree> {
12021 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
12022 Variable(::std::boxed::Box<Variable<'tree>>),
12023}
12024impl<'tree> ::treesitter_types::FromNode<'tree> for FunctionHeadParensName<'tree> {
12025 #[allow(clippy::collapsible_else_if)]
12026 fn from_node(
12027 node: ::tree_sitter::Node<'tree>,
12028 src: &'tree [u8],
12029 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12030 match node.kind() {
12031 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
12032 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
12033 ))),
12034 "variable" => Ok(Self::Variable(::std::boxed::Box::new(
12035 <Variable as ::treesitter_types::FromNode>::from_node(node, src)?,
12036 ))),
12037 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12038 }
12039 }
12040}
12041impl ::treesitter_types::Spanned for FunctionHeadParensName<'_> {
12042 fn span(&self) -> ::treesitter_types::Span {
12043 match self {
12044 Self::PrefixId(inner) => inner.span(),
12045 Self::Variable(inner) => inner.span(),
12046 }
12047 }
12048}
12049#[derive(Debug, Clone)]
12050pub enum GadtConstructorForall<'tree> {
12051 Forall(::std::boxed::Box<Forall<'tree>>),
12052 ForallRequired(::std::boxed::Box<ForallRequired<'tree>>),
12053}
12054impl<'tree> ::treesitter_types::FromNode<'tree> for GadtConstructorForall<'tree> {
12055 #[allow(clippy::collapsible_else_if)]
12056 fn from_node(
12057 node: ::tree_sitter::Node<'tree>,
12058 src: &'tree [u8],
12059 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12060 match node.kind() {
12061 "forall" => Ok(Self::Forall(::std::boxed::Box::new(
12062 <Forall as ::treesitter_types::FromNode>::from_node(node, src)?,
12063 ))),
12064 "forall_required" => Ok(Self::ForallRequired(::std::boxed::Box::new(
12065 <ForallRequired as ::treesitter_types::FromNode>::from_node(node, src)?,
12066 ))),
12067 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12068 }
12069 }
12070}
12071impl ::treesitter_types::Spanned for GadtConstructorForall<'_> {
12072 fn span(&self) -> ::treesitter_types::Span {
12073 match self {
12074 Self::Forall(inner) => inner.span(),
12075 Self::ForallRequired(inner) => inner.span(),
12076 }
12077 }
12078}
12079#[derive(Debug, Clone)]
12080pub enum GadtConstructorName<'tree> {
12081 Constructor(::std::boxed::Box<Constructor<'tree>>),
12082 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
12083}
12084impl<'tree> ::treesitter_types::FromNode<'tree> for GadtConstructorName<'tree> {
12085 #[allow(clippy::collapsible_else_if)]
12086 fn from_node(
12087 node: ::tree_sitter::Node<'tree>,
12088 src: &'tree [u8],
12089 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12090 match node.kind() {
12091 "constructor" => Ok(Self::Constructor(::std::boxed::Box::new(
12092 <Constructor as ::treesitter_types::FromNode>::from_node(node, src)?,
12093 ))),
12094 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
12095 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
12096 ))),
12097 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12098 }
12099 }
12100}
12101impl ::treesitter_types::Spanned for GadtConstructorName<'_> {
12102 fn span(&self) -> ::treesitter_types::Span {
12103 match self {
12104 Self::Constructor(inner) => inner.span(),
12105 Self::PrefixId(inner) => inner.span(),
12106 }
12107 }
12108}
12109#[derive(Debug, Clone)]
12110pub enum GadtConstructorType<'tree> {
12111 Prefix(::std::boxed::Box<Prefix<'tree>>),
12112 Record(::std::boxed::Box<Record<'tree>>),
12113}
12114impl<'tree> ::treesitter_types::FromNode<'tree> for GadtConstructorType<'tree> {
12115 #[allow(clippy::collapsible_else_if)]
12116 fn from_node(
12117 node: ::tree_sitter::Node<'tree>,
12118 src: &'tree [u8],
12119 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12120 match node.kind() {
12121 "prefix" => Ok(Self::Prefix(::std::boxed::Box::new(
12122 <Prefix as ::treesitter_types::FromNode>::from_node(node, src)?,
12123 ))),
12124 "record" => Ok(Self::Record(::std::boxed::Box::new(
12125 <Record as ::treesitter_types::FromNode>::from_node(node, src)?,
12126 ))),
12127 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12128 }
12129 }
12130}
12131impl ::treesitter_types::Spanned for GadtConstructorType<'_> {
12132 fn span(&self) -> ::treesitter_types::Span {
12133 match self {
12134 Self::Prefix(inner) => inner.span(),
12135 Self::Record(inner) => inner.span(),
12136 }
12137 }
12138}
12139#[derive(Debug, Clone)]
12140pub enum GeneratorArrow {
12141 LArrow(::treesitter_types::Span),
12142 X(::treesitter_types::Span),
12143}
12144impl<'tree> ::treesitter_types::FromNode<'tree> for GeneratorArrow {
12145 #[allow(clippy::collapsible_else_if)]
12146 fn from_node(
12147 node: ::tree_sitter::Node<'tree>,
12148 _src: &'tree [u8],
12149 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12150 match node.kind() {
12151 "<-" => Ok(Self::LArrow(::treesitter_types::Span::from(node))),
12152 "←" => Ok(Self::X(::treesitter_types::Span::from(node))),
12153 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12154 }
12155 }
12156}
12157impl ::treesitter_types::Spanned for GeneratorArrow {
12158 fn span(&self) -> ::treesitter_types::Span {
12159 match self {
12160 Self::LArrow(span) => *span,
12161 Self::X(span) => *span,
12162 }
12163 }
12164}
12165#[derive(Debug, Clone)]
12166pub enum GeneratorExpression<'tree> {
12167 Expression(::std::boxed::Box<Expression<'tree>>),
12168 Signature(::std::boxed::Box<Signature<'tree>>),
12169}
12170impl<'tree> ::treesitter_types::FromNode<'tree> for GeneratorExpression<'tree> {
12171 #[allow(clippy::collapsible_else_if)]
12172 fn from_node(
12173 node: ::tree_sitter::Node<'tree>,
12174 src: &'tree [u8],
12175 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12176 match node.kind() {
12177 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
12178 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
12179 ))),
12180 _other => {
12181 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
12182 Ok(Self::Expression(::std::boxed::Box::new(v)))
12183 } else {
12184 Err(::treesitter_types::ParseError::unexpected_kind(
12185 _other, node,
12186 ))
12187 }
12188 }
12189 }
12190 }
12191}
12192impl ::treesitter_types::Spanned for GeneratorExpression<'_> {
12193 fn span(&self) -> ::treesitter_types::Span {
12194 match self {
12195 Self::Expression(inner) => inner.span(),
12196 Self::Signature(inner) => inner.span(),
12197 }
12198 }
12199}
12200#[derive(Debug, Clone)]
12201pub enum GeneratorPattern<'tree> {
12202 Pattern(::std::boxed::Box<Pattern<'tree>>),
12203 Signature(::std::boxed::Box<Signature<'tree>>),
12204}
12205impl<'tree> ::treesitter_types::FromNode<'tree> for GeneratorPattern<'tree> {
12206 #[allow(clippy::collapsible_else_if)]
12207 fn from_node(
12208 node: ::tree_sitter::Node<'tree>,
12209 src: &'tree [u8],
12210 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12211 match node.kind() {
12212 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
12213 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
12214 ))),
12215 _other => {
12216 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
12217 Ok(Self::Pattern(::std::boxed::Box::new(v)))
12218 } else {
12219 Err(::treesitter_types::ParseError::unexpected_kind(
12220 _other, node,
12221 ))
12222 }
12223 }
12224 }
12225 }
12226}
12227impl ::treesitter_types::Spanned for GeneratorPattern<'_> {
12228 fn span(&self) -> ::treesitter_types::Span {
12229 match self {
12230 Self::Pattern(inner) => inner.span(),
12231 Self::Signature(inner) => inner.span(),
12232 }
12233 }
12234}
12235#[derive(Debug, Clone)]
12236pub enum GroupClassifier<'tree> {
12237 Expression(::std::boxed::Box<Expression<'tree>>),
12238 Signature(::std::boxed::Box<Signature<'tree>>),
12239}
12240impl<'tree> ::treesitter_types::FromNode<'tree> for GroupClassifier<'tree> {
12241 #[allow(clippy::collapsible_else_if)]
12242 fn from_node(
12243 node: ::tree_sitter::Node<'tree>,
12244 src: &'tree [u8],
12245 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12246 match node.kind() {
12247 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
12248 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
12249 ))),
12250 _other => {
12251 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
12252 Ok(Self::Expression(::std::boxed::Box::new(v)))
12253 } else {
12254 Err(::treesitter_types::ParseError::unexpected_kind(
12255 _other, node,
12256 ))
12257 }
12258 }
12259 }
12260 }
12261}
12262impl ::treesitter_types::Spanned for GroupClassifier<'_> {
12263 fn span(&self) -> ::treesitter_types::Span {
12264 match self {
12265 Self::Expression(inner) => inner.span(),
12266 Self::Signature(inner) => inner.span(),
12267 }
12268 }
12269}
12270#[derive(Debug, Clone)]
12271pub enum GroupKey<'tree> {
12272 Expression(::std::boxed::Box<Expression<'tree>>),
12273 Signature(::std::boxed::Box<Signature<'tree>>),
12274}
12275impl<'tree> ::treesitter_types::FromNode<'tree> for GroupKey<'tree> {
12276 #[allow(clippy::collapsible_else_if)]
12277 fn from_node(
12278 node: ::tree_sitter::Node<'tree>,
12279 src: &'tree [u8],
12280 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12281 match node.kind() {
12282 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
12283 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
12284 ))),
12285 _other => {
12286 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
12287 Ok(Self::Expression(::std::boxed::Box::new(v)))
12288 } else {
12289 Err(::treesitter_types::ParseError::unexpected_kind(
12290 _other, node,
12291 ))
12292 }
12293 }
12294 }
12295 }
12296}
12297impl ::treesitter_types::Spanned for GroupKey<'_> {
12298 fn span(&self) -> ::treesitter_types::Span {
12299 match self {
12300 Self::Expression(inner) => inner.span(),
12301 Self::Signature(inner) => inner.span(),
12302 }
12303 }
12304}
12305#[derive(Debug, Clone)]
12306pub enum ImportNameType<'tree> {
12307 Name(::std::boxed::Box<Name<'tree>>),
12308 Qualified(::std::boxed::Box<Qualified<'tree>>),
12309}
12310impl<'tree> ::treesitter_types::FromNode<'tree> for ImportNameType<'tree> {
12311 #[allow(clippy::collapsible_else_if)]
12312 fn from_node(
12313 node: ::tree_sitter::Node<'tree>,
12314 src: &'tree [u8],
12315 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12316 match node.kind() {
12317 "name" => Ok(Self::Name(::std::boxed::Box::new(
12318 <Name as ::treesitter_types::FromNode>::from_node(node, src)?,
12319 ))),
12320 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
12321 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
12322 ))),
12323 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12324 }
12325 }
12326}
12327impl ::treesitter_types::Spanned for ImportNameType<'_> {
12328 fn span(&self) -> ::treesitter_types::Span {
12329 match self {
12330 Self::Name(inner) => inner.span(),
12331 Self::Qualified(inner) => inner.span(),
12332 }
12333 }
12334}
12335#[derive(Debug, Clone)]
12336pub enum ImportNameVariable<'tree> {
12337 Qualified(::std::boxed::Box<Qualified<'tree>>),
12338 Variable(::std::boxed::Box<Variable<'tree>>),
12339}
12340impl<'tree> ::treesitter_types::FromNode<'tree> for ImportNameVariable<'tree> {
12341 #[allow(clippy::collapsible_else_if)]
12342 fn from_node(
12343 node: ::tree_sitter::Node<'tree>,
12344 src: &'tree [u8],
12345 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12346 match node.kind() {
12347 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
12348 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
12349 ))),
12350 "variable" => Ok(Self::Variable(::std::boxed::Box::new(
12351 <Variable as ::treesitter_types::FromNode>::from_node(node, src)?,
12352 ))),
12353 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12354 }
12355 }
12356}
12357impl ::treesitter_types::Spanned for ImportNameVariable<'_> {
12358 fn span(&self) -> ::treesitter_types::Span {
12359 match self {
12360 Self::Qualified(inner) => inner.span(),
12361 Self::Variable(inner) => inner.span(),
12362 }
12363 }
12364}
12365#[derive(Debug, Clone)]
12366pub enum InferredChildren<'tree> {
12367 Annotated(::std::boxed::Box<Annotated<'tree>>),
12368 TypeParam(::std::boxed::Box<TypeParam<'tree>>),
12369}
12370impl<'tree> ::treesitter_types::FromNode<'tree> for InferredChildren<'tree> {
12371 #[allow(clippy::collapsible_else_if)]
12372 fn from_node(
12373 node: ::tree_sitter::Node<'tree>,
12374 src: &'tree [u8],
12375 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12376 match node.kind() {
12377 "annotated" => Ok(Self::Annotated(::std::boxed::Box::new(
12378 <Annotated as ::treesitter_types::FromNode>::from_node(node, src)?,
12379 ))),
12380 _other => {
12381 if let Ok(v) = <TypeParam as ::treesitter_types::FromNode>::from_node(node, src) {
12382 Ok(Self::TypeParam(::std::boxed::Box::new(v)))
12383 } else {
12384 Err(::treesitter_types::ParseError::unexpected_kind(
12385 _other, node,
12386 ))
12387 }
12388 }
12389 }
12390 }
12391}
12392impl ::treesitter_types::Spanned for InferredChildren<'_> {
12393 fn span(&self) -> ::treesitter_types::Span {
12394 match self {
12395 Self::Annotated(inner) => inner.span(),
12396 Self::TypeParam(inner) => inner.span(),
12397 }
12398 }
12399}
12400#[derive(Debug, Clone)]
12401pub enum InfixLeftOperand<'tree> {
12402 Expression(::std::boxed::Box<Expression<'tree>>),
12403 LazyField(::std::boxed::Box<LazyField<'tree>>),
12404 Pattern(::std::boxed::Box<Pattern<'tree>>),
12405 StrictField(::std::boxed::Box<StrictField<'tree>>),
12406 Type(::std::boxed::Box<Type<'tree>>),
12407 TypeParam(::std::boxed::Box<TypeParam<'tree>>),
12408}
12409impl<'tree> ::treesitter_types::FromNode<'tree> for InfixLeftOperand<'tree> {
12410 #[allow(clippy::collapsible_else_if)]
12411 fn from_node(
12412 node: ::tree_sitter::Node<'tree>,
12413 src: &'tree [u8],
12414 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12415 match node.kind() {
12416 "lazy_field" => Ok(Self::LazyField(::std::boxed::Box::new(
12417 <LazyField as ::treesitter_types::FromNode>::from_node(node, src)?,
12418 ))),
12419 "strict_field" => Ok(Self::StrictField(::std::boxed::Box::new(
12420 <StrictField as ::treesitter_types::FromNode>::from_node(node, src)?,
12421 ))),
12422 _other => {
12423 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
12424 Ok(Self::Expression(::std::boxed::Box::new(v)))
12425 } else {
12426 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
12427 Ok(Self::Pattern(::std::boxed::Box::new(v)))
12428 } else {
12429 if let Ok(v) = <Type as ::treesitter_types::FromNode>::from_node(node, src)
12430 {
12431 Ok(Self::Type(::std::boxed::Box::new(v)))
12432 } else {
12433 if let Ok(v) =
12434 <TypeParam as ::treesitter_types::FromNode>::from_node(node, src)
12435 {
12436 Ok(Self::TypeParam(::std::boxed::Box::new(v)))
12437 } else {
12438 Err(::treesitter_types::ParseError::unexpected_kind(
12439 _other, node,
12440 ))
12441 }
12442 }
12443 }
12444 }
12445 }
12446 }
12447 }
12448}
12449impl ::treesitter_types::Spanned for InfixLeftOperand<'_> {
12450 fn span(&self) -> ::treesitter_types::Span {
12451 match self {
12452 Self::Expression(inner) => inner.span(),
12453 Self::LazyField(inner) => inner.span(),
12454 Self::Pattern(inner) => inner.span(),
12455 Self::StrictField(inner) => inner.span(),
12456 Self::Type(inner) => inner.span(),
12457 Self::TypeParam(inner) => inner.span(),
12458 }
12459 }
12460}
12461#[derive(Debug, Clone)]
12462pub enum InfixOperator<'tree> {
12463 ConstructorOperator(::std::boxed::Box<ConstructorOperator<'tree>>),
12464 InfixId(::std::boxed::Box<InfixId<'tree>>),
12465 Operator(::std::boxed::Box<Operator<'tree>>),
12466 Promoted(::std::boxed::Box<Promoted<'tree>>),
12467 Qualified(::std::boxed::Box<Qualified<'tree>>),
12468}
12469impl<'tree> ::treesitter_types::FromNode<'tree> for InfixOperator<'tree> {
12470 #[allow(clippy::collapsible_else_if)]
12471 fn from_node(
12472 node: ::tree_sitter::Node<'tree>,
12473 src: &'tree [u8],
12474 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12475 match node.kind() {
12476 "constructor_operator" => Ok(Self::ConstructorOperator(::std::boxed::Box::new(
12477 <ConstructorOperator as ::treesitter_types::FromNode>::from_node(node, src)?,
12478 ))),
12479 "infix_id" => Ok(Self::InfixId(::std::boxed::Box::new(
12480 <InfixId as ::treesitter_types::FromNode>::from_node(node, src)?,
12481 ))),
12482 "operator" => Ok(Self::Operator(::std::boxed::Box::new(
12483 <Operator as ::treesitter_types::FromNode>::from_node(node, src)?,
12484 ))),
12485 "promoted" => Ok(Self::Promoted(::std::boxed::Box::new(
12486 <Promoted as ::treesitter_types::FromNode>::from_node(node, src)?,
12487 ))),
12488 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
12489 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
12490 ))),
12491 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12492 }
12493 }
12494}
12495impl ::treesitter_types::Spanned for InfixOperator<'_> {
12496 fn span(&self) -> ::treesitter_types::Span {
12497 match self {
12498 Self::ConstructorOperator(inner) => inner.span(),
12499 Self::InfixId(inner) => inner.span(),
12500 Self::Operator(inner) => inner.span(),
12501 Self::Promoted(inner) => inner.span(),
12502 Self::Qualified(inner) => inner.span(),
12503 }
12504 }
12505}
12506#[derive(Debug, Clone)]
12507pub enum InfixRightOperand<'tree> {
12508 Expression(::std::boxed::Box<Expression<'tree>>),
12509 LazyField(::std::boxed::Box<LazyField<'tree>>),
12510 Pattern(::std::boxed::Box<Pattern<'tree>>),
12511 StrictField(::std::boxed::Box<StrictField<'tree>>),
12512 Type(::std::boxed::Box<Type<'tree>>),
12513 TypeParam(::std::boxed::Box<TypeParam<'tree>>),
12514}
12515impl<'tree> ::treesitter_types::FromNode<'tree> for InfixRightOperand<'tree> {
12516 #[allow(clippy::collapsible_else_if)]
12517 fn from_node(
12518 node: ::tree_sitter::Node<'tree>,
12519 src: &'tree [u8],
12520 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12521 match node.kind() {
12522 "lazy_field" => Ok(Self::LazyField(::std::boxed::Box::new(
12523 <LazyField as ::treesitter_types::FromNode>::from_node(node, src)?,
12524 ))),
12525 "strict_field" => Ok(Self::StrictField(::std::boxed::Box::new(
12526 <StrictField as ::treesitter_types::FromNode>::from_node(node, src)?,
12527 ))),
12528 _other => {
12529 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
12530 Ok(Self::Expression(::std::boxed::Box::new(v)))
12531 } else {
12532 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
12533 Ok(Self::Pattern(::std::boxed::Box::new(v)))
12534 } else {
12535 if let Ok(v) = <Type as ::treesitter_types::FromNode>::from_node(node, src)
12536 {
12537 Ok(Self::Type(::std::boxed::Box::new(v)))
12538 } else {
12539 if let Ok(v) =
12540 <TypeParam as ::treesitter_types::FromNode>::from_node(node, src)
12541 {
12542 Ok(Self::TypeParam(::std::boxed::Box::new(v)))
12543 } else {
12544 Err(::treesitter_types::ParseError::unexpected_kind(
12545 _other, node,
12546 ))
12547 }
12548 }
12549 }
12550 }
12551 }
12552 }
12553 }
12554}
12555impl ::treesitter_types::Spanned for InfixRightOperand<'_> {
12556 fn span(&self) -> ::treesitter_types::Span {
12557 match self {
12558 Self::Expression(inner) => inner.span(),
12559 Self::LazyField(inner) => inner.span(),
12560 Self::Pattern(inner) => inner.span(),
12561 Self::StrictField(inner) => inner.span(),
12562 Self::Type(inner) => inner.span(),
12563 Self::TypeParam(inner) => inner.span(),
12564 }
12565 }
12566}
12567#[derive(Debug, Clone)]
12568pub enum InfixIdChildren<'tree> {
12569 Constructor(::std::boxed::Box<Constructor<'tree>>),
12570 Name(::std::boxed::Box<Name<'tree>>),
12571 Qualified(::std::boxed::Box<Qualified<'tree>>),
12572 Variable(::std::boxed::Box<Variable<'tree>>),
12573}
12574impl<'tree> ::treesitter_types::FromNode<'tree> for InfixIdChildren<'tree> {
12575 #[allow(clippy::collapsible_else_if)]
12576 fn from_node(
12577 node: ::tree_sitter::Node<'tree>,
12578 src: &'tree [u8],
12579 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12580 match node.kind() {
12581 "constructor" => Ok(Self::Constructor(::std::boxed::Box::new(
12582 <Constructor as ::treesitter_types::FromNode>::from_node(node, src)?,
12583 ))),
12584 "name" => Ok(Self::Name(::std::boxed::Box::new(
12585 <Name as ::treesitter_types::FromNode>::from_node(node, src)?,
12586 ))),
12587 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
12588 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
12589 ))),
12590 "variable" => Ok(Self::Variable(::std::boxed::Box::new(
12591 <Variable as ::treesitter_types::FromNode>::from_node(node, src)?,
12592 ))),
12593 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12594 }
12595 }
12596}
12597impl ::treesitter_types::Spanned for InfixIdChildren<'_> {
12598 fn span(&self) -> ::treesitter_types::Span {
12599 match self {
12600 Self::Constructor(inner) => inner.span(),
12601 Self::Name(inner) => inner.span(),
12602 Self::Qualified(inner) => inner.span(),
12603 Self::Variable(inner) => inner.span(),
12604 }
12605 }
12606}
12607#[derive(Debug, Clone)]
12608pub enum InstanceForall<'tree> {
12609 Forall(::std::boxed::Box<Forall<'tree>>),
12610 ForallRequired(::std::boxed::Box<ForallRequired<'tree>>),
12611}
12612impl<'tree> ::treesitter_types::FromNode<'tree> for InstanceForall<'tree> {
12613 #[allow(clippy::collapsible_else_if)]
12614 fn from_node(
12615 node: ::tree_sitter::Node<'tree>,
12616 src: &'tree [u8],
12617 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12618 match node.kind() {
12619 "forall" => Ok(Self::Forall(::std::boxed::Box::new(
12620 <Forall as ::treesitter_types::FromNode>::from_node(node, src)?,
12621 ))),
12622 "forall_required" => Ok(Self::ForallRequired(::std::boxed::Box::new(
12623 <ForallRequired as ::treesitter_types::FromNode>::from_node(node, src)?,
12624 ))),
12625 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12626 }
12627 }
12628}
12629impl ::treesitter_types::Spanned for InstanceForall<'_> {
12630 fn span(&self) -> ::treesitter_types::Span {
12631 match self {
12632 Self::Forall(inner) => inner.span(),
12633 Self::ForallRequired(inner) => inner.span(),
12634 }
12635 }
12636}
12637#[derive(Debug, Clone)]
12638pub enum InstanceName<'tree> {
12639 Name(::std::boxed::Box<Name<'tree>>),
12640 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
12641 Qualified(::std::boxed::Box<Qualified<'tree>>),
12642}
12643impl<'tree> ::treesitter_types::FromNode<'tree> for InstanceName<'tree> {
12644 #[allow(clippy::collapsible_else_if)]
12645 fn from_node(
12646 node: ::tree_sitter::Node<'tree>,
12647 src: &'tree [u8],
12648 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12649 match node.kind() {
12650 "name" => Ok(Self::Name(::std::boxed::Box::new(
12651 <Name as ::treesitter_types::FromNode>::from_node(node, src)?,
12652 ))),
12653 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
12654 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
12655 ))),
12656 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
12657 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
12658 ))),
12659 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12660 }
12661 }
12662}
12663impl ::treesitter_types::Spanned for InstanceName<'_> {
12664 fn span(&self) -> ::treesitter_types::Span {
12665 match self {
12666 Self::Name(inner) => inner.span(),
12667 Self::PrefixId(inner) => inner.span(),
12668 Self::Qualified(inner) => inner.span(),
12669 }
12670 }
12671}
12672#[derive(Debug, Clone)]
12673pub enum InstanceChildren<'tree> {
12674 Infix(::std::boxed::Box<Infix<'tree>>),
12675 Parens(::std::boxed::Box<Parens<'tree>>),
12676}
12677impl<'tree> ::treesitter_types::FromNode<'tree> for InstanceChildren<'tree> {
12678 #[allow(clippy::collapsible_else_if)]
12679 fn from_node(
12680 node: ::tree_sitter::Node<'tree>,
12681 src: &'tree [u8],
12682 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12683 match node.kind() {
12684 "infix" => Ok(Self::Infix(::std::boxed::Box::new(
12685 <Infix as ::treesitter_types::FromNode>::from_node(node, src)?,
12686 ))),
12687 "parens" => Ok(Self::Parens(::std::boxed::Box::new(
12688 <Parens as ::treesitter_types::FromNode>::from_node(node, src)?,
12689 ))),
12690 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12691 }
12692 }
12693}
12694impl ::treesitter_types::Spanned for InstanceChildren<'_> {
12695 fn span(&self) -> ::treesitter_types::Span {
12696 match self {
12697 Self::Infix(inner) => inner.span(),
12698 Self::Parens(inner) => inner.span(),
12699 }
12700 }
12701}
12702#[derive(Debug, Clone)]
12703pub enum KindSignatureName<'tree> {
12704 Name(::std::boxed::Box<Name<'tree>>),
12705 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
12706 PrefixList(::std::boxed::Box<PrefixList<'tree>>),
12707 Unit(::std::boxed::Box<Unit<'tree>>),
12708}
12709impl<'tree> ::treesitter_types::FromNode<'tree> for KindSignatureName<'tree> {
12710 #[allow(clippy::collapsible_else_if)]
12711 fn from_node(
12712 node: ::tree_sitter::Node<'tree>,
12713 src: &'tree [u8],
12714 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12715 match node.kind() {
12716 "name" => Ok(Self::Name(::std::boxed::Box::new(
12717 <Name as ::treesitter_types::FromNode>::from_node(node, src)?,
12718 ))),
12719 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
12720 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
12721 ))),
12722 "prefix_list" => Ok(Self::PrefixList(::std::boxed::Box::new(
12723 <PrefixList as ::treesitter_types::FromNode>::from_node(node, src)?,
12724 ))),
12725 "unit" => Ok(Self::Unit(::std::boxed::Box::new(
12726 <Unit as ::treesitter_types::FromNode>::from_node(node, src)?,
12727 ))),
12728 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12729 }
12730 }
12731}
12732impl ::treesitter_types::Spanned for KindSignatureName<'_> {
12733 fn span(&self) -> ::treesitter_types::Span {
12734 match self {
12735 Self::Name(inner) => inner.span(),
12736 Self::PrefixId(inner) => inner.span(),
12737 Self::PrefixList(inner) => inner.span(),
12738 Self::Unit(inner) => inner.span(),
12739 }
12740 }
12741}
12742#[derive(Debug, Clone)]
12743pub enum KindSignatureChildren<'tree> {
12744 Infix(::std::boxed::Box<Infix<'tree>>),
12745 Parens(::std::boxed::Box<Parens<'tree>>),
12746}
12747impl<'tree> ::treesitter_types::FromNode<'tree> for KindSignatureChildren<'tree> {
12748 #[allow(clippy::collapsible_else_if)]
12749 fn from_node(
12750 node: ::tree_sitter::Node<'tree>,
12751 src: &'tree [u8],
12752 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12753 match node.kind() {
12754 "infix" => Ok(Self::Infix(::std::boxed::Box::new(
12755 <Infix as ::treesitter_types::FromNode>::from_node(node, src)?,
12756 ))),
12757 "parens" => Ok(Self::Parens(::std::boxed::Box::new(
12758 <Parens as ::treesitter_types::FromNode>::from_node(node, src)?,
12759 ))),
12760 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12761 }
12762 }
12763}
12764impl ::treesitter_types::Spanned for KindSignatureChildren<'_> {
12765 fn span(&self) -> ::treesitter_types::Span {
12766 match self {
12767 Self::Infix(inner) => inner.span(),
12768 Self::Parens(inner) => inner.span(),
12769 }
12770 }
12771}
12772#[derive(Debug, Clone)]
12773pub enum LambdaExpression<'tree> {
12774 Expression(::std::boxed::Box<Expression<'tree>>),
12775 Signature(::std::boxed::Box<Signature<'tree>>),
12776}
12777impl<'tree> ::treesitter_types::FromNode<'tree> for LambdaExpression<'tree> {
12778 #[allow(clippy::collapsible_else_if)]
12779 fn from_node(
12780 node: ::tree_sitter::Node<'tree>,
12781 src: &'tree [u8],
12782 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12783 match node.kind() {
12784 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
12785 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
12786 ))),
12787 _other => {
12788 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
12789 Ok(Self::Expression(::std::boxed::Box::new(v)))
12790 } else {
12791 Err(::treesitter_types::ParseError::unexpected_kind(
12792 _other, node,
12793 ))
12794 }
12795 }
12796 }
12797 }
12798}
12799impl ::treesitter_types::Spanned for LambdaExpression<'_> {
12800 fn span(&self) -> ::treesitter_types::Span {
12801 match self {
12802 Self::Expression(inner) => inner.span(),
12803 Self::Signature(inner) => inner.span(),
12804 }
12805 }
12806}
12807#[derive(Debug, Clone)]
12808pub enum LeftSectionOperator<'tree> {
12809 ConstructorOperator(::std::boxed::Box<ConstructorOperator<'tree>>),
12810 InfixId(::std::boxed::Box<InfixId<'tree>>),
12811 Operator(::std::boxed::Box<Operator<'tree>>),
12812 Qualified(::std::boxed::Box<Qualified<'tree>>),
12813}
12814impl<'tree> ::treesitter_types::FromNode<'tree> for LeftSectionOperator<'tree> {
12815 #[allow(clippy::collapsible_else_if)]
12816 fn from_node(
12817 node: ::tree_sitter::Node<'tree>,
12818 src: &'tree [u8],
12819 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12820 match node.kind() {
12821 "constructor_operator" => Ok(Self::ConstructorOperator(::std::boxed::Box::new(
12822 <ConstructorOperator as ::treesitter_types::FromNode>::from_node(node, src)?,
12823 ))),
12824 "infix_id" => Ok(Self::InfixId(::std::boxed::Box::new(
12825 <InfixId as ::treesitter_types::FromNode>::from_node(node, src)?,
12826 ))),
12827 "operator" => Ok(Self::Operator(::std::boxed::Box::new(
12828 <Operator as ::treesitter_types::FromNode>::from_node(node, src)?,
12829 ))),
12830 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
12831 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
12832 ))),
12833 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12834 }
12835 }
12836}
12837impl ::treesitter_types::Spanned for LeftSectionOperator<'_> {
12838 fn span(&self) -> ::treesitter_types::Span {
12839 match self {
12840 Self::ConstructorOperator(inner) => inner.span(),
12841 Self::InfixId(inner) => inner.span(),
12842 Self::Operator(inner) => inner.span(),
12843 Self::Qualified(inner) => inner.span(),
12844 }
12845 }
12846}
12847#[derive(Debug, Clone)]
12848pub enum LetInExpression<'tree> {
12849 Expression(::std::boxed::Box<Expression<'tree>>),
12850 Signature(::std::boxed::Box<Signature<'tree>>),
12851}
12852impl<'tree> ::treesitter_types::FromNode<'tree> for LetInExpression<'tree> {
12853 #[allow(clippy::collapsible_else_if)]
12854 fn from_node(
12855 node: ::tree_sitter::Node<'tree>,
12856 src: &'tree [u8],
12857 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12858 match node.kind() {
12859 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
12860 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
12861 ))),
12862 _other => {
12863 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
12864 Ok(Self::Expression(::std::boxed::Box::new(v)))
12865 } else {
12866 Err(::treesitter_types::ParseError::unexpected_kind(
12867 _other, node,
12868 ))
12869 }
12870 }
12871 }
12872 }
12873}
12874impl ::treesitter_types::Spanned for LetInExpression<'_> {
12875 fn span(&self) -> ::treesitter_types::Span {
12876 match self {
12877 Self::Expression(inner) => inner.span(),
12878 Self::Signature(inner) => inner.span(),
12879 }
12880 }
12881}
12882#[derive(Debug, Clone)]
12883pub enum LinearFunctionArrow {
12884 Arrow(::treesitter_types::Span),
12885 MinusGtDot(::treesitter_types::Span),
12886 X(::treesitter_types::Span),
12887}
12888impl<'tree> ::treesitter_types::FromNode<'tree> for LinearFunctionArrow {
12889 #[allow(clippy::collapsible_else_if)]
12890 fn from_node(
12891 node: ::tree_sitter::Node<'tree>,
12892 _src: &'tree [u8],
12893 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12894 match node.kind() {
12895 "->" => Ok(Self::Arrow(::treesitter_types::Span::from(node))),
12896 "->." => Ok(Self::MinusGtDot(::treesitter_types::Span::from(node))),
12897 "→" | "⊸" => Ok(Self::X(::treesitter_types::Span::from(node))),
12898 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
12899 }
12900 }
12901}
12902impl ::treesitter_types::Spanned for LinearFunctionArrow {
12903 fn span(&self) -> ::treesitter_types::Span {
12904 match self {
12905 Self::Arrow(span) => *span,
12906 Self::MinusGtDot(span) => *span,
12907 Self::X(span) => *span,
12908 }
12909 }
12910}
12911#[derive(Debug, Clone)]
12912pub enum LinearFunctionParameter<'tree> {
12913 LazyField(::std::boxed::Box<LazyField<'tree>>),
12914 QuantifiedType(::std::boxed::Box<QuantifiedType<'tree>>),
12915 StrictField(::std::boxed::Box<StrictField<'tree>>),
12916}
12917impl<'tree> ::treesitter_types::FromNode<'tree> for LinearFunctionParameter<'tree> {
12918 #[allow(clippy::collapsible_else_if)]
12919 fn from_node(
12920 node: ::tree_sitter::Node<'tree>,
12921 src: &'tree [u8],
12922 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12923 match node.kind() {
12924 "lazy_field" => Ok(Self::LazyField(::std::boxed::Box::new(
12925 <LazyField as ::treesitter_types::FromNode>::from_node(node, src)?,
12926 ))),
12927 "strict_field" => Ok(Self::StrictField(::std::boxed::Box::new(
12928 <StrictField as ::treesitter_types::FromNode>::from_node(node, src)?,
12929 ))),
12930 _other => {
12931 if let Ok(v) =
12932 <QuantifiedType as ::treesitter_types::FromNode>::from_node(node, src)
12933 {
12934 Ok(Self::QuantifiedType(::std::boxed::Box::new(v)))
12935 } else {
12936 Err(::treesitter_types::ParseError::unexpected_kind(
12937 _other, node,
12938 ))
12939 }
12940 }
12941 }
12942 }
12943}
12944impl ::treesitter_types::Spanned for LinearFunctionParameter<'_> {
12945 fn span(&self) -> ::treesitter_types::Span {
12946 match self {
12947 Self::LazyField(inner) => inner.span(),
12948 Self::QuantifiedType(inner) => inner.span(),
12949 Self::StrictField(inner) => inner.span(),
12950 }
12951 }
12952}
12953#[derive(Debug, Clone)]
12954pub enum ListElement<'tree> {
12955 Expression(::std::boxed::Box<Expression<'tree>>),
12956 Pattern(::std::boxed::Box<Pattern<'tree>>),
12957 QuantifiedType(::std::boxed::Box<QuantifiedType<'tree>>),
12958 Signature(::std::boxed::Box<Signature<'tree>>),
12959 ViewPattern(::std::boxed::Box<ViewPattern<'tree>>),
12960}
12961impl<'tree> ::treesitter_types::FromNode<'tree> for ListElement<'tree> {
12962 #[allow(clippy::collapsible_else_if)]
12963 fn from_node(
12964 node: ::tree_sitter::Node<'tree>,
12965 src: &'tree [u8],
12966 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
12967 match node.kind() {
12968 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
12969 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
12970 ))),
12971 "view_pattern" => Ok(Self::ViewPattern(::std::boxed::Box::new(
12972 <ViewPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
12973 ))),
12974 _other => {
12975 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
12976 Ok(Self::Expression(::std::boxed::Box::new(v)))
12977 } else {
12978 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
12979 Ok(Self::Pattern(::std::boxed::Box::new(v)))
12980 } else {
12981 if let Ok(v) =
12982 <QuantifiedType as ::treesitter_types::FromNode>::from_node(node, src)
12983 {
12984 Ok(Self::QuantifiedType(::std::boxed::Box::new(v)))
12985 } else {
12986 Err(::treesitter_types::ParseError::unexpected_kind(
12987 _other, node,
12988 ))
12989 }
12990 }
12991 }
12992 }
12993 }
12994 }
12995}
12996impl ::treesitter_types::Spanned for ListElement<'_> {
12997 fn span(&self) -> ::treesitter_types::Span {
12998 match self {
12999 Self::Expression(inner) => inner.span(),
13000 Self::Pattern(inner) => inner.span(),
13001 Self::QuantifiedType(inner) => inner.span(),
13002 Self::Signature(inner) => inner.span(),
13003 Self::ViewPattern(inner) => inner.span(),
13004 }
13005 }
13006}
13007#[derive(Debug, Clone)]
13008pub enum ListComprehensionExpression<'tree> {
13009 Expression(::std::boxed::Box<Expression<'tree>>),
13010 Signature(::std::boxed::Box<Signature<'tree>>),
13011}
13012impl<'tree> ::treesitter_types::FromNode<'tree> for ListComprehensionExpression<'tree> {
13013 #[allow(clippy::collapsible_else_if)]
13014 fn from_node(
13015 node: ::tree_sitter::Node<'tree>,
13016 src: &'tree [u8],
13017 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13018 match node.kind() {
13019 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
13020 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
13021 ))),
13022 _other => {
13023 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
13024 Ok(Self::Expression(::std::boxed::Box::new(v)))
13025 } else {
13026 Err(::treesitter_types::ParseError::unexpected_kind(
13027 _other, node,
13028 ))
13029 }
13030 }
13031 }
13032 }
13033}
13034impl ::treesitter_types::Spanned for ListComprehensionExpression<'_> {
13035 fn span(&self) -> ::treesitter_types::Span {
13036 match self {
13037 Self::Expression(inner) => inner.span(),
13038 Self::Signature(inner) => inner.span(),
13039 }
13040 }
13041}
13042#[derive(Debug, Clone)]
13043pub enum LiteralChildren<'tree> {
13044 Char(::std::boxed::Box<Char<'tree>>),
13045 Float(::std::boxed::Box<Float<'tree>>),
13046 Integer(::std::boxed::Box<Integer<'tree>>),
13047 String(::std::boxed::Box<String<'tree>>),
13048}
13049impl<'tree> ::treesitter_types::FromNode<'tree> for LiteralChildren<'tree> {
13050 #[allow(clippy::collapsible_else_if)]
13051 fn from_node(
13052 node: ::tree_sitter::Node<'tree>,
13053 src: &'tree [u8],
13054 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13055 match node.kind() {
13056 "char" => Ok(Self::Char(::std::boxed::Box::new(
13057 <Char as ::treesitter_types::FromNode>::from_node(node, src)?,
13058 ))),
13059 "float" => Ok(Self::Float(::std::boxed::Box::new(
13060 <Float as ::treesitter_types::FromNode>::from_node(node, src)?,
13061 ))),
13062 "integer" => Ok(Self::Integer(::std::boxed::Box::new(
13063 <Integer as ::treesitter_types::FromNode>::from_node(node, src)?,
13064 ))),
13065 "string" => Ok(Self::String(::std::boxed::Box::new(
13066 <String as ::treesitter_types::FromNode>::from_node(node, src)?,
13067 ))),
13068 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13069 }
13070 }
13071}
13072impl ::treesitter_types::Spanned for LiteralChildren<'_> {
13073 fn span(&self) -> ::treesitter_types::Span {
13074 match self {
13075 Self::Char(inner) => inner.span(),
13076 Self::Float(inner) => inner.span(),
13077 Self::Integer(inner) => inner.span(),
13078 Self::String(inner) => inner.span(),
13079 }
13080 }
13081}
13082#[derive(Debug, Clone)]
13083pub enum LocalBindsDecl<'tree> {
13084 Decl(::std::boxed::Box<Decl<'tree>>),
13085 Fixity(::std::boxed::Box<Fixity<'tree>>),
13086}
13087impl<'tree> ::treesitter_types::FromNode<'tree> for LocalBindsDecl<'tree> {
13088 #[allow(clippy::collapsible_else_if)]
13089 fn from_node(
13090 node: ::tree_sitter::Node<'tree>,
13091 src: &'tree [u8],
13092 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13093 match node.kind() {
13094 "fixity" => Ok(Self::Fixity(::std::boxed::Box::new(
13095 <Fixity as ::treesitter_types::FromNode>::from_node(node, src)?,
13096 ))),
13097 _other => {
13098 if let Ok(v) = <Decl as ::treesitter_types::FromNode>::from_node(node, src) {
13099 Ok(Self::Decl(::std::boxed::Box::new(v)))
13100 } else {
13101 Err(::treesitter_types::ParseError::unexpected_kind(
13102 _other, node,
13103 ))
13104 }
13105 }
13106 }
13107 }
13108}
13109impl ::treesitter_types::Spanned for LocalBindsDecl<'_> {
13110 fn span(&self) -> ::treesitter_types::Span {
13111 match self {
13112 Self::Decl(inner) => inner.span(),
13113 Self::Fixity(inner) => inner.span(),
13114 }
13115 }
13116}
13117#[derive(Debug, Clone)]
13118pub enum MatchExpression<'tree> {
13119 Expression(::std::boxed::Box<Expression<'tree>>),
13120 Signature(::std::boxed::Box<Signature<'tree>>),
13121}
13122impl<'tree> ::treesitter_types::FromNode<'tree> for MatchExpression<'tree> {
13123 #[allow(clippy::collapsible_else_if)]
13124 fn from_node(
13125 node: ::tree_sitter::Node<'tree>,
13126 src: &'tree [u8],
13127 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13128 match node.kind() {
13129 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
13130 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
13131 ))),
13132 _other => {
13133 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
13134 Ok(Self::Expression(::std::boxed::Box::new(v)))
13135 } else {
13136 Err(::treesitter_types::ParseError::unexpected_kind(
13137 _other, node,
13138 ))
13139 }
13140 }
13141 }
13142 }
13143}
13144impl ::treesitter_types::Spanned for MatchExpression<'_> {
13145 fn span(&self) -> ::treesitter_types::Span {
13146 match self {
13147 Self::Expression(inner) => inner.span(),
13148 Self::Signature(inner) => inner.span(),
13149 }
13150 }
13151}
13152#[derive(Debug, Clone)]
13153pub enum NegationMinus {
13154 Minus(::treesitter_types::Span),
13155}
13156impl<'tree> ::treesitter_types::FromNode<'tree> for NegationMinus {
13157 #[allow(clippy::collapsible_else_if)]
13158 fn from_node(
13159 node: ::tree_sitter::Node<'tree>,
13160 _src: &'tree [u8],
13161 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13162 match node.kind() {
13163 "-" => Ok(Self::Minus(::treesitter_types::Span::from(node))),
13164 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13165 }
13166 }
13167}
13168impl ::treesitter_types::Spanned for NegationMinus {
13169 fn span(&self) -> ::treesitter_types::Span {
13170 match self {
13171 Self::Minus(span) => *span,
13172 }
13173 }
13174}
13175#[derive(Debug, Clone)]
13176pub enum NegationNumber<'tree> {
13177 Float(::std::boxed::Box<Float<'tree>>),
13178 Integer(::std::boxed::Box<Integer<'tree>>),
13179}
13180impl<'tree> ::treesitter_types::FromNode<'tree> for NegationNumber<'tree> {
13181 #[allow(clippy::collapsible_else_if)]
13182 fn from_node(
13183 node: ::tree_sitter::Node<'tree>,
13184 src: &'tree [u8],
13185 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13186 match node.kind() {
13187 "float" => Ok(Self::Float(::std::boxed::Box::new(
13188 <Float as ::treesitter_types::FromNode>::from_node(node, src)?,
13189 ))),
13190 "integer" => Ok(Self::Integer(::std::boxed::Box::new(
13191 <Integer as ::treesitter_types::FromNode>::from_node(node, src)?,
13192 ))),
13193 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13194 }
13195 }
13196}
13197impl ::treesitter_types::Spanned for NegationNumber<'_> {
13198 fn span(&self) -> ::treesitter_types::Span {
13199 match self {
13200 Self::Float(inner) => inner.span(),
13201 Self::Integer(inner) => inner.span(),
13202 }
13203 }
13204}
13205#[derive(Debug, Clone)]
13206pub enum NewtypeForall<'tree> {
13207 Forall(::std::boxed::Box<Forall<'tree>>),
13208 ForallRequired(::std::boxed::Box<ForallRequired<'tree>>),
13209}
13210impl<'tree> ::treesitter_types::FromNode<'tree> for NewtypeForall<'tree> {
13211 #[allow(clippy::collapsible_else_if)]
13212 fn from_node(
13213 node: ::tree_sitter::Node<'tree>,
13214 src: &'tree [u8],
13215 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13216 match node.kind() {
13217 "forall" => Ok(Self::Forall(::std::boxed::Box::new(
13218 <Forall as ::treesitter_types::FromNode>::from_node(node, src)?,
13219 ))),
13220 "forall_required" => Ok(Self::ForallRequired(::std::boxed::Box::new(
13221 <ForallRequired as ::treesitter_types::FromNode>::from_node(node, src)?,
13222 ))),
13223 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13224 }
13225 }
13226}
13227impl ::treesitter_types::Spanned for NewtypeForall<'_> {
13228 fn span(&self) -> ::treesitter_types::Span {
13229 match self {
13230 Self::Forall(inner) => inner.span(),
13231 Self::ForallRequired(inner) => inner.span(),
13232 }
13233 }
13234}
13235#[derive(Debug, Clone)]
13236pub enum NewtypeName<'tree> {
13237 Name(::std::boxed::Box<Name<'tree>>),
13238 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
13239 PrefixList(::std::boxed::Box<PrefixList<'tree>>),
13240 Qualified(::std::boxed::Box<Qualified<'tree>>),
13241 Unit(::std::boxed::Box<Unit<'tree>>),
13242}
13243impl<'tree> ::treesitter_types::FromNode<'tree> for NewtypeName<'tree> {
13244 #[allow(clippy::collapsible_else_if)]
13245 fn from_node(
13246 node: ::tree_sitter::Node<'tree>,
13247 src: &'tree [u8],
13248 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13249 match node.kind() {
13250 "name" => Ok(Self::Name(::std::boxed::Box::new(
13251 <Name as ::treesitter_types::FromNode>::from_node(node, src)?,
13252 ))),
13253 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
13254 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
13255 ))),
13256 "prefix_list" => Ok(Self::PrefixList(::std::boxed::Box::new(
13257 <PrefixList as ::treesitter_types::FromNode>::from_node(node, src)?,
13258 ))),
13259 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
13260 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
13261 ))),
13262 "unit" => Ok(Self::Unit(::std::boxed::Box::new(
13263 <Unit as ::treesitter_types::FromNode>::from_node(node, src)?,
13264 ))),
13265 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13266 }
13267 }
13268}
13269impl ::treesitter_types::Spanned for NewtypeName<'_> {
13270 fn span(&self) -> ::treesitter_types::Span {
13271 match self {
13272 Self::Name(inner) => inner.span(),
13273 Self::PrefixId(inner) => inner.span(),
13274 Self::PrefixList(inner) => inner.span(),
13275 Self::Qualified(inner) => inner.span(),
13276 Self::Unit(inner) => inner.span(),
13277 }
13278 }
13279}
13280#[derive(Debug, Clone)]
13281pub enum NewtypePatterns<'tree> {
13282 TypeParams(::std::boxed::Box<TypeParams<'tree>>),
13283 TypePatterns(::std::boxed::Box<TypePatterns<'tree>>),
13284}
13285impl<'tree> ::treesitter_types::FromNode<'tree> for NewtypePatterns<'tree> {
13286 #[allow(clippy::collapsible_else_if)]
13287 fn from_node(
13288 node: ::tree_sitter::Node<'tree>,
13289 src: &'tree [u8],
13290 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13291 match node.kind() {
13292 "type_params" => Ok(Self::TypeParams(::std::boxed::Box::new(
13293 <TypeParams as ::treesitter_types::FromNode>::from_node(node, src)?,
13294 ))),
13295 "type_patterns" => Ok(Self::TypePatterns(::std::boxed::Box::new(
13296 <TypePatterns as ::treesitter_types::FromNode>::from_node(node, src)?,
13297 ))),
13298 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13299 }
13300 }
13301}
13302impl ::treesitter_types::Spanned for NewtypePatterns<'_> {
13303 fn span(&self) -> ::treesitter_types::Span {
13304 match self {
13305 Self::TypeParams(inner) => inner.span(),
13306 Self::TypePatterns(inner) => inner.span(),
13307 }
13308 }
13309}
13310#[derive(Debug, Clone)]
13311pub enum NewtypeChildren<'tree> {
13312 Infix(::std::boxed::Box<Infix<'tree>>),
13313 Parens(::std::boxed::Box<Parens<'tree>>),
13314}
13315impl<'tree> ::treesitter_types::FromNode<'tree> for NewtypeChildren<'tree> {
13316 #[allow(clippy::collapsible_else_if)]
13317 fn from_node(
13318 node: ::tree_sitter::Node<'tree>,
13319 src: &'tree [u8],
13320 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13321 match node.kind() {
13322 "infix" => Ok(Self::Infix(::std::boxed::Box::new(
13323 <Infix as ::treesitter_types::FromNode>::from_node(node, src)?,
13324 ))),
13325 "parens" => Ok(Self::Parens(::std::boxed::Box::new(
13326 <Parens as ::treesitter_types::FromNode>::from_node(node, src)?,
13327 ))),
13328 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13329 }
13330 }
13331}
13332impl ::treesitter_types::Spanned for NewtypeChildren<'_> {
13333 fn span(&self) -> ::treesitter_types::Span {
13334 match self {
13335 Self::Infix(inner) => inner.span(),
13336 Self::Parens(inner) => inner.span(),
13337 }
13338 }
13339}
13340#[derive(Debug, Clone)]
13341pub enum NewtypeConstructorField<'tree> {
13342 Field(::std::boxed::Box<Field<'tree>>),
13343 Record(::std::boxed::Box<Record<'tree>>),
13344}
13345impl<'tree> ::treesitter_types::FromNode<'tree> for NewtypeConstructorField<'tree> {
13346 #[allow(clippy::collapsible_else_if)]
13347 fn from_node(
13348 node: ::tree_sitter::Node<'tree>,
13349 src: &'tree [u8],
13350 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13351 match node.kind() {
13352 "field" => Ok(Self::Field(::std::boxed::Box::new(
13353 <Field as ::treesitter_types::FromNode>::from_node(node, src)?,
13354 ))),
13355 "record" => Ok(Self::Record(::std::boxed::Box::new(
13356 <Record as ::treesitter_types::FromNode>::from_node(node, src)?,
13357 ))),
13358 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13359 }
13360 }
13361}
13362impl ::treesitter_types::Spanned for NewtypeConstructorField<'_> {
13363 fn span(&self) -> ::treesitter_types::Span {
13364 match self {
13365 Self::Field(inner) => inner.span(),
13366 Self::Record(inner) => inner.span(),
13367 }
13368 }
13369}
13370#[derive(Debug, Clone)]
13371pub enum NewtypeConstructorName<'tree> {
13372 Constructor(::std::boxed::Box<Constructor<'tree>>),
13373 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
13374}
13375impl<'tree> ::treesitter_types::FromNode<'tree> for NewtypeConstructorName<'tree> {
13376 #[allow(clippy::collapsible_else_if)]
13377 fn from_node(
13378 node: ::tree_sitter::Node<'tree>,
13379 src: &'tree [u8],
13380 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13381 match node.kind() {
13382 "constructor" => Ok(Self::Constructor(::std::boxed::Box::new(
13383 <Constructor as ::treesitter_types::FromNode>::from_node(node, src)?,
13384 ))),
13385 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
13386 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
13387 ))),
13388 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13389 }
13390 }
13391}
13392impl ::treesitter_types::Spanned for NewtypeConstructorName<'_> {
13393 fn span(&self) -> ::treesitter_types::Span {
13394 match self {
13395 Self::Constructor(inner) => inner.span(),
13396 Self::PrefixId(inner) => inner.span(),
13397 }
13398 }
13399}
13400#[derive(Debug, Clone)]
13401pub enum ParensExpression<'tree> {
13402 Expression(::std::boxed::Box<Expression<'tree>>),
13403 Signature(::std::boxed::Box<Signature<'tree>>),
13404}
13405impl<'tree> ::treesitter_types::FromNode<'tree> for ParensExpression<'tree> {
13406 #[allow(clippy::collapsible_else_if)]
13407 fn from_node(
13408 node: ::tree_sitter::Node<'tree>,
13409 src: &'tree [u8],
13410 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13411 match node.kind() {
13412 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
13413 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
13414 ))),
13415 _other => {
13416 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
13417 Ok(Self::Expression(::std::boxed::Box::new(v)))
13418 } else {
13419 Err(::treesitter_types::ParseError::unexpected_kind(
13420 _other, node,
13421 ))
13422 }
13423 }
13424 }
13425 }
13426}
13427impl ::treesitter_types::Spanned for ParensExpression<'_> {
13428 fn span(&self) -> ::treesitter_types::Span {
13429 match self {
13430 Self::Expression(inner) => inner.span(),
13431 Self::Signature(inner) => inner.span(),
13432 }
13433 }
13434}
13435#[derive(Debug, Clone)]
13436pub enum ParensName<'tree> {
13437 Name(::std::boxed::Box<Name<'tree>>),
13438 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
13439 PrefixList(::std::boxed::Box<PrefixList<'tree>>),
13440 Qualified(::std::boxed::Box<Qualified<'tree>>),
13441 Unit(::std::boxed::Box<Unit<'tree>>),
13442}
13443impl<'tree> ::treesitter_types::FromNode<'tree> for ParensName<'tree> {
13444 #[allow(clippy::collapsible_else_if)]
13445 fn from_node(
13446 node: ::tree_sitter::Node<'tree>,
13447 src: &'tree [u8],
13448 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13449 match node.kind() {
13450 "name" => Ok(Self::Name(::std::boxed::Box::new(
13451 <Name as ::treesitter_types::FromNode>::from_node(node, src)?,
13452 ))),
13453 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
13454 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
13455 ))),
13456 "prefix_list" => Ok(Self::PrefixList(::std::boxed::Box::new(
13457 <PrefixList as ::treesitter_types::FromNode>::from_node(node, src)?,
13458 ))),
13459 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
13460 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
13461 ))),
13462 "unit" => Ok(Self::Unit(::std::boxed::Box::new(
13463 <Unit as ::treesitter_types::FromNode>::from_node(node, src)?,
13464 ))),
13465 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13466 }
13467 }
13468}
13469impl ::treesitter_types::Spanned for ParensName<'_> {
13470 fn span(&self) -> ::treesitter_types::Span {
13471 match self {
13472 Self::Name(inner) => inner.span(),
13473 Self::PrefixId(inner) => inner.span(),
13474 Self::PrefixList(inner) => inner.span(),
13475 Self::Qualified(inner) => inner.span(),
13476 Self::Unit(inner) => inner.span(),
13477 }
13478 }
13479}
13480#[derive(Debug, Clone)]
13481pub enum ParensPattern<'tree> {
13482 Pattern(::std::boxed::Box<Pattern<'tree>>),
13483 Signature(::std::boxed::Box<Signature<'tree>>),
13484 ViewPattern(::std::boxed::Box<ViewPattern<'tree>>),
13485}
13486impl<'tree> ::treesitter_types::FromNode<'tree> for ParensPattern<'tree> {
13487 #[allow(clippy::collapsible_else_if)]
13488 fn from_node(
13489 node: ::tree_sitter::Node<'tree>,
13490 src: &'tree [u8],
13491 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13492 match node.kind() {
13493 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
13494 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
13495 ))),
13496 "view_pattern" => Ok(Self::ViewPattern(::std::boxed::Box::new(
13497 <ViewPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
13498 ))),
13499 _other => {
13500 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
13501 Ok(Self::Pattern(::std::boxed::Box::new(v)))
13502 } else {
13503 Err(::treesitter_types::ParseError::unexpected_kind(
13504 _other, node,
13505 ))
13506 }
13507 }
13508 }
13509 }
13510}
13511impl ::treesitter_types::Spanned for ParensPattern<'_> {
13512 fn span(&self) -> ::treesitter_types::Span {
13513 match self {
13514 Self::Pattern(inner) => inner.span(),
13515 Self::Signature(inner) => inner.span(),
13516 Self::ViewPattern(inner) => inner.span(),
13517 }
13518 }
13519}
13520#[derive(Debug, Clone)]
13521pub enum ParensPatterns<'tree> {
13522 TypeParams(::std::boxed::Box<TypeParams<'tree>>),
13523 TypePatterns(::std::boxed::Box<TypePatterns<'tree>>),
13524}
13525impl<'tree> ::treesitter_types::FromNode<'tree> for ParensPatterns<'tree> {
13526 #[allow(clippy::collapsible_else_if)]
13527 fn from_node(
13528 node: ::tree_sitter::Node<'tree>,
13529 src: &'tree [u8],
13530 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13531 match node.kind() {
13532 "type_params" => Ok(Self::TypeParams(::std::boxed::Box::new(
13533 <TypeParams as ::treesitter_types::FromNode>::from_node(node, src)?,
13534 ))),
13535 "type_patterns" => Ok(Self::TypePatterns(::std::boxed::Box::new(
13536 <TypePatterns as ::treesitter_types::FromNode>::from_node(node, src)?,
13537 ))),
13538 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13539 }
13540 }
13541}
13542impl ::treesitter_types::Spanned for ParensPatterns<'_> {
13543 fn span(&self) -> ::treesitter_types::Span {
13544 match self {
13545 Self::TypeParams(inner) => inner.span(),
13546 Self::TypePatterns(inner) => inner.span(),
13547 }
13548 }
13549}
13550#[derive(Debug, Clone)]
13551pub enum ParensType<'tree> {
13552 QuantifiedType(::std::boxed::Box<QuantifiedType<'tree>>),
13553 Signature(::std::boxed::Box<Signature<'tree>>),
13554}
13555impl<'tree> ::treesitter_types::FromNode<'tree> for ParensType<'tree> {
13556 #[allow(clippy::collapsible_else_if)]
13557 fn from_node(
13558 node: ::tree_sitter::Node<'tree>,
13559 src: &'tree [u8],
13560 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13561 match node.kind() {
13562 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
13563 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
13564 ))),
13565 _other => {
13566 if let Ok(v) =
13567 <QuantifiedType as ::treesitter_types::FromNode>::from_node(node, src)
13568 {
13569 Ok(Self::QuantifiedType(::std::boxed::Box::new(v)))
13570 } else {
13571 Err(::treesitter_types::ParseError::unexpected_kind(
13572 _other, node,
13573 ))
13574 }
13575 }
13576 }
13577 }
13578}
13579impl ::treesitter_types::Spanned for ParensType<'_> {
13580 fn span(&self) -> ::treesitter_types::Span {
13581 match self {
13582 Self::QuantifiedType(inner) => inner.span(),
13583 Self::Signature(inner) => inner.span(),
13584 }
13585 }
13586}
13587#[derive(Debug, Clone)]
13588pub enum ParensChildren<'tree> {
13589 Annotated(::std::boxed::Box<Annotated<'tree>>),
13590 Constraints(::std::boxed::Box<Constraints<'tree>>),
13591 Infix(::std::boxed::Box<Infix<'tree>>),
13592 TypeParam(::std::boxed::Box<TypeParam<'tree>>),
13593}
13594impl<'tree> ::treesitter_types::FromNode<'tree> for ParensChildren<'tree> {
13595 #[allow(clippy::collapsible_else_if)]
13596 fn from_node(
13597 node: ::tree_sitter::Node<'tree>,
13598 src: &'tree [u8],
13599 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13600 match node.kind() {
13601 "annotated" => Ok(Self::Annotated(::std::boxed::Box::new(
13602 <Annotated as ::treesitter_types::FromNode>::from_node(node, src)?,
13603 ))),
13604 "infix" => Ok(Self::Infix(::std::boxed::Box::new(
13605 <Infix as ::treesitter_types::FromNode>::from_node(node, src)?,
13606 ))),
13607 _other => {
13608 if let Ok(v) = <Constraints as ::treesitter_types::FromNode>::from_node(node, src) {
13609 Ok(Self::Constraints(::std::boxed::Box::new(v)))
13610 } else {
13611 if let Ok(v) = <TypeParam as ::treesitter_types::FromNode>::from_node(node, src)
13612 {
13613 Ok(Self::TypeParam(::std::boxed::Box::new(v)))
13614 } else {
13615 Err(::treesitter_types::ParseError::unexpected_kind(
13616 _other, node,
13617 ))
13618 }
13619 }
13620 }
13621 }
13622 }
13623}
13624impl ::treesitter_types::Spanned for ParensChildren<'_> {
13625 fn span(&self) -> ::treesitter_types::Span {
13626 match self {
13627 Self::Annotated(inner) => inner.span(),
13628 Self::Constraints(inner) => inner.span(),
13629 Self::Infix(inner) => inner.span(),
13630 Self::TypeParam(inner) => inner.span(),
13631 }
13632 }
13633}
13634#[derive(Debug, Clone)]
13635pub enum PatternGuardArrow {
13636 LArrow(::treesitter_types::Span),
13637 X(::treesitter_types::Span),
13638}
13639impl<'tree> ::treesitter_types::FromNode<'tree> for PatternGuardArrow {
13640 #[allow(clippy::collapsible_else_if)]
13641 fn from_node(
13642 node: ::tree_sitter::Node<'tree>,
13643 _src: &'tree [u8],
13644 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13645 match node.kind() {
13646 "<-" => Ok(Self::LArrow(::treesitter_types::Span::from(node))),
13647 "←" => Ok(Self::X(::treesitter_types::Span::from(node))),
13648 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13649 }
13650 }
13651}
13652impl ::treesitter_types::Spanned for PatternGuardArrow {
13653 fn span(&self) -> ::treesitter_types::Span {
13654 match self {
13655 Self::LArrow(span) => *span,
13656 Self::X(span) => *span,
13657 }
13658 }
13659}
13660#[derive(Debug, Clone)]
13661pub enum PatternGuardExpression<'tree> {
13662 Expression(::std::boxed::Box<Expression<'tree>>),
13663 Signature(::std::boxed::Box<Signature<'tree>>),
13664}
13665impl<'tree> ::treesitter_types::FromNode<'tree> for PatternGuardExpression<'tree> {
13666 #[allow(clippy::collapsible_else_if)]
13667 fn from_node(
13668 node: ::tree_sitter::Node<'tree>,
13669 src: &'tree [u8],
13670 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13671 match node.kind() {
13672 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
13673 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
13674 ))),
13675 _other => {
13676 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
13677 Ok(Self::Expression(::std::boxed::Box::new(v)))
13678 } else {
13679 Err(::treesitter_types::ParseError::unexpected_kind(
13680 _other, node,
13681 ))
13682 }
13683 }
13684 }
13685 }
13686}
13687impl ::treesitter_types::Spanned for PatternGuardExpression<'_> {
13688 fn span(&self) -> ::treesitter_types::Span {
13689 match self {
13690 Self::Expression(inner) => inner.span(),
13691 Self::Signature(inner) => inner.span(),
13692 }
13693 }
13694}
13695#[derive(Debug, Clone)]
13696pub enum PatternGuardPattern<'tree> {
13697 Pattern(::std::boxed::Box<Pattern<'tree>>),
13698 Signature(::std::boxed::Box<Signature<'tree>>),
13699}
13700impl<'tree> ::treesitter_types::FromNode<'tree> for PatternGuardPattern<'tree> {
13701 #[allow(clippy::collapsible_else_if)]
13702 fn from_node(
13703 node: ::tree_sitter::Node<'tree>,
13704 src: &'tree [u8],
13705 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13706 match node.kind() {
13707 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
13708 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
13709 ))),
13710 _other => {
13711 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
13712 Ok(Self::Pattern(::std::boxed::Box::new(v)))
13713 } else {
13714 Err(::treesitter_types::ParseError::unexpected_kind(
13715 _other, node,
13716 ))
13717 }
13718 }
13719 }
13720 }
13721}
13722impl ::treesitter_types::Spanned for PatternGuardPattern<'_> {
13723 fn span(&self) -> ::treesitter_types::Span {
13724 match self {
13725 Self::Pattern(inner) => inner.span(),
13726 Self::Signature(inner) => inner.span(),
13727 }
13728 }
13729}
13730#[derive(Debug, Clone)]
13731pub enum PatternSynonymChildren<'tree> {
13732 Equation(::std::boxed::Box<Equation<'tree>>),
13733 Signature(::std::boxed::Box<Signature<'tree>>),
13734}
13735impl<'tree> ::treesitter_types::FromNode<'tree> for PatternSynonymChildren<'tree> {
13736 #[allow(clippy::collapsible_else_if)]
13737 fn from_node(
13738 node: ::tree_sitter::Node<'tree>,
13739 src: &'tree [u8],
13740 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13741 match node.kind() {
13742 "equation" => Ok(Self::Equation(::std::boxed::Box::new(
13743 <Equation as ::treesitter_types::FromNode>::from_node(node, src)?,
13744 ))),
13745 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
13746 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
13747 ))),
13748 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13749 }
13750 }
13751}
13752impl ::treesitter_types::Spanned for PatternSynonymChildren<'_> {
13753 fn span(&self) -> ::treesitter_types::Span {
13754 match self {
13755 Self::Equation(inner) => inner.span(),
13756 Self::Signature(inner) => inner.span(),
13757 }
13758 }
13759}
13760#[derive(Debug, Clone)]
13761pub enum PatternsChildren<'tree> {
13762 ExplicitType(::std::boxed::Box<ExplicitType<'tree>>),
13763 Pattern(::std::boxed::Box<Pattern<'tree>>),
13764 TypeBinder(::std::boxed::Box<TypeBinder<'tree>>),
13765}
13766impl<'tree> ::treesitter_types::FromNode<'tree> for PatternsChildren<'tree> {
13767 #[allow(clippy::collapsible_else_if)]
13768 fn from_node(
13769 node: ::tree_sitter::Node<'tree>,
13770 src: &'tree [u8],
13771 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13772 match node.kind() {
13773 "explicit_type" => Ok(Self::ExplicitType(::std::boxed::Box::new(
13774 <ExplicitType as ::treesitter_types::FromNode>::from_node(node, src)?,
13775 ))),
13776 "type_binder" => Ok(Self::TypeBinder(::std::boxed::Box::new(
13777 <TypeBinder as ::treesitter_types::FromNode>::from_node(node, src)?,
13778 ))),
13779 _other => {
13780 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
13781 Ok(Self::Pattern(::std::boxed::Box::new(v)))
13782 } else {
13783 Err(::treesitter_types::ParseError::unexpected_kind(
13784 _other, node,
13785 ))
13786 }
13787 }
13788 }
13789 }
13790}
13791impl ::treesitter_types::Spanned for PatternsChildren<'_> {
13792 fn span(&self) -> ::treesitter_types::Span {
13793 match self {
13794 Self::ExplicitType(inner) => inner.span(),
13795 Self::Pattern(inner) => inner.span(),
13796 Self::TypeBinder(inner) => inner.span(),
13797 }
13798 }
13799}
13800#[derive(Debug, Clone)]
13801pub enum PrefixField<'tree> {
13802 LazyField(::std::boxed::Box<LazyField<'tree>>),
13803 StrictField(::std::boxed::Box<StrictField<'tree>>),
13804 Type(::std::boxed::Box<Type<'tree>>),
13805}
13806impl<'tree> ::treesitter_types::FromNode<'tree> for PrefixField<'tree> {
13807 #[allow(clippy::collapsible_else_if)]
13808 fn from_node(
13809 node: ::tree_sitter::Node<'tree>,
13810 src: &'tree [u8],
13811 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13812 match node.kind() {
13813 "lazy_field" => Ok(Self::LazyField(::std::boxed::Box::new(
13814 <LazyField as ::treesitter_types::FromNode>::from_node(node, src)?,
13815 ))),
13816 "strict_field" => Ok(Self::StrictField(::std::boxed::Box::new(
13817 <StrictField as ::treesitter_types::FromNode>::from_node(node, src)?,
13818 ))),
13819 _other => {
13820 if let Ok(v) = <Type as ::treesitter_types::FromNode>::from_node(node, src) {
13821 Ok(Self::Type(::std::boxed::Box::new(v)))
13822 } else {
13823 Err(::treesitter_types::ParseError::unexpected_kind(
13824 _other, node,
13825 ))
13826 }
13827 }
13828 }
13829 }
13830}
13831impl ::treesitter_types::Spanned for PrefixField<'_> {
13832 fn span(&self) -> ::treesitter_types::Span {
13833 match self {
13834 Self::LazyField(inner) => inner.span(),
13835 Self::StrictField(inner) => inner.span(),
13836 Self::Type(inner) => inner.span(),
13837 }
13838 }
13839}
13840#[derive(Debug, Clone)]
13841pub enum PrefixName<'tree> {
13842 Constructor(::std::boxed::Box<Constructor<'tree>>),
13843 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
13844}
13845impl<'tree> ::treesitter_types::FromNode<'tree> for PrefixName<'tree> {
13846 #[allow(clippy::collapsible_else_if)]
13847 fn from_node(
13848 node: ::tree_sitter::Node<'tree>,
13849 src: &'tree [u8],
13850 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13851 match node.kind() {
13852 "constructor" => Ok(Self::Constructor(::std::boxed::Box::new(
13853 <Constructor as ::treesitter_types::FromNode>::from_node(node, src)?,
13854 ))),
13855 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
13856 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
13857 ))),
13858 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13859 }
13860 }
13861}
13862impl ::treesitter_types::Spanned for PrefixName<'_> {
13863 fn span(&self) -> ::treesitter_types::Span {
13864 match self {
13865 Self::Constructor(inner) => inner.span(),
13866 Self::PrefixId(inner) => inner.span(),
13867 }
13868 }
13869}
13870#[derive(Debug, Clone)]
13871pub enum PrefixIdChildren<'tree> {
13872 ConstructorOperator(::std::boxed::Box<ConstructorOperator<'tree>>),
13873 Operator(::std::boxed::Box<Operator<'tree>>),
13874 Qualified(::std::boxed::Box<Qualified<'tree>>),
13875}
13876impl<'tree> ::treesitter_types::FromNode<'tree> for PrefixIdChildren<'tree> {
13877 #[allow(clippy::collapsible_else_if)]
13878 fn from_node(
13879 node: ::tree_sitter::Node<'tree>,
13880 src: &'tree [u8],
13881 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13882 match node.kind() {
13883 "constructor_operator" => Ok(Self::ConstructorOperator(::std::boxed::Box::new(
13884 <ConstructorOperator as ::treesitter_types::FromNode>::from_node(node, src)?,
13885 ))),
13886 "operator" => Ok(Self::Operator(::std::boxed::Box::new(
13887 <Operator as ::treesitter_types::FromNode>::from_node(node, src)?,
13888 ))),
13889 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
13890 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
13891 ))),
13892 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13893 }
13894 }
13895}
13896impl ::treesitter_types::Spanned for PrefixIdChildren<'_> {
13897 fn span(&self) -> ::treesitter_types::Span {
13898 match self {
13899 Self::ConstructorOperator(inner) => inner.span(),
13900 Self::Operator(inner) => inner.span(),
13901 Self::Qualified(inner) => inner.span(),
13902 }
13903 }
13904}
13905#[derive(Debug, Clone)]
13906pub enum PromotedChildren<'tree> {
13907 Constructor(::std::boxed::Box<Constructor<'tree>>),
13908 ConstructorOperator(::std::boxed::Box<ConstructorOperator<'tree>>),
13909 EmptyList(::std::boxed::Box<EmptyList<'tree>>),
13910 InfixId(::std::boxed::Box<InfixId<'tree>>),
13911 List(::std::boxed::Box<List<'tree>>),
13912 Operator(::std::boxed::Box<Operator<'tree>>),
13913 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
13914 PrefixTuple(::std::boxed::Box<PrefixTuple<'tree>>),
13915 Qualified(::std::boxed::Box<Qualified<'tree>>),
13916 Tuple(::std::boxed::Box<Tuple<'tree>>),
13917 Unit(::std::boxed::Box<Unit<'tree>>),
13918}
13919impl<'tree> ::treesitter_types::FromNode<'tree> for PromotedChildren<'tree> {
13920 #[allow(clippy::collapsible_else_if)]
13921 fn from_node(
13922 node: ::tree_sitter::Node<'tree>,
13923 src: &'tree [u8],
13924 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13925 match node.kind() {
13926 "constructor" => Ok(Self::Constructor(::std::boxed::Box::new(
13927 <Constructor as ::treesitter_types::FromNode>::from_node(node, src)?,
13928 ))),
13929 "constructor_operator" => Ok(Self::ConstructorOperator(::std::boxed::Box::new(
13930 <ConstructorOperator as ::treesitter_types::FromNode>::from_node(node, src)?,
13931 ))),
13932 "empty_list" => Ok(Self::EmptyList(::std::boxed::Box::new(
13933 <EmptyList as ::treesitter_types::FromNode>::from_node(node, src)?,
13934 ))),
13935 "infix_id" => Ok(Self::InfixId(::std::boxed::Box::new(
13936 <InfixId as ::treesitter_types::FromNode>::from_node(node, src)?,
13937 ))),
13938 "list" => Ok(Self::List(::std::boxed::Box::new(
13939 <List as ::treesitter_types::FromNode>::from_node(node, src)?,
13940 ))),
13941 "operator" => Ok(Self::Operator(::std::boxed::Box::new(
13942 <Operator as ::treesitter_types::FromNode>::from_node(node, src)?,
13943 ))),
13944 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
13945 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
13946 ))),
13947 "prefix_tuple" => Ok(Self::PrefixTuple(::std::boxed::Box::new(
13948 <PrefixTuple as ::treesitter_types::FromNode>::from_node(node, src)?,
13949 ))),
13950 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
13951 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
13952 ))),
13953 "tuple" => Ok(Self::Tuple(::std::boxed::Box::new(
13954 <Tuple as ::treesitter_types::FromNode>::from_node(node, src)?,
13955 ))),
13956 "unit" => Ok(Self::Unit(::std::boxed::Box::new(
13957 <Unit as ::treesitter_types::FromNode>::from_node(node, src)?,
13958 ))),
13959 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
13960 }
13961 }
13962}
13963impl ::treesitter_types::Spanned for PromotedChildren<'_> {
13964 fn span(&self) -> ::treesitter_types::Span {
13965 match self {
13966 Self::Constructor(inner) => inner.span(),
13967 Self::ConstructorOperator(inner) => inner.span(),
13968 Self::EmptyList(inner) => inner.span(),
13969 Self::InfixId(inner) => inner.span(),
13970 Self::List(inner) => inner.span(),
13971 Self::Operator(inner) => inner.span(),
13972 Self::PrefixId(inner) => inner.span(),
13973 Self::PrefixTuple(inner) => inner.span(),
13974 Self::Qualified(inner) => inner.span(),
13975 Self::Tuple(inner) => inner.span(),
13976 Self::Unit(inner) => inner.span(),
13977 }
13978 }
13979}
13980#[derive(Debug, Clone)]
13981pub enum QualifiedId<'tree> {
13982 Constructor(::std::boxed::Box<Constructor<'tree>>),
13983 ConstructorOperator(::std::boxed::Box<ConstructorOperator<'tree>>),
13984 FieldName(::std::boxed::Box<FieldName<'tree>>),
13985 Name(::std::boxed::Box<Name<'tree>>),
13986 Operator(::std::boxed::Box<Operator<'tree>>),
13987 Variable(::std::boxed::Box<Variable<'tree>>),
13988}
13989impl<'tree> ::treesitter_types::FromNode<'tree> for QualifiedId<'tree> {
13990 #[allow(clippy::collapsible_else_if)]
13991 fn from_node(
13992 node: ::tree_sitter::Node<'tree>,
13993 src: &'tree [u8],
13994 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
13995 match node.kind() {
13996 "constructor" => Ok(Self::Constructor(::std::boxed::Box::new(
13997 <Constructor as ::treesitter_types::FromNode>::from_node(node, src)?,
13998 ))),
13999 "constructor_operator" => Ok(Self::ConstructorOperator(::std::boxed::Box::new(
14000 <ConstructorOperator as ::treesitter_types::FromNode>::from_node(node, src)?,
14001 ))),
14002 "field_name" => Ok(Self::FieldName(::std::boxed::Box::new(
14003 <FieldName as ::treesitter_types::FromNode>::from_node(node, src)?,
14004 ))),
14005 "name" => Ok(Self::Name(::std::boxed::Box::new(
14006 <Name as ::treesitter_types::FromNode>::from_node(node, src)?,
14007 ))),
14008 "operator" => Ok(Self::Operator(::std::boxed::Box::new(
14009 <Operator as ::treesitter_types::FromNode>::from_node(node, src)?,
14010 ))),
14011 "variable" => Ok(Self::Variable(::std::boxed::Box::new(
14012 <Variable as ::treesitter_types::FromNode>::from_node(node, src)?,
14013 ))),
14014 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14015 }
14016 }
14017}
14018impl ::treesitter_types::Spanned for QualifiedId<'_> {
14019 fn span(&self) -> ::treesitter_types::Span {
14020 match self {
14021 Self::Constructor(inner) => inner.span(),
14022 Self::ConstructorOperator(inner) => inner.span(),
14023 Self::FieldName(inner) => inner.span(),
14024 Self::Name(inner) => inner.span(),
14025 Self::Operator(inner) => inner.span(),
14026 Self::Variable(inner) => inner.span(),
14027 }
14028 }
14029}
14030#[derive(Debug, Clone)]
14031pub enum QuantifiedVariablesChildren<'tree> {
14032 Inferred(::std::boxed::Box<Inferred<'tree>>),
14033 TypeParam(::std::boxed::Box<TypeParam<'tree>>),
14034}
14035impl<'tree> ::treesitter_types::FromNode<'tree> for QuantifiedVariablesChildren<'tree> {
14036 #[allow(clippy::collapsible_else_if)]
14037 fn from_node(
14038 node: ::tree_sitter::Node<'tree>,
14039 src: &'tree [u8],
14040 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14041 match node.kind() {
14042 "inferred" => Ok(Self::Inferred(::std::boxed::Box::new(
14043 <Inferred as ::treesitter_types::FromNode>::from_node(node, src)?,
14044 ))),
14045 _other => {
14046 if let Ok(v) = <TypeParam as ::treesitter_types::FromNode>::from_node(node, src) {
14047 Ok(Self::TypeParam(::std::boxed::Box::new(v)))
14048 } else {
14049 Err(::treesitter_types::ParseError::unexpected_kind(
14050 _other, node,
14051 ))
14052 }
14053 }
14054 }
14055 }
14056}
14057impl ::treesitter_types::Spanned for QuantifiedVariablesChildren<'_> {
14058 fn span(&self) -> ::treesitter_types::Span {
14059 match self {
14060 Self::Inferred(inner) => inner.span(),
14061 Self::TypeParam(inner) => inner.span(),
14062 }
14063 }
14064}
14065#[derive(Debug, Clone)]
14066pub enum QuoteQuoter {
14067 D(::treesitter_types::Span),
14068 E(::treesitter_types::Span),
14069 P(::treesitter_types::Span),
14070 T(::treesitter_types::Span),
14071}
14072impl<'tree> ::treesitter_types::FromNode<'tree> for QuoteQuoter {
14073 #[allow(clippy::collapsible_else_if)]
14074 fn from_node(
14075 node: ::tree_sitter::Node<'tree>,
14076 _src: &'tree [u8],
14077 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14078 match node.kind() {
14079 "d" => Ok(Self::D(::treesitter_types::Span::from(node))),
14080 "e" => Ok(Self::E(::treesitter_types::Span::from(node))),
14081 "p" => Ok(Self::P(::treesitter_types::Span::from(node))),
14082 "t" => Ok(Self::T(::treesitter_types::Span::from(node))),
14083 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14084 }
14085 }
14086}
14087impl ::treesitter_types::Spanned for QuoteQuoter {
14088 fn span(&self) -> ::treesitter_types::Span {
14089 match self {
14090 Self::D(span) => *span,
14091 Self::E(span) => *span,
14092 Self::P(span) => *span,
14093 Self::T(span) => *span,
14094 }
14095 }
14096}
14097#[derive(Debug, Clone)]
14098pub enum QuoteChildren<'tree> {
14099 QuotedDecls(::std::boxed::Box<QuotedDecls<'tree>>),
14100 QuotedExpression(::std::boxed::Box<QuotedExpression<'tree>>),
14101 QuotedPattern(::std::boxed::Box<QuotedPattern<'tree>>),
14102 QuotedType(::std::boxed::Box<QuotedType<'tree>>),
14103}
14104impl<'tree> ::treesitter_types::FromNode<'tree> for QuoteChildren<'tree> {
14105 #[allow(clippy::collapsible_else_if)]
14106 fn from_node(
14107 node: ::tree_sitter::Node<'tree>,
14108 src: &'tree [u8],
14109 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14110 match node.kind() {
14111 "quoted_decls" => Ok(Self::QuotedDecls(::std::boxed::Box::new(
14112 <QuotedDecls as ::treesitter_types::FromNode>::from_node(node, src)?,
14113 ))),
14114 "quoted_expression" => Ok(Self::QuotedExpression(::std::boxed::Box::new(
14115 <QuotedExpression as ::treesitter_types::FromNode>::from_node(node, src)?,
14116 ))),
14117 "quoted_pattern" => Ok(Self::QuotedPattern(::std::boxed::Box::new(
14118 <QuotedPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
14119 ))),
14120 "quoted_type" => Ok(Self::QuotedType(::std::boxed::Box::new(
14121 <QuotedType as ::treesitter_types::FromNode>::from_node(node, src)?,
14122 ))),
14123 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14124 }
14125 }
14126}
14127impl ::treesitter_types::Spanned for QuoteChildren<'_> {
14128 fn span(&self) -> ::treesitter_types::Span {
14129 match self {
14130 Self::QuotedDecls(inner) => inner.span(),
14131 Self::QuotedExpression(inner) => inner.span(),
14132 Self::QuotedPattern(inner) => inner.span(),
14133 Self::QuotedType(inner) => inner.span(),
14134 }
14135 }
14136}
14137#[derive(Debug, Clone)]
14138pub enum QuotedExpressionChildren<'tree> {
14139 Expression(::std::boxed::Box<Expression<'tree>>),
14140 Signature(::std::boxed::Box<Signature<'tree>>),
14141}
14142impl<'tree> ::treesitter_types::FromNode<'tree> for QuotedExpressionChildren<'tree> {
14143 #[allow(clippy::collapsible_else_if)]
14144 fn from_node(
14145 node: ::tree_sitter::Node<'tree>,
14146 src: &'tree [u8],
14147 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14148 match node.kind() {
14149 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
14150 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
14151 ))),
14152 _other => {
14153 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
14154 Ok(Self::Expression(::std::boxed::Box::new(v)))
14155 } else {
14156 Err(::treesitter_types::ParseError::unexpected_kind(
14157 _other, node,
14158 ))
14159 }
14160 }
14161 }
14162 }
14163}
14164impl ::treesitter_types::Spanned for QuotedExpressionChildren<'_> {
14165 fn span(&self) -> ::treesitter_types::Span {
14166 match self {
14167 Self::Expression(inner) => inner.span(),
14168 Self::Signature(inner) => inner.span(),
14169 }
14170 }
14171}
14172#[derive(Debug, Clone)]
14173pub enum QuotedPatternChildren<'tree> {
14174 Pattern(::std::boxed::Box<Pattern<'tree>>),
14175 Signature(::std::boxed::Box<Signature<'tree>>),
14176}
14177impl<'tree> ::treesitter_types::FromNode<'tree> for QuotedPatternChildren<'tree> {
14178 #[allow(clippy::collapsible_else_if)]
14179 fn from_node(
14180 node: ::tree_sitter::Node<'tree>,
14181 src: &'tree [u8],
14182 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14183 match node.kind() {
14184 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
14185 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
14186 ))),
14187 _other => {
14188 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
14189 Ok(Self::Pattern(::std::boxed::Box::new(v)))
14190 } else {
14191 Err(::treesitter_types::ParseError::unexpected_kind(
14192 _other, node,
14193 ))
14194 }
14195 }
14196 }
14197 }
14198}
14199impl ::treesitter_types::Spanned for QuotedPatternChildren<'_> {
14200 fn span(&self) -> ::treesitter_types::Span {
14201 match self {
14202 Self::Pattern(inner) => inner.span(),
14203 Self::Signature(inner) => inner.span(),
14204 }
14205 }
14206}
14207#[derive(Debug, Clone)]
14208pub enum QuotedTypeChildren<'tree> {
14209 QuantifiedType(::std::boxed::Box<QuantifiedType<'tree>>),
14210 Signature(::std::boxed::Box<Signature<'tree>>),
14211}
14212impl<'tree> ::treesitter_types::FromNode<'tree> for QuotedTypeChildren<'tree> {
14213 #[allow(clippy::collapsible_else_if)]
14214 fn from_node(
14215 node: ::tree_sitter::Node<'tree>,
14216 src: &'tree [u8],
14217 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14218 match node.kind() {
14219 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
14220 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
14221 ))),
14222 _other => {
14223 if let Ok(v) =
14224 <QuantifiedType as ::treesitter_types::FromNode>::from_node(node, src)
14225 {
14226 Ok(Self::QuantifiedType(::std::boxed::Box::new(v)))
14227 } else {
14228 Err(::treesitter_types::ParseError::unexpected_kind(
14229 _other, node,
14230 ))
14231 }
14232 }
14233 }
14234 }
14235}
14236impl ::treesitter_types::Spanned for QuotedTypeChildren<'_> {
14237 fn span(&self) -> ::treesitter_types::Span {
14238 match self {
14239 Self::QuantifiedType(inner) => inner.span(),
14240 Self::Signature(inner) => inner.span(),
14241 }
14242 }
14243}
14244#[derive(Debug, Clone)]
14245pub enum QuoterChildren<'tree> {
14246 Qualified(::std::boxed::Box<Qualified<'tree>>),
14247 Variable(::std::boxed::Box<Variable<'tree>>),
14248}
14249impl<'tree> ::treesitter_types::FromNode<'tree> for QuoterChildren<'tree> {
14250 #[allow(clippy::collapsible_else_if)]
14251 fn from_node(
14252 node: ::tree_sitter::Node<'tree>,
14253 src: &'tree [u8],
14254 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14255 match node.kind() {
14256 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
14257 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
14258 ))),
14259 "variable" => Ok(Self::Variable(::std::boxed::Box::new(
14260 <Variable as ::treesitter_types::FromNode>::from_node(node, src)?,
14261 ))),
14262 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14263 }
14264 }
14265}
14266impl ::treesitter_types::Spanned for QuoterChildren<'_> {
14267 fn span(&self) -> ::treesitter_types::Span {
14268 match self {
14269 Self::Qualified(inner) => inner.span(),
14270 Self::Variable(inner) => inner.span(),
14271 }
14272 }
14273}
14274#[derive(Debug, Clone)]
14275pub enum RecordArrow {
14276 Arrow(::treesitter_types::Span),
14277 X(::treesitter_types::Span),
14278}
14279impl<'tree> ::treesitter_types::FromNode<'tree> for RecordArrow {
14280 #[allow(clippy::collapsible_else_if)]
14281 fn from_node(
14282 node: ::tree_sitter::Node<'tree>,
14283 _src: &'tree [u8],
14284 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14285 match node.kind() {
14286 "->" => Ok(Self::Arrow(::treesitter_types::Span::from(node))),
14287 "→" => Ok(Self::X(::treesitter_types::Span::from(node))),
14288 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14289 }
14290 }
14291}
14292impl ::treesitter_types::Spanned for RecordArrow {
14293 fn span(&self) -> ::treesitter_types::Span {
14294 match self {
14295 Self::Arrow(span) => *span,
14296 Self::X(span) => *span,
14297 }
14298 }
14299}
14300#[derive(Debug, Clone)]
14301pub enum RecordField<'tree> {
14302 Field(::std::boxed::Box<Field<'tree>>),
14303 FieldPattern(::std::boxed::Box<FieldPattern<'tree>>),
14304 FieldUpdate(::std::boxed::Box<FieldUpdate<'tree>>),
14305}
14306impl<'tree> ::treesitter_types::FromNode<'tree> for RecordField<'tree> {
14307 #[allow(clippy::collapsible_else_if)]
14308 fn from_node(
14309 node: ::tree_sitter::Node<'tree>,
14310 src: &'tree [u8],
14311 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14312 match node.kind() {
14313 "field" => Ok(Self::Field(::std::boxed::Box::new(
14314 <Field as ::treesitter_types::FromNode>::from_node(node, src)?,
14315 ))),
14316 "field_pattern" => Ok(Self::FieldPattern(::std::boxed::Box::new(
14317 <FieldPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
14318 ))),
14319 "field_update" => Ok(Self::FieldUpdate(::std::boxed::Box::new(
14320 <FieldUpdate as ::treesitter_types::FromNode>::from_node(node, src)?,
14321 ))),
14322 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14323 }
14324 }
14325}
14326impl ::treesitter_types::Spanned for RecordField<'_> {
14327 fn span(&self) -> ::treesitter_types::Span {
14328 match self {
14329 Self::Field(inner) => inner.span(),
14330 Self::FieldPattern(inner) => inner.span(),
14331 Self::FieldUpdate(inner) => inner.span(),
14332 }
14333 }
14334}
14335#[derive(Debug, Clone)]
14336pub enum RightSectionChildren<'tree> {
14337 ConstructorOperator(::std::boxed::Box<ConstructorOperator<'tree>>),
14338 InfixId(::std::boxed::Box<InfixId<'tree>>),
14339 Operator(::std::boxed::Box<Operator<'tree>>),
14340 Qualified(::std::boxed::Box<Qualified<'tree>>),
14341}
14342impl<'tree> ::treesitter_types::FromNode<'tree> for RightSectionChildren<'tree> {
14343 #[allow(clippy::collapsible_else_if)]
14344 fn from_node(
14345 node: ::tree_sitter::Node<'tree>,
14346 src: &'tree [u8],
14347 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14348 match node.kind() {
14349 "constructor_operator" => Ok(Self::ConstructorOperator(::std::boxed::Box::new(
14350 <ConstructorOperator as ::treesitter_types::FromNode>::from_node(node, src)?,
14351 ))),
14352 "infix_id" => Ok(Self::InfixId(::std::boxed::Box::new(
14353 <InfixId as ::treesitter_types::FromNode>::from_node(node, src)?,
14354 ))),
14355 "operator" => Ok(Self::Operator(::std::boxed::Box::new(
14356 <Operator as ::treesitter_types::FromNode>::from_node(node, src)?,
14357 ))),
14358 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
14359 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
14360 ))),
14361 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14362 }
14363 }
14364}
14365impl ::treesitter_types::Spanned for RightSectionChildren<'_> {
14366 fn span(&self) -> ::treesitter_types::Span {
14367 match self {
14368 Self::ConstructorOperator(inner) => inner.span(),
14369 Self::InfixId(inner) => inner.span(),
14370 Self::Operator(inner) => inner.span(),
14371 Self::Qualified(inner) => inner.span(),
14372 }
14373 }
14374}
14375#[derive(Debug, Clone)]
14376pub enum RoleAnnotationType<'tree> {
14377 Name(::std::boxed::Box<Name<'tree>>),
14378 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
14379 Qualified(::std::boxed::Box<Qualified<'tree>>),
14380}
14381impl<'tree> ::treesitter_types::FromNode<'tree> for RoleAnnotationType<'tree> {
14382 #[allow(clippy::collapsible_else_if)]
14383 fn from_node(
14384 node: ::tree_sitter::Node<'tree>,
14385 src: &'tree [u8],
14386 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14387 match node.kind() {
14388 "name" => Ok(Self::Name(::std::boxed::Box::new(
14389 <Name as ::treesitter_types::FromNode>::from_node(node, src)?,
14390 ))),
14391 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
14392 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
14393 ))),
14394 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
14395 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
14396 ))),
14397 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14398 }
14399 }
14400}
14401impl ::treesitter_types::Spanned for RoleAnnotationType<'_> {
14402 fn span(&self) -> ::treesitter_types::Span {
14403 match self {
14404 Self::Name(inner) => inner.span(),
14405 Self::PrefixId(inner) => inner.span(),
14406 Self::Qualified(inner) => inner.span(),
14407 }
14408 }
14409}
14410#[derive(Debug, Clone)]
14411pub enum SignatureName<'tree> {
14412 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
14413 Variable(::std::boxed::Box<Variable<'tree>>),
14414}
14415impl<'tree> ::treesitter_types::FromNode<'tree> for SignatureName<'tree> {
14416 #[allow(clippy::collapsible_else_if)]
14417 fn from_node(
14418 node: ::tree_sitter::Node<'tree>,
14419 src: &'tree [u8],
14420 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14421 match node.kind() {
14422 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
14423 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
14424 ))),
14425 "variable" => Ok(Self::Variable(::std::boxed::Box::new(
14426 <Variable as ::treesitter_types::FromNode>::from_node(node, src)?,
14427 ))),
14428 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14429 }
14430 }
14431}
14432impl ::treesitter_types::Spanned for SignatureName<'_> {
14433 fn span(&self) -> ::treesitter_types::Span {
14434 match self {
14435 Self::PrefixId(inner) => inner.span(),
14436 Self::Variable(inner) => inner.span(),
14437 }
14438 }
14439}
14440#[derive(Debug, Clone)]
14441pub enum SignatureSynonym<'tree> {
14442 BindingList(::std::boxed::Box<BindingList<'tree>>),
14443 Constructor(::std::boxed::Box<Constructor<'tree>>),
14444 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
14445}
14446impl<'tree> ::treesitter_types::FromNode<'tree> for SignatureSynonym<'tree> {
14447 #[allow(clippy::collapsible_else_if)]
14448 fn from_node(
14449 node: ::tree_sitter::Node<'tree>,
14450 src: &'tree [u8],
14451 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14452 match node.kind() {
14453 "binding_list" => Ok(Self::BindingList(::std::boxed::Box::new(
14454 <BindingList as ::treesitter_types::FromNode>::from_node(node, src)?,
14455 ))),
14456 "constructor" => Ok(Self::Constructor(::std::boxed::Box::new(
14457 <Constructor as ::treesitter_types::FromNode>::from_node(node, src)?,
14458 ))),
14459 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
14460 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
14461 ))),
14462 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14463 }
14464 }
14465}
14466impl ::treesitter_types::Spanned for SignatureSynonym<'_> {
14467 fn span(&self) -> ::treesitter_types::Span {
14468 match self {
14469 Self::BindingList(inner) => inner.span(),
14470 Self::Constructor(inner) => inner.span(),
14471 Self::PrefixId(inner) => inner.span(),
14472 }
14473 }
14474}
14475#[derive(Debug, Clone)]
14476pub enum SpecialChildren<'tree> {
14477 EmptyList(::std::boxed::Box<EmptyList<'tree>>),
14478 Tuple(::std::boxed::Box<Tuple<'tree>>),
14479 UnboxedSum(::std::boxed::Box<UnboxedSum<'tree>>),
14480 UnboxedTuple(::std::boxed::Box<UnboxedTuple<'tree>>),
14481 UnboxedUnit(::std::boxed::Box<UnboxedUnit<'tree>>),
14482 Unit(::std::boxed::Box<Unit<'tree>>),
14483}
14484impl<'tree> ::treesitter_types::FromNode<'tree> for SpecialChildren<'tree> {
14485 #[allow(clippy::collapsible_else_if)]
14486 fn from_node(
14487 node: ::tree_sitter::Node<'tree>,
14488 src: &'tree [u8],
14489 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14490 match node.kind() {
14491 "empty_list" => Ok(Self::EmptyList(::std::boxed::Box::new(
14492 <EmptyList as ::treesitter_types::FromNode>::from_node(node, src)?,
14493 ))),
14494 "tuple" => Ok(Self::Tuple(::std::boxed::Box::new(
14495 <Tuple as ::treesitter_types::FromNode>::from_node(node, src)?,
14496 ))),
14497 "unboxed_sum" => Ok(Self::UnboxedSum(::std::boxed::Box::new(
14498 <UnboxedSum as ::treesitter_types::FromNode>::from_node(node, src)?,
14499 ))),
14500 "unboxed_tuple" => Ok(Self::UnboxedTuple(::std::boxed::Box::new(
14501 <UnboxedTuple as ::treesitter_types::FromNode>::from_node(node, src)?,
14502 ))),
14503 "unboxed_unit" => Ok(Self::UnboxedUnit(::std::boxed::Box::new(
14504 <UnboxedUnit as ::treesitter_types::FromNode>::from_node(node, src)?,
14505 ))),
14506 "unit" => Ok(Self::Unit(::std::boxed::Box::new(
14507 <Unit as ::treesitter_types::FromNode>::from_node(node, src)?,
14508 ))),
14509 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14510 }
14511 }
14512}
14513impl ::treesitter_types::Spanned for SpecialChildren<'_> {
14514 fn span(&self) -> ::treesitter_types::Span {
14515 match self {
14516 Self::EmptyList(inner) => inner.span(),
14517 Self::Tuple(inner) => inner.span(),
14518 Self::UnboxedSum(inner) => inner.span(),
14519 Self::UnboxedTuple(inner) => inner.span(),
14520 Self::UnboxedUnit(inner) => inner.span(),
14521 Self::Unit(inner) => inner.span(),
14522 }
14523 }
14524}
14525#[derive(Debug, Clone)]
14526pub enum SpliceExpression<'tree> {
14527 Constructor(::std::boxed::Box<Constructor<'tree>>),
14528 ImplicitVariable(::std::boxed::Box<ImplicitVariable<'tree>>),
14529 Label(::std::boxed::Box<Label<'tree>>),
14530 Literal(::std::boxed::Box<Literal<'tree>>),
14531 Parens(::std::boxed::Box<Parens<'tree>>),
14532 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
14533 Qualified(::std::boxed::Box<Qualified<'tree>>),
14534 Variable(::std::boxed::Box<Variable<'tree>>),
14535}
14536impl<'tree> ::treesitter_types::FromNode<'tree> for SpliceExpression<'tree> {
14537 #[allow(clippy::collapsible_else_if)]
14538 fn from_node(
14539 node: ::tree_sitter::Node<'tree>,
14540 src: &'tree [u8],
14541 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14542 match node.kind() {
14543 "constructor" => Ok(Self::Constructor(::std::boxed::Box::new(
14544 <Constructor as ::treesitter_types::FromNode>::from_node(node, src)?,
14545 ))),
14546 "implicit_variable" => Ok(Self::ImplicitVariable(::std::boxed::Box::new(
14547 <ImplicitVariable as ::treesitter_types::FromNode>::from_node(node, src)?,
14548 ))),
14549 "label" => Ok(Self::Label(::std::boxed::Box::new(
14550 <Label as ::treesitter_types::FromNode>::from_node(node, src)?,
14551 ))),
14552 "literal" => Ok(Self::Literal(::std::boxed::Box::new(
14553 <Literal as ::treesitter_types::FromNode>::from_node(node, src)?,
14554 ))),
14555 "parens" => Ok(Self::Parens(::std::boxed::Box::new(
14556 <Parens as ::treesitter_types::FromNode>::from_node(node, src)?,
14557 ))),
14558 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
14559 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
14560 ))),
14561 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
14562 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
14563 ))),
14564 "variable" => Ok(Self::Variable(::std::boxed::Box::new(
14565 <Variable as ::treesitter_types::FromNode>::from_node(node, src)?,
14566 ))),
14567 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14568 }
14569 }
14570}
14571impl ::treesitter_types::Spanned for SpliceExpression<'_> {
14572 fn span(&self) -> ::treesitter_types::Span {
14573 match self {
14574 Self::Constructor(inner) => inner.span(),
14575 Self::ImplicitVariable(inner) => inner.span(),
14576 Self::Label(inner) => inner.span(),
14577 Self::Literal(inner) => inner.span(),
14578 Self::Parens(inner) => inner.span(),
14579 Self::PrefixId(inner) => inner.span(),
14580 Self::Qualified(inner) => inner.span(),
14581 Self::Variable(inner) => inner.span(),
14582 }
14583 }
14584}
14585#[derive(Debug, Clone)]
14586pub enum ThQuotedNameName<'tree> {
14587 Constructor(::std::boxed::Box<Constructor<'tree>>),
14588 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
14589 Qualified(::std::boxed::Box<Qualified<'tree>>),
14590 Variable(::std::boxed::Box<Variable<'tree>>),
14591}
14592impl<'tree> ::treesitter_types::FromNode<'tree> for ThQuotedNameName<'tree> {
14593 #[allow(clippy::collapsible_else_if)]
14594 fn from_node(
14595 node: ::tree_sitter::Node<'tree>,
14596 src: &'tree [u8],
14597 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14598 match node.kind() {
14599 "constructor" => Ok(Self::Constructor(::std::boxed::Box::new(
14600 <Constructor as ::treesitter_types::FromNode>::from_node(node, src)?,
14601 ))),
14602 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
14603 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
14604 ))),
14605 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
14606 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
14607 ))),
14608 "variable" => Ok(Self::Variable(::std::boxed::Box::new(
14609 <Variable as ::treesitter_types::FromNode>::from_node(node, src)?,
14610 ))),
14611 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14612 }
14613 }
14614}
14615impl ::treesitter_types::Spanned for ThQuotedNameName<'_> {
14616 fn span(&self) -> ::treesitter_types::Span {
14617 match self {
14618 Self::Constructor(inner) => inner.span(),
14619 Self::PrefixId(inner) => inner.span(),
14620 Self::Qualified(inner) => inner.span(),
14621 Self::Variable(inner) => inner.span(),
14622 }
14623 }
14624}
14625#[derive(Debug, Clone)]
14626pub enum TransformKey<'tree> {
14627 Expression(::std::boxed::Box<Expression<'tree>>),
14628 Signature(::std::boxed::Box<Signature<'tree>>),
14629}
14630impl<'tree> ::treesitter_types::FromNode<'tree> for TransformKey<'tree> {
14631 #[allow(clippy::collapsible_else_if)]
14632 fn from_node(
14633 node: ::tree_sitter::Node<'tree>,
14634 src: &'tree [u8],
14635 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14636 match node.kind() {
14637 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
14638 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
14639 ))),
14640 _other => {
14641 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
14642 Ok(Self::Expression(::std::boxed::Box::new(v)))
14643 } else {
14644 Err(::treesitter_types::ParseError::unexpected_kind(
14645 _other, node,
14646 ))
14647 }
14648 }
14649 }
14650 }
14651}
14652impl ::treesitter_types::Spanned for TransformKey<'_> {
14653 fn span(&self) -> ::treesitter_types::Span {
14654 match self {
14655 Self::Expression(inner) => inner.span(),
14656 Self::Signature(inner) => inner.span(),
14657 }
14658 }
14659}
14660#[derive(Debug, Clone)]
14661pub enum TransformTransformation<'tree> {
14662 Expression(::std::boxed::Box<Expression<'tree>>),
14663 Signature(::std::boxed::Box<Signature<'tree>>),
14664}
14665impl<'tree> ::treesitter_types::FromNode<'tree> for TransformTransformation<'tree> {
14666 #[allow(clippy::collapsible_else_if)]
14667 fn from_node(
14668 node: ::tree_sitter::Node<'tree>,
14669 src: &'tree [u8],
14670 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14671 match node.kind() {
14672 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
14673 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
14674 ))),
14675 _other => {
14676 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
14677 Ok(Self::Expression(::std::boxed::Box::new(v)))
14678 } else {
14679 Err(::treesitter_types::ParseError::unexpected_kind(
14680 _other, node,
14681 ))
14682 }
14683 }
14684 }
14685 }
14686}
14687impl ::treesitter_types::Spanned for TransformTransformation<'_> {
14688 fn span(&self) -> ::treesitter_types::Span {
14689 match self {
14690 Self::Expression(inner) => inner.span(),
14691 Self::Signature(inner) => inner.span(),
14692 }
14693 }
14694}
14695#[derive(Debug, Clone)]
14696pub enum TupleElement<'tree> {
14697 Expression(::std::boxed::Box<Expression<'tree>>),
14698 Pattern(::std::boxed::Box<Pattern<'tree>>),
14699 QuantifiedType(::std::boxed::Box<QuantifiedType<'tree>>),
14700 Signature(::std::boxed::Box<Signature<'tree>>),
14701 ViewPattern(::std::boxed::Box<ViewPattern<'tree>>),
14702}
14703impl<'tree> ::treesitter_types::FromNode<'tree> for TupleElement<'tree> {
14704 #[allow(clippy::collapsible_else_if)]
14705 fn from_node(
14706 node: ::tree_sitter::Node<'tree>,
14707 src: &'tree [u8],
14708 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14709 match node.kind() {
14710 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
14711 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
14712 ))),
14713 "view_pattern" => Ok(Self::ViewPattern(::std::boxed::Box::new(
14714 <ViewPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
14715 ))),
14716 _other => {
14717 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
14718 Ok(Self::Expression(::std::boxed::Box::new(v)))
14719 } else {
14720 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
14721 Ok(Self::Pattern(::std::boxed::Box::new(v)))
14722 } else {
14723 if let Ok(v) =
14724 <QuantifiedType as ::treesitter_types::FromNode>::from_node(node, src)
14725 {
14726 Ok(Self::QuantifiedType(::std::boxed::Box::new(v)))
14727 } else {
14728 Err(::treesitter_types::ParseError::unexpected_kind(
14729 _other, node,
14730 ))
14731 }
14732 }
14733 }
14734 }
14735 }
14736 }
14737}
14738impl ::treesitter_types::Spanned for TupleElement<'_> {
14739 fn span(&self) -> ::treesitter_types::Span {
14740 match self {
14741 Self::Expression(inner) => inner.span(),
14742 Self::Pattern(inner) => inner.span(),
14743 Self::QuantifiedType(inner) => inner.span(),
14744 Self::Signature(inner) => inner.span(),
14745 Self::ViewPattern(inner) => inner.span(),
14746 }
14747 }
14748}
14749#[derive(Debug, Clone)]
14750pub enum TypeFamilyClosedFamily<'tree> {
14751 AbstractFamily(::std::boxed::Box<AbstractFamily<'tree>>),
14752 Equations(::std::boxed::Box<Equations<'tree>>),
14753}
14754impl<'tree> ::treesitter_types::FromNode<'tree> for TypeFamilyClosedFamily<'tree> {
14755 #[allow(clippy::collapsible_else_if)]
14756 fn from_node(
14757 node: ::tree_sitter::Node<'tree>,
14758 src: &'tree [u8],
14759 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14760 match node.kind() {
14761 "abstract_family" => Ok(Self::AbstractFamily(::std::boxed::Box::new(
14762 <AbstractFamily as ::treesitter_types::FromNode>::from_node(node, src)?,
14763 ))),
14764 "equations" => Ok(Self::Equations(::std::boxed::Box::new(
14765 <Equations as ::treesitter_types::FromNode>::from_node(node, src)?,
14766 ))),
14767 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14768 }
14769 }
14770}
14771impl ::treesitter_types::Spanned for TypeFamilyClosedFamily<'_> {
14772 fn span(&self) -> ::treesitter_types::Span {
14773 match self {
14774 Self::AbstractFamily(inner) => inner.span(),
14775 Self::Equations(inner) => inner.span(),
14776 }
14777 }
14778}
14779#[derive(Debug, Clone)]
14780pub enum TypeFamilyName<'tree> {
14781 Name(::std::boxed::Box<Name<'tree>>),
14782 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
14783 PrefixList(::std::boxed::Box<PrefixList<'tree>>),
14784 Unit(::std::boxed::Box<Unit<'tree>>),
14785}
14786impl<'tree> ::treesitter_types::FromNode<'tree> for TypeFamilyName<'tree> {
14787 #[allow(clippy::collapsible_else_if)]
14788 fn from_node(
14789 node: ::tree_sitter::Node<'tree>,
14790 src: &'tree [u8],
14791 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14792 match node.kind() {
14793 "name" => Ok(Self::Name(::std::boxed::Box::new(
14794 <Name as ::treesitter_types::FromNode>::from_node(node, src)?,
14795 ))),
14796 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
14797 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
14798 ))),
14799 "prefix_list" => Ok(Self::PrefixList(::std::boxed::Box::new(
14800 <PrefixList as ::treesitter_types::FromNode>::from_node(node, src)?,
14801 ))),
14802 "unit" => Ok(Self::Unit(::std::boxed::Box::new(
14803 <Unit as ::treesitter_types::FromNode>::from_node(node, src)?,
14804 ))),
14805 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14806 }
14807 }
14808}
14809impl ::treesitter_types::Spanned for TypeFamilyName<'_> {
14810 fn span(&self) -> ::treesitter_types::Span {
14811 match self {
14812 Self::Name(inner) => inner.span(),
14813 Self::PrefixId(inner) => inner.span(),
14814 Self::PrefixList(inner) => inner.span(),
14815 Self::Unit(inner) => inner.span(),
14816 }
14817 }
14818}
14819#[derive(Debug, Clone)]
14820pub enum TypeFamilyChildren<'tree> {
14821 Infix(::std::boxed::Box<Infix<'tree>>),
14822 Parens(::std::boxed::Box<Parens<'tree>>),
14823 TypeFamilyInjectivity(::std::boxed::Box<TypeFamilyInjectivity<'tree>>),
14824 TypeFamilyResult(::std::boxed::Box<TypeFamilyResult<'tree>>),
14825}
14826impl<'tree> ::treesitter_types::FromNode<'tree> for TypeFamilyChildren<'tree> {
14827 #[allow(clippy::collapsible_else_if)]
14828 fn from_node(
14829 node: ::tree_sitter::Node<'tree>,
14830 src: &'tree [u8],
14831 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14832 match node.kind() {
14833 "infix" => Ok(Self::Infix(::std::boxed::Box::new(
14834 <Infix as ::treesitter_types::FromNode>::from_node(node, src)?,
14835 ))),
14836 "parens" => Ok(Self::Parens(::std::boxed::Box::new(
14837 <Parens as ::treesitter_types::FromNode>::from_node(node, src)?,
14838 ))),
14839 "type_family_injectivity" => Ok(Self::TypeFamilyInjectivity(::std::boxed::Box::new(
14840 <TypeFamilyInjectivity as ::treesitter_types::FromNode>::from_node(node, src)?,
14841 ))),
14842 "type_family_result" => Ok(Self::TypeFamilyResult(::std::boxed::Box::new(
14843 <TypeFamilyResult as ::treesitter_types::FromNode>::from_node(node, src)?,
14844 ))),
14845 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14846 }
14847 }
14848}
14849impl ::treesitter_types::Spanned for TypeFamilyChildren<'_> {
14850 fn span(&self) -> ::treesitter_types::Span {
14851 match self {
14852 Self::Infix(inner) => inner.span(),
14853 Self::Parens(inner) => inner.span(),
14854 Self::TypeFamilyInjectivity(inner) => inner.span(),
14855 Self::TypeFamilyResult(inner) => inner.span(),
14856 }
14857 }
14858}
14859#[derive(Debug, Clone)]
14860pub enum TypeInstanceForall<'tree> {
14861 Forall(::std::boxed::Box<Forall<'tree>>),
14862 ForallRequired(::std::boxed::Box<ForallRequired<'tree>>),
14863}
14864impl<'tree> ::treesitter_types::FromNode<'tree> for TypeInstanceForall<'tree> {
14865 #[allow(clippy::collapsible_else_if)]
14866 fn from_node(
14867 node: ::tree_sitter::Node<'tree>,
14868 src: &'tree [u8],
14869 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14870 match node.kind() {
14871 "forall" => Ok(Self::Forall(::std::boxed::Box::new(
14872 <Forall as ::treesitter_types::FromNode>::from_node(node, src)?,
14873 ))),
14874 "forall_required" => Ok(Self::ForallRequired(::std::boxed::Box::new(
14875 <ForallRequired as ::treesitter_types::FromNode>::from_node(node, src)?,
14876 ))),
14877 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14878 }
14879 }
14880}
14881impl ::treesitter_types::Spanned for TypeInstanceForall<'_> {
14882 fn span(&self) -> ::treesitter_types::Span {
14883 match self {
14884 Self::Forall(inner) => inner.span(),
14885 Self::ForallRequired(inner) => inner.span(),
14886 }
14887 }
14888}
14889#[derive(Debug, Clone)]
14890pub enum TypeInstanceName<'tree> {
14891 Name(::std::boxed::Box<Name<'tree>>),
14892 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
14893 Qualified(::std::boxed::Box<Qualified<'tree>>),
14894}
14895impl<'tree> ::treesitter_types::FromNode<'tree> for TypeInstanceName<'tree> {
14896 #[allow(clippy::collapsible_else_if)]
14897 fn from_node(
14898 node: ::tree_sitter::Node<'tree>,
14899 src: &'tree [u8],
14900 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14901 match node.kind() {
14902 "name" => Ok(Self::Name(::std::boxed::Box::new(
14903 <Name as ::treesitter_types::FromNode>::from_node(node, src)?,
14904 ))),
14905 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
14906 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
14907 ))),
14908 "qualified" => Ok(Self::Qualified(::std::boxed::Box::new(
14909 <Qualified as ::treesitter_types::FromNode>::from_node(node, src)?,
14910 ))),
14911 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
14912 }
14913 }
14914}
14915impl ::treesitter_types::Spanned for TypeInstanceName<'_> {
14916 fn span(&self) -> ::treesitter_types::Span {
14917 match self {
14918 Self::Name(inner) => inner.span(),
14919 Self::PrefixId(inner) => inner.span(),
14920 Self::Qualified(inner) => inner.span(),
14921 }
14922 }
14923}
14924#[derive(Debug, Clone)]
14925pub enum TypeInstanceChildren<'tree> {
14926 Infix(::std::boxed::Box<Infix<'tree>>),
14927 Parens(::std::boxed::Box<Parens<'tree>>),
14928 QuantifiedType(::std::boxed::Box<QuantifiedType<'tree>>),
14929}
14930impl<'tree> ::treesitter_types::FromNode<'tree> for TypeInstanceChildren<'tree> {
14931 #[allow(clippy::collapsible_else_if)]
14932 fn from_node(
14933 node: ::tree_sitter::Node<'tree>,
14934 src: &'tree [u8],
14935 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14936 match node.kind() {
14937 "infix" => Ok(Self::Infix(::std::boxed::Box::new(
14938 <Infix as ::treesitter_types::FromNode>::from_node(node, src)?,
14939 ))),
14940 "parens" => Ok(Self::Parens(::std::boxed::Box::new(
14941 <Parens as ::treesitter_types::FromNode>::from_node(node, src)?,
14942 ))),
14943 _other => {
14944 if let Ok(v) =
14945 <QuantifiedType as ::treesitter_types::FromNode>::from_node(node, src)
14946 {
14947 Ok(Self::QuantifiedType(::std::boxed::Box::new(v)))
14948 } else {
14949 Err(::treesitter_types::ParseError::unexpected_kind(
14950 _other, node,
14951 ))
14952 }
14953 }
14954 }
14955 }
14956}
14957impl ::treesitter_types::Spanned for TypeInstanceChildren<'_> {
14958 fn span(&self) -> ::treesitter_types::Span {
14959 match self {
14960 Self::Infix(inner) => inner.span(),
14961 Self::Parens(inner) => inner.span(),
14962 Self::QuantifiedType(inner) => inner.span(),
14963 }
14964 }
14965}
14966#[derive(Debug, Clone)]
14967pub enum TypePatternsChildren<'tree> {
14968 KindApplication(::std::boxed::Box<KindApplication<'tree>>),
14969 Type(::std::boxed::Box<Type<'tree>>),
14970}
14971impl<'tree> ::treesitter_types::FromNode<'tree> for TypePatternsChildren<'tree> {
14972 #[allow(clippy::collapsible_else_if)]
14973 fn from_node(
14974 node: ::tree_sitter::Node<'tree>,
14975 src: &'tree [u8],
14976 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
14977 match node.kind() {
14978 "kind_application" => Ok(Self::KindApplication(::std::boxed::Box::new(
14979 <KindApplication as ::treesitter_types::FromNode>::from_node(node, src)?,
14980 ))),
14981 _other => {
14982 if let Ok(v) = <Type as ::treesitter_types::FromNode>::from_node(node, src) {
14983 Ok(Self::Type(::std::boxed::Box::new(v)))
14984 } else {
14985 Err(::treesitter_types::ParseError::unexpected_kind(
14986 _other, node,
14987 ))
14988 }
14989 }
14990 }
14991 }
14992}
14993impl ::treesitter_types::Spanned for TypePatternsChildren<'_> {
14994 fn span(&self) -> ::treesitter_types::Span {
14995 match self {
14996 Self::KindApplication(inner) => inner.span(),
14997 Self::Type(inner) => inner.span(),
14998 }
14999 }
15000}
15001#[derive(Debug, Clone)]
15002pub enum TypeSynomymName<'tree> {
15003 Name(::std::boxed::Box<Name<'tree>>),
15004 PrefixId(::std::boxed::Box<PrefixId<'tree>>),
15005 PrefixList(::std::boxed::Box<PrefixList<'tree>>),
15006 Unit(::std::boxed::Box<Unit<'tree>>),
15007}
15008impl<'tree> ::treesitter_types::FromNode<'tree> for TypeSynomymName<'tree> {
15009 #[allow(clippy::collapsible_else_if)]
15010 fn from_node(
15011 node: ::tree_sitter::Node<'tree>,
15012 src: &'tree [u8],
15013 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15014 match node.kind() {
15015 "name" => Ok(Self::Name(::std::boxed::Box::new(
15016 <Name as ::treesitter_types::FromNode>::from_node(node, src)?,
15017 ))),
15018 "prefix_id" => Ok(Self::PrefixId(::std::boxed::Box::new(
15019 <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)?,
15020 ))),
15021 "prefix_list" => Ok(Self::PrefixList(::std::boxed::Box::new(
15022 <PrefixList as ::treesitter_types::FromNode>::from_node(node, src)?,
15023 ))),
15024 "unit" => Ok(Self::Unit(::std::boxed::Box::new(
15025 <Unit as ::treesitter_types::FromNode>::from_node(node, src)?,
15026 ))),
15027 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
15028 }
15029 }
15030}
15031impl ::treesitter_types::Spanned for TypeSynomymName<'_> {
15032 fn span(&self) -> ::treesitter_types::Span {
15033 match self {
15034 Self::Name(inner) => inner.span(),
15035 Self::PrefixId(inner) => inner.span(),
15036 Self::PrefixList(inner) => inner.span(),
15037 Self::Unit(inner) => inner.span(),
15038 }
15039 }
15040}
15041#[derive(Debug, Clone)]
15042pub enum TypeSynomymType<'tree> {
15043 QuantifiedType(::std::boxed::Box<QuantifiedType<'tree>>),
15044 Signature(::std::boxed::Box<Signature<'tree>>),
15045}
15046impl<'tree> ::treesitter_types::FromNode<'tree> for TypeSynomymType<'tree> {
15047 #[allow(clippy::collapsible_else_if)]
15048 fn from_node(
15049 node: ::tree_sitter::Node<'tree>,
15050 src: &'tree [u8],
15051 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15052 match node.kind() {
15053 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
15054 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
15055 ))),
15056 _other => {
15057 if let Ok(v) =
15058 <QuantifiedType as ::treesitter_types::FromNode>::from_node(node, src)
15059 {
15060 Ok(Self::QuantifiedType(::std::boxed::Box::new(v)))
15061 } else {
15062 Err(::treesitter_types::ParseError::unexpected_kind(
15063 _other, node,
15064 ))
15065 }
15066 }
15067 }
15068 }
15069}
15070impl ::treesitter_types::Spanned for TypeSynomymType<'_> {
15071 fn span(&self) -> ::treesitter_types::Span {
15072 match self {
15073 Self::QuantifiedType(inner) => inner.span(),
15074 Self::Signature(inner) => inner.span(),
15075 }
15076 }
15077}
15078#[derive(Debug, Clone)]
15079pub enum TypeSynomymChildren<'tree> {
15080 Infix(::std::boxed::Box<Infix<'tree>>),
15081 Parens(::std::boxed::Box<Parens<'tree>>),
15082}
15083impl<'tree> ::treesitter_types::FromNode<'tree> for TypeSynomymChildren<'tree> {
15084 #[allow(clippy::collapsible_else_if)]
15085 fn from_node(
15086 node: ::tree_sitter::Node<'tree>,
15087 src: &'tree [u8],
15088 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15089 match node.kind() {
15090 "infix" => Ok(Self::Infix(::std::boxed::Box::new(
15091 <Infix as ::treesitter_types::FromNode>::from_node(node, src)?,
15092 ))),
15093 "parens" => Ok(Self::Parens(::std::boxed::Box::new(
15094 <Parens as ::treesitter_types::FromNode>::from_node(node, src)?,
15095 ))),
15096 other => Err(::treesitter_types::ParseError::unexpected_kind(other, node)),
15097 }
15098 }
15099}
15100impl ::treesitter_types::Spanned for TypeSynomymChildren<'_> {
15101 fn span(&self) -> ::treesitter_types::Span {
15102 match self {
15103 Self::Infix(inner) => inner.span(),
15104 Self::Parens(inner) => inner.span(),
15105 }
15106 }
15107}
15108#[derive(Debug, Clone)]
15109pub enum UnboxedSumElement<'tree> {
15110 Expression(::std::boxed::Box<Expression<'tree>>),
15111 Pattern(::std::boxed::Box<Pattern<'tree>>),
15112 QuantifiedType(::std::boxed::Box<QuantifiedType<'tree>>),
15113 Signature(::std::boxed::Box<Signature<'tree>>),
15114 ViewPattern(::std::boxed::Box<ViewPattern<'tree>>),
15115}
15116impl<'tree> ::treesitter_types::FromNode<'tree> for UnboxedSumElement<'tree> {
15117 #[allow(clippy::collapsible_else_if)]
15118 fn from_node(
15119 node: ::tree_sitter::Node<'tree>,
15120 src: &'tree [u8],
15121 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15122 match node.kind() {
15123 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
15124 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
15125 ))),
15126 "view_pattern" => Ok(Self::ViewPattern(::std::boxed::Box::new(
15127 <ViewPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
15128 ))),
15129 _other => {
15130 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
15131 Ok(Self::Expression(::std::boxed::Box::new(v)))
15132 } else {
15133 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
15134 Ok(Self::Pattern(::std::boxed::Box::new(v)))
15135 } else {
15136 if let Ok(v) =
15137 <QuantifiedType as ::treesitter_types::FromNode>::from_node(node, src)
15138 {
15139 Ok(Self::QuantifiedType(::std::boxed::Box::new(v)))
15140 } else {
15141 Err(::treesitter_types::ParseError::unexpected_kind(
15142 _other, node,
15143 ))
15144 }
15145 }
15146 }
15147 }
15148 }
15149 }
15150}
15151impl ::treesitter_types::Spanned for UnboxedSumElement<'_> {
15152 fn span(&self) -> ::treesitter_types::Span {
15153 match self {
15154 Self::Expression(inner) => inner.span(),
15155 Self::Pattern(inner) => inner.span(),
15156 Self::QuantifiedType(inner) => inner.span(),
15157 Self::Signature(inner) => inner.span(),
15158 Self::ViewPattern(inner) => inner.span(),
15159 }
15160 }
15161}
15162#[derive(Debug, Clone)]
15163pub enum UnboxedTupleElement<'tree> {
15164 Expression(::std::boxed::Box<Expression<'tree>>),
15165 Pattern(::std::boxed::Box<Pattern<'tree>>),
15166 QuantifiedType(::std::boxed::Box<QuantifiedType<'tree>>),
15167 Signature(::std::boxed::Box<Signature<'tree>>),
15168 ViewPattern(::std::boxed::Box<ViewPattern<'tree>>),
15169}
15170impl<'tree> ::treesitter_types::FromNode<'tree> for UnboxedTupleElement<'tree> {
15171 #[allow(clippy::collapsible_else_if)]
15172 fn from_node(
15173 node: ::tree_sitter::Node<'tree>,
15174 src: &'tree [u8],
15175 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15176 match node.kind() {
15177 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
15178 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
15179 ))),
15180 "view_pattern" => Ok(Self::ViewPattern(::std::boxed::Box::new(
15181 <ViewPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
15182 ))),
15183 _other => {
15184 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
15185 Ok(Self::Expression(::std::boxed::Box::new(v)))
15186 } else {
15187 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
15188 Ok(Self::Pattern(::std::boxed::Box::new(v)))
15189 } else {
15190 if let Ok(v) =
15191 <QuantifiedType as ::treesitter_types::FromNode>::from_node(node, src)
15192 {
15193 Ok(Self::QuantifiedType(::std::boxed::Box::new(v)))
15194 } else {
15195 Err(::treesitter_types::ParseError::unexpected_kind(
15196 _other, node,
15197 ))
15198 }
15199 }
15200 }
15201 }
15202 }
15203 }
15204}
15205impl ::treesitter_types::Spanned for UnboxedTupleElement<'_> {
15206 fn span(&self) -> ::treesitter_types::Span {
15207 match self {
15208 Self::Expression(inner) => inner.span(),
15209 Self::Pattern(inner) => inner.span(),
15210 Self::QuantifiedType(inner) => inner.span(),
15211 Self::Signature(inner) => inner.span(),
15212 Self::ViewPattern(inner) => inner.span(),
15213 }
15214 }
15215}
15216#[derive(Debug, Clone)]
15217pub enum ViewPatternExpression<'tree> {
15218 Expression(::std::boxed::Box<Expression<'tree>>),
15219 Signature(::std::boxed::Box<Signature<'tree>>),
15220}
15221impl<'tree> ::treesitter_types::FromNode<'tree> for ViewPatternExpression<'tree> {
15222 #[allow(clippy::collapsible_else_if)]
15223 fn from_node(
15224 node: ::tree_sitter::Node<'tree>,
15225 src: &'tree [u8],
15226 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15227 match node.kind() {
15228 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
15229 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
15230 ))),
15231 _other => {
15232 if let Ok(v) = <Expression as ::treesitter_types::FromNode>::from_node(node, src) {
15233 Ok(Self::Expression(::std::boxed::Box::new(v)))
15234 } else {
15235 Err(::treesitter_types::ParseError::unexpected_kind(
15236 _other, node,
15237 ))
15238 }
15239 }
15240 }
15241 }
15242}
15243impl ::treesitter_types::Spanned for ViewPatternExpression<'_> {
15244 fn span(&self) -> ::treesitter_types::Span {
15245 match self {
15246 Self::Expression(inner) => inner.span(),
15247 Self::Signature(inner) => inner.span(),
15248 }
15249 }
15250}
15251#[derive(Debug, Clone)]
15252pub enum ViewPatternPattern<'tree> {
15253 Pattern(::std::boxed::Box<Pattern<'tree>>),
15254 Signature(::std::boxed::Box<Signature<'tree>>),
15255 ViewPattern(::std::boxed::Box<ViewPattern<'tree>>),
15256}
15257impl<'tree> ::treesitter_types::FromNode<'tree> for ViewPatternPattern<'tree> {
15258 #[allow(clippy::collapsible_else_if)]
15259 fn from_node(
15260 node: ::tree_sitter::Node<'tree>,
15261 src: &'tree [u8],
15262 ) -> ::core::result::Result<Self, ::treesitter_types::ParseError> {
15263 match node.kind() {
15264 "signature" => Ok(Self::Signature(::std::boxed::Box::new(
15265 <Signature as ::treesitter_types::FromNode>::from_node(node, src)?,
15266 ))),
15267 "view_pattern" => Ok(Self::ViewPattern(::std::boxed::Box::new(
15268 <ViewPattern as ::treesitter_types::FromNode>::from_node(node, src)?,
15269 ))),
15270 _other => {
15271 if let Ok(v) = <Pattern as ::treesitter_types::FromNode>::from_node(node, src) {
15272 Ok(Self::Pattern(::std::boxed::Box::new(v)))
15273 } else {
15274 Err(::treesitter_types::ParseError::unexpected_kind(
15275 _other, node,
15276 ))
15277 }
15278 }
15279 }
15280 }
15281}
15282impl ::treesitter_types::Spanned for ViewPatternPattern<'_> {
15283 fn span(&self) -> ::treesitter_types::Span {
15284 match self {
15285 Self::Pattern(inner) => inner.span(),
15286 Self::Signature(inner) => inner.span(),
15287 Self::ViewPattern(inner) => inner.span(),
15288 }
15289 }
15290}
15291#[derive(Debug, Clone)]
15292pub enum AnyNode<'tree> {
15293 ClassDecl(ClassDecl<'tree>),
15294 Constraint(Constraint<'tree>),
15295 Constraints(Constraints<'tree>),
15296 Decl(Decl<'tree>),
15297 Declaration(Declaration<'tree>),
15298 Expression(Expression<'tree>),
15299 Guard(Guard<'tree>),
15300 InstanceDecl(InstanceDecl<'tree>),
15301 Pattern(Pattern<'tree>),
15302 Qualifier(Qualifier<'tree>),
15303 QuantifiedType(QuantifiedType<'tree>),
15304 Statement(Statement<'tree>),
15305 Type(Type<'tree>),
15306 TypeParam(TypeParam<'tree>),
15307 AbstractFamily(AbstractFamily<'tree>),
15308 Alternative(Alternative<'tree>),
15309 Alternatives(Alternatives<'tree>),
15310 Annotated(Annotated<'tree>),
15311 Apply(Apply<'tree>),
15312 ArithmeticSequence(ArithmeticSequence<'tree>),
15313 As(As<'tree>),
15314 AssociatedType(AssociatedType<'tree>),
15315 Bind(Bind<'tree>),
15316 BindingList(BindingList<'tree>),
15317 Boolean(Boolean<'tree>),
15318 Case(Case<'tree>),
15319 Children(Children<'tree>),
15320 Class(Class<'tree>),
15321 ClassDeclarations(ClassDeclarations<'tree>),
15322 Conditional(Conditional<'tree>),
15323 ConstructorOperator(ConstructorOperator<'tree>),
15324 ConstructorSynonym(ConstructorSynonym<'tree>),
15325 ConstructorSynonyms(ConstructorSynonyms<'tree>),
15326 Context(Context<'tree>),
15327 DataConstructor(DataConstructor<'tree>),
15328 DataConstructors(DataConstructors<'tree>),
15329 DataFamily(DataFamily<'tree>),
15330 DataInstance(DataInstance<'tree>),
15331 DataType(DataType<'tree>),
15332 Declarations(Declarations<'tree>),
15333 DefaultSignature(DefaultSignature<'tree>),
15334 DefaultTypes(DefaultTypes<'tree>),
15335 Deriving(Deriving<'tree>),
15336 DerivingInstance(DerivingInstance<'tree>),
15337 DerivingStrategy(DerivingStrategy<'tree>),
15338 Do(Do<'tree>),
15339 DoModule(DoModule<'tree>),
15340 EmptyList(EmptyList<'tree>),
15341 Entity(Entity<'tree>),
15342 Equation(Equation<'tree>),
15343 Equations(Equations<'tree>),
15344 Exp(Exp<'tree>),
15345 ExplicitType(ExplicitType<'tree>),
15346 Export(Export<'tree>),
15347 Exports(Exports<'tree>),
15348 Field(Field<'tree>),
15349 FieldName(FieldName<'tree>),
15350 FieldPath(FieldPath<'tree>),
15351 FieldPattern(FieldPattern<'tree>),
15352 FieldUpdate(FieldUpdate<'tree>),
15353 Fields(Fields<'tree>),
15354 Fixity(Fixity<'tree>),
15355 Forall(Forall<'tree>),
15356 ForallRequired(ForallRequired<'tree>),
15357 ForeignExport(ForeignExport<'tree>),
15358 ForeignImport(ForeignImport<'tree>),
15359 Function(Function<'tree>),
15360 FunctionHeadParens(FunctionHeadParens<'tree>),
15361 Fundep(Fundep<'tree>),
15362 Fundeps(Fundeps<'tree>),
15363 GadtConstructor(GadtConstructor<'tree>),
15364 GadtConstructors(GadtConstructors<'tree>),
15365 Generator(Generator<'tree>),
15366 Group(Group<'tree>),
15367 Guards(Guards<'tree>),
15368 Haskell(Haskell<'tree>),
15369 Header(Header<'tree>),
15370 ImplicitParameter(ImplicitParameter<'tree>),
15371 Import(Import<'tree>),
15372 ImportList(ImportList<'tree>),
15373 ImportName(ImportName<'tree>),
15374 Imports(Imports<'tree>),
15375 Inferred(Inferred<'tree>),
15376 Infix(Infix<'tree>),
15377 InfixId(InfixId<'tree>),
15378 Instance(Instance<'tree>),
15379 InstanceDeclarations(InstanceDeclarations<'tree>),
15380 Integer(Integer<'tree>),
15381 Invisible(Invisible<'tree>),
15382 Irrefutable(Irrefutable<'tree>),
15383 KindApplication(KindApplication<'tree>),
15384 KindSignature(KindSignature<'tree>),
15385 Lambda(Lambda<'tree>),
15386 LambdaCase(LambdaCase<'tree>),
15387 LambdaCases(LambdaCases<'tree>),
15388 LazyField(LazyField<'tree>),
15389 LeftSection(LeftSection<'tree>),
15390 Let(Let<'tree>),
15391 LetIn(LetIn<'tree>),
15392 LinearFunction(LinearFunction<'tree>),
15393 List(List<'tree>),
15394 ListComprehension(ListComprehension<'tree>),
15395 Literal(Literal<'tree>),
15396 LocalBinds(LocalBinds<'tree>),
15397 Match(Match<'tree>),
15398 Modifier(Modifier<'tree>),
15399 Module(Module<'tree>),
15400 ModuleExport(ModuleExport<'tree>),
15401 MultiWayIf(MultiWayIf<'tree>),
15402 Namespace(Namespace<'tree>),
15403 Negation(Negation<'tree>),
15404 Newtype(Newtype<'tree>),
15405 NewtypeConstructor(NewtypeConstructor<'tree>),
15406 Operator(Operator<'tree>),
15407 Parens(Parens<'tree>),
15408 PatternGuard(PatternGuard<'tree>),
15409 PatternSynonym(PatternSynonym<'tree>),
15410 Patterns(Patterns<'tree>),
15411 Prefix(Prefix<'tree>),
15412 PrefixId(PrefixId<'tree>),
15413 PrefixList(PrefixList<'tree>),
15414 PrefixTuple(PrefixTuple<'tree>),
15415 PrefixUnboxedSum(PrefixUnboxedSum<'tree>),
15416 PrefixUnboxedTuple(PrefixUnboxedTuple<'tree>),
15417 Projection(Projection<'tree>),
15418 ProjectionSelector(ProjectionSelector<'tree>),
15419 Promoted(Promoted<'tree>),
15420 Qualified(Qualified<'tree>),
15421 Qualifiers(Qualifiers<'tree>),
15422 QuantifiedVariables(QuantifiedVariables<'tree>),
15423 Quasiquote(Quasiquote<'tree>),
15424 Quote(Quote<'tree>),
15425 QuotedDecls(QuotedDecls<'tree>),
15426 QuotedExpression(QuotedExpression<'tree>),
15427 QuotedPattern(QuotedPattern<'tree>),
15428 QuotedType(QuotedType<'tree>),
15429 Quoter(Quoter<'tree>),
15430 Rec(Rec<'tree>),
15431 Record(Record<'tree>),
15432 RightSection(RightSection<'tree>),
15433 RoleAnnotation(RoleAnnotation<'tree>),
15434 Signature(Signature<'tree>),
15435 Special(Special<'tree>),
15436 Splice(Splice<'tree>),
15437 Star(Star<'tree>),
15438 Strict(Strict<'tree>),
15439 StrictField(StrictField<'tree>),
15440 ThQuotedName(ThQuotedName<'tree>),
15441 TopSplice(TopSplice<'tree>),
15442 Transform(Transform<'tree>),
15443 Tuple(Tuple<'tree>),
15444 TypeApplication(TypeApplication<'tree>),
15445 TypeBinder(TypeBinder<'tree>),
15446 TypeFamily(TypeFamily<'tree>),
15447 TypeFamilyInjectivity(TypeFamilyInjectivity<'tree>),
15448 TypeFamilyResult(TypeFamilyResult<'tree>),
15449 TypeInstance(TypeInstance<'tree>),
15450 TypeParams(TypeParams<'tree>),
15451 TypePatterns(TypePatterns<'tree>),
15452 TypeRole(TypeRole<'tree>),
15453 TypeSynomym(TypeSynomym<'tree>),
15454 TypedQuote(TypedQuote<'tree>),
15455 UnboxedSum(UnboxedSum<'tree>),
15456 UnboxedTuple(UnboxedTuple<'tree>),
15457 UnboxedUnit(UnboxedUnit<'tree>),
15458 Unit(Unit<'tree>),
15459 Via(Via<'tree>),
15460 ViewPattern(ViewPattern<'tree>),
15461 Wildcard(Wildcard<'tree>),
15462 AllNames(AllNames<'tree>),
15463 CallingConvention(CallingConvention<'tree>),
15464 Char(Char<'tree>),
15465 Comment(Comment<'tree>),
15466 Constructor(Constructor<'tree>),
15467 Cpp(Cpp<'tree>),
15468 Float(Float<'tree>),
15469 Haddock(Haddock<'tree>),
15470 ImplicitVariable(ImplicitVariable<'tree>),
15471 ImportPackage(ImportPackage<'tree>),
15472 Label(Label<'tree>),
15473 ModuleId(ModuleId<'tree>),
15474 Name(Name<'tree>),
15475 Pragma(Pragma<'tree>),
15476 QuasiquoteBody(QuasiquoteBody<'tree>),
15477 Safety(Safety<'tree>),
15478 String(String<'tree>),
15479 Variable(Variable<'tree>),
15480 Unknown(::tree_sitter::Node<'tree>),
15481}
15482impl<'tree> AnyNode<'tree> {
15483 pub fn from_node(node: ::tree_sitter::Node<'tree>, src: &'tree [u8]) -> Self {
15484 match node.kind() {
15485 "class_decl" => <ClassDecl as ::treesitter_types::FromNode>::from_node(node, src)
15486 .map(Self::ClassDecl)
15487 .unwrap_or(Self::Unknown(node)),
15488 "constraint" => <Constraint as ::treesitter_types::FromNode>::from_node(node, src)
15489 .map(Self::Constraint)
15490 .unwrap_or(Self::Unknown(node)),
15491 "constraints" => <Constraints as ::treesitter_types::FromNode>::from_node(node, src)
15492 .map(Self::Constraints)
15493 .unwrap_or(Self::Unknown(node)),
15494 "decl" => <Decl as ::treesitter_types::FromNode>::from_node(node, src)
15495 .map(Self::Decl)
15496 .unwrap_or(Self::Unknown(node)),
15497 "declaration" => <Declaration as ::treesitter_types::FromNode>::from_node(node, src)
15498 .map(Self::Declaration)
15499 .unwrap_or(Self::Unknown(node)),
15500 "expression" => <Expression as ::treesitter_types::FromNode>::from_node(node, src)
15501 .map(Self::Expression)
15502 .unwrap_or(Self::Unknown(node)),
15503 "guard" => <Guard as ::treesitter_types::FromNode>::from_node(node, src)
15504 .map(Self::Guard)
15505 .unwrap_or(Self::Unknown(node)),
15506 "instance_decl" => <InstanceDecl as ::treesitter_types::FromNode>::from_node(node, src)
15507 .map(Self::InstanceDecl)
15508 .unwrap_or(Self::Unknown(node)),
15509 "pattern" => <Pattern as ::treesitter_types::FromNode>::from_node(node, src)
15510 .map(Self::Pattern)
15511 .unwrap_or(Self::Unknown(node)),
15512 "qualifier" => <Qualifier as ::treesitter_types::FromNode>::from_node(node, src)
15513 .map(Self::Qualifier)
15514 .unwrap_or(Self::Unknown(node)),
15515 "quantified_type" => {
15516 <QuantifiedType as ::treesitter_types::FromNode>::from_node(node, src)
15517 .map(Self::QuantifiedType)
15518 .unwrap_or(Self::Unknown(node))
15519 }
15520 "statement" => <Statement as ::treesitter_types::FromNode>::from_node(node, src)
15521 .map(Self::Statement)
15522 .unwrap_or(Self::Unknown(node)),
15523 "type" => <Type as ::treesitter_types::FromNode>::from_node(node, src)
15524 .map(Self::Type)
15525 .unwrap_or(Self::Unknown(node)),
15526 "type_param" => <TypeParam as ::treesitter_types::FromNode>::from_node(node, src)
15527 .map(Self::TypeParam)
15528 .unwrap_or(Self::Unknown(node)),
15529 "abstract_family" => {
15530 <AbstractFamily as ::treesitter_types::FromNode>::from_node(node, src)
15531 .map(Self::AbstractFamily)
15532 .unwrap_or(Self::Unknown(node))
15533 }
15534 "alternative" => <Alternative as ::treesitter_types::FromNode>::from_node(node, src)
15535 .map(Self::Alternative)
15536 .unwrap_or(Self::Unknown(node)),
15537 "alternatives" => <Alternatives as ::treesitter_types::FromNode>::from_node(node, src)
15538 .map(Self::Alternatives)
15539 .unwrap_or(Self::Unknown(node)),
15540 "annotated" => <Annotated as ::treesitter_types::FromNode>::from_node(node, src)
15541 .map(Self::Annotated)
15542 .unwrap_or(Self::Unknown(node)),
15543 "apply" => <Apply as ::treesitter_types::FromNode>::from_node(node, src)
15544 .map(Self::Apply)
15545 .unwrap_or(Self::Unknown(node)),
15546 "arithmetic_sequence" => {
15547 <ArithmeticSequence as ::treesitter_types::FromNode>::from_node(node, src)
15548 .map(Self::ArithmeticSequence)
15549 .unwrap_or(Self::Unknown(node))
15550 }
15551 "as" => <As as ::treesitter_types::FromNode>::from_node(node, src)
15552 .map(Self::As)
15553 .unwrap_or(Self::Unknown(node)),
15554 "associated_type" => {
15555 <AssociatedType as ::treesitter_types::FromNode>::from_node(node, src)
15556 .map(Self::AssociatedType)
15557 .unwrap_or(Self::Unknown(node))
15558 }
15559 "bind" => <Bind as ::treesitter_types::FromNode>::from_node(node, src)
15560 .map(Self::Bind)
15561 .unwrap_or(Self::Unknown(node)),
15562 "binding_list" => <BindingList as ::treesitter_types::FromNode>::from_node(node, src)
15563 .map(Self::BindingList)
15564 .unwrap_or(Self::Unknown(node)),
15565 "boolean" => <Boolean as ::treesitter_types::FromNode>::from_node(node, src)
15566 .map(Self::Boolean)
15567 .unwrap_or(Self::Unknown(node)),
15568 "case" => <Case as ::treesitter_types::FromNode>::from_node(node, src)
15569 .map(Self::Case)
15570 .unwrap_or(Self::Unknown(node)),
15571 "children" => <Children as ::treesitter_types::FromNode>::from_node(node, src)
15572 .map(Self::Children)
15573 .unwrap_or(Self::Unknown(node)),
15574 "class" => <Class as ::treesitter_types::FromNode>::from_node(node, src)
15575 .map(Self::Class)
15576 .unwrap_or(Self::Unknown(node)),
15577 "class_declarations" => {
15578 <ClassDeclarations as ::treesitter_types::FromNode>::from_node(node, src)
15579 .map(Self::ClassDeclarations)
15580 .unwrap_or(Self::Unknown(node))
15581 }
15582 "conditional" => <Conditional as ::treesitter_types::FromNode>::from_node(node, src)
15583 .map(Self::Conditional)
15584 .unwrap_or(Self::Unknown(node)),
15585 "constructor_operator" => {
15586 <ConstructorOperator as ::treesitter_types::FromNode>::from_node(node, src)
15587 .map(Self::ConstructorOperator)
15588 .unwrap_or(Self::Unknown(node))
15589 }
15590 "constructor_synonym" => {
15591 <ConstructorSynonym as ::treesitter_types::FromNode>::from_node(node, src)
15592 .map(Self::ConstructorSynonym)
15593 .unwrap_or(Self::Unknown(node))
15594 }
15595 "constructor_synonyms" => {
15596 <ConstructorSynonyms as ::treesitter_types::FromNode>::from_node(node, src)
15597 .map(Self::ConstructorSynonyms)
15598 .unwrap_or(Self::Unknown(node))
15599 }
15600 "context" => <Context as ::treesitter_types::FromNode>::from_node(node, src)
15601 .map(Self::Context)
15602 .unwrap_or(Self::Unknown(node)),
15603 "data_constructor" => {
15604 <DataConstructor as ::treesitter_types::FromNode>::from_node(node, src)
15605 .map(Self::DataConstructor)
15606 .unwrap_or(Self::Unknown(node))
15607 }
15608 "data_constructors" => {
15609 <DataConstructors as ::treesitter_types::FromNode>::from_node(node, src)
15610 .map(Self::DataConstructors)
15611 .unwrap_or(Self::Unknown(node))
15612 }
15613 "data_family" => <DataFamily as ::treesitter_types::FromNode>::from_node(node, src)
15614 .map(Self::DataFamily)
15615 .unwrap_or(Self::Unknown(node)),
15616 "data_instance" => <DataInstance as ::treesitter_types::FromNode>::from_node(node, src)
15617 .map(Self::DataInstance)
15618 .unwrap_or(Self::Unknown(node)),
15619 "data_type" => <DataType as ::treesitter_types::FromNode>::from_node(node, src)
15620 .map(Self::DataType)
15621 .unwrap_or(Self::Unknown(node)),
15622 "declarations" => <Declarations as ::treesitter_types::FromNode>::from_node(node, src)
15623 .map(Self::Declarations)
15624 .unwrap_or(Self::Unknown(node)),
15625 "default_signature" => {
15626 <DefaultSignature as ::treesitter_types::FromNode>::from_node(node, src)
15627 .map(Self::DefaultSignature)
15628 .unwrap_or(Self::Unknown(node))
15629 }
15630 "default_types" => <DefaultTypes as ::treesitter_types::FromNode>::from_node(node, src)
15631 .map(Self::DefaultTypes)
15632 .unwrap_or(Self::Unknown(node)),
15633 "deriving" => <Deriving as ::treesitter_types::FromNode>::from_node(node, src)
15634 .map(Self::Deriving)
15635 .unwrap_or(Self::Unknown(node)),
15636 "deriving_instance" => {
15637 <DerivingInstance as ::treesitter_types::FromNode>::from_node(node, src)
15638 .map(Self::DerivingInstance)
15639 .unwrap_or(Self::Unknown(node))
15640 }
15641 "deriving_strategy" => {
15642 <DerivingStrategy as ::treesitter_types::FromNode>::from_node(node, src)
15643 .map(Self::DerivingStrategy)
15644 .unwrap_or(Self::Unknown(node))
15645 }
15646 "do" => <Do as ::treesitter_types::FromNode>::from_node(node, src)
15647 .map(Self::Do)
15648 .unwrap_or(Self::Unknown(node)),
15649 "do_module" => <DoModule as ::treesitter_types::FromNode>::from_node(node, src)
15650 .map(Self::DoModule)
15651 .unwrap_or(Self::Unknown(node)),
15652 "empty_list" => <EmptyList as ::treesitter_types::FromNode>::from_node(node, src)
15653 .map(Self::EmptyList)
15654 .unwrap_or(Self::Unknown(node)),
15655 "entity" => <Entity as ::treesitter_types::FromNode>::from_node(node, src)
15656 .map(Self::Entity)
15657 .unwrap_or(Self::Unknown(node)),
15658 "equation" => <Equation as ::treesitter_types::FromNode>::from_node(node, src)
15659 .map(Self::Equation)
15660 .unwrap_or(Self::Unknown(node)),
15661 "equations" => <Equations as ::treesitter_types::FromNode>::from_node(node, src)
15662 .map(Self::Equations)
15663 .unwrap_or(Self::Unknown(node)),
15664 "exp" => <Exp as ::treesitter_types::FromNode>::from_node(node, src)
15665 .map(Self::Exp)
15666 .unwrap_or(Self::Unknown(node)),
15667 "explicit_type" => <ExplicitType as ::treesitter_types::FromNode>::from_node(node, src)
15668 .map(Self::ExplicitType)
15669 .unwrap_or(Self::Unknown(node)),
15670 "export" => <Export as ::treesitter_types::FromNode>::from_node(node, src)
15671 .map(Self::Export)
15672 .unwrap_or(Self::Unknown(node)),
15673 "exports" => <Exports as ::treesitter_types::FromNode>::from_node(node, src)
15674 .map(Self::Exports)
15675 .unwrap_or(Self::Unknown(node)),
15676 "field" => <Field as ::treesitter_types::FromNode>::from_node(node, src)
15677 .map(Self::Field)
15678 .unwrap_or(Self::Unknown(node)),
15679 "field_name" => <FieldName as ::treesitter_types::FromNode>::from_node(node, src)
15680 .map(Self::FieldName)
15681 .unwrap_or(Self::Unknown(node)),
15682 "field_path" => <FieldPath as ::treesitter_types::FromNode>::from_node(node, src)
15683 .map(Self::FieldPath)
15684 .unwrap_or(Self::Unknown(node)),
15685 "field_pattern" => <FieldPattern as ::treesitter_types::FromNode>::from_node(node, src)
15686 .map(Self::FieldPattern)
15687 .unwrap_or(Self::Unknown(node)),
15688 "field_update" => <FieldUpdate as ::treesitter_types::FromNode>::from_node(node, src)
15689 .map(Self::FieldUpdate)
15690 .unwrap_or(Self::Unknown(node)),
15691 "fields" => <Fields as ::treesitter_types::FromNode>::from_node(node, src)
15692 .map(Self::Fields)
15693 .unwrap_or(Self::Unknown(node)),
15694 "fixity" => <Fixity as ::treesitter_types::FromNode>::from_node(node, src)
15695 .map(Self::Fixity)
15696 .unwrap_or(Self::Unknown(node)),
15697 "forall" => <Forall as ::treesitter_types::FromNode>::from_node(node, src)
15698 .map(Self::Forall)
15699 .unwrap_or(Self::Unknown(node)),
15700 "forall_required" => {
15701 <ForallRequired as ::treesitter_types::FromNode>::from_node(node, src)
15702 .map(Self::ForallRequired)
15703 .unwrap_or(Self::Unknown(node))
15704 }
15705 "foreign_export" => {
15706 <ForeignExport as ::treesitter_types::FromNode>::from_node(node, src)
15707 .map(Self::ForeignExport)
15708 .unwrap_or(Self::Unknown(node))
15709 }
15710 "foreign_import" => {
15711 <ForeignImport as ::treesitter_types::FromNode>::from_node(node, src)
15712 .map(Self::ForeignImport)
15713 .unwrap_or(Self::Unknown(node))
15714 }
15715 "function" => <Function as ::treesitter_types::FromNode>::from_node(node, src)
15716 .map(Self::Function)
15717 .unwrap_or(Self::Unknown(node)),
15718 "function_head_parens" => {
15719 <FunctionHeadParens as ::treesitter_types::FromNode>::from_node(node, src)
15720 .map(Self::FunctionHeadParens)
15721 .unwrap_or(Self::Unknown(node))
15722 }
15723 "fundep" => <Fundep as ::treesitter_types::FromNode>::from_node(node, src)
15724 .map(Self::Fundep)
15725 .unwrap_or(Self::Unknown(node)),
15726 "fundeps" => <Fundeps as ::treesitter_types::FromNode>::from_node(node, src)
15727 .map(Self::Fundeps)
15728 .unwrap_or(Self::Unknown(node)),
15729 "gadt_constructor" => {
15730 <GadtConstructor as ::treesitter_types::FromNode>::from_node(node, src)
15731 .map(Self::GadtConstructor)
15732 .unwrap_or(Self::Unknown(node))
15733 }
15734 "gadt_constructors" => {
15735 <GadtConstructors as ::treesitter_types::FromNode>::from_node(node, src)
15736 .map(Self::GadtConstructors)
15737 .unwrap_or(Self::Unknown(node))
15738 }
15739 "generator" => <Generator as ::treesitter_types::FromNode>::from_node(node, src)
15740 .map(Self::Generator)
15741 .unwrap_or(Self::Unknown(node)),
15742 "group" => <Group as ::treesitter_types::FromNode>::from_node(node, src)
15743 .map(Self::Group)
15744 .unwrap_or(Self::Unknown(node)),
15745 "guards" => <Guards as ::treesitter_types::FromNode>::from_node(node, src)
15746 .map(Self::Guards)
15747 .unwrap_or(Self::Unknown(node)),
15748 "haskell" => <Haskell as ::treesitter_types::FromNode>::from_node(node, src)
15749 .map(Self::Haskell)
15750 .unwrap_or(Self::Unknown(node)),
15751 "header" => <Header as ::treesitter_types::FromNode>::from_node(node, src)
15752 .map(Self::Header)
15753 .unwrap_or(Self::Unknown(node)),
15754 "implicit_parameter" => {
15755 <ImplicitParameter as ::treesitter_types::FromNode>::from_node(node, src)
15756 .map(Self::ImplicitParameter)
15757 .unwrap_or(Self::Unknown(node))
15758 }
15759 "import" => <Import as ::treesitter_types::FromNode>::from_node(node, src)
15760 .map(Self::Import)
15761 .unwrap_or(Self::Unknown(node)),
15762 "import_list" => <ImportList as ::treesitter_types::FromNode>::from_node(node, src)
15763 .map(Self::ImportList)
15764 .unwrap_or(Self::Unknown(node)),
15765 "import_name" => <ImportName as ::treesitter_types::FromNode>::from_node(node, src)
15766 .map(Self::ImportName)
15767 .unwrap_or(Self::Unknown(node)),
15768 "imports" => <Imports as ::treesitter_types::FromNode>::from_node(node, src)
15769 .map(Self::Imports)
15770 .unwrap_or(Self::Unknown(node)),
15771 "inferred" => <Inferred as ::treesitter_types::FromNode>::from_node(node, src)
15772 .map(Self::Inferred)
15773 .unwrap_or(Self::Unknown(node)),
15774 "infix" => <Infix as ::treesitter_types::FromNode>::from_node(node, src)
15775 .map(Self::Infix)
15776 .unwrap_or(Self::Unknown(node)),
15777 "infix_id" => <InfixId as ::treesitter_types::FromNode>::from_node(node, src)
15778 .map(Self::InfixId)
15779 .unwrap_or(Self::Unknown(node)),
15780 "instance" => <Instance as ::treesitter_types::FromNode>::from_node(node, src)
15781 .map(Self::Instance)
15782 .unwrap_or(Self::Unknown(node)),
15783 "instance_declarations" => {
15784 <InstanceDeclarations as ::treesitter_types::FromNode>::from_node(node, src)
15785 .map(Self::InstanceDeclarations)
15786 .unwrap_or(Self::Unknown(node))
15787 }
15788 "integer" => <Integer as ::treesitter_types::FromNode>::from_node(node, src)
15789 .map(Self::Integer)
15790 .unwrap_or(Self::Unknown(node)),
15791 "invisible" => <Invisible as ::treesitter_types::FromNode>::from_node(node, src)
15792 .map(Self::Invisible)
15793 .unwrap_or(Self::Unknown(node)),
15794 "irrefutable" => <Irrefutable as ::treesitter_types::FromNode>::from_node(node, src)
15795 .map(Self::Irrefutable)
15796 .unwrap_or(Self::Unknown(node)),
15797 "kind_application" => {
15798 <KindApplication as ::treesitter_types::FromNode>::from_node(node, src)
15799 .map(Self::KindApplication)
15800 .unwrap_or(Self::Unknown(node))
15801 }
15802 "kind_signature" => {
15803 <KindSignature as ::treesitter_types::FromNode>::from_node(node, src)
15804 .map(Self::KindSignature)
15805 .unwrap_or(Self::Unknown(node))
15806 }
15807 "lambda" => <Lambda as ::treesitter_types::FromNode>::from_node(node, src)
15808 .map(Self::Lambda)
15809 .unwrap_or(Self::Unknown(node)),
15810 "lambda_case" => <LambdaCase as ::treesitter_types::FromNode>::from_node(node, src)
15811 .map(Self::LambdaCase)
15812 .unwrap_or(Self::Unknown(node)),
15813 "lambda_cases" => <LambdaCases as ::treesitter_types::FromNode>::from_node(node, src)
15814 .map(Self::LambdaCases)
15815 .unwrap_or(Self::Unknown(node)),
15816 "lazy_field" => <LazyField as ::treesitter_types::FromNode>::from_node(node, src)
15817 .map(Self::LazyField)
15818 .unwrap_or(Self::Unknown(node)),
15819 "left_section" => <LeftSection as ::treesitter_types::FromNode>::from_node(node, src)
15820 .map(Self::LeftSection)
15821 .unwrap_or(Self::Unknown(node)),
15822 "let" => <Let as ::treesitter_types::FromNode>::from_node(node, src)
15823 .map(Self::Let)
15824 .unwrap_or(Self::Unknown(node)),
15825 "let_in" => <LetIn as ::treesitter_types::FromNode>::from_node(node, src)
15826 .map(Self::LetIn)
15827 .unwrap_or(Self::Unknown(node)),
15828 "linear_function" => {
15829 <LinearFunction as ::treesitter_types::FromNode>::from_node(node, src)
15830 .map(Self::LinearFunction)
15831 .unwrap_or(Self::Unknown(node))
15832 }
15833 "list" => <List as ::treesitter_types::FromNode>::from_node(node, src)
15834 .map(Self::List)
15835 .unwrap_or(Self::Unknown(node)),
15836 "list_comprehension" => {
15837 <ListComprehension as ::treesitter_types::FromNode>::from_node(node, src)
15838 .map(Self::ListComprehension)
15839 .unwrap_or(Self::Unknown(node))
15840 }
15841 "literal" => <Literal as ::treesitter_types::FromNode>::from_node(node, src)
15842 .map(Self::Literal)
15843 .unwrap_or(Self::Unknown(node)),
15844 "local_binds" => <LocalBinds as ::treesitter_types::FromNode>::from_node(node, src)
15845 .map(Self::LocalBinds)
15846 .unwrap_or(Self::Unknown(node)),
15847 "match" => <Match as ::treesitter_types::FromNode>::from_node(node, src)
15848 .map(Self::Match)
15849 .unwrap_or(Self::Unknown(node)),
15850 "modifier" => <Modifier as ::treesitter_types::FromNode>::from_node(node, src)
15851 .map(Self::Modifier)
15852 .unwrap_or(Self::Unknown(node)),
15853 "module" => <Module as ::treesitter_types::FromNode>::from_node(node, src)
15854 .map(Self::Module)
15855 .unwrap_or(Self::Unknown(node)),
15856 "module_export" => <ModuleExport as ::treesitter_types::FromNode>::from_node(node, src)
15857 .map(Self::ModuleExport)
15858 .unwrap_or(Self::Unknown(node)),
15859 "multi_way_if" => <MultiWayIf as ::treesitter_types::FromNode>::from_node(node, src)
15860 .map(Self::MultiWayIf)
15861 .unwrap_or(Self::Unknown(node)),
15862 "namespace" => <Namespace as ::treesitter_types::FromNode>::from_node(node, src)
15863 .map(Self::Namespace)
15864 .unwrap_or(Self::Unknown(node)),
15865 "negation" => <Negation as ::treesitter_types::FromNode>::from_node(node, src)
15866 .map(Self::Negation)
15867 .unwrap_or(Self::Unknown(node)),
15868 "newtype" => <Newtype as ::treesitter_types::FromNode>::from_node(node, src)
15869 .map(Self::Newtype)
15870 .unwrap_or(Self::Unknown(node)),
15871 "newtype_constructor" => {
15872 <NewtypeConstructor as ::treesitter_types::FromNode>::from_node(node, src)
15873 .map(Self::NewtypeConstructor)
15874 .unwrap_or(Self::Unknown(node))
15875 }
15876 "operator" => <Operator as ::treesitter_types::FromNode>::from_node(node, src)
15877 .map(Self::Operator)
15878 .unwrap_or(Self::Unknown(node)),
15879 "parens" => <Parens as ::treesitter_types::FromNode>::from_node(node, src)
15880 .map(Self::Parens)
15881 .unwrap_or(Self::Unknown(node)),
15882 "pattern_guard" => <PatternGuard as ::treesitter_types::FromNode>::from_node(node, src)
15883 .map(Self::PatternGuard)
15884 .unwrap_or(Self::Unknown(node)),
15885 "pattern_synonym" => {
15886 <PatternSynonym as ::treesitter_types::FromNode>::from_node(node, src)
15887 .map(Self::PatternSynonym)
15888 .unwrap_or(Self::Unknown(node))
15889 }
15890 "patterns" => <Patterns as ::treesitter_types::FromNode>::from_node(node, src)
15891 .map(Self::Patterns)
15892 .unwrap_or(Self::Unknown(node)),
15893 "prefix" => <Prefix as ::treesitter_types::FromNode>::from_node(node, src)
15894 .map(Self::Prefix)
15895 .unwrap_or(Self::Unknown(node)),
15896 "prefix_id" => <PrefixId as ::treesitter_types::FromNode>::from_node(node, src)
15897 .map(Self::PrefixId)
15898 .unwrap_or(Self::Unknown(node)),
15899 "prefix_list" => <PrefixList as ::treesitter_types::FromNode>::from_node(node, src)
15900 .map(Self::PrefixList)
15901 .unwrap_or(Self::Unknown(node)),
15902 "prefix_tuple" => <PrefixTuple as ::treesitter_types::FromNode>::from_node(node, src)
15903 .map(Self::PrefixTuple)
15904 .unwrap_or(Self::Unknown(node)),
15905 "prefix_unboxed_sum" => {
15906 <PrefixUnboxedSum as ::treesitter_types::FromNode>::from_node(node, src)
15907 .map(Self::PrefixUnboxedSum)
15908 .unwrap_or(Self::Unknown(node))
15909 }
15910 "prefix_unboxed_tuple" => {
15911 <PrefixUnboxedTuple as ::treesitter_types::FromNode>::from_node(node, src)
15912 .map(Self::PrefixUnboxedTuple)
15913 .unwrap_or(Self::Unknown(node))
15914 }
15915 "projection" => <Projection as ::treesitter_types::FromNode>::from_node(node, src)
15916 .map(Self::Projection)
15917 .unwrap_or(Self::Unknown(node)),
15918 "projection_selector" => {
15919 <ProjectionSelector as ::treesitter_types::FromNode>::from_node(node, src)
15920 .map(Self::ProjectionSelector)
15921 .unwrap_or(Self::Unknown(node))
15922 }
15923 "promoted" => <Promoted as ::treesitter_types::FromNode>::from_node(node, src)
15924 .map(Self::Promoted)
15925 .unwrap_or(Self::Unknown(node)),
15926 "qualified" => <Qualified as ::treesitter_types::FromNode>::from_node(node, src)
15927 .map(Self::Qualified)
15928 .unwrap_or(Self::Unknown(node)),
15929 "qualifiers" => <Qualifiers as ::treesitter_types::FromNode>::from_node(node, src)
15930 .map(Self::Qualifiers)
15931 .unwrap_or(Self::Unknown(node)),
15932 "quantified_variables" => {
15933 <QuantifiedVariables as ::treesitter_types::FromNode>::from_node(node, src)
15934 .map(Self::QuantifiedVariables)
15935 .unwrap_or(Self::Unknown(node))
15936 }
15937 "quasiquote" => <Quasiquote as ::treesitter_types::FromNode>::from_node(node, src)
15938 .map(Self::Quasiquote)
15939 .unwrap_or(Self::Unknown(node)),
15940 "quote" => <Quote as ::treesitter_types::FromNode>::from_node(node, src)
15941 .map(Self::Quote)
15942 .unwrap_or(Self::Unknown(node)),
15943 "quoted_decls" => <QuotedDecls as ::treesitter_types::FromNode>::from_node(node, src)
15944 .map(Self::QuotedDecls)
15945 .unwrap_or(Self::Unknown(node)),
15946 "quoted_expression" => {
15947 <QuotedExpression as ::treesitter_types::FromNode>::from_node(node, src)
15948 .map(Self::QuotedExpression)
15949 .unwrap_or(Self::Unknown(node))
15950 }
15951 "quoted_pattern" => {
15952 <QuotedPattern as ::treesitter_types::FromNode>::from_node(node, src)
15953 .map(Self::QuotedPattern)
15954 .unwrap_or(Self::Unknown(node))
15955 }
15956 "quoted_type" => <QuotedType as ::treesitter_types::FromNode>::from_node(node, src)
15957 .map(Self::QuotedType)
15958 .unwrap_or(Self::Unknown(node)),
15959 "quoter" => <Quoter as ::treesitter_types::FromNode>::from_node(node, src)
15960 .map(Self::Quoter)
15961 .unwrap_or(Self::Unknown(node)),
15962 "rec" => <Rec as ::treesitter_types::FromNode>::from_node(node, src)
15963 .map(Self::Rec)
15964 .unwrap_or(Self::Unknown(node)),
15965 "record" => <Record as ::treesitter_types::FromNode>::from_node(node, src)
15966 .map(Self::Record)
15967 .unwrap_or(Self::Unknown(node)),
15968 "right_section" => <RightSection as ::treesitter_types::FromNode>::from_node(node, src)
15969 .map(Self::RightSection)
15970 .unwrap_or(Self::Unknown(node)),
15971 "role_annotation" => {
15972 <RoleAnnotation as ::treesitter_types::FromNode>::from_node(node, src)
15973 .map(Self::RoleAnnotation)
15974 .unwrap_or(Self::Unknown(node))
15975 }
15976 "signature" => <Signature as ::treesitter_types::FromNode>::from_node(node, src)
15977 .map(Self::Signature)
15978 .unwrap_or(Self::Unknown(node)),
15979 "special" => <Special as ::treesitter_types::FromNode>::from_node(node, src)
15980 .map(Self::Special)
15981 .unwrap_or(Self::Unknown(node)),
15982 "splice" => <Splice as ::treesitter_types::FromNode>::from_node(node, src)
15983 .map(Self::Splice)
15984 .unwrap_or(Self::Unknown(node)),
15985 "star" => <Star as ::treesitter_types::FromNode>::from_node(node, src)
15986 .map(Self::Star)
15987 .unwrap_or(Self::Unknown(node)),
15988 "strict" => <Strict as ::treesitter_types::FromNode>::from_node(node, src)
15989 .map(Self::Strict)
15990 .unwrap_or(Self::Unknown(node)),
15991 "strict_field" => <StrictField as ::treesitter_types::FromNode>::from_node(node, src)
15992 .map(Self::StrictField)
15993 .unwrap_or(Self::Unknown(node)),
15994 "th_quoted_name" => {
15995 <ThQuotedName as ::treesitter_types::FromNode>::from_node(node, src)
15996 .map(Self::ThQuotedName)
15997 .unwrap_or(Self::Unknown(node))
15998 }
15999 "top_splice" => <TopSplice as ::treesitter_types::FromNode>::from_node(node, src)
16000 .map(Self::TopSplice)
16001 .unwrap_or(Self::Unknown(node)),
16002 "transform" => <Transform as ::treesitter_types::FromNode>::from_node(node, src)
16003 .map(Self::Transform)
16004 .unwrap_or(Self::Unknown(node)),
16005 "tuple" => <Tuple as ::treesitter_types::FromNode>::from_node(node, src)
16006 .map(Self::Tuple)
16007 .unwrap_or(Self::Unknown(node)),
16008 "type_application" => {
16009 <TypeApplication as ::treesitter_types::FromNode>::from_node(node, src)
16010 .map(Self::TypeApplication)
16011 .unwrap_or(Self::Unknown(node))
16012 }
16013 "type_binder" => <TypeBinder as ::treesitter_types::FromNode>::from_node(node, src)
16014 .map(Self::TypeBinder)
16015 .unwrap_or(Self::Unknown(node)),
16016 "type_family" => <TypeFamily as ::treesitter_types::FromNode>::from_node(node, src)
16017 .map(Self::TypeFamily)
16018 .unwrap_or(Self::Unknown(node)),
16019 "type_family_injectivity" => {
16020 <TypeFamilyInjectivity as ::treesitter_types::FromNode>::from_node(node, src)
16021 .map(Self::TypeFamilyInjectivity)
16022 .unwrap_or(Self::Unknown(node))
16023 }
16024 "type_family_result" => {
16025 <TypeFamilyResult as ::treesitter_types::FromNode>::from_node(node, src)
16026 .map(Self::TypeFamilyResult)
16027 .unwrap_or(Self::Unknown(node))
16028 }
16029 "type_instance" => <TypeInstance as ::treesitter_types::FromNode>::from_node(node, src)
16030 .map(Self::TypeInstance)
16031 .unwrap_or(Self::Unknown(node)),
16032 "type_params" => <TypeParams as ::treesitter_types::FromNode>::from_node(node, src)
16033 .map(Self::TypeParams)
16034 .unwrap_or(Self::Unknown(node)),
16035 "type_patterns" => <TypePatterns as ::treesitter_types::FromNode>::from_node(node, src)
16036 .map(Self::TypePatterns)
16037 .unwrap_or(Self::Unknown(node)),
16038 "type_role" => <TypeRole as ::treesitter_types::FromNode>::from_node(node, src)
16039 .map(Self::TypeRole)
16040 .unwrap_or(Self::Unknown(node)),
16041 "type_synomym" => <TypeSynomym as ::treesitter_types::FromNode>::from_node(node, src)
16042 .map(Self::TypeSynomym)
16043 .unwrap_or(Self::Unknown(node)),
16044 "typed_quote" => <TypedQuote as ::treesitter_types::FromNode>::from_node(node, src)
16045 .map(Self::TypedQuote)
16046 .unwrap_or(Self::Unknown(node)),
16047 "unboxed_sum" => <UnboxedSum as ::treesitter_types::FromNode>::from_node(node, src)
16048 .map(Self::UnboxedSum)
16049 .unwrap_or(Self::Unknown(node)),
16050 "unboxed_tuple" => <UnboxedTuple as ::treesitter_types::FromNode>::from_node(node, src)
16051 .map(Self::UnboxedTuple)
16052 .unwrap_or(Self::Unknown(node)),
16053 "unboxed_unit" => <UnboxedUnit as ::treesitter_types::FromNode>::from_node(node, src)
16054 .map(Self::UnboxedUnit)
16055 .unwrap_or(Self::Unknown(node)),
16056 "unit" => <Unit as ::treesitter_types::FromNode>::from_node(node, src)
16057 .map(Self::Unit)
16058 .unwrap_or(Self::Unknown(node)),
16059 "via" => <Via as ::treesitter_types::FromNode>::from_node(node, src)
16060 .map(Self::Via)
16061 .unwrap_or(Self::Unknown(node)),
16062 "view_pattern" => <ViewPattern as ::treesitter_types::FromNode>::from_node(node, src)
16063 .map(Self::ViewPattern)
16064 .unwrap_or(Self::Unknown(node)),
16065 "wildcard" => <Wildcard as ::treesitter_types::FromNode>::from_node(node, src)
16066 .map(Self::Wildcard)
16067 .unwrap_or(Self::Unknown(node)),
16068 "all_names" => <AllNames as ::treesitter_types::FromNode>::from_node(node, src)
16069 .map(Self::AllNames)
16070 .unwrap_or(Self::Unknown(node)),
16071 "calling_convention" => {
16072 <CallingConvention as ::treesitter_types::FromNode>::from_node(node, src)
16073 .map(Self::CallingConvention)
16074 .unwrap_or(Self::Unknown(node))
16075 }
16076 "char" => <Char as ::treesitter_types::FromNode>::from_node(node, src)
16077 .map(Self::Char)
16078 .unwrap_or(Self::Unknown(node)),
16079 "comment" => <Comment as ::treesitter_types::FromNode>::from_node(node, src)
16080 .map(Self::Comment)
16081 .unwrap_or(Self::Unknown(node)),
16082 "constructor" => <Constructor as ::treesitter_types::FromNode>::from_node(node, src)
16083 .map(Self::Constructor)
16084 .unwrap_or(Self::Unknown(node)),
16085 "cpp" => <Cpp as ::treesitter_types::FromNode>::from_node(node, src)
16086 .map(Self::Cpp)
16087 .unwrap_or(Self::Unknown(node)),
16088 "float" => <Float as ::treesitter_types::FromNode>::from_node(node, src)
16089 .map(Self::Float)
16090 .unwrap_or(Self::Unknown(node)),
16091 "haddock" => <Haddock as ::treesitter_types::FromNode>::from_node(node, src)
16092 .map(Self::Haddock)
16093 .unwrap_or(Self::Unknown(node)),
16094 "implicit_variable" => {
16095 <ImplicitVariable as ::treesitter_types::FromNode>::from_node(node, src)
16096 .map(Self::ImplicitVariable)
16097 .unwrap_or(Self::Unknown(node))
16098 }
16099 "import_package" => {
16100 <ImportPackage as ::treesitter_types::FromNode>::from_node(node, src)
16101 .map(Self::ImportPackage)
16102 .unwrap_or(Self::Unknown(node))
16103 }
16104 "label" => <Label as ::treesitter_types::FromNode>::from_node(node, src)
16105 .map(Self::Label)
16106 .unwrap_or(Self::Unknown(node)),
16107 "module_id" => <ModuleId as ::treesitter_types::FromNode>::from_node(node, src)
16108 .map(Self::ModuleId)
16109 .unwrap_or(Self::Unknown(node)),
16110 "name" => <Name as ::treesitter_types::FromNode>::from_node(node, src)
16111 .map(Self::Name)
16112 .unwrap_or(Self::Unknown(node)),
16113 "pragma" => <Pragma as ::treesitter_types::FromNode>::from_node(node, src)
16114 .map(Self::Pragma)
16115 .unwrap_or(Self::Unknown(node)),
16116 "quasiquote_body" => {
16117 <QuasiquoteBody as ::treesitter_types::FromNode>::from_node(node, src)
16118 .map(Self::QuasiquoteBody)
16119 .unwrap_or(Self::Unknown(node))
16120 }
16121 "safety" => <Safety as ::treesitter_types::FromNode>::from_node(node, src)
16122 .map(Self::Safety)
16123 .unwrap_or(Self::Unknown(node)),
16124 "string" => <String as ::treesitter_types::FromNode>::from_node(node, src)
16125 .map(Self::String)
16126 .unwrap_or(Self::Unknown(node)),
16127 "variable" => <Variable as ::treesitter_types::FromNode>::from_node(node, src)
16128 .map(Self::Variable)
16129 .unwrap_or(Self::Unknown(node)),
16130 _ => Self::Unknown(node),
16131 }
16132 }
16133}
16134impl ::treesitter_types::Spanned for AnyNode<'_> {
16135 fn span(&self) -> ::treesitter_types::Span {
16136 match self {
16137 Self::ClassDecl(inner) => inner.span(),
16138 Self::Constraint(inner) => inner.span(),
16139 Self::Constraints(inner) => inner.span(),
16140 Self::Decl(inner) => inner.span(),
16141 Self::Declaration(inner) => inner.span(),
16142 Self::Expression(inner) => inner.span(),
16143 Self::Guard(inner) => inner.span(),
16144 Self::InstanceDecl(inner) => inner.span(),
16145 Self::Pattern(inner) => inner.span(),
16146 Self::Qualifier(inner) => inner.span(),
16147 Self::QuantifiedType(inner) => inner.span(),
16148 Self::Statement(inner) => inner.span(),
16149 Self::Type(inner) => inner.span(),
16150 Self::TypeParam(inner) => inner.span(),
16151 Self::AbstractFamily(inner) => inner.span(),
16152 Self::Alternative(inner) => inner.span(),
16153 Self::Alternatives(inner) => inner.span(),
16154 Self::Annotated(inner) => inner.span(),
16155 Self::Apply(inner) => inner.span(),
16156 Self::ArithmeticSequence(inner) => inner.span(),
16157 Self::As(inner) => inner.span(),
16158 Self::AssociatedType(inner) => inner.span(),
16159 Self::Bind(inner) => inner.span(),
16160 Self::BindingList(inner) => inner.span(),
16161 Self::Boolean(inner) => inner.span(),
16162 Self::Case(inner) => inner.span(),
16163 Self::Children(inner) => inner.span(),
16164 Self::Class(inner) => inner.span(),
16165 Self::ClassDeclarations(inner) => inner.span(),
16166 Self::Conditional(inner) => inner.span(),
16167 Self::ConstructorOperator(inner) => inner.span(),
16168 Self::ConstructorSynonym(inner) => inner.span(),
16169 Self::ConstructorSynonyms(inner) => inner.span(),
16170 Self::Context(inner) => inner.span(),
16171 Self::DataConstructor(inner) => inner.span(),
16172 Self::DataConstructors(inner) => inner.span(),
16173 Self::DataFamily(inner) => inner.span(),
16174 Self::DataInstance(inner) => inner.span(),
16175 Self::DataType(inner) => inner.span(),
16176 Self::Declarations(inner) => inner.span(),
16177 Self::DefaultSignature(inner) => inner.span(),
16178 Self::DefaultTypes(inner) => inner.span(),
16179 Self::Deriving(inner) => inner.span(),
16180 Self::DerivingInstance(inner) => inner.span(),
16181 Self::DerivingStrategy(inner) => inner.span(),
16182 Self::Do(inner) => inner.span(),
16183 Self::DoModule(inner) => inner.span(),
16184 Self::EmptyList(inner) => inner.span(),
16185 Self::Entity(inner) => inner.span(),
16186 Self::Equation(inner) => inner.span(),
16187 Self::Equations(inner) => inner.span(),
16188 Self::Exp(inner) => inner.span(),
16189 Self::ExplicitType(inner) => inner.span(),
16190 Self::Export(inner) => inner.span(),
16191 Self::Exports(inner) => inner.span(),
16192 Self::Field(inner) => inner.span(),
16193 Self::FieldName(inner) => inner.span(),
16194 Self::FieldPath(inner) => inner.span(),
16195 Self::FieldPattern(inner) => inner.span(),
16196 Self::FieldUpdate(inner) => inner.span(),
16197 Self::Fields(inner) => inner.span(),
16198 Self::Fixity(inner) => inner.span(),
16199 Self::Forall(inner) => inner.span(),
16200 Self::ForallRequired(inner) => inner.span(),
16201 Self::ForeignExport(inner) => inner.span(),
16202 Self::ForeignImport(inner) => inner.span(),
16203 Self::Function(inner) => inner.span(),
16204 Self::FunctionHeadParens(inner) => inner.span(),
16205 Self::Fundep(inner) => inner.span(),
16206 Self::Fundeps(inner) => inner.span(),
16207 Self::GadtConstructor(inner) => inner.span(),
16208 Self::GadtConstructors(inner) => inner.span(),
16209 Self::Generator(inner) => inner.span(),
16210 Self::Group(inner) => inner.span(),
16211 Self::Guards(inner) => inner.span(),
16212 Self::Haskell(inner) => inner.span(),
16213 Self::Header(inner) => inner.span(),
16214 Self::ImplicitParameter(inner) => inner.span(),
16215 Self::Import(inner) => inner.span(),
16216 Self::ImportList(inner) => inner.span(),
16217 Self::ImportName(inner) => inner.span(),
16218 Self::Imports(inner) => inner.span(),
16219 Self::Inferred(inner) => inner.span(),
16220 Self::Infix(inner) => inner.span(),
16221 Self::InfixId(inner) => inner.span(),
16222 Self::Instance(inner) => inner.span(),
16223 Self::InstanceDeclarations(inner) => inner.span(),
16224 Self::Integer(inner) => inner.span(),
16225 Self::Invisible(inner) => inner.span(),
16226 Self::Irrefutable(inner) => inner.span(),
16227 Self::KindApplication(inner) => inner.span(),
16228 Self::KindSignature(inner) => inner.span(),
16229 Self::Lambda(inner) => inner.span(),
16230 Self::LambdaCase(inner) => inner.span(),
16231 Self::LambdaCases(inner) => inner.span(),
16232 Self::LazyField(inner) => inner.span(),
16233 Self::LeftSection(inner) => inner.span(),
16234 Self::Let(inner) => inner.span(),
16235 Self::LetIn(inner) => inner.span(),
16236 Self::LinearFunction(inner) => inner.span(),
16237 Self::List(inner) => inner.span(),
16238 Self::ListComprehension(inner) => inner.span(),
16239 Self::Literal(inner) => inner.span(),
16240 Self::LocalBinds(inner) => inner.span(),
16241 Self::Match(inner) => inner.span(),
16242 Self::Modifier(inner) => inner.span(),
16243 Self::Module(inner) => inner.span(),
16244 Self::ModuleExport(inner) => inner.span(),
16245 Self::MultiWayIf(inner) => inner.span(),
16246 Self::Namespace(inner) => inner.span(),
16247 Self::Negation(inner) => inner.span(),
16248 Self::Newtype(inner) => inner.span(),
16249 Self::NewtypeConstructor(inner) => inner.span(),
16250 Self::Operator(inner) => inner.span(),
16251 Self::Parens(inner) => inner.span(),
16252 Self::PatternGuard(inner) => inner.span(),
16253 Self::PatternSynonym(inner) => inner.span(),
16254 Self::Patterns(inner) => inner.span(),
16255 Self::Prefix(inner) => inner.span(),
16256 Self::PrefixId(inner) => inner.span(),
16257 Self::PrefixList(inner) => inner.span(),
16258 Self::PrefixTuple(inner) => inner.span(),
16259 Self::PrefixUnboxedSum(inner) => inner.span(),
16260 Self::PrefixUnboxedTuple(inner) => inner.span(),
16261 Self::Projection(inner) => inner.span(),
16262 Self::ProjectionSelector(inner) => inner.span(),
16263 Self::Promoted(inner) => inner.span(),
16264 Self::Qualified(inner) => inner.span(),
16265 Self::Qualifiers(inner) => inner.span(),
16266 Self::QuantifiedVariables(inner) => inner.span(),
16267 Self::Quasiquote(inner) => inner.span(),
16268 Self::Quote(inner) => inner.span(),
16269 Self::QuotedDecls(inner) => inner.span(),
16270 Self::QuotedExpression(inner) => inner.span(),
16271 Self::QuotedPattern(inner) => inner.span(),
16272 Self::QuotedType(inner) => inner.span(),
16273 Self::Quoter(inner) => inner.span(),
16274 Self::Rec(inner) => inner.span(),
16275 Self::Record(inner) => inner.span(),
16276 Self::RightSection(inner) => inner.span(),
16277 Self::RoleAnnotation(inner) => inner.span(),
16278 Self::Signature(inner) => inner.span(),
16279 Self::Special(inner) => inner.span(),
16280 Self::Splice(inner) => inner.span(),
16281 Self::Star(inner) => inner.span(),
16282 Self::Strict(inner) => inner.span(),
16283 Self::StrictField(inner) => inner.span(),
16284 Self::ThQuotedName(inner) => inner.span(),
16285 Self::TopSplice(inner) => inner.span(),
16286 Self::Transform(inner) => inner.span(),
16287 Self::Tuple(inner) => inner.span(),
16288 Self::TypeApplication(inner) => inner.span(),
16289 Self::TypeBinder(inner) => inner.span(),
16290 Self::TypeFamily(inner) => inner.span(),
16291 Self::TypeFamilyInjectivity(inner) => inner.span(),
16292 Self::TypeFamilyResult(inner) => inner.span(),
16293 Self::TypeInstance(inner) => inner.span(),
16294 Self::TypeParams(inner) => inner.span(),
16295 Self::TypePatterns(inner) => inner.span(),
16296 Self::TypeRole(inner) => inner.span(),
16297 Self::TypeSynomym(inner) => inner.span(),
16298 Self::TypedQuote(inner) => inner.span(),
16299 Self::UnboxedSum(inner) => inner.span(),
16300 Self::UnboxedTuple(inner) => inner.span(),
16301 Self::UnboxedUnit(inner) => inner.span(),
16302 Self::Unit(inner) => inner.span(),
16303 Self::Via(inner) => inner.span(),
16304 Self::ViewPattern(inner) => inner.span(),
16305 Self::Wildcard(inner) => inner.span(),
16306 Self::AllNames(inner) => inner.span(),
16307 Self::CallingConvention(inner) => inner.span(),
16308 Self::Char(inner) => inner.span(),
16309 Self::Comment(inner) => inner.span(),
16310 Self::Constructor(inner) => inner.span(),
16311 Self::Cpp(inner) => inner.span(),
16312 Self::Float(inner) => inner.span(),
16313 Self::Haddock(inner) => inner.span(),
16314 Self::ImplicitVariable(inner) => inner.span(),
16315 Self::ImportPackage(inner) => inner.span(),
16316 Self::Label(inner) => inner.span(),
16317 Self::ModuleId(inner) => inner.span(),
16318 Self::Name(inner) => inner.span(),
16319 Self::Pragma(inner) => inner.span(),
16320 Self::QuasiquoteBody(inner) => inner.span(),
16321 Self::Safety(inner) => inner.span(),
16322 Self::String(inner) => inner.span(),
16323 Self::Variable(inner) => inner.span(),
16324 Self::Unknown(node) => ::treesitter_types::Span::from(*node),
16325 }
16326 }
16327}