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