1use super::kind::SyntaxKind;
3pub 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 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 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 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 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 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 SyntaxKind::Member => 2..3,
106 SyntaxKind::MemberList => 0..0,
107 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 SyntaxKind::ItemModule => 3..4,
120 SyntaxKind::ModuleBody => 0..0,
121 SyntaxKind::FunctionDeclaration => 2..3,
123 SyntaxKind::ItemConstant => 3..4,
125 SyntaxKind::FunctionWithBody => 2..3,
127 SyntaxKind::ItemExternFunction => 3..4,
129 SyntaxKind::ItemExternType => 4..5,
131 SyntaxKind::ItemTrait => 3..4,
133 SyntaxKind::TraitBody => 0..0,
134 SyntaxKind::TraitItemList => 0..0,
135 SyntaxKind::TraitItemMissing => 0..0,
136 SyntaxKind::TraitItemFunction => 1..2,
138 SyntaxKind::TraitItemType => 2..3,
140 SyntaxKind::TraitItemConstant => 2..3,
142 SyntaxKind::TraitItemImpl => 2..3,
144 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 SyntaxKind::ItemImplAlias => 3..4,
152 SyntaxKind::ItemStruct => 3..4,
154 SyntaxKind::ItemEnum => 3..4,
156 SyntaxKind::ItemTypeAlias => 3..4,
158 SyntaxKind::ItemUse => 4..5,
160 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 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 SyntaxKind::GenericParamType => 0..1,
183 SyntaxKind::GenericParamConst => 1..2,
185 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 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}