1 //
2 // Copyright 2021 gRPC authors.
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16
17 //
18 // Automatically generated by tools/codegen/core/gen_switch.py
19 //
20
21 #ifndef GRPC_SRC_CORE_LIB_PROMISE_DETAIL_SWITCH_H
22 #define GRPC_SRC_CORE_LIB_PROMISE_DETAIL_SWITCH_H
23
24 #include <grpc/support/port_platform.h>
25
26 #include <stdlib.h>
27
28 namespace grpc_core {
29
30 template <typename R, typename F0>
Switch(char idx,F0 f0)31 R Switch(char idx, F0 f0) {
32 switch (idx) {
33 case 0:
34 return f0();
35 }
36 abort();
37 }
38
39 template <typename R, typename F0, typename F1>
Switch(char idx,F0 f0,F1 f1)40 R Switch(char idx, F0 f0, F1 f1) {
41 switch (idx) {
42 case 0:
43 return f0();
44 case 1:
45 return f1();
46 }
47 abort();
48 }
49
50 template <typename R, typename F0, typename F1, typename F2>
Switch(char idx,F0 f0,F1 f1,F2 f2)51 R Switch(char idx, F0 f0, F1 f1, F2 f2) {
52 switch (idx) {
53 case 0:
54 return f0();
55 case 1:
56 return f1();
57 case 2:
58 return f2();
59 }
60 abort();
61 }
62
63 template <typename R, typename F0, typename F1, typename F2, typename F3>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3)64 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3) {
65 switch (idx) {
66 case 0:
67 return f0();
68 case 1:
69 return f1();
70 case 2:
71 return f2();
72 case 3:
73 return f3();
74 }
75 abort();
76 }
77
78 template <typename R, typename F0, typename F1, typename F2, typename F3,
79 typename F4>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4)80 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4) {
81 switch (idx) {
82 case 0:
83 return f0();
84 case 1:
85 return f1();
86 case 2:
87 return f2();
88 case 3:
89 return f3();
90 case 4:
91 return f4();
92 }
93 abort();
94 }
95
96 template <typename R, typename F0, typename F1, typename F2, typename F3,
97 typename F4, typename F5>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5)98 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5) {
99 switch (idx) {
100 case 0:
101 return f0();
102 case 1:
103 return f1();
104 case 2:
105 return f2();
106 case 3:
107 return f3();
108 case 4:
109 return f4();
110 case 5:
111 return f5();
112 }
113 abort();
114 }
115
116 template <typename R, typename F0, typename F1, typename F2, typename F3,
117 typename F4, typename F5, typename F6>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6)118 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6) {
119 switch (idx) {
120 case 0:
121 return f0();
122 case 1:
123 return f1();
124 case 2:
125 return f2();
126 case 3:
127 return f3();
128 case 4:
129 return f4();
130 case 5:
131 return f5();
132 case 6:
133 return f6();
134 }
135 abort();
136 }
137
138 template <typename R, typename F0, typename F1, typename F2, typename F3,
139 typename F4, typename F5, typename F6, typename F7>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6,F7 f7)140 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7) {
141 switch (idx) {
142 case 0:
143 return f0();
144 case 1:
145 return f1();
146 case 2:
147 return f2();
148 case 3:
149 return f3();
150 case 4:
151 return f4();
152 case 5:
153 return f5();
154 case 6:
155 return f6();
156 case 7:
157 return f7();
158 }
159 abort();
160 }
161
162 template <typename R, typename F0, typename F1, typename F2, typename F3,
163 typename F4, typename F5, typename F6, typename F7, typename F8>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6,F7 f7,F8 f8)164 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
165 F8 f8) {
166 switch (idx) {
167 case 0:
168 return f0();
169 case 1:
170 return f1();
171 case 2:
172 return f2();
173 case 3:
174 return f3();
175 case 4:
176 return f4();
177 case 5:
178 return f5();
179 case 6:
180 return f6();
181 case 7:
182 return f7();
183 case 8:
184 return f8();
185 }
186 abort();
187 }
188
189 template <typename R, typename F0, typename F1, typename F2, typename F3,
190 typename F4, typename F5, typename F6, typename F7, typename F8,
191 typename F9>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6,F7 f7,F8 f8,F9 f9)192 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
193 F8 f8, F9 f9) {
194 switch (idx) {
195 case 0:
196 return f0();
197 case 1:
198 return f1();
199 case 2:
200 return f2();
201 case 3:
202 return f3();
203 case 4:
204 return f4();
205 case 5:
206 return f5();
207 case 6:
208 return f6();
209 case 7:
210 return f7();
211 case 8:
212 return f8();
213 case 9:
214 return f9();
215 }
216 abort();
217 }
218
219 template <typename R, typename F0, typename F1, typename F2, typename F3,
220 typename F4, typename F5, typename F6, typename F7, typename F8,
221 typename F9, typename F10>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6,F7 f7,F8 f8,F9 f9,F10 f10)222 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
223 F8 f8, F9 f9, F10 f10) {
224 switch (idx) {
225 case 0:
226 return f0();
227 case 1:
228 return f1();
229 case 2:
230 return f2();
231 case 3:
232 return f3();
233 case 4:
234 return f4();
235 case 5:
236 return f5();
237 case 6:
238 return f6();
239 case 7:
240 return f7();
241 case 8:
242 return f8();
243 case 9:
244 return f9();
245 case 10:
246 return f10();
247 }
248 abort();
249 }
250
251 template <typename R, typename F0, typename F1, typename F2, typename F3,
252 typename F4, typename F5, typename F6, typename F7, typename F8,
253 typename F9, typename F10, typename F11>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6,F7 f7,F8 f8,F9 f9,F10 f10,F11 f11)254 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
255 F8 f8, F9 f9, F10 f10, F11 f11) {
256 switch (idx) {
257 case 0:
258 return f0();
259 case 1:
260 return f1();
261 case 2:
262 return f2();
263 case 3:
264 return f3();
265 case 4:
266 return f4();
267 case 5:
268 return f5();
269 case 6:
270 return f6();
271 case 7:
272 return f7();
273 case 8:
274 return f8();
275 case 9:
276 return f9();
277 case 10:
278 return f10();
279 case 11:
280 return f11();
281 }
282 abort();
283 }
284
285 template <typename R, typename F0, typename F1, typename F2, typename F3,
286 typename F4, typename F5, typename F6, typename F7, typename F8,
287 typename F9, typename F10, typename F11, typename F12>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6,F7 f7,F8 f8,F9 f9,F10 f10,F11 f11,F12 f12)288 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
289 F8 f8, F9 f9, F10 f10, F11 f11, F12 f12) {
290 switch (idx) {
291 case 0:
292 return f0();
293 case 1:
294 return f1();
295 case 2:
296 return f2();
297 case 3:
298 return f3();
299 case 4:
300 return f4();
301 case 5:
302 return f5();
303 case 6:
304 return f6();
305 case 7:
306 return f7();
307 case 8:
308 return f8();
309 case 9:
310 return f9();
311 case 10:
312 return f10();
313 case 11:
314 return f11();
315 case 12:
316 return f12();
317 }
318 abort();
319 }
320
321 template <typename R, typename F0, typename F1, typename F2, typename F3,
322 typename F4, typename F5, typename F6, typename F7, typename F8,
323 typename F9, typename F10, typename F11, typename F12, typename F13>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6,F7 f7,F8 f8,F9 f9,F10 f10,F11 f11,F12 f12,F13 f13)324 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
325 F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13) {
326 switch (idx) {
327 case 0:
328 return f0();
329 case 1:
330 return f1();
331 case 2:
332 return f2();
333 case 3:
334 return f3();
335 case 4:
336 return f4();
337 case 5:
338 return f5();
339 case 6:
340 return f6();
341 case 7:
342 return f7();
343 case 8:
344 return f8();
345 case 9:
346 return f9();
347 case 10:
348 return f10();
349 case 11:
350 return f11();
351 case 12:
352 return f12();
353 case 13:
354 return f13();
355 }
356 abort();
357 }
358
359 template <typename R, typename F0, typename F1, typename F2, typename F3,
360 typename F4, typename F5, typename F6, typename F7, typename F8,
361 typename F9, typename F10, typename F11, typename F12, typename F13,
362 typename F14>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6,F7 f7,F8 f8,F9 f9,F10 f10,F11 f11,F12 f12,F13 f13,F14 f14)363 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
364 F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14) {
365 switch (idx) {
366 case 0:
367 return f0();
368 case 1:
369 return f1();
370 case 2:
371 return f2();
372 case 3:
373 return f3();
374 case 4:
375 return f4();
376 case 5:
377 return f5();
378 case 6:
379 return f6();
380 case 7:
381 return f7();
382 case 8:
383 return f8();
384 case 9:
385 return f9();
386 case 10:
387 return f10();
388 case 11:
389 return f11();
390 case 12:
391 return f12();
392 case 13:
393 return f13();
394 case 14:
395 return f14();
396 }
397 abort();
398 }
399
400 template <typename R, typename F0, typename F1, typename F2, typename F3,
401 typename F4, typename F5, typename F6, typename F7, typename F8,
402 typename F9, typename F10, typename F11, typename F12, typename F13,
403 typename F14, typename F15>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6,F7 f7,F8 f8,F9 f9,F10 f10,F11 f11,F12 f12,F13 f13,F14 f14,F15 f15)404 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
405 F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15) {
406 switch (idx) {
407 case 0:
408 return f0();
409 case 1:
410 return f1();
411 case 2:
412 return f2();
413 case 3:
414 return f3();
415 case 4:
416 return f4();
417 case 5:
418 return f5();
419 case 6:
420 return f6();
421 case 7:
422 return f7();
423 case 8:
424 return f8();
425 case 9:
426 return f9();
427 case 10:
428 return f10();
429 case 11:
430 return f11();
431 case 12:
432 return f12();
433 case 13:
434 return f13();
435 case 14:
436 return f14();
437 case 15:
438 return f15();
439 }
440 abort();
441 }
442
443 template <typename R, typename F0, typename F1, typename F2, typename F3,
444 typename F4, typename F5, typename F6, typename F7, typename F8,
445 typename F9, typename F10, typename F11, typename F12, typename F13,
446 typename F14, typename F15, typename F16>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6,F7 f7,F8 f8,F9 f9,F10 f10,F11 f11,F12 f12,F13 f13,F14 f14,F15 f15,F16 f16)447 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
448 F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
449 F16 f16) {
450 switch (idx) {
451 case 0:
452 return f0();
453 case 1:
454 return f1();
455 case 2:
456 return f2();
457 case 3:
458 return f3();
459 case 4:
460 return f4();
461 case 5:
462 return f5();
463 case 6:
464 return f6();
465 case 7:
466 return f7();
467 case 8:
468 return f8();
469 case 9:
470 return f9();
471 case 10:
472 return f10();
473 case 11:
474 return f11();
475 case 12:
476 return f12();
477 case 13:
478 return f13();
479 case 14:
480 return f14();
481 case 15:
482 return f15();
483 case 16:
484 return f16();
485 }
486 abort();
487 }
488
489 template <typename R, typename F0, typename F1, typename F2, typename F3,
490 typename F4, typename F5, typename F6, typename F7, typename F8,
491 typename F9, typename F10, typename F11, typename F12, typename F13,
492 typename F14, typename F15, typename F16, typename F17>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6,F7 f7,F8 f8,F9 f9,F10 f10,F11 f11,F12 f12,F13 f13,F14 f14,F15 f15,F16 f16,F17 f17)493 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
494 F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
495 F16 f16, F17 f17) {
496 switch (idx) {
497 case 0:
498 return f0();
499 case 1:
500 return f1();
501 case 2:
502 return f2();
503 case 3:
504 return f3();
505 case 4:
506 return f4();
507 case 5:
508 return f5();
509 case 6:
510 return f6();
511 case 7:
512 return f7();
513 case 8:
514 return f8();
515 case 9:
516 return f9();
517 case 10:
518 return f10();
519 case 11:
520 return f11();
521 case 12:
522 return f12();
523 case 13:
524 return f13();
525 case 14:
526 return f14();
527 case 15:
528 return f15();
529 case 16:
530 return f16();
531 case 17:
532 return f17();
533 }
534 abort();
535 }
536
537 template <typename R, typename F0, typename F1, typename F2, typename F3,
538 typename F4, typename F5, typename F6, typename F7, typename F8,
539 typename F9, typename F10, typename F11, typename F12, typename F13,
540 typename F14, typename F15, typename F16, typename F17, typename F18>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6,F7 f7,F8 f8,F9 f9,F10 f10,F11 f11,F12 f12,F13 f13,F14 f14,F15 f15,F16 f16,F17 f17,F18 f18)541 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
542 F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
543 F16 f16, F17 f17, F18 f18) {
544 switch (idx) {
545 case 0:
546 return f0();
547 case 1:
548 return f1();
549 case 2:
550 return f2();
551 case 3:
552 return f3();
553 case 4:
554 return f4();
555 case 5:
556 return f5();
557 case 6:
558 return f6();
559 case 7:
560 return f7();
561 case 8:
562 return f8();
563 case 9:
564 return f9();
565 case 10:
566 return f10();
567 case 11:
568 return f11();
569 case 12:
570 return f12();
571 case 13:
572 return f13();
573 case 14:
574 return f14();
575 case 15:
576 return f15();
577 case 16:
578 return f16();
579 case 17:
580 return f17();
581 case 18:
582 return f18();
583 }
584 abort();
585 }
586
587 template <typename R, typename F0, typename F1, typename F2, typename F3,
588 typename F4, typename F5, typename F6, typename F7, typename F8,
589 typename F9, typename F10, typename F11, typename F12, typename F13,
590 typename F14, typename F15, typename F16, typename F17, typename F18,
591 typename F19>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6,F7 f7,F8 f8,F9 f9,F10 f10,F11 f11,F12 f12,F13 f13,F14 f14,F15 f15,F16 f16,F17 f17,F18 f18,F19 f19)592 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
593 F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
594 F16 f16, F17 f17, F18 f18, F19 f19) {
595 switch (idx) {
596 case 0:
597 return f0();
598 case 1:
599 return f1();
600 case 2:
601 return f2();
602 case 3:
603 return f3();
604 case 4:
605 return f4();
606 case 5:
607 return f5();
608 case 6:
609 return f6();
610 case 7:
611 return f7();
612 case 8:
613 return f8();
614 case 9:
615 return f9();
616 case 10:
617 return f10();
618 case 11:
619 return f11();
620 case 12:
621 return f12();
622 case 13:
623 return f13();
624 case 14:
625 return f14();
626 case 15:
627 return f15();
628 case 16:
629 return f16();
630 case 17:
631 return f17();
632 case 18:
633 return f18();
634 case 19:
635 return f19();
636 }
637 abort();
638 }
639
640 template <typename R, typename F0, typename F1, typename F2, typename F3,
641 typename F4, typename F5, typename F6, typename F7, typename F8,
642 typename F9, typename F10, typename F11, typename F12, typename F13,
643 typename F14, typename F15, typename F16, typename F17, typename F18,
644 typename F19, typename F20>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6,F7 f7,F8 f8,F9 f9,F10 f10,F11 f11,F12 f12,F13 f13,F14 f14,F15 f15,F16 f16,F17 f17,F18 f18,F19 f19,F20 f20)645 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
646 F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
647 F16 f16, F17 f17, F18 f18, F19 f19, F20 f20) {
648 switch (idx) {
649 case 0:
650 return f0();
651 case 1:
652 return f1();
653 case 2:
654 return f2();
655 case 3:
656 return f3();
657 case 4:
658 return f4();
659 case 5:
660 return f5();
661 case 6:
662 return f6();
663 case 7:
664 return f7();
665 case 8:
666 return f8();
667 case 9:
668 return f9();
669 case 10:
670 return f10();
671 case 11:
672 return f11();
673 case 12:
674 return f12();
675 case 13:
676 return f13();
677 case 14:
678 return f14();
679 case 15:
680 return f15();
681 case 16:
682 return f16();
683 case 17:
684 return f17();
685 case 18:
686 return f18();
687 case 19:
688 return f19();
689 case 20:
690 return f20();
691 }
692 abort();
693 }
694
695 template <typename R, typename F0, typename F1, typename F2, typename F3,
696 typename F4, typename F5, typename F6, typename F7, typename F8,
697 typename F9, typename F10, typename F11, typename F12, typename F13,
698 typename F14, typename F15, typename F16, typename F17, typename F18,
699 typename F19, typename F20, typename F21>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6,F7 f7,F8 f8,F9 f9,F10 f10,F11 f11,F12 f12,F13 f13,F14 f14,F15 f15,F16 f16,F17 f17,F18 f18,F19 f19,F20 f20,F21 f21)700 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
701 F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
702 F16 f16, F17 f17, F18 f18, F19 f19, F20 f20, F21 f21) {
703 switch (idx) {
704 case 0:
705 return f0();
706 case 1:
707 return f1();
708 case 2:
709 return f2();
710 case 3:
711 return f3();
712 case 4:
713 return f4();
714 case 5:
715 return f5();
716 case 6:
717 return f6();
718 case 7:
719 return f7();
720 case 8:
721 return f8();
722 case 9:
723 return f9();
724 case 10:
725 return f10();
726 case 11:
727 return f11();
728 case 12:
729 return f12();
730 case 13:
731 return f13();
732 case 14:
733 return f14();
734 case 15:
735 return f15();
736 case 16:
737 return f16();
738 case 17:
739 return f17();
740 case 18:
741 return f18();
742 case 19:
743 return f19();
744 case 20:
745 return f20();
746 case 21:
747 return f21();
748 }
749 abort();
750 }
751
752 template <typename R, typename F0, typename F1, typename F2, typename F3,
753 typename F4, typename F5, typename F6, typename F7, typename F8,
754 typename F9, typename F10, typename F11, typename F12, typename F13,
755 typename F14, typename F15, typename F16, typename F17, typename F18,
756 typename F19, typename F20, typename F21, typename F22>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6,F7 f7,F8 f8,F9 f9,F10 f10,F11 f11,F12 f12,F13 f13,F14 f14,F15 f15,F16 f16,F17 f17,F18 f18,F19 f19,F20 f20,F21 f21,F22 f22)757 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
758 F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
759 F16 f16, F17 f17, F18 f18, F19 f19, F20 f20, F21 f21, F22 f22) {
760 switch (idx) {
761 case 0:
762 return f0();
763 case 1:
764 return f1();
765 case 2:
766 return f2();
767 case 3:
768 return f3();
769 case 4:
770 return f4();
771 case 5:
772 return f5();
773 case 6:
774 return f6();
775 case 7:
776 return f7();
777 case 8:
778 return f8();
779 case 9:
780 return f9();
781 case 10:
782 return f10();
783 case 11:
784 return f11();
785 case 12:
786 return f12();
787 case 13:
788 return f13();
789 case 14:
790 return f14();
791 case 15:
792 return f15();
793 case 16:
794 return f16();
795 case 17:
796 return f17();
797 case 18:
798 return f18();
799 case 19:
800 return f19();
801 case 20:
802 return f20();
803 case 21:
804 return f21();
805 case 22:
806 return f22();
807 }
808 abort();
809 }
810
811 template <typename R, typename F0, typename F1, typename F2, typename F3,
812 typename F4, typename F5, typename F6, typename F7, typename F8,
813 typename F9, typename F10, typename F11, typename F12, typename F13,
814 typename F14, typename F15, typename F16, typename F17, typename F18,
815 typename F19, typename F20, typename F21, typename F22, typename F23>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6,F7 f7,F8 f8,F9 f9,F10 f10,F11 f11,F12 f12,F13 f13,F14 f14,F15 f15,F16 f16,F17 f17,F18 f18,F19 f19,F20 f20,F21 f21,F22 f22,F23 f23)816 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
817 F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
818 F16 f16, F17 f17, F18 f18, F19 f19, F20 f20, F21 f21, F22 f22,
819 F23 f23) {
820 switch (idx) {
821 case 0:
822 return f0();
823 case 1:
824 return f1();
825 case 2:
826 return f2();
827 case 3:
828 return f3();
829 case 4:
830 return f4();
831 case 5:
832 return f5();
833 case 6:
834 return f6();
835 case 7:
836 return f7();
837 case 8:
838 return f8();
839 case 9:
840 return f9();
841 case 10:
842 return f10();
843 case 11:
844 return f11();
845 case 12:
846 return f12();
847 case 13:
848 return f13();
849 case 14:
850 return f14();
851 case 15:
852 return f15();
853 case 16:
854 return f16();
855 case 17:
856 return f17();
857 case 18:
858 return f18();
859 case 19:
860 return f19();
861 case 20:
862 return f20();
863 case 21:
864 return f21();
865 case 22:
866 return f22();
867 case 23:
868 return f23();
869 }
870 abort();
871 }
872
873 template <typename R, typename F0, typename F1, typename F2, typename F3,
874 typename F4, typename F5, typename F6, typename F7, typename F8,
875 typename F9, typename F10, typename F11, typename F12, typename F13,
876 typename F14, typename F15, typename F16, typename F17, typename F18,
877 typename F19, typename F20, typename F21, typename F22, typename F23,
878 typename F24>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6,F7 f7,F8 f8,F9 f9,F10 f10,F11 f11,F12 f12,F13 f13,F14 f14,F15 f15,F16 f16,F17 f17,F18 f18,F19 f19,F20 f20,F21 f21,F22 f22,F23 f23,F24 f24)879 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
880 F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
881 F16 f16, F17 f17, F18 f18, F19 f19, F20 f20, F21 f21, F22 f22, F23 f23,
882 F24 f24) {
883 switch (idx) {
884 case 0:
885 return f0();
886 case 1:
887 return f1();
888 case 2:
889 return f2();
890 case 3:
891 return f3();
892 case 4:
893 return f4();
894 case 5:
895 return f5();
896 case 6:
897 return f6();
898 case 7:
899 return f7();
900 case 8:
901 return f8();
902 case 9:
903 return f9();
904 case 10:
905 return f10();
906 case 11:
907 return f11();
908 case 12:
909 return f12();
910 case 13:
911 return f13();
912 case 14:
913 return f14();
914 case 15:
915 return f15();
916 case 16:
917 return f16();
918 case 17:
919 return f17();
920 case 18:
921 return f18();
922 case 19:
923 return f19();
924 case 20:
925 return f20();
926 case 21:
927 return f21();
928 case 22:
929 return f22();
930 case 23:
931 return f23();
932 case 24:
933 return f24();
934 }
935 abort();
936 }
937
938 template <typename R, typename F0, typename F1, typename F2, typename F3,
939 typename F4, typename F5, typename F6, typename F7, typename F8,
940 typename F9, typename F10, typename F11, typename F12, typename F13,
941 typename F14, typename F15, typename F16, typename F17, typename F18,
942 typename F19, typename F20, typename F21, typename F22, typename F23,
943 typename F24, typename F25>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6,F7 f7,F8 f8,F9 f9,F10 f10,F11 f11,F12 f12,F13 f13,F14 f14,F15 f15,F16 f16,F17 f17,F18 f18,F19 f19,F20 f20,F21 f21,F22 f22,F23 f23,F24 f24,F25 f25)944 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
945 F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
946 F16 f16, F17 f17, F18 f18, F19 f19, F20 f20, F21 f21, F22 f22, F23 f23,
947 F24 f24, F25 f25) {
948 switch (idx) {
949 case 0:
950 return f0();
951 case 1:
952 return f1();
953 case 2:
954 return f2();
955 case 3:
956 return f3();
957 case 4:
958 return f4();
959 case 5:
960 return f5();
961 case 6:
962 return f6();
963 case 7:
964 return f7();
965 case 8:
966 return f8();
967 case 9:
968 return f9();
969 case 10:
970 return f10();
971 case 11:
972 return f11();
973 case 12:
974 return f12();
975 case 13:
976 return f13();
977 case 14:
978 return f14();
979 case 15:
980 return f15();
981 case 16:
982 return f16();
983 case 17:
984 return f17();
985 case 18:
986 return f18();
987 case 19:
988 return f19();
989 case 20:
990 return f20();
991 case 21:
992 return f21();
993 case 22:
994 return f22();
995 case 23:
996 return f23();
997 case 24:
998 return f24();
999 case 25:
1000 return f25();
1001 }
1002 abort();
1003 }
1004
1005 template <typename R, typename F0, typename F1, typename F2, typename F3,
1006 typename F4, typename F5, typename F6, typename F7, typename F8,
1007 typename F9, typename F10, typename F11, typename F12, typename F13,
1008 typename F14, typename F15, typename F16, typename F17, typename F18,
1009 typename F19, typename F20, typename F21, typename F22, typename F23,
1010 typename F24, typename F25, typename F26>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6,F7 f7,F8 f8,F9 f9,F10 f10,F11 f11,F12 f12,F13 f13,F14 f14,F15 f15,F16 f16,F17 f17,F18 f18,F19 f19,F20 f20,F21 f21,F22 f22,F23 f23,F24 f24,F25 f25,F26 f26)1011 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
1012 F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
1013 F16 f16, F17 f17, F18 f18, F19 f19, F20 f20, F21 f21, F22 f22, F23 f23,
1014 F24 f24, F25 f25, F26 f26) {
1015 switch (idx) {
1016 case 0:
1017 return f0();
1018 case 1:
1019 return f1();
1020 case 2:
1021 return f2();
1022 case 3:
1023 return f3();
1024 case 4:
1025 return f4();
1026 case 5:
1027 return f5();
1028 case 6:
1029 return f6();
1030 case 7:
1031 return f7();
1032 case 8:
1033 return f8();
1034 case 9:
1035 return f9();
1036 case 10:
1037 return f10();
1038 case 11:
1039 return f11();
1040 case 12:
1041 return f12();
1042 case 13:
1043 return f13();
1044 case 14:
1045 return f14();
1046 case 15:
1047 return f15();
1048 case 16:
1049 return f16();
1050 case 17:
1051 return f17();
1052 case 18:
1053 return f18();
1054 case 19:
1055 return f19();
1056 case 20:
1057 return f20();
1058 case 21:
1059 return f21();
1060 case 22:
1061 return f22();
1062 case 23:
1063 return f23();
1064 case 24:
1065 return f24();
1066 case 25:
1067 return f25();
1068 case 26:
1069 return f26();
1070 }
1071 abort();
1072 }
1073
1074 template <typename R, typename F0, typename F1, typename F2, typename F3,
1075 typename F4, typename F5, typename F6, typename F7, typename F8,
1076 typename F9, typename F10, typename F11, typename F12, typename F13,
1077 typename F14, typename F15, typename F16, typename F17, typename F18,
1078 typename F19, typename F20, typename F21, typename F22, typename F23,
1079 typename F24, typename F25, typename F26, typename F27>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6,F7 f7,F8 f8,F9 f9,F10 f10,F11 f11,F12 f12,F13 f13,F14 f14,F15 f15,F16 f16,F17 f17,F18 f18,F19 f19,F20 f20,F21 f21,F22 f22,F23 f23,F24 f24,F25 f25,F26 f26,F27 f27)1080 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
1081 F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
1082 F16 f16, F17 f17, F18 f18, F19 f19, F20 f20, F21 f21, F22 f22, F23 f23,
1083 F24 f24, F25 f25, F26 f26, F27 f27) {
1084 switch (idx) {
1085 case 0:
1086 return f0();
1087 case 1:
1088 return f1();
1089 case 2:
1090 return f2();
1091 case 3:
1092 return f3();
1093 case 4:
1094 return f4();
1095 case 5:
1096 return f5();
1097 case 6:
1098 return f6();
1099 case 7:
1100 return f7();
1101 case 8:
1102 return f8();
1103 case 9:
1104 return f9();
1105 case 10:
1106 return f10();
1107 case 11:
1108 return f11();
1109 case 12:
1110 return f12();
1111 case 13:
1112 return f13();
1113 case 14:
1114 return f14();
1115 case 15:
1116 return f15();
1117 case 16:
1118 return f16();
1119 case 17:
1120 return f17();
1121 case 18:
1122 return f18();
1123 case 19:
1124 return f19();
1125 case 20:
1126 return f20();
1127 case 21:
1128 return f21();
1129 case 22:
1130 return f22();
1131 case 23:
1132 return f23();
1133 case 24:
1134 return f24();
1135 case 25:
1136 return f25();
1137 case 26:
1138 return f26();
1139 case 27:
1140 return f27();
1141 }
1142 abort();
1143 }
1144
1145 template <typename R, typename F0, typename F1, typename F2, typename F3,
1146 typename F4, typename F5, typename F6, typename F7, typename F8,
1147 typename F9, typename F10, typename F11, typename F12, typename F13,
1148 typename F14, typename F15, typename F16, typename F17, typename F18,
1149 typename F19, typename F20, typename F21, typename F22, typename F23,
1150 typename F24, typename F25, typename F26, typename F27, typename F28>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6,F7 f7,F8 f8,F9 f9,F10 f10,F11 f11,F12 f12,F13 f13,F14 f14,F15 f15,F16 f16,F17 f17,F18 f18,F19 f19,F20 f20,F21 f21,F22 f22,F23 f23,F24 f24,F25 f25,F26 f26,F27 f27,F28 f28)1151 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
1152 F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
1153 F16 f16, F17 f17, F18 f18, F19 f19, F20 f20, F21 f21, F22 f22, F23 f23,
1154 F24 f24, F25 f25, F26 f26, F27 f27, F28 f28) {
1155 switch (idx) {
1156 case 0:
1157 return f0();
1158 case 1:
1159 return f1();
1160 case 2:
1161 return f2();
1162 case 3:
1163 return f3();
1164 case 4:
1165 return f4();
1166 case 5:
1167 return f5();
1168 case 6:
1169 return f6();
1170 case 7:
1171 return f7();
1172 case 8:
1173 return f8();
1174 case 9:
1175 return f9();
1176 case 10:
1177 return f10();
1178 case 11:
1179 return f11();
1180 case 12:
1181 return f12();
1182 case 13:
1183 return f13();
1184 case 14:
1185 return f14();
1186 case 15:
1187 return f15();
1188 case 16:
1189 return f16();
1190 case 17:
1191 return f17();
1192 case 18:
1193 return f18();
1194 case 19:
1195 return f19();
1196 case 20:
1197 return f20();
1198 case 21:
1199 return f21();
1200 case 22:
1201 return f22();
1202 case 23:
1203 return f23();
1204 case 24:
1205 return f24();
1206 case 25:
1207 return f25();
1208 case 26:
1209 return f26();
1210 case 27:
1211 return f27();
1212 case 28:
1213 return f28();
1214 }
1215 abort();
1216 }
1217
1218 template <typename R, typename F0, typename F1, typename F2, typename F3,
1219 typename F4, typename F5, typename F6, typename F7, typename F8,
1220 typename F9, typename F10, typename F11, typename F12, typename F13,
1221 typename F14, typename F15, typename F16, typename F17, typename F18,
1222 typename F19, typename F20, typename F21, typename F22, typename F23,
1223 typename F24, typename F25, typename F26, typename F27, typename F28,
1224 typename F29>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6,F7 f7,F8 f8,F9 f9,F10 f10,F11 f11,F12 f12,F13 f13,F14 f14,F15 f15,F16 f16,F17 f17,F18 f18,F19 f19,F20 f20,F21 f21,F22 f22,F23 f23,F24 f24,F25 f25,F26 f26,F27 f27,F28 f28,F29 f29)1225 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
1226 F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
1227 F16 f16, F17 f17, F18 f18, F19 f19, F20 f20, F21 f21, F22 f22, F23 f23,
1228 F24 f24, F25 f25, F26 f26, F27 f27, F28 f28, F29 f29) {
1229 switch (idx) {
1230 case 0:
1231 return f0();
1232 case 1:
1233 return f1();
1234 case 2:
1235 return f2();
1236 case 3:
1237 return f3();
1238 case 4:
1239 return f4();
1240 case 5:
1241 return f5();
1242 case 6:
1243 return f6();
1244 case 7:
1245 return f7();
1246 case 8:
1247 return f8();
1248 case 9:
1249 return f9();
1250 case 10:
1251 return f10();
1252 case 11:
1253 return f11();
1254 case 12:
1255 return f12();
1256 case 13:
1257 return f13();
1258 case 14:
1259 return f14();
1260 case 15:
1261 return f15();
1262 case 16:
1263 return f16();
1264 case 17:
1265 return f17();
1266 case 18:
1267 return f18();
1268 case 19:
1269 return f19();
1270 case 20:
1271 return f20();
1272 case 21:
1273 return f21();
1274 case 22:
1275 return f22();
1276 case 23:
1277 return f23();
1278 case 24:
1279 return f24();
1280 case 25:
1281 return f25();
1282 case 26:
1283 return f26();
1284 case 27:
1285 return f27();
1286 case 28:
1287 return f28();
1288 case 29:
1289 return f29();
1290 }
1291 abort();
1292 }
1293
1294 template <typename R, typename F0, typename F1, typename F2, typename F3,
1295 typename F4, typename F5, typename F6, typename F7, typename F8,
1296 typename F9, typename F10, typename F11, typename F12, typename F13,
1297 typename F14, typename F15, typename F16, typename F17, typename F18,
1298 typename F19, typename F20, typename F21, typename F22, typename F23,
1299 typename F24, typename F25, typename F26, typename F27, typename F28,
1300 typename F29, typename F30>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6,F7 f7,F8 f8,F9 f9,F10 f10,F11 f11,F12 f12,F13 f13,F14 f14,F15 f15,F16 f16,F17 f17,F18 f18,F19 f19,F20 f20,F21 f21,F22 f22,F23 f23,F24 f24,F25 f25,F26 f26,F27 f27,F28 f28,F29 f29,F30 f30)1301 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
1302 F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
1303 F16 f16, F17 f17, F18 f18, F19 f19, F20 f20, F21 f21, F22 f22, F23 f23,
1304 F24 f24, F25 f25, F26 f26, F27 f27, F28 f28, F29 f29, F30 f30) {
1305 switch (idx) {
1306 case 0:
1307 return f0();
1308 case 1:
1309 return f1();
1310 case 2:
1311 return f2();
1312 case 3:
1313 return f3();
1314 case 4:
1315 return f4();
1316 case 5:
1317 return f5();
1318 case 6:
1319 return f6();
1320 case 7:
1321 return f7();
1322 case 8:
1323 return f8();
1324 case 9:
1325 return f9();
1326 case 10:
1327 return f10();
1328 case 11:
1329 return f11();
1330 case 12:
1331 return f12();
1332 case 13:
1333 return f13();
1334 case 14:
1335 return f14();
1336 case 15:
1337 return f15();
1338 case 16:
1339 return f16();
1340 case 17:
1341 return f17();
1342 case 18:
1343 return f18();
1344 case 19:
1345 return f19();
1346 case 20:
1347 return f20();
1348 case 21:
1349 return f21();
1350 case 22:
1351 return f22();
1352 case 23:
1353 return f23();
1354 case 24:
1355 return f24();
1356 case 25:
1357 return f25();
1358 case 26:
1359 return f26();
1360 case 27:
1361 return f27();
1362 case 28:
1363 return f28();
1364 case 29:
1365 return f29();
1366 case 30:
1367 return f30();
1368 }
1369 abort();
1370 }
1371
1372 template <typename R, typename F0, typename F1, typename F2, typename F3,
1373 typename F4, typename F5, typename F6, typename F7, typename F8,
1374 typename F9, typename F10, typename F11, typename F12, typename F13,
1375 typename F14, typename F15, typename F16, typename F17, typename F18,
1376 typename F19, typename F20, typename F21, typename F22, typename F23,
1377 typename F24, typename F25, typename F26, typename F27, typename F28,
1378 typename F29, typename F30, typename F31>
Switch(char idx,F0 f0,F1 f1,F2 f2,F3 f3,F4 f4,F5 f5,F6 f6,F7 f7,F8 f8,F9 f9,F10 f10,F11 f11,F12 f12,F13 f13,F14 f14,F15 f15,F16 f16,F17 f17,F18 f18,F19 f19,F20 f20,F21 f21,F22 f22,F23 f23,F24 f24,F25 f25,F26 f26,F27 f27,F28 f28,F29 f29,F30 f30,F31 f31)1379 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
1380 F8 f8, F9 f9, F10 f10, F11 f11, F12 f12, F13 f13, F14 f14, F15 f15,
1381 F16 f16, F17 f17, F18 f18, F19 f19, F20 f20, F21 f21, F22 f22, F23 f23,
1382 F24 f24, F25 f25, F26 f26, F27 f27, F28 f28, F29 f29, F30 f30,
1383 F31 f31) {
1384 switch (idx) {
1385 case 0:
1386 return f0();
1387 case 1:
1388 return f1();
1389 case 2:
1390 return f2();
1391 case 3:
1392 return f3();
1393 case 4:
1394 return f4();
1395 case 5:
1396 return f5();
1397 case 6:
1398 return f6();
1399 case 7:
1400 return f7();
1401 case 8:
1402 return f8();
1403 case 9:
1404 return f9();
1405 case 10:
1406 return f10();
1407 case 11:
1408 return f11();
1409 case 12:
1410 return f12();
1411 case 13:
1412 return f13();
1413 case 14:
1414 return f14();
1415 case 15:
1416 return f15();
1417 case 16:
1418 return f16();
1419 case 17:
1420 return f17();
1421 case 18:
1422 return f18();
1423 case 19:
1424 return f19();
1425 case 20:
1426 return f20();
1427 case 21:
1428 return f21();
1429 case 22:
1430 return f22();
1431 case 23:
1432 return f23();
1433 case 24:
1434 return f24();
1435 case 25:
1436 return f25();
1437 case 26:
1438 return f26();
1439 case 27:
1440 return f27();
1441 case 28:
1442 return f28();
1443 case 29:
1444 return f29();
1445 case 30:
1446 return f30();
1447 case 31:
1448 return f31();
1449 }
1450 abort();
1451 }
1452
1453 } // namespace grpc_core
1454
1455 #endif // GRPC_SRC_CORE_LIB_PROMISE_DETAIL_SWITCH_H
1456