cairo_lang_syntax/node/
key_fields.rs

1// Autogenerated file. To regenerate, please run `cargo run --bin generate-syntax`.
2use super::kind::SyntaxKind;
3/// Gets the vector of children ids that are the indexing key for this SyntaxKind.
4///
5/// Each SyntaxKind has some children that are defined in the spec to be its indexing key
6/// for its stable pointer. See [super::stable_ptr].
7pub fn key_fields_range(kind: SyntaxKind) -> core::ops::Range<usize> {
8    match kind {
9        SyntaxKind::Trivia => 0..0,
10        SyntaxKind::ExprList => 0..0,
11        SyntaxKind::Arg => 0..0,
12        SyntaxKind::ArgClauseNamed => 0..0,
13        SyntaxKind::ArgClauseUnnamed => 0..0,
14        SyntaxKind::ArgClauseFieldInitShorthand => 0..0,
15        SyntaxKind::ExprFieldInitShorthand => 0..0,
16        SyntaxKind::ArgList => 0..0,
17        SyntaxKind::ExprMissing => 0..0,
18        SyntaxKind::PathSegmentSimple => 0..0,
19        SyntaxKind::OptionTerminalColonColonEmpty => 0..0,
20        SyntaxKind::PathSegmentWithGenericArgs => 0..0,
21        SyntaxKind::ExprPath => 0..0,
22        SyntaxKind::OptionTerminalDollarEmpty => 0..0,
23        SyntaxKind::PathSegmentMissing => 0..0,
24        SyntaxKind::ExprPathInner => 0..0,
25        SyntaxKind::ExprParenthesized => 0..0,
26        SyntaxKind::ExprUnary => 0..0,
27        SyntaxKind::ExprBinary => 0..0,
28        SyntaxKind::ExprListParenthesized => 0..0,
29        SyntaxKind::ExprFunctionCall => 0..0,
30        SyntaxKind::ArgListParenthesized => 0..0,
31        SyntaxKind::OptionArgListParenthesizedEmpty => 0..0,
32        SyntaxKind::ExprStructCtorCall => 0..0,
33        SyntaxKind::StructArgListBraced => 0..0,
34        SyntaxKind::ExprBlock => 0..0,
35        SyntaxKind::ExprMatch => 0..0,
36        SyntaxKind::MatchArms => 0..0,
37        SyntaxKind::MatchArm => 0..0,
38        SyntaxKind::ExprIf => 0..0,
39        SyntaxKind::ConditionListAnd => 0..0,
40        SyntaxKind::ConditionLet => 0..0,
41        SyntaxKind::ConditionExpr => 0..0,
42        SyntaxKind::ExprLoop => 0..0,
43        SyntaxKind::ExprWhile => 0..0,
44        // Key fields: pattern, identifier.
45        SyntaxKind::ExprFor => 1..3,
46        SyntaxKind::ElseClause => 0..0,
47        SyntaxKind::OptionElseClauseEmpty => 0..0,
48        SyntaxKind::ExprErrorPropagate => 0..0,
49        SyntaxKind::ExprIndexed => 0..0,
50        SyntaxKind::ExprFixedSizeArray => 0..0,
51        SyntaxKind::FixedSizeArraySize => 0..0,
52        SyntaxKind::OptionFixedSizeArraySizeEmpty => 0..0,
53        SyntaxKind::ExprClosure => 0..0,
54        SyntaxKind::ClosureParamWrapperNAry => 0..0,
55        SyntaxKind::StructArgExpr => 0..0,
56        SyntaxKind::OptionStructArgExprEmpty => 0..0,
57        // Key fields: identifier.
58        SyntaxKind::StructArgSingle => 0..1,
59        SyntaxKind::StructArgTail => 0..0,
60        SyntaxKind::StructArgList => 0..0,
61        SyntaxKind::ArgListBraced => 0..0,
62        SyntaxKind::ArgListBracketed => 0..0,
63        SyntaxKind::WrappedArgListMissing => 0..0,
64        // Key fields: name.
65        SyntaxKind::PatternIdentifier => 1..2,
66        SyntaxKind::PatternStruct => 0..0,
67        SyntaxKind::PatternStructParamList => 0..0,
68        SyntaxKind::PatternTuple => 0..0,
69        SyntaxKind::PatternFixedSizeArray => 0..0,
70        SyntaxKind::PatternList => 0..0,
71        SyntaxKind::PatternListOr => 0..0,
72        SyntaxKind::PatternStructParamWithExpr => 0..0,
73        SyntaxKind::PatternEnum => 0..0,
74        SyntaxKind::PatternEnumInnerPattern => 0..0,
75        SyntaxKind::OptionPatternEnumInnerPatternEmpty => 0..0,
76        SyntaxKind::TypeClause => 0..0,
77        SyntaxKind::OptionTypeClauseEmpty => 0..0,
78        SyntaxKind::ReturnTypeClause => 0..0,
79        SyntaxKind::OptionReturnTypeClauseEmpty => 0..0,
80        SyntaxKind::StatementList => 0..0,
81        SyntaxKind::StatementMissing => 0..0,
82        // Key fields: pattern.
83        SyntaxKind::StatementLet => 2..3,
84        SyntaxKind::LetElseClause => 0..0,
85        SyntaxKind::OptionLetElseClauseEmpty => 0..0,
86        SyntaxKind::OptionTerminalSemicolonEmpty => 0..0,
87        SyntaxKind::StatementExpr => 0..0,
88        SyntaxKind::StatementContinue => 0..0,
89        SyntaxKind::ExprClause => 0..0,
90        SyntaxKind::OptionExprClauseEmpty => 0..0,
91        SyntaxKind::StatementReturn => 0..0,
92        SyntaxKind::StatementBreak => 0..0,
93        SyntaxKind::StatementItem => 0..0,
94        // Key fields: name.
95        SyntaxKind::Param => 1..2,
96        SyntaxKind::ModifierList => 0..0,
97        SyntaxKind::ParamList => 0..0,
98        SyntaxKind::ImplicitsClause => 0..0,
99        SyntaxKind::ImplicitsList => 0..0,
100        SyntaxKind::OptionImplicitsClauseEmpty => 0..0,
101        SyntaxKind::OptionTerminalNoPanicEmpty => 0..0,
102        SyntaxKind::OptionTerminalConstEmpty => 0..0,
103        SyntaxKind::FunctionSignature => 0..0,
104        // Key fields: name.
105        SyntaxKind::Member => 2..3,
106        SyntaxKind::MemberList => 0..0,
107        // Key fields: name.
108        SyntaxKind::Variant => 1..2,
109        SyntaxKind::VariantList => 0..0,
110        SyntaxKind::ModuleItemList => 0..0,
111        SyntaxKind::ModuleItemMissing => 0..0,
112        SyntaxKind::Attribute => 0..0,
113        SyntaxKind::AttributeList => 0..0,
114        SyntaxKind::VisibilityDefault => 0..0,
115        SyntaxKind::VisibilityPubArgumentClause => 0..0,
116        SyntaxKind::OptionVisibilityPubArgumentClauseEmpty => 0..0,
117        SyntaxKind::VisibilityPub => 0..0,
118        // Key fields: name.
119        SyntaxKind::ItemModule => 3..4,
120        SyntaxKind::ModuleBody => 0..0,
121        // Key fields: name.
122        SyntaxKind::FunctionDeclaration => 2..3,
123        // Key fields: name.
124        SyntaxKind::ItemConstant => 3..4,
125        // Key fields: declaration.
126        SyntaxKind::FunctionWithBody => 2..3,
127        // Key fields: declaration.
128        SyntaxKind::ItemExternFunction => 3..4,
129        // Key fields: name.
130        SyntaxKind::ItemExternType => 4..5,
131        // Key fields: name.
132        SyntaxKind::ItemTrait => 3..4,
133        SyntaxKind::TraitBody => 0..0,
134        SyntaxKind::TraitItemList => 0..0,
135        SyntaxKind::TraitItemMissing => 0..0,
136        // Key fields: declaration.
137        SyntaxKind::TraitItemFunction => 1..2,
138        // Key fields: name.
139        SyntaxKind::TraitItemType => 2..3,
140        // Key fields: name.
141        SyntaxKind::TraitItemConstant => 2..3,
142        // Key fields: name.
143        SyntaxKind::TraitItemImpl => 2..3,
144        // Key fields: name.
145        SyntaxKind::ItemImpl => 3..4,
146        SyntaxKind::ItemHeaderDoc => 0..0,
147        SyntaxKind::ImplBody => 0..0,
148        SyntaxKind::ImplItemList => 0..0,
149        SyntaxKind::ImplItemMissing => 0..0,
150        // Key fields: name.
151        SyntaxKind::ItemImplAlias => 3..4,
152        // Key fields: name.
153        SyntaxKind::ItemStruct => 3..4,
154        // Key fields: name.
155        SyntaxKind::ItemEnum => 3..4,
156        // Key fields: name.
157        SyntaxKind::ItemTypeAlias => 3..4,
158        // Key fields: use_path.
159        SyntaxKind::ItemUse => 4..5,
160        // Key fields: ident, alias_clause.
161        SyntaxKind::UsePathLeaf => 0..2,
162        SyntaxKind::UsePathSingle => 0..0,
163        SyntaxKind::UsePathMulti => 0..0,
164        SyntaxKind::UsePathStar => 0..0,
165        SyntaxKind::UsePathList => 0..0,
166        // Key fields: alias.
167        SyntaxKind::AliasClause => 1..2,
168        SyntaxKind::OptionAliasClauseEmpty => 0..0,
169        SyntaxKind::GenericArgNamed => 0..0,
170        SyntaxKind::GenericArgUnnamed => 0..0,
171        SyntaxKind::GenericArgValueExpr => 0..0,
172        SyntaxKind::GenericArgs => 0..0,
173        SyntaxKind::GenericArgList => 0..0,
174        SyntaxKind::AssociatedItemConstraint => 0..0,
175        SyntaxKind::AssociatedItemConstraints => 0..0,
176        SyntaxKind::AssociatedItemConstraintList => 0..0,
177        SyntaxKind::OptionAssociatedItemConstraintsEmpty => 0..0,
178        SyntaxKind::OptionWrappedGenericParamListEmpty => 0..0,
179        SyntaxKind::WrappedGenericParamList => 0..0,
180        SyntaxKind::GenericParamList => 0..0,
181        // Key fields: name.
182        SyntaxKind::GenericParamType => 0..1,
183        // Key fields: name.
184        SyntaxKind::GenericParamConst => 1..2,
185        // Key fields: name.
186        SyntaxKind::GenericParamImplNamed => 1..2,
187        SyntaxKind::GenericParamImplAnonymous => 0..0,
188        SyntaxKind::GenericParamNegativeImpl => 0..0,
189        SyntaxKind::TokenList => 0..0,
190        SyntaxKind::TokenTreeLeaf => 0..0,
191        SyntaxKind::TokenTreeNode => 0..0,
192        SyntaxKind::TokenTreeRepetition => 0..0,
193        SyntaxKind::TokenTreeParam => 0..0,
194        SyntaxKind::TokenTreeMissing => 0..0,
195        SyntaxKind::WrappedTokenTreeMissing => 0..0,
196        SyntaxKind::ParenthesizedTokenTree => 0..0,
197        SyntaxKind::BracedTokenTree => 0..0,
198        SyntaxKind::BracketedTokenTree => 0..0,
199        SyntaxKind::ExprInlineMacro => 0..0,
200        SyntaxKind::ItemInlineMacro => 0..0,
201        // Key fields: name.
202        SyntaxKind::ItemMacroDeclaration => 3..4,
203        SyntaxKind::MacroRulesList => 0..0,
204        SyntaxKind::MacroRule => 0..0,
205        SyntaxKind::ParamKind => 0..0,
206        SyntaxKind::OptionParamKindEmpty => 0..0,
207        SyntaxKind::MacroParam => 0..0,
208        SyntaxKind::MacroRepetition => 0..0,
209        SyntaxKind::OptionTerminalCommaEmpty => 0..0,
210        SyntaxKind::MacroRepetitionOperatorMissing => 0..0,
211        SyntaxKind::ParamIdent => 0..0,
212        SyntaxKind::ParamExpr => 0..0,
213        SyntaxKind::MacroParamKindMissing => 0..0,
214        SyntaxKind::MacroElements => 0..0,
215        SyntaxKind::MacroWrapper => 0..0,
216        SyntaxKind::ParenthesizedMacro => 0..0,
217        SyntaxKind::BracedMacro => 0..0,
218        SyntaxKind::BracketedMacro => 0..0,
219        SyntaxKind::LegacyExprInlineMacro => 0..0,
220        SyntaxKind::LegacyItemInlineMacro => 0..0,
221        SyntaxKind::TriviumSkippedNode => 0..0,
222        SyntaxKind::TokenIdentifier => 0..0,
223        SyntaxKind::TerminalIdentifier => 0..0,
224        SyntaxKind::TokenLiteralNumber => 0..0,
225        SyntaxKind::TerminalLiteralNumber => 0..0,
226        SyntaxKind::TokenShortString => 0..0,
227        SyntaxKind::TerminalShortString => 0..0,
228        SyntaxKind::TokenString => 0..0,
229        SyntaxKind::TerminalString => 0..0,
230        SyntaxKind::TokenAs => 0..0,
231        SyntaxKind::TerminalAs => 0..0,
232        SyntaxKind::TokenConst => 0..0,
233        SyntaxKind::TerminalConst => 0..0,
234        SyntaxKind::TokenElse => 0..0,
235        SyntaxKind::TerminalElse => 0..0,
236        SyntaxKind::TokenEnum => 0..0,
237        SyntaxKind::TerminalEnum => 0..0,
238        SyntaxKind::TokenExtern => 0..0,
239        SyntaxKind::TerminalExtern => 0..0,
240        SyntaxKind::TokenFalse => 0..0,
241        SyntaxKind::TerminalFalse => 0..0,
242        SyntaxKind::TokenFunction => 0..0,
243        SyntaxKind::TerminalFunction => 0..0,
244        SyntaxKind::TokenIf => 0..0,
245        SyntaxKind::TerminalIf => 0..0,
246        SyntaxKind::TokenWhile => 0..0,
247        SyntaxKind::TerminalWhile => 0..0,
248        SyntaxKind::TokenFor => 0..0,
249        SyntaxKind::TerminalFor => 0..0,
250        SyntaxKind::TokenLoop => 0..0,
251        SyntaxKind::TerminalLoop => 0..0,
252        SyntaxKind::TokenImpl => 0..0,
253        SyntaxKind::TerminalImpl => 0..0,
254        SyntaxKind::TokenImplicits => 0..0,
255        SyntaxKind::TerminalImplicits => 0..0,
256        SyntaxKind::TokenLet => 0..0,
257        SyntaxKind::TerminalLet => 0..0,
258        SyntaxKind::TokenMacro => 0..0,
259        SyntaxKind::TerminalMacro => 0..0,
260        SyntaxKind::TokenMatch => 0..0,
261        SyntaxKind::TerminalMatch => 0..0,
262        SyntaxKind::TokenModule => 0..0,
263        SyntaxKind::TerminalModule => 0..0,
264        SyntaxKind::TokenMut => 0..0,
265        SyntaxKind::TerminalMut => 0..0,
266        SyntaxKind::TokenNoPanic => 0..0,
267        SyntaxKind::TerminalNoPanic => 0..0,
268        SyntaxKind::TokenOf => 0..0,
269        SyntaxKind::TerminalOf => 0..0,
270        SyntaxKind::TokenRef => 0..0,
271        SyntaxKind::TerminalRef => 0..0,
272        SyntaxKind::TokenContinue => 0..0,
273        SyntaxKind::TerminalContinue => 0..0,
274        SyntaxKind::TokenReturn => 0..0,
275        SyntaxKind::TerminalReturn => 0..0,
276        SyntaxKind::TokenBreak => 0..0,
277        SyntaxKind::TerminalBreak => 0..0,
278        SyntaxKind::TokenStruct => 0..0,
279        SyntaxKind::TerminalStruct => 0..0,
280        SyntaxKind::TokenTrait => 0..0,
281        SyntaxKind::TerminalTrait => 0..0,
282        SyntaxKind::TokenTrue => 0..0,
283        SyntaxKind::TerminalTrue => 0..0,
284        SyntaxKind::TokenType => 0..0,
285        SyntaxKind::TerminalType => 0..0,
286        SyntaxKind::TokenUse => 0..0,
287        SyntaxKind::TerminalUse => 0..0,
288        SyntaxKind::TokenPub => 0..0,
289        SyntaxKind::TerminalPub => 0..0,
290        SyntaxKind::TokenAnd => 0..0,
291        SyntaxKind::TerminalAnd => 0..0,
292        SyntaxKind::TokenAndAnd => 0..0,
293        SyntaxKind::TerminalAndAnd => 0..0,
294        SyntaxKind::TokenArrow => 0..0,
295        SyntaxKind::TerminalArrow => 0..0,
296        SyntaxKind::TokenAt => 0..0,
297        SyntaxKind::TerminalAt => 0..0,
298        SyntaxKind::TokenBadCharacters => 0..0,
299        SyntaxKind::TerminalBadCharacters => 0..0,
300        SyntaxKind::TokenColon => 0..0,
301        SyntaxKind::TerminalColon => 0..0,
302        SyntaxKind::TokenColonColon => 0..0,
303        SyntaxKind::TerminalColonColon => 0..0,
304        SyntaxKind::TokenComma => 0..0,
305        SyntaxKind::TerminalComma => 0..0,
306        SyntaxKind::TokenDiv => 0..0,
307        SyntaxKind::TerminalDiv => 0..0,
308        SyntaxKind::TokenDivEq => 0..0,
309        SyntaxKind::TerminalDivEq => 0..0,
310        SyntaxKind::TokenDollar => 0..0,
311        SyntaxKind::TerminalDollar => 0..0,
312        SyntaxKind::TokenDot => 0..0,
313        SyntaxKind::TerminalDot => 0..0,
314        SyntaxKind::TokenDotDot => 0..0,
315        SyntaxKind::TerminalDotDot => 0..0,
316        SyntaxKind::TokenDotDotEq => 0..0,
317        SyntaxKind::TerminalDotDotEq => 0..0,
318        SyntaxKind::TokenEndOfFile => 0..0,
319        SyntaxKind::TerminalEndOfFile => 0..0,
320        SyntaxKind::TokenEq => 0..0,
321        SyntaxKind::TerminalEq => 0..0,
322        SyntaxKind::TokenEqEq => 0..0,
323        SyntaxKind::TerminalEqEq => 0..0,
324        SyntaxKind::TokenGE => 0..0,
325        SyntaxKind::TerminalGE => 0..0,
326        SyntaxKind::TokenGT => 0..0,
327        SyntaxKind::TerminalGT => 0..0,
328        SyntaxKind::TokenHash => 0..0,
329        SyntaxKind::TerminalHash => 0..0,
330        SyntaxKind::TokenLBrace => 0..0,
331        SyntaxKind::TerminalLBrace => 0..0,
332        SyntaxKind::TokenLBrack => 0..0,
333        SyntaxKind::TerminalLBrack => 0..0,
334        SyntaxKind::TokenLE => 0..0,
335        SyntaxKind::TerminalLE => 0..0,
336        SyntaxKind::TokenLParen => 0..0,
337        SyntaxKind::TerminalLParen => 0..0,
338        SyntaxKind::TokenLT => 0..0,
339        SyntaxKind::TerminalLT => 0..0,
340        SyntaxKind::TokenMatchArrow => 0..0,
341        SyntaxKind::TerminalMatchArrow => 0..0,
342        SyntaxKind::TokenMinus => 0..0,
343        SyntaxKind::TerminalMinus => 0..0,
344        SyntaxKind::TokenMinusEq => 0..0,
345        SyntaxKind::TerminalMinusEq => 0..0,
346        SyntaxKind::TokenMod => 0..0,
347        SyntaxKind::TerminalMod => 0..0,
348        SyntaxKind::TokenModEq => 0..0,
349        SyntaxKind::TerminalModEq => 0..0,
350        SyntaxKind::TokenMul => 0..0,
351        SyntaxKind::TerminalMul => 0..0,
352        SyntaxKind::TokenMulEq => 0..0,
353        SyntaxKind::TerminalMulEq => 0..0,
354        SyntaxKind::TokenNeq => 0..0,
355        SyntaxKind::TerminalNeq => 0..0,
356        SyntaxKind::TokenNot => 0..0,
357        SyntaxKind::TerminalNot => 0..0,
358        SyntaxKind::TokenBitNot => 0..0,
359        SyntaxKind::TerminalBitNot => 0..0,
360        SyntaxKind::TokenOr => 0..0,
361        SyntaxKind::TerminalOr => 0..0,
362        SyntaxKind::TokenOrOr => 0..0,
363        SyntaxKind::TerminalOrOr => 0..0,
364        SyntaxKind::TokenPlus => 0..0,
365        SyntaxKind::TerminalPlus => 0..0,
366        SyntaxKind::TokenPlusEq => 0..0,
367        SyntaxKind::TerminalPlusEq => 0..0,
368        SyntaxKind::TokenQuestionMark => 0..0,
369        SyntaxKind::TerminalQuestionMark => 0..0,
370        SyntaxKind::TokenRBrace => 0..0,
371        SyntaxKind::TerminalRBrace => 0..0,
372        SyntaxKind::TokenRBrack => 0..0,
373        SyntaxKind::TerminalRBrack => 0..0,
374        SyntaxKind::TokenRParen => 0..0,
375        SyntaxKind::TerminalRParen => 0..0,
376        SyntaxKind::TokenSemicolon => 0..0,
377        SyntaxKind::TerminalSemicolon => 0..0,
378        SyntaxKind::TokenUnderscore => 0..0,
379        SyntaxKind::TerminalUnderscore => 0..0,
380        SyntaxKind::TokenXor => 0..0,
381        SyntaxKind::TerminalXor => 0..0,
382        SyntaxKind::SyntaxFile => 0..0,
383        SyntaxKind::TokenEmpty => 0..0,
384        SyntaxKind::TerminalEmpty => 0..0,
385        SyntaxKind::TokenSingleLineComment => 0..0,
386        SyntaxKind::TokenSingleLineInnerComment => 0..0,
387        SyntaxKind::TokenSingleLineDocComment => 0..0,
388        SyntaxKind::TokenWhitespace => 0..0,
389        SyntaxKind::TokenNewline => 0..0,
390        SyntaxKind::TokenMissing => 0..0,
391        SyntaxKind::TokenSkipped => 0..0,
392    }
393}