2 * Copyright 2021 gRPC authors.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
18 * Automatically generated by tools/codegen/core/gen_switch.py
21 #ifndef GRPC_CORE_LIB_PROMISE_DETAIL_SWITCH_H
22 #define GRPC_CORE_LIB_PROMISE_DETAIL_SWITCH_H
24 #include <grpc/impl/codegen/port_platform.h>
30 template <typename R, typename F0>
31 R Switch(char idx, F0 f0) {
39 template <typename R, typename F0, typename F1>
40 R Switch(char idx, F0 f0, F1 f1) {
50 template <typename R, typename F0, typename F1, typename F2>
51 R Switch(char idx, F0 f0, F1 f1, F2 f2) {
63 template <typename R, typename F0, typename F1, typename F2, typename F3>
64 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3) {
78 template <typename R, typename F0, typename F1, typename F2, typename F3,
80 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4) {
96 template <typename R, typename F0, typename F1, typename F2, typename F3,
97 typename F4, typename F5>
98 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5) {
116 template <typename R, typename F0, typename F1, typename F2, typename F3,
117 typename F4, typename F5, typename F6>
118 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6) {
138 template <typename R, typename F0, typename F1, typename F2, typename F3,
139 typename F4, typename F5, typename F6, typename F7>
140 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7) {
162 template <typename R, typename F0, typename F1, typename F2, typename F3,
163 typename F4, typename F5, typename F6, typename F7, typename F8>
164 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
189 template <typename R, typename F0, typename F1, typename F2, typename F3,
190 typename F4, typename F5, typename F6, typename F7, typename F8,
192 R Switch(char idx, F0 f0, F1 f1, F2 f2, F3 f3, F4 f4, F5 f5, F6 f6, F7 f7,
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>
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) {
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>
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) {
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>
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) {
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>
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) {
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,
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) {
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>
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) {
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>
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,
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>
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,
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>
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) {
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,
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) {
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>
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) {
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>
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) {
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>
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) {
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>
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,
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,
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,
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>
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,
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>
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) {
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>
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) {
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>
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) {
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,
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) {
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>
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) {
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>
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,
1453 } // namespace grpc_core
1455 #endif // GRPC_CORE_LIB_PROMISE_DETAIL_SWITCH_H