cairo_lang_syntax/node/
key_fields.rs

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