1#![no_std]
2
3#[macro_export]
90macro_rules! select {
91 ($($token:tt)*) => {
92 $crate::select_internal!($($token)*)
93 };
94
95 (default => $body:expr) => {};
97 (complete => $body:expr) => {};
98 ($pattern:pat = $future:expr $(, if $condition:expr)? => $body:expr) => {};
99}
100
101#[doc(hidden)]
102#[macro_export]
103macro_rules! select_internal {
104 (@list
134 ()
135 $count:tt
136 ()
137 $default:tt
138 $complete:tt
139 ; biased = $biased:expr
140 ) => {
141 $crate::select_internal!(@no-branch {
142 default: $default,
143 complete: $complete,
144 })
145 };
146 (@list
147 ()
148 $count:tt
149 $branches:tt
150 ()
151 ()
152 ; biased = $biased:expr
153 ) => {
154 $crate::select_internal!(
155 @poll
156 non_blocking = false,
157 when_completed = false,
158 count = $count,
159 branches = $branches,
160 default = unreachable!("not in unblocking mode"),
161 complete = panic!("all branches are disabled or completed and there is no `default` nor `complete`")
162 ; biased = $biased
163 )
164 };
165 (@list
166 ()
167 $count:tt
168 $branches:tt
169 ()
170 ($complete:tt)
171 ; biased = $biased:expr
172 ) => {
173 $crate::select_internal!(
174 @poll
175 non_blocking = false,
176 when_completed = true,
177 count = $count,
178 branches = $branches,
179 default = unreachable!("not in unblocking mode"),
180 complete = $complete
181 ; biased = $biased
182 )
183 };
184 (@list
185 ()
186 $count:tt
187 $branches:tt
188 ($default:tt)
189 ()
190 ; biased = $biased:expr
191 ) => {
192 $crate::select_internal!(
193 @poll
194 non_blocking = true,
195 when_completed = false,
196 count = $count,
197 branches = $branches,
198 default = $default,
199 complete = panic!("all branches are disabled or completed and there is no `default` nor `complete`")
200 ; biased = $biased
201 )
202 };
203 (@list
204 ()
205 $count:tt
206 $branches:tt
207 ($default:tt)
208 ($complete:tt)
209 ; biased = $biased:expr
210 ) => {
211 $crate::select_internal!(
212 @poll
213 non_blocking = true,
214 when_completed = true,
215 count = $count,
216 branches = $branches,
217 default = $default,
218 complete = $complete
219 ; biased = $biased
220 )
221 };
222
223 (@list
225 (complete => $body:expr $(,)?)
226 $count:tt
227 $branches:tt
228 $default:tt
229 ($complete:tt)
230 ; biased = $biased:expr
231 ) => {
232 compile_error!("`select!`: more than one `complete` clauses")
233 };
234 (@list
235 (complete => $body:expr, $($token:tt)*)
236 $count:tt
237 $branches:tt
238 $default:tt
239 ($complete:tt)
240 ; biased = $biased:expr
241 ) => {
242 compile_error!("`select!`: more than one `complete` clauses")
243 };
244 (@list
245 (complete => $body:expr)
246 $count:tt
247 $branches:tt
248 $default:tt
249 ()
250 ; biased = $biased:expr
251 ) => {
252 $crate::select_internal!(
253 @list
254 ()
255 $count
256 $branches:tt
257 $default
258 ($body)
259 ; biased = $biased
260 )
261 };
262 (@list
264 (complete => $body:block, $($token:tt)*)
265 $count:tt
266 $branches:tt
267 $default:tt
268 ()
269 ; biased = $biased:expr
270 ) => {
271 $crate::select_internal!(
272 @list
273 ($($token)*)
274 $count
275 $branches
276 $default
277 ($body)
278 ; biased = $biased
279 )
280 };
281 (@list
282 (complete => $body:block $($token:tt)*)
283 $count:tt
284 $branches:tt
285 $default:tt
286 ()
287 ; biased = $biased:expr
288 ) => {
289 $crate::select_internal!(
290 @list
291 ($($token)*)
292 $count
293 $branches
294 $default
295 ($body)
296 ; biased = $biased
297 )
298 };
299 (@list
300 (complete => $body:expr, $($token:tt)*)
301 $count:tt
302 $branches:tt
303 $default:tt
304 ()
305 ; biased = $biased:expr
306 ) => {
307 $crate::select_internal!(
308 @list
309 ($($token)*)
310 $count
311 $branches
312 $default
313 ($body)
314 ; biased = $biased
315 )
316 };
317 (@list
318 (complete => $($token:tt)*)
319 $count:tt
320 $branches:tt
321 $default:tt
322 $complete:tt
323 ; biased = $biased:expr
324 ) => {
325 $crate::select_internal!(@missing-comma "complete clause");
326 };
327
328 (@list
330 (default => $body:expr $(,)?)
331 $count:tt
332 $branches:tt
333 ($default:tt)
334 $complete:tt
335 ; biased = $biased:expr
336 ) => {
337 compile_error!("`select!`: more than one `default` clauses")
338 };
339 (@list
340 (default => $body:expr, $($token:tt)*)
341 $count:tt
342 $branches:tt
343 ($default:tt)
344 $complete:tt
345 ; biased = $biased:expr
346 ) => {
347 compile_error!("`select!`: more than one `default` clauses")
348 };
349 (@list
351 (default => $body:expr)
352 $count:tt
353 $branches:tt
354 ()
355 $complete:tt
356 ; biased = $biased:expr
357 ) => {
358 $crate::select_internal!(
359 @list
360 ()
361 $count
362 $branches
363 ($body)
364 $complete
365 ; biased = $biased
366 )
367 };
368 (@list
370 (default => $body:block, $($token:tt)*)
371 $count:tt
372 $branches:tt
373 ()
374 $complete:tt
375 ; biased = $biased:expr
376 ) => {
377 $crate::select_internal!(
378 @list
379 ($($token)*)
380 $count
381 $branches
382 ($body)
383 $complete
384 ; biased = $biased
385 )
386 };
387 (@list
388 (default => $body:block $($token:tt)*)
389 $count:tt
390 $branches:tt
391 ()
392 $complete:tt
393 ; biased = $biased:expr
394 ) => {
395 $crate::select_internal!(
396 @list
397 ($($token)*)
398 $count
399 $branches
400 ($body)
401 $complete
402 ; biased = $biased
403 )
404 };
405 (@list
406 (default => $body:expr, $($token:tt)*)
407 $count:tt
408 $branches:tt
409 ()
410 $complete:tt
411 ; biased = $biased:expr
412 ) => {
413 $crate::select_internal!(
414 @list
415 ($($token)*)
416 $count
417 $branches
418 ($body)
419 $complete
420 ; biased = $biased
421 )
422 };
423 (@list
424 (default => $($token:tt)*)
425 $count:tt
426 $branches:tt
427 $default:tt
428 $complete:tt
429 ; biased = $biased:expr
430 ) => {
431 $crate::select_internal!(@missing-comma "default clause");
432 };
433
434 (@list
435 ()
436 ($pattern:pat = $($token:tt)*)
437 $count:tt
438 $branches:tt
439 $default:tt
440 $complete:tt
441 ; biased = $biased:expr
442 ) => {
443 $crate::select_internal!(
444 @list
445 ($pattern)
446 ($pattern = $($token)*)
447 $count
448 $branches
449 $default
450 $complete
451 ; biased = $biased
452 )
453 };
454
455 (@list
457 (ref mut $ident:ident@$subpattern:pat = $future:expr, if $condition:expr => $body:block, $($token:tt)*)
458 ($($count:tt)*)
459 ($($branch:tt)*)
460 $default:tt
461 $complete:tt
462 ; biased = $biased:expr
463 ) => {
464 $crate::select_internal!(
465 @list
466 ($($token)*)
467 ($($count)* _)
468 ($($branch)* [($($count)*), $subpattern] ref mut $ident@$subpattern = $future, if $condition => $body,)
469 $default
470 $complete
471 ; biased = $biased
472 )
473 };
474 (@list
475 (ref $ident:ident@$subpattern:pat = $future:expr, if $condition:expr => $body:block, $($token:tt)*)
476 ($($count:tt)*)
477 ($($branch:tt)*)
478 $default:tt
479 $complete:tt
480 ; biased = $biased:expr
481 ) => {
482 $crate::select_internal!(
483 @list
484 ($($token)*)
485 ($($count)* _)
486 ($($branch)* [($($count)*), $subpattern] ref $ident@$subpattern = $future, if $condition => $body,)
487 $default
488 $complete
489 ; biased = $biased
490 )
491 };
492 (@list
493 (mut $ident:ident@$subpattern:pat = $future:expr, if $condition:expr => $body:block, $($token:tt)*)
494 ($($count:tt)*)
495 ($($branch:tt)*)
496 $default:tt
497 $complete:tt
498 ; biased = $biased:expr
499 ) => {
500 $crate::select_internal!(
501 @list
502 ($($token)*)
503 ($($count)* _)
504 ($($branch)* [($($count)*), $subpattern] mut $ident@$subpattern = $future, if $condition => $body,)
505 $default
506 $complete
507 ; biased = $biased
508 )
509 };
510 (@list
511 ($pattern:pat = $future:expr, if $condition:expr => $body:block, $($token:tt)*)
512 ($($count:tt)*)
513 ($($branch:tt)*)
514 $default:tt
515 $complete:tt
516 ; biased = $biased:expr
517 ) => {
518 $crate::select_internal!(
519 @list
520 ($($token)*)
521 ($($count)* _)
522 ($($branch)* [($($count)*), $pattern] $pattern = $future, if $condition => $body,)
523 $default
524 $complete
525 ; biased = $biased
526 )
527 };
528 (@list
529 (ref mut $ident:ident@$subpattern:pat = $future:expr => $body:block, $($token:tt)*)
530 ($($count:tt)*)
531 ($($branch:tt)*)
532 $default:tt
533 $complete:tt
534 ; biased = $biased:expr
535 ) => {
536 $crate::select_internal!(
537 @list
538 ($($token)*)
539 ($($count)* _)
540 ($($branch)* [($($count)*), $subpattern] ref mut $ident@$subpattern = $future, if true => $body,)
541 $default
542 $complete
543 ; biased = $biased
544 )
545 };
546 (@list
547 (ref $ident:ident@$subpattern:pat = $future:expr => $body:block, $($token:tt)*)
548 ($($count:tt)*)
549 ($($branch:tt)*)
550 $default:tt
551 $complete:tt
552 ; biased = $biased:expr
553 ) => {
554 $crate::select_internal!(
555 @list
556 ($($token)*)
557 ($($count)* _)
558 ($($branch)* [($($count)*), $subpattern] ref $ident@$subpattern = $future, if true => $body,)
559 $default
560 $complete
561 ; biased = $biased
562 )
563 };
564 (@list
565 (mut $ident:ident@$subpattern:pat = $future:expr => $body:block, $($token:tt)*)
566 ($($count:tt)*)
567 ($($branch:tt)*)
568 $default:tt
569 $complete:tt
570 ; biased = $biased:expr
571 ) => {
572 $crate::select_internal!(
573 @list
574 ($($token)*)
575 ($($count)* _)
576 ($($branch)* [($($count)*), $subpattern] mut $ident@$subpattern = $future, if true => $body,)
577 $default
578 $complete
579 ; biased = $biased
580 )
581 };
582 (@list
583 ($pattern:pat = $future:expr => $body:block, $($token:tt)*)
584 ($($count:tt)*)
585 ($($branch:tt)*)
586 $default:tt
587 $complete:tt
588 ; biased = $biased:expr
589 ) => {
590 $crate::select_internal!(
591 @list
592 ($($token)*)
593 ($($count)* _)
594 ($($branch)* [($($count)*), $pattern] $pattern = $future, if true => $body,)
595 $default
596 $complete
597 ; biased = $biased
598 )
599 };
600
601 (@list
603 (ref mut $ident:ident@$subpattern:pat = $future:expr, if $condition:expr => $body:block $($token:tt)*)
604 ($($count:tt)*)
605 ($($branch:tt)*)
606 $default:tt
607 $complete:tt
608 ; biased = $biased:expr
609 ) => {
610 $crate::select_internal!(
611 @list
612 ($($token)*)
613 ($($count)* _)
614 ($($branch)* [($($count)*), $subpattern] ref mut $ident@$subpattern = $future, if $condition => $body,)
615 $default
616 $complete
617 ; biased = $biased
618 )
619 };
620 (@list
621 (ref $ident:ident@$subpattern:pat = $future:expr, if $condition:expr => $body:block $($token:tt)*)
622 ($($count:tt)*)
623 ($($branch:tt)*)
624 $default:tt
625 $complete:tt
626 ; biased = $biased:expr
627 ) => {
628 $crate::select_internal!(
629 @list
630 ($($token)*)
631 ($($count)* _)
632 ($($branch)* [($($count)*), $subpattern] ref $ident@$subpattern = $future, if $condition => $body,)
633 $default
634 $complete
635 ; biased = $biased
636 )
637 };
638 (@list
639 (mut $ident:ident@$subpattern:pat = $future:expr, if $condition:expr => $body:block $($token:tt)*)
640 ($($count:tt)*)
641 ($($branch:tt)*)
642 $default:tt
643 $complete:tt
644 ; biased = $biased:expr
645 ) => {
646 $crate::select_internal!(
647 @list
648 ($($token)*)
649 ($($count)* _)
650 ($($branch)* [($($count)*), $subpattern] mut $ident@$subpattern = $future, if $condition => $body,)
651 $default
652 $complete
653 ; biased = $biased
654 )
655 };
656 (@list
657 ($pattern:pat = $future:expr, if $condition:expr => $body:block $($token:tt)*)
658 ($($count:tt)*)
659 ($($branch:tt)*)
660 $default:tt
661 $complete:tt
662 ; biased = $biased:expr
663 ) => {
664 $crate::select_internal!(
665 @list
666 ($($token)*)
667 ($($count)* _)
668 ($($branch)* [($($count)*), $pattern] $pattern = $future, if $condition => $body,)
669 $default
670 $complete
671 ; biased = $biased
672 )
673 };
674 (@list
675 (ref mut $ident:ident@$subpattern:pat = $future:expr => $body:block $($token:tt)*)
676 ($($count:tt)*)
677 ($($branch:tt)*)
678 $default:tt
679 $complete:tt
680 ; biased = $biased:expr
681 ) => {
682 $crate::select_internal!(
683 @list
684 ($($token)*)
685 ($($count)* _)
686 ($($branch)* [($($count)*), $subpattern] ref mut $ident@$subpattern = $future, if true => $body,)
687 $default
688 $complete
689 ; biased = $biased
690 )
691 };
692 (@list
693 (ref $ident:ident@$subpattern:pat = $future:expr => $body:block $($token:tt)*)
694 ($($count:tt)*)
695 ($($branch:tt)*)
696 $default:tt
697 $complete:tt
698 ; biased = $biased:expr
699 ) => {
700 $crate::select_internal!(
701 @list
702 ($($token)*)
703 ($($count)* _)
704 ($($branch)* [($($count)*), $subpattern] ref $ident@$subpattern = $future, if true => $body,)
705 $default
706 $complete
707 ; biased = $biased
708 )
709 };
710 (@list
711 (mut $ident:ident@$subpattern:pat = $future:expr => $body:block $($token:tt)*)
712 ($($count:tt)*)
713 ($($branch:tt)*)
714 $default:tt
715 $complete:tt
716 ; biased = $biased:expr
717 ) => {
718 $crate::select_internal!(
719 @list
720 ($($token)*)
721 ($($count)* _)
722 ($($branch)* [($($count)*), $subpattern] mut $ident@$subpattern = $future, if true => $body,)
723 $default
724 $complete
725 ; biased = $biased
726 )
727 };
728 (@list
729 ($pattern:pat = $future:expr => $body:block $($token:tt)*)
730 ($($count:tt)*)
731 ($($branch:tt)*)
732 $default:tt
733 $complete:tt
734 ; biased = $biased:expr
735 ) => {
736 $crate::select_internal!(
737 @list
738 ($($token)*)
739 ($($count)* _)
740 ($($branch)* [($($count)*), $pattern] $pattern = $future, if true => $body,)
741 $default
742 $complete
743 ; biased = $biased
744 )
745 };
746
747 (@list
749 (ref mut $ident:ident@$subpattern:pat = $future:expr, if $condition:expr => $body:expr)
750 ($($count:tt)*)
751 ($($branch:tt)*)
752 $default:tt
753 $complete:tt
754 ; biased = $biased:expr
755 ) => {
756 $crate::select_internal!(
757 @list
758 ()
759 ($($count)* _)
760 ($($branch)* [($($count)*), $subpattern] ref mut $ident@$subpattern = $future, if $condition => $body,)
761 $default
762 $complete
763 ; biased = $biased
764 )
765 };
766 (@list
767 (ref $ident:ident@$subpattern:pat = $future:expr, if $condition:expr => $body:expr)
768 ($($count:tt)*)
769 ($($branch:tt)*)
770 $default:tt
771 $complete:tt
772 ; biased = $biased:expr
773 ) => {
774 $crate::select_internal!(
775 @list
776 ()
777 ($($count)* _)
778 ($($branch)* [($($count)*), $subpattern] ref $ident@$subpattern = $future, if $condition => $body,)
779 $default
780 $complete
781 ; biased = $biased
782 )
783 };
784 (@list
785 (mut $ident:ident@$subpattern:pat = $future:expr, if $condition:expr => $body:expr)
786 ($($count:tt)*)
787 ($($branch:tt)*)
788 $default:tt
789 $complete:tt
790 ; biased = $biased:expr
791 ) => {
792 $crate::select_internal!(
793 @list
794 ()
795 ($($count)* _)
796 ($($branch)* [($($count)*), $subpattern] mut $ident@$subpattern = $future, if $condition => $body,)
797 $default
798 $complete
799 ; biased = $biased
800 )
801 };
802 (@list
803 ($pattern:pat = $future:expr, if $condition:expr => $body:expr)
804 ($($count:tt)*)
805 ($($branch:tt)*)
806 $default:tt
807 $complete:tt
808 ; biased = $biased:expr
809 ) => {
810 $crate::select_internal!(
811 @list
812 ()
813 ($($count)* _)
814 ($($branch)* [($($count)*), $pattern] $pattern = $future, if $condition => $body,)
815 $default
816 $complete
817 ; biased = $biased
818 )
819 };
820 (@list
821 (ref mut $ident:ident@$subpattern:pat = $future:expr => $body:expr)
822 ($($count:tt)*)
823 ($($branch:tt)*)
824 $default:tt
825 $complete:tt
826 ; biased = $biased:expr
827 ) => {
828 $crate::select_internal!(
829 @list
830 ()
831 ($($count)* _)
832 ($($branch)* [($($count)*), $subpattern] ref mut $ident@$subpattern = $future, if true => $body,)
833 $default
834 $complete
835 ; biased = $biased
836 )
837 };
838 (@list
839 (ref $ident:ident@$subpattern:pat = $future:expr => $body:expr)
840 ($($count:tt)*)
841 ($($branch:tt)*)
842 $default:tt
843 $complete:tt
844 ; biased = $biased:expr
845 ) => {
846 $crate::select_internal!(
847 @list
848 ()
849 ($($count)* _)
850 ($($branch)* [($($count)*), $subpattern] ref $ident@$subpattern = $future, if true => $body,)
851 $default
852 $complete
853 ; biased = $biased
854 )
855 };
856 (@list
857 (mut $ident:ident@$subpattern:pat = $future:expr => $body:expr)
858 ($($count:tt)*)
859 ($($branch:tt)*)
860 $default:tt
861 $complete:tt
862 ; biased = $biased:expr
863 ) => {
864 $crate::select_internal!(
865 @list
866 ()
867 ($($count)* _)
868 ($($branch)* [($($count)*), $subpattern] mut $ident@$subpattern = $future, if true => $body,)
869 $default
870 $complete
871 ; biased = $biased
872 )
873 };
874 (@list
875 ($pattern:pat = $future:expr => $body:expr)
876 ($($count:tt)*)
877 ($($branch:tt)*)
878 $default:tt
879 $complete:tt
880 ; biased = $biased:expr
881 ) => {
882 $crate::select_internal!(
883 @list
884 ()
885 ($($count)* _)
886 ($($branch)* [($($count)*), $pattern] $pattern = $future, if true => $body,)
887 $default
888 $complete
889 ; biased = $biased
890 )
891 };
892
893
894 (@list
896 (ref mut $ident:ident@$subpattern:pat = $future:expr, if $condition:expr => $body:expr, $($token:tt)*)
897 ($($count:tt)*)
898 ($($branch:tt)*)
899 $default:tt
900 $complete:tt
901 ; biased = $biased:expr
902 ) => {
903 $crate::select_internal!(
904 @list
905 ($($token)*)
906 ($($count)* _)
907 ($($branch)* [($($count)*), $subpattern] ref mut $ident@$subpattern = $future, if $condition => $body,)
908 $default
909 $complete
910 ; biased = $biased
911 )
912 };
913 (@list
914 (ref $ident:ident@$subpattern:pat = $future:expr, if $condition:expr => $body:expr, $($token:tt)*)
915 ($($count:tt)*)
916 ($($branch:tt)*)
917 $default:tt
918 $complete:tt
919 ; biased = $biased:expr
920 ) => {
921 $crate::select_internal!(
922 @list
923 ($($token)*)
924 ($($count)* _)
925 ($($branch)* [($($count)*), $subpattern] ref $ident@$subpattern = $future, if $condition => $body,)
926 $default
927 $complete
928 ; biased = $biased
929 )
930 };
931 (@list
932 (mut $ident:ident@$subpattern:pat = $future:expr, if $condition:expr => $body:expr, $($token:tt)*)
933 ($($count:tt)*)
934 ($($branch:tt)*)
935 $default:tt
936 $complete:tt
937 ; biased = $biased:expr
938 ) => {
939 $crate::select_internal!(
940 @list
941 ($($token)*)
942 ($($count)* _)
943 ($($branch)* [($($count)*), $subpattern] mut $ident@$subpattern = $future, if $condition => $body,)
944 $default
945 $complete
946 ; biased = $biased
947 )
948 };
949 (@list
950 ($pattern:pat = $future:expr, if $condition:expr => $body:expr, $($token:tt)*)
951 ($($count:tt)*)
952 ($($branch:tt)*)
953 $default:tt
954 $complete:tt
955 ; biased = $biased:expr
956 ) => {
957 $crate::select_internal!(
958 @list
959 ($($token)*)
960 ($($count)* _)
961 ($($branch)* [($($count)*), $pattern] $pattern = $future, if $condition => $body,)
962 $default
963 $complete
964 ; biased = $biased
965 )
966 };
967 (@list
968 (ref mut $ident:ident@$subpattern:pat = $future:expr => $body:expr, $($token:tt)*)
969 ($($count:tt)*)
970 ($($branch:tt)*)
971 $default:tt
972 $complete:tt
973 ; biased = $biased:expr
974 ) => {
975 $crate::select_internal!(
976 @list
977 ($($token)*)
978 ($($count)* _)
979 ($($branch)* [($($count)*), $subpattern] ref mut $ident@$subpattern = $future, if true => $body,)
980 $default
981 $complete
982 ; biased = $biased
983 )
984 };
985 (@list
986 (ref $ident:ident@$subpattern:pat = $future:expr => $body:expr, $($token:tt)*)
987 ($($count:tt)*)
988 ($($branch:tt)*)
989 $default:tt
990 $complete:tt
991 ; biased = $biased:expr
992 ) => {
993 $crate::select_internal!(
994 @list
995 ($($token)*)
996 ($($count)* _)
997 ($($branch)* [($($count)*), $subpattern] ref $ident@$subpattern = $future, if true => $body,)
998 $default
999 $complete
1000 ; biased = $biased
1001 )
1002 };
1003 (@list
1004 (mut $ident:ident@$subpattern:pat = $future:expr => $body:expr, $($token:tt)*)
1005 ($($count:tt)*)
1006 ($($branch:tt)*)
1007 $default:tt
1008 $complete:tt
1009 ; biased = $biased:expr
1010 ) => {
1011 $crate::select_internal!(
1012 @list
1013 ($($token)*)
1014 ($($count)* _)
1015 ($($branch)* [($($count)*), $subpattern] mut $ident@$subpattern = $future, if true => $body,)
1016 $default
1017 $complete
1018 ; biased = $biased
1019 )
1020 };
1021 (@list
1022 ($pattern:pat = $future:expr => $body:expr, $($token:tt)*)
1023 ($($count:tt)*)
1024 ($($branch:tt)*)
1025 $default:tt
1026 $complete:tt
1027 ; biased = $biased:expr
1028 ) => {
1029 $crate::select_internal!(
1030 @list
1031 ($($token)*)
1032 ($($count)* _)
1033 ($($branch)* [($($count)*), $pattern] $pattern = $future, if true => $body,)
1034 $default
1035 $complete
1036 ; biased = $biased
1037 )
1038 };
1039
1040 (@list
1042 ($pattern:pat = $future:expr $(, if condition:expr)? => $($token:tt)*)
1043 $count:tt
1044 $branches:tt
1045 $default:tt
1046 $complete:tt
1047 ; biased = $biased:expr
1048 ) => {
1049 $crate::select_internal!(@missing-comma concat!("clause \"", stringify!($pattern = $future), "\""));
1050 };
1051
1052
1053 (@list
1054 $tokens:tt
1055 $count:tt
1056 $branches:tt
1057 $default:tt
1058 $complete:tt
1059 ; biased = $biased:expr
1060 ) => {
1061 compile_error!(concat!("fail to list select: ", stringify!($tokens)))
1062 };
1063
1064 (@none $_:tt) => { ::core::option::Option::None };
1065
1066 (@poll
1068 non_blocking = $non_blocking:expr,
1069 when_completed = $when_completed:expr,
1070 count = $count:tt,
1071 branches = ($([$index:tt, $capture:pat] $pattern:pat = $future:expr, if $condition:expr => $evaluation:expr,)+),
1072 default = $default:expr,
1073 complete = $complete:expr
1074 ; biased = $biased:expr
1075 ) => {{
1076 const BRANCHES: usize = $crate::select_internal!(@count $count);
1077 const COMPLETED: u64 = if BRANCHES == 64 { u64::MAX } else { (1u64 << BRANCHES) - 1 };
1078 $crate::select_internal!(@output-type $count);
1079 let mut output = {
1080 let mut __select_futures = ( $($crate::select_internal!(@none $index) ,)* );
1082 let mut __select_futures = &mut __select_futures;
1083 $(
1084 if $condition {
1085 $crate::select_internal!(@assign $index, __select_futures, Some($future));
1086 }
1087 )*
1088 let start = if $biased {
1089 0
1090 } else {
1091 let stack_addr = 0usize;
1092 (&stack_addr as *const usize as usize) >> 3
1093 };
1094 ::core::future::poll_fn(|cx| {
1095 let mut completions = 0;
1096 for i in 0..BRANCHES {
1097 let branch = (start + i) % BRANCHES;
1098 match branch {
1099 $(
1100 $crate::select_internal!(@count $index) => {
1101 let Some(future) = &mut $crate::select_internal!(@access $index, __select_futures) else {
1102 completions |= 1 << $crate::select_internal!(@count $index);
1103 continue;
1104 };
1105 #[allow(unused_unsafe)]
1106 let future = unsafe { ::core::pin::Pin::new_unchecked(future) };
1107 let mut output = match ::core::future::Future::poll(future, cx) {
1108 ::core::task::Poll::Ready(output) => output,
1109 ::core::task::Poll::Pending => continue,
1110 };
1111 $crate::select_internal!(@assign $index, __select_futures, ::core::option::Option::None);
1112 completions |= 1 << $crate::select_internal!(@count $index);
1113 #[allow(unreachable_patterns)]
1114 #[allow(unused_variables)]
1115 match &mut output {
1116 $capture => {},
1117 _ => continue,
1118 };
1119 return ::core::task::Poll::Ready($crate::select_internal!(@wrap $index, output));
1120 }
1121 )*
1122 _ => unreachable!("select! encounter mismatch branch in polling"),
1123 }
1124 }
1125 if completions == COMPLETED && ($when_completed || !$non_blocking) {
1126 return ::core::task::Poll::Ready(__SelectOutput::Completed);
1127 }
1128 if $non_blocking {
1129 return ::core::task::Poll::Ready(__SelectOutput::WouldBlock);
1130 }
1131 ::core::task::Poll::Pending
1132 }).await
1133 };
1134 match output {
1135 $(
1136 $crate::select_internal!(@unwrap $index, $pattern) => $evaluation,
1137 )*
1138 __SelectOutput::Completed => $complete,
1139 __SelectOutput::WouldBlock => $default,
1140 #[allow(unreachable_patterns)]
1141 _ => unreachable!("select! fail to pattern match"),
1142 }
1143 }};
1144
1145 (@missing-comma $msg:expr) => {
1146 compile_error!(concat!("`,` is required for expression in not last branch, non in ", $msg))
1147 };
1148
1149 (@too-many-branches) => {
1150 compile_error!("too many branches, at most 64")
1151 };
1152
1153 (@no-branch {
1154 default: (),
1155 complete: (),
1156 }) => {
1157 compile_error!("`select!`: no branch")
1158 };
1159
1160 (@no-branch {
1161 default: (),
1162 complete: ($complete:tt),
1163 }) => {
1164 compile_error!("`select!`: no branch except `complete`")
1165 };
1166
1167 (@no-branch {
1168 default: ($default:tt),
1169 complete: (),
1170 }) => {
1171 compile_error!("`select!`: no branch except `default`")
1172 };
1173
1174 (@no-branch {
1175 default: ($default:tt),
1176 complete: ($complete:tt),
1177 }) => {
1178 compile_error!("no branch except `default` and `complete`")
1179 };
1180
1181 (@count ()) => { 0 };
1182 (@count (_)) => { 1 };
1183 (@count (_ _)) => { 2 };
1184 (@count (_ _ _)) => { 3 };
1185 (@count (_ _ _ _)) => { 4 };
1186 (@count (_ _ _ _ _)) => { 5 };
1187 (@count (_ _ _ _ _ _)) => { 6 };
1188 (@count (_ _ _ _ _ _ _)) => { 7 };
1189 (@count (_ _ _ _ _ _ _ _)) => { 8 };
1190 (@count (_ _ _ _ _ _ _ _ _)) => { 9 };
1191 (@count (_ _ _ _ _ _ _ _ _ _)) => { 10 };
1192 (@count (_ _ _ _ _ _ _ _ _ _ _)) => { 11 };
1193 (@count (_ _ _ _ _ _ _ _ _ _ _ _)) => { 12 };
1194 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _)) => { 13 };
1195 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 14 };
1196 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 15 };
1197 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 16 };
1198 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 17 };
1199 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 18 };
1200 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 19 };
1201 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 20 };
1202 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 21 };
1203 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 22 };
1204 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 23 };
1205 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 24 };
1206 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 25 };
1207 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 26 };
1208 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 27 };
1209 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 28 };
1210 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 29 };
1211 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 30 };
1212 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 31 };
1213 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 32 };
1214 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 33 };
1215 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 34 };
1216 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 35 };
1217 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 36 };
1218 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 37 };
1219 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 38 };
1220 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 39 };
1221 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 40 };
1222 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 41 };
1223 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 42 };
1224 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 43 };
1225 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 44 };
1226 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 45 };
1227 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 46 };
1228 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 47 };
1229 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 48 };
1230 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 49 };
1231 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 50 };
1232 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 51 };
1233 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 52 };
1234 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 53 };
1235 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 54 };
1236 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 55 };
1237 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 56 };
1238 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 57 };
1239 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 58 };
1240 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 59 };
1241 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 60 };
1242 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 61 };
1243 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 62 };
1244 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 63 };
1245 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => { 64 };
1246 (@count (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ $($_:pat)*)) => {
1247 $crate::select_internal!(@too-many-branches)
1248 };
1249
1250 (@access (), $futures:ident) => { $futures.0 };
1251 (@access (_), $futures:ident) => { $futures.1 };
1252 (@access (_ _), $futures:ident) => { $futures.2 };
1253 (@access (_ _ _), $futures:ident) => { $futures.3 };
1254 (@access (_ _ _ _), $futures:ident) => { $futures.4 };
1255 (@access (_ _ _ _ _), $futures:ident) => { $futures.5 };
1256 (@access (_ _ _ _ _ _), $futures:ident) => { $futures.6 };
1257 (@access (_ _ _ _ _ _ _), $futures:ident) => { $futures.7 };
1258 (@access (_ _ _ _ _ _ _ _), $futures:ident) => { $futures.8 };
1259 (@access (_ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.9 };
1260 (@access (_ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.10 };
1261 (@access (_ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.11 };
1262 (@access (_ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.12 };
1263 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.13 };
1264 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.14 };
1265 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.15 };
1266 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.16 };
1267 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.17 };
1268 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.18 };
1269 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.19 };
1270 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.20 };
1271 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.21 };
1272 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.22 };
1273 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.23 };
1274 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.24 };
1275 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.25 };
1276 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.26 };
1277 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.27 };
1278 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.28 };
1279 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.29 };
1280 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.30 };
1281 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.31 };
1282 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.32 };
1283 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.33 };
1284 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.34 };
1285 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.35 };
1286 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.36 };
1287 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.37 };
1288 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.38 };
1289 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.39 };
1290 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.40 };
1291 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.41 };
1292 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.42 };
1293 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.43 };
1294 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.44 };
1295 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.45 };
1296 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.46 };
1297 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.47 };
1298 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.48 };
1299 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.49 };
1300 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.50 };
1301 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.51 };
1302 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.52 };
1303 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.53 };
1304 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.54 };
1305 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.55 };
1306 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.56 };
1307 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.57 };
1308 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.58 };
1309 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.59 };
1310 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.60 };
1311 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.61 };
1312 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.62 };
1313 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident) => { $futures.63 };
1314 (@access (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ $($_:pat)*) $($_2:tt)*) => {
1315 $crate::select_internal!(@too-many-branches)
1316 };
1317
1318 (@assign (), $futures:ident, $future:expr) => { $futures.0 = $future; };
1319 (@assign (_), $futures:ident, $future:expr) => { $futures.1 = $future; };
1320 (@assign (_ _), $futures:ident, $future:expr) => { $futures.2 = $future; };
1321 (@assign (_ _ _), $futures:ident, $future:expr) => { $futures.3 = $future; };
1322 (@assign (_ _ _ _), $futures:ident, $future:expr) => { $futures.4 = $future; };
1323 (@assign (_ _ _ _ _), $futures:ident, $future:expr) => { $futures.5 = $future; };
1324 (@assign (_ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.6 = $future; };
1325 (@assign (_ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.7 = $future; };
1326 (@assign (_ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.8 = $future; };
1327 (@assign (_ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.9 = $future; };
1328 (@assign (_ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.10 = $future; };
1329 (@assign (_ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.11 = $future; };
1330 (@assign (_ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.12 = $future; };
1331 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.13 = $future; };
1332 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.14 = $future; };
1333 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.15 = $future; };
1334 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.16 = $future; };
1335 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.17 = $future; };
1336 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.18 = $future; };
1337 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.19 = $future; };
1338 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.20 = $future; };
1339 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.21 = $future; };
1340 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.22 = $future; };
1341 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.23 = $future; };
1342 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.24 = $future; };
1343 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.25 = $future; };
1344 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.26 = $future; };
1345 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.27 = $future; };
1346 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.28 = $future; };
1347 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.29 = $future; };
1348 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.30 = $future; };
1349 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.31 = $future; };
1350 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.32 = $future; };
1351 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.33 = $future; };
1352 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.34 = $future; };
1353 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.35 = $future; };
1354 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.36 = $future; };
1355 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.37 = $future; };
1356 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.38 = $future; };
1357 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.39 = $future; };
1358 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.40 = $future; };
1359 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.41 = $future; };
1360 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.42 = $future; };
1361 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.43 = $future; };
1362 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.44 = $future; };
1363 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.45 = $future; };
1364 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.46 = $future; };
1365 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.47 = $future; };
1366 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.48 = $future; };
1367 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.49 = $future; };
1368 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.50 = $future; };
1369 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.51 = $future; };
1370 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.52 = $future; };
1371 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.53 = $future; };
1372 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.54 = $future; };
1373 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.55 = $future; };
1374 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.56 = $future; };
1375 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.57 = $future; };
1376 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.58 = $future; };
1377 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.59 = $future; };
1378 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.60 = $future; };
1379 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.61 = $future; };
1380 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.62 = $future; };
1381 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $futures:ident, $future:expr) => { $futures.63 = $future; };
1382 (@assign (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ $($_:pat)*) $($_2:tt)*) => {
1383 $crate::select_internal!(@too-many-branches)
1384 };
1385
1386 (@wrap (), $name:ident) => { __SelectOutput::_0($name) };
1387 (@wrap (_), $name:ident) => { __SelectOutput::_1($name) };
1388 (@wrap (_ _), $name:ident) => { __SelectOutput::_2($name) };
1389 (@wrap (_ _ _), $name:ident) => { __SelectOutput::_3($name) };
1390 (@wrap (_ _ _ _), $name:ident) => { __SelectOutput::_4($name) };
1391 (@wrap (_ _ _ _ _), $name:ident) => { __SelectOutput::_5($name) };
1392 (@wrap (_ _ _ _ _ _), $name:ident) => { __SelectOutput::_6($name) };
1393 (@wrap (_ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_7($name) };
1394 (@wrap (_ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_8($name) };
1395 (@wrap (_ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_9($name) };
1396 (@wrap (_ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_10($name) };
1397 (@wrap (_ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_11($name) };
1398 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_12($name) };
1399 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_13($name) };
1400 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_14($name) };
1401 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_15($name) };
1402 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_16($name) };
1403 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_17($name) };
1404 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_18($name) };
1405 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_19($name) };
1406 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_20($name) };
1407 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_21($name) };
1408 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_22($name) };
1409 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_23($name) };
1410 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_24($name) };
1411 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_25($name) };
1412 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_26($name) };
1413 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_27($name) };
1414 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_28($name) };
1415 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_29($name) };
1416 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_30($name) };
1417 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_31($name) };
1418 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_32($name) };
1419 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_33($name) };
1420 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_34($name) };
1421 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_35($name) };
1422 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_36($name) };
1423 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_37($name) };
1424 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_38($name) };
1425 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_39($name) };
1426 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_40($name) };
1427 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_41($name) };
1428 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_42($name) };
1429 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_43($name) };
1430 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_44($name) };
1431 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_45($name) };
1432 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_46($name) };
1433 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_47($name) };
1434 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_48($name) };
1435 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_49($name) };
1436 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_50($name) };
1437 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_51($name) };
1438 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_52($name) };
1439 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_53($name) };
1440 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_54($name) };
1441 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_55($name) };
1442 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_56($name) };
1443 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_57($name) };
1444 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_58($name) };
1445 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_59($name) };
1446 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_60($name) };
1447 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_61($name) };
1448 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_62($name) };
1449 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $name:ident) => { __SelectOutput::_63($name) };
1450 (@wrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ $($_:pat)*) $($_2:tt)*) => {
1451 $crate::select_internal!(@too-many-branches)
1452 };
1453
1454 (@unwrap (), $pattern:pat) => { __SelectOutput::_0($pattern) };
1455 (@unwrap (_), $pattern:pat) => { __SelectOutput::_1($pattern) };
1456 (@unwrap (_ _), $pattern:pat) => { __SelectOutput::_2($pattern) };
1457 (@unwrap (_ _ _), $pattern:pat) => { __SelectOutput::_3($pattern) };
1458 (@unwrap (_ _ _ _), $pattern:pat) => { __SelectOutput::_4($pattern) };
1459 (@unwrap (_ _ _ _ _), $pattern:pat) => { __SelectOutput::_5($pattern) };
1460 (@unwrap (_ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_6($pattern) };
1461 (@unwrap (_ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_7($pattern) };
1462 (@unwrap (_ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_8($pattern) };
1463 (@unwrap (_ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_9($pattern) };
1464 (@unwrap (_ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_10($pattern) };
1465 (@unwrap (_ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_11($pattern) };
1466 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_12($pattern) };
1467 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_13($pattern) };
1468 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_14($pattern) };
1469 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_15($pattern) };
1470 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_16($pattern) };
1471 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_17($pattern) };
1472 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_18($pattern) };
1473 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_19($pattern) };
1474 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_20($pattern) };
1475 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_21($pattern) };
1476 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_22($pattern) };
1477 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_23($pattern) };
1478 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_24($pattern) };
1479 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_25($pattern) };
1480 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_26($pattern) };
1481 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_27($pattern) };
1482 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_28($pattern) };
1483 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_29($pattern) };
1484 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_30($pattern) };
1485 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_31($pattern) };
1486 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_32($pattern) };
1487 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_33($pattern) };
1488 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_34($pattern) };
1489 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_35($pattern) };
1490 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_36($pattern) };
1491 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_37($pattern) };
1492 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_38($pattern) };
1493 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_39($pattern) };
1494 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_40($pattern) };
1495 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_41($pattern) };
1496 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_42($pattern) };
1497 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_43($pattern) };
1498 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_44($pattern) };
1499 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_45($pattern) };
1500 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_46($pattern) };
1501 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_47($pattern) };
1502 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_48($pattern) };
1503 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_49($pattern) };
1504 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_50($pattern) };
1505 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_51($pattern) };
1506 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_52($pattern) };
1507 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_53($pattern) };
1508 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_54($pattern) };
1509 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_55($pattern) };
1510 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_56($pattern) };
1511 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_57($pattern) };
1512 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_58($pattern) };
1513 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_59($pattern) };
1514 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_60($pattern) };
1515 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_61($pattern) };
1516 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_62($pattern) };
1517 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _), $pattern:pat) => { __SelectOutput::_63($pattern) };
1518 (@unwrap (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ $($_:pat)*) $($_2:tt)*) => {
1519 $crate::select_internal!(@too-many-branches)
1520 };
1521
1522 (@output-type (_)) => {
1523 enum __SelectOutput<_0> {
1524 Completed,
1525 WouldBlock,
1526 _0(_0),
1527 }
1528 };
1529 (@output-type (_ _)) => {
1530 enum __SelectOutput<_0, _1> {
1531 Completed,
1532 WouldBlock,
1533 _0(_0),
1534 _1(_1),
1535 }
1536 };
1537 (@output-type (_ _ _)) => {
1538 enum __SelectOutput<_0, _1, _2> {
1539 Completed,
1540 WouldBlock,
1541 _0(_0),
1542 _1(_1),
1543 _2(_2),
1544 }
1545 };
1546 (@output-type (_ _ _ _)) => {
1547 enum __SelectOutput<T0, T1, T2, T3> {
1548 Completed,
1549 WouldBlock,
1550 _0(T0),
1551 _1(T1),
1552 _2(T2),
1553 _3(T3),
1554 }
1555 };
1556 (@output-type (_ _ _ _ _)) => {
1557 enum __SelectOutput<T0, T1, T2, T3, T4> {
1558 Completed,
1559 WouldBlock,
1560 _0(T0),
1561 _1(T1),
1562 _2(T2),
1563 _3(T3),
1564 _4(T4),
1565 }
1566 };
1567 (@output-type (_ _ _ _ _ _)) => {
1568 enum __SelectOutput<T0, T1, T2, T3, T4, T5> {
1569 Completed,
1570 WouldBlock,
1571 _0(T0),
1572 _1(T1),
1573 _2(T2),
1574 _3(T3),
1575 _4(T4),
1576 _5(T5),
1577 }
1578 };
1579 (@output-type (_ _ _ _ _ _ _)) => {
1580 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6> {
1581 Completed,
1582 WouldBlock,
1583 _0(T0),
1584 _1(T1),
1585 _2(T2),
1586 _3(T3),
1587 _4(T4),
1588 _5(T5),
1589 _6(T6),
1590 }
1591 };
1592 (@output-type (_ _ _ _ _ _ _ _)) => {
1593 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7> {
1594 Completed,
1595 WouldBlock,
1596 _0(T0),
1597 _1(T1),
1598 _2(T2),
1599 _3(T3),
1600 _4(T4),
1601 _5(T5),
1602 _6(T6),
1603 _7(T7),
1604 }
1605 };
1606 (@output-type (_ _ _ _ _ _ _ _ _)) => {
1607 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8> {
1608 Completed,
1609 WouldBlock,
1610 _0(T0),
1611 _1(T1),
1612 _2(T2),
1613 _3(T3),
1614 _4(T4),
1615 _5(T5),
1616 _6(T6),
1617 _7(T7),
1618 _8(T8),
1619 }
1620 };
1621 (@output-type (_ _ _ _ _ _ _ _ _ _)) => {
1622 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> {
1623 Completed,
1624 WouldBlock,
1625 _0(T0),
1626 _1(T1),
1627 _2(T2),
1628 _3(T3),
1629 _4(T4),
1630 _5(T5),
1631 _6(T6),
1632 _7(T7),
1633 _8(T8),
1634 _9(T9),
1635 }
1636 };
1637 (@output-type (_ _ _ _ _ _ _ _ _ _ _)) => {
1638 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> {
1639 Completed,
1640 WouldBlock,
1641 _0(T0),
1642 _1(T1),
1643 _2(T2),
1644 _3(T3),
1645 _4(T4),
1646 _5(T5),
1647 _6(T6),
1648 _7(T7),
1649 _8(T8),
1650 _9(T9),
1651 _10(T10),
1652 }
1653 };
1654 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _)) => {
1655 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> {
1656 Completed,
1657 WouldBlock,
1658 _0(T0),
1659 _1(T1),
1660 _2(T2),
1661 _3(T3),
1662 _4(T4),
1663 _5(T5),
1664 _6(T6),
1665 _7(T7),
1666 _8(T8),
1667 _9(T9),
1668 _10(T10),
1669 _11(T11),
1670 }
1671 };
1672 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _)) => {
1673 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> {
1674 Completed,
1675 WouldBlock,
1676 _0(T0),
1677 _1(T1),
1678 _2(T2),
1679 _3(T3),
1680 _4(T4),
1681 _5(T5),
1682 _6(T6),
1683 _7(T7),
1684 _8(T8),
1685 _9(T9),
1686 _10(T10),
1687 _11(T11),
1688 _12(T12),
1689 }
1690 };
1691 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
1692 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> {
1693 Completed,
1694 WouldBlock,
1695 _0(T0),
1696 _1(T1),
1697 _2(T2),
1698 _3(T3),
1699 _4(T4),
1700 _5(T5),
1701 _6(T6),
1702 _7(T7),
1703 _8(T8),
1704 _9(T9),
1705 _10(T10),
1706 _11(T11),
1707 _12(T12),
1708 _13(T13),
1709 }
1710 };
1711 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
1712 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> {
1713 Completed,
1714 WouldBlock,
1715 _0(T0),
1716 _1(T1),
1717 _2(T2),
1718 _3(T3),
1719 _4(T4),
1720 _5(T5),
1721 _6(T6),
1722 _7(T7),
1723 _8(T8),
1724 _9(T9),
1725 _10(T10),
1726 _11(T11),
1727 _12(T12),
1728 _13(T13),
1729 _14(T14),
1730 }
1731 };
1732 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
1733 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> {
1734 Completed,
1735 WouldBlock,
1736 _0(T0),
1737 _1(T1),
1738 _2(T2),
1739 _3(T3),
1740 _4(T4),
1741 _5(T5),
1742 _6(T6),
1743 _7(T7),
1744 _8(T8),
1745 _9(T9),
1746 _10(T10),
1747 _11(T11),
1748 _12(T12),
1749 _13(T13),
1750 _14(T14),
1751 _15(T15),
1752 }
1753 };
1754 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
1755 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> {
1756 Completed,
1757 WouldBlock,
1758 _0(T0),
1759 _1(T1),
1760 _2(T2),
1761 _3(T3),
1762 _4(T4),
1763 _5(T5),
1764 _6(T6),
1765 _7(T7),
1766 _8(T8),
1767 _9(T9),
1768 _10(T10),
1769 _11(T11),
1770 _12(T12),
1771 _13(T13),
1772 _14(T14),
1773 _15(T15),
1774 _16(T16),
1775 }
1776 };
1777 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
1778 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> {
1779 Completed,
1780 WouldBlock,
1781 _0(T0),
1782 _1(T1),
1783 _2(T2),
1784 _3(T3),
1785 _4(T4),
1786 _5(T5),
1787 _6(T6),
1788 _7(T7),
1789 _8(T8),
1790 _9(T9),
1791 _10(T10),
1792 _11(T11),
1793 _12(T12),
1794 _13(T13),
1795 _14(T14),
1796 _15(T15),
1797 _16(T16),
1798 _17(T17),
1799 }
1800 };
1801 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
1802 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> {
1803 Completed,
1804 WouldBlock,
1805 _0(T0),
1806 _1(T1),
1807 _2(T2),
1808 _3(T3),
1809 _4(T4),
1810 _5(T5),
1811 _6(T6),
1812 _7(T7),
1813 _8(T8),
1814 _9(T9),
1815 _10(T10),
1816 _11(T11),
1817 _12(T12),
1818 _13(T13),
1819 _14(T14),
1820 _15(T15),
1821 _16(T16),
1822 _17(T17),
1823 _18(T18),
1824 }
1825 };
1826 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
1827 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> {
1828 Completed,
1829 WouldBlock,
1830 _0(T0),
1831 _1(T1),
1832 _2(T2),
1833 _3(T3),
1834 _4(T4),
1835 _5(T5),
1836 _6(T6),
1837 _7(T7),
1838 _8(T8),
1839 _9(T9),
1840 _10(T10),
1841 _11(T11),
1842 _12(T12),
1843 _13(T13),
1844 _14(T14),
1845 _15(T15),
1846 _16(T16),
1847 _17(T17),
1848 _18(T18),
1849 _19(T19),
1850 }
1851 };
1852 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
1853 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> {
1854 Completed,
1855 WouldBlock,
1856 _0(T0),
1857 _1(T1),
1858 _2(T2),
1859 _3(T3),
1860 _4(T4),
1861 _5(T5),
1862 _6(T6),
1863 _7(T7),
1864 _8(T8),
1865 _9(T9),
1866 _10(T10),
1867 _11(T11),
1868 _12(T12),
1869 _13(T13),
1870 _14(T14),
1871 _15(T15),
1872 _16(T16),
1873 _17(T17),
1874 _18(T18),
1875 _19(T19),
1876 _20(T20),
1877 }
1878 };
1879 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
1880 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> {
1881 Completed,
1882 WouldBlock,
1883 _0(T0),
1884 _1(T1),
1885 _2(T2),
1886 _3(T3),
1887 _4(T4),
1888 _5(T5),
1889 _6(T6),
1890 _7(T7),
1891 _8(T8),
1892 _9(T9),
1893 _10(T10),
1894 _11(T11),
1895 _12(T12),
1896 _13(T13),
1897 _14(T14),
1898 _15(T15),
1899 _16(T16),
1900 _17(T17),
1901 _18(T18),
1902 _19(T19),
1903 _20(T20),
1904 _21(T21),
1905 }
1906 };
1907 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
1908 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> {
1909 Completed,
1910 WouldBlock,
1911 _0(T0),
1912 _1(T1),
1913 _2(T2),
1914 _3(T3),
1915 _4(T4),
1916 _5(T5),
1917 _6(T6),
1918 _7(T7),
1919 _8(T8),
1920 _9(T9),
1921 _10(T10),
1922 _11(T11),
1923 _12(T12),
1924 _13(T13),
1925 _14(T14),
1926 _15(T15),
1927 _16(T16),
1928 _17(T17),
1929 _18(T18),
1930 _19(T19),
1931 _20(T20),
1932 _21(T21),
1933 _22(T22),
1934 }
1935 };
1936 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
1937 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> {
1938 Completed,
1939 WouldBlock,
1940 _0(T0),
1941 _1(T1),
1942 _2(T2),
1943 _3(T3),
1944 _4(T4),
1945 _5(T5),
1946 _6(T6),
1947 _7(T7),
1948 _8(T8),
1949 _9(T9),
1950 _10(T10),
1951 _11(T11),
1952 _12(T12),
1953 _13(T13),
1954 _14(T14),
1955 _15(T15),
1956 _16(T16),
1957 _17(T17),
1958 _18(T18),
1959 _19(T19),
1960 _20(T20),
1961 _21(T21),
1962 _22(T22),
1963 _23(T23),
1964 }
1965 };
1966 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
1967 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> {
1968 Completed,
1969 WouldBlock,
1970 _0(T0),
1971 _1(T1),
1972 _2(T2),
1973 _3(T3),
1974 _4(T4),
1975 _5(T5),
1976 _6(T6),
1977 _7(T7),
1978 _8(T8),
1979 _9(T9),
1980 _10(T10),
1981 _11(T11),
1982 _12(T12),
1983 _13(T13),
1984 _14(T14),
1985 _15(T15),
1986 _16(T16),
1987 _17(T17),
1988 _18(T18),
1989 _19(T19),
1990 _20(T20),
1991 _21(T21),
1992 _22(T22),
1993 _23(T23),
1994 _24(T24),
1995 }
1996 };
1997 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
1998 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> {
1999 Completed,
2000 WouldBlock,
2001 _0(T0),
2002 _1(T1),
2003 _2(T2),
2004 _3(T3),
2005 _4(T4),
2006 _5(T5),
2007 _6(T6),
2008 _7(T7),
2009 _8(T8),
2010 _9(T9),
2011 _10(T10),
2012 _11(T11),
2013 _12(T12),
2014 _13(T13),
2015 _14(T14),
2016 _15(T15),
2017 _16(T16),
2018 _17(T17),
2019 _18(T18),
2020 _19(T19),
2021 _20(T20),
2022 _21(T21),
2023 _22(T22),
2024 _23(T23),
2025 _24(T24),
2026 _25(T25),
2027 }
2028 };
2029 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
2030 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> {
2031 Completed,
2032 WouldBlock,
2033 _0(T0),
2034 _1(T1),
2035 _2(T2),
2036 _3(T3),
2037 _4(T4),
2038 _5(T5),
2039 _6(T6),
2040 _7(T7),
2041 _8(T8),
2042 _9(T9),
2043 _10(T10),
2044 _11(T11),
2045 _12(T12),
2046 _13(T13),
2047 _14(T14),
2048 _15(T15),
2049 _16(T16),
2050 _17(T17),
2051 _18(T18),
2052 _19(T19),
2053 _20(T20),
2054 _21(T21),
2055 _22(T22),
2056 _23(T23),
2057 _24(T24),
2058 _25(T25),
2059 _26(T26),
2060 }
2061 };
2062 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
2063 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27> {
2064 Completed,
2065 WouldBlock,
2066 _0(T0),
2067 _1(T1),
2068 _2(T2),
2069 _3(T3),
2070 _4(T4),
2071 _5(T5),
2072 _6(T6),
2073 _7(T7),
2074 _8(T8),
2075 _9(T9),
2076 _10(T10),
2077 _11(T11),
2078 _12(T12),
2079 _13(T13),
2080 _14(T14),
2081 _15(T15),
2082 _16(T16),
2083 _17(T17),
2084 _18(T18),
2085 _19(T19),
2086 _20(T20),
2087 _21(T21),
2088 _22(T22),
2089 _23(T23),
2090 _24(T24),
2091 _25(T25),
2092 _26(T26),
2093 _27(T27),
2094 }
2095 };
2096 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
2097 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28> {
2098 Completed,
2099 WouldBlock,
2100 _0(T0),
2101 _1(T1),
2102 _2(T2),
2103 _3(T3),
2104 _4(T4),
2105 _5(T5),
2106 _6(T6),
2107 _7(T7),
2108 _8(T8),
2109 _9(T9),
2110 _10(T10),
2111 _11(T11),
2112 _12(T12),
2113 _13(T13),
2114 _14(T14),
2115 _15(T15),
2116 _16(T16),
2117 _17(T17),
2118 _18(T18),
2119 _19(T19),
2120 _20(T20),
2121 _21(T21),
2122 _22(T22),
2123 _23(T23),
2124 _24(T24),
2125 _25(T25),
2126 _26(T26),
2127 _27(T27),
2128 _28(T28),
2129 }
2130 };
2131 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
2132 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29> {
2133 Completed,
2134 WouldBlock,
2135 _0(T0),
2136 _1(T1),
2137 _2(T2),
2138 _3(T3),
2139 _4(T4),
2140 _5(T5),
2141 _6(T6),
2142 _7(T7),
2143 _8(T8),
2144 _9(T9),
2145 _10(T10),
2146 _11(T11),
2147 _12(T12),
2148 _13(T13),
2149 _14(T14),
2150 _15(T15),
2151 _16(T16),
2152 _17(T17),
2153 _18(T18),
2154 _19(T19),
2155 _20(T20),
2156 _21(T21),
2157 _22(T22),
2158 _23(T23),
2159 _24(T24),
2160 _25(T25),
2161 _26(T26),
2162 _27(T27),
2163 _28(T28),
2164 _29(T29),
2165 }
2166 };
2167 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
2168 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30> {
2169 Completed,
2170 WouldBlock,
2171 _0(T0),
2172 _1(T1),
2173 _2(T2),
2174 _3(T3),
2175 _4(T4),
2176 _5(T5),
2177 _6(T6),
2178 _7(T7),
2179 _8(T8),
2180 _9(T9),
2181 _10(T10),
2182 _11(T11),
2183 _12(T12),
2184 _13(T13),
2185 _14(T14),
2186 _15(T15),
2187 _16(T16),
2188 _17(T17),
2189 _18(T18),
2190 _19(T19),
2191 _20(T20),
2192 _21(T21),
2193 _22(T22),
2194 _23(T23),
2195 _24(T24),
2196 _25(T25),
2197 _26(T26),
2198 _27(T27),
2199 _28(T28),
2200 _29(T29),
2201 _30(T30),
2202 }
2203 };
2204 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
2205 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31> {
2206 Completed,
2207 WouldBlock,
2208 _0(T0),
2209 _1(T1),
2210 _2(T2),
2211 _3(T3),
2212 _4(T4),
2213 _5(T5),
2214 _6(T6),
2215 _7(T7),
2216 _8(T8),
2217 _9(T9),
2218 _10(T10),
2219 _11(T11),
2220 _12(T12),
2221 _13(T13),
2222 _14(T14),
2223 _15(T15),
2224 _16(T16),
2225 _17(T17),
2226 _18(T18),
2227 _19(T19),
2228 _20(T20),
2229 _21(T21),
2230 _22(T22),
2231 _23(T23),
2232 _24(T24),
2233 _25(T25),
2234 _26(T26),
2235 _27(T27),
2236 _28(T28),
2237 _29(T29),
2238 _30(T30),
2239 _31(T31),
2240 }
2241 };
2242 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
2243 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> {
2244 Completed,
2245 WouldBlock,
2246 _0(T0),
2247 _1(T1),
2248 _2(T2),
2249 _3(T3),
2250 _4(T4),
2251 _5(T5),
2252 _6(T6),
2253 _7(T7),
2254 _8(T8),
2255 _9(T9),
2256 _10(T10),
2257 _11(T11),
2258 _12(T12),
2259 _13(T13),
2260 _14(T14),
2261 _15(T15),
2262 _16(T16),
2263 _17(T17),
2264 _18(T18),
2265 _19(T19),
2266 _20(T20),
2267 _21(T21),
2268 _22(T22),
2269 _23(T23),
2270 _24(T24),
2271 _25(T25),
2272 _26(T26),
2273 _27(T27),
2274 _28(T28),
2275 _29(T29),
2276 _30(T30),
2277 _31(T31),
2278 _32(T32),
2279 }
2280 };
2281 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
2282 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33> {
2283 Completed,
2284 WouldBlock,
2285 _0(T0),
2286 _1(T1),
2287 _2(T2),
2288 _3(T3),
2289 _4(T4),
2290 _5(T5),
2291 _6(T6),
2292 _7(T7),
2293 _8(T8),
2294 _9(T9),
2295 _10(T10),
2296 _11(T11),
2297 _12(T12),
2298 _13(T13),
2299 _14(T14),
2300 _15(T15),
2301 _16(T16),
2302 _17(T17),
2303 _18(T18),
2304 _19(T19),
2305 _20(T20),
2306 _21(T21),
2307 _22(T22),
2308 _23(T23),
2309 _24(T24),
2310 _25(T25),
2311 _26(T26),
2312 _27(T27),
2313 _28(T28),
2314 _29(T29),
2315 _30(T30),
2316 _31(T31),
2317 _32(T32),
2318 _33(T33),
2319 }
2320 };
2321 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
2322 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34> {
2323 Completed,
2324 WouldBlock,
2325 _0(T0),
2326 _1(T1),
2327 _2(T2),
2328 _3(T3),
2329 _4(T4),
2330 _5(T5),
2331 _6(T6),
2332 _7(T7),
2333 _8(T8),
2334 _9(T9),
2335 _10(T10),
2336 _11(T11),
2337 _12(T12),
2338 _13(T13),
2339 _14(T14),
2340 _15(T15),
2341 _16(T16),
2342 _17(T17),
2343 _18(T18),
2344 _19(T19),
2345 _20(T20),
2346 _21(T21),
2347 _22(T22),
2348 _23(T23),
2349 _24(T24),
2350 _25(T25),
2351 _26(T26),
2352 _27(T27),
2353 _28(T28),
2354 _29(T29),
2355 _30(T30),
2356 _31(T31),
2357 _32(T32),
2358 _33(T33),
2359 _34(T34),
2360 }
2361 };
2362 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
2363 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35> {
2364 Completed,
2365 WouldBlock,
2366 _0(T0),
2367 _1(T1),
2368 _2(T2),
2369 _3(T3),
2370 _4(T4),
2371 _5(T5),
2372 _6(T6),
2373 _7(T7),
2374 _8(T8),
2375 _9(T9),
2376 _10(T10),
2377 _11(T11),
2378 _12(T12),
2379 _13(T13),
2380 _14(T14),
2381 _15(T15),
2382 _16(T16),
2383 _17(T17),
2384 _18(T18),
2385 _19(T19),
2386 _20(T20),
2387 _21(T21),
2388 _22(T22),
2389 _23(T23),
2390 _24(T24),
2391 _25(T25),
2392 _26(T26),
2393 _27(T27),
2394 _28(T28),
2395 _29(T29),
2396 _30(T30),
2397 _31(T31),
2398 _32(T32),
2399 _33(T33),
2400 _34(T34),
2401 _35(T35),
2402 }
2403 };
2404 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
2405 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36> {
2406 Completed,
2407 WouldBlock,
2408 _0(T0),
2409 _1(T1),
2410 _2(T2),
2411 _3(T3),
2412 _4(T4),
2413 _5(T5),
2414 _6(T6),
2415 _7(T7),
2416 _8(T8),
2417 _9(T9),
2418 _10(T10),
2419 _11(T11),
2420 _12(T12),
2421 _13(T13),
2422 _14(T14),
2423 _15(T15),
2424 _16(T16),
2425 _17(T17),
2426 _18(T18),
2427 _19(T19),
2428 _20(T20),
2429 _21(T21),
2430 _22(T22),
2431 _23(T23),
2432 _24(T24),
2433 _25(T25),
2434 _26(T26),
2435 _27(T27),
2436 _28(T28),
2437 _29(T29),
2438 _30(T30),
2439 _31(T31),
2440 _32(T32),
2441 _33(T33),
2442 _34(T34),
2443 _35(T35),
2444 _36(T36),
2445 }
2446 };
2447 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
2448 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37> {
2449 Completed,
2450 WouldBlock,
2451 _0(T0),
2452 _1(T1),
2453 _2(T2),
2454 _3(T3),
2455 _4(T4),
2456 _5(T5),
2457 _6(T6),
2458 _7(T7),
2459 _8(T8),
2460 _9(T9),
2461 _10(T10),
2462 _11(T11),
2463 _12(T12),
2464 _13(T13),
2465 _14(T14),
2466 _15(T15),
2467 _16(T16),
2468 _17(T17),
2469 _18(T18),
2470 _19(T19),
2471 _20(T20),
2472 _21(T21),
2473 _22(T22),
2474 _23(T23),
2475 _24(T24),
2476 _25(T25),
2477 _26(T26),
2478 _27(T27),
2479 _28(T28),
2480 _29(T29),
2481 _30(T30),
2482 _31(T31),
2483 _32(T32),
2484 _33(T33),
2485 _34(T34),
2486 _35(T35),
2487 _36(T36),
2488 _37(T37),
2489 }
2490 };
2491 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
2492 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> {
2493 Completed,
2494 WouldBlock,
2495 _0(T0),
2496 _1(T1),
2497 _2(T2),
2498 _3(T3),
2499 _4(T4),
2500 _5(T5),
2501 _6(T6),
2502 _7(T7),
2503 _8(T8),
2504 _9(T9),
2505 _10(T10),
2506 _11(T11),
2507 _12(T12),
2508 _13(T13),
2509 _14(T14),
2510 _15(T15),
2511 _16(T16),
2512 _17(T17),
2513 _18(T18),
2514 _19(T19),
2515 _20(T20),
2516 _21(T21),
2517 _22(T22),
2518 _23(T23),
2519 _24(T24),
2520 _25(T25),
2521 _26(T26),
2522 _27(T27),
2523 _28(T28),
2524 _29(T29),
2525 _30(T30),
2526 _31(T31),
2527 _32(T32),
2528 _33(T33),
2529 _34(T34),
2530 _35(T35),
2531 _36(T36),
2532 _37(T37),
2533 _38(T38),
2534 }
2535 };
2536 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
2537 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> {
2538 Completed,
2539 WouldBlock,
2540 _0(T0),
2541 _1(T1),
2542 _2(T2),
2543 _3(T3),
2544 _4(T4),
2545 _5(T5),
2546 _6(T6),
2547 _7(T7),
2548 _8(T8),
2549 _9(T9),
2550 _10(T10),
2551 _11(T11),
2552 _12(T12),
2553 _13(T13),
2554 _14(T14),
2555 _15(T15),
2556 _16(T16),
2557 _17(T17),
2558 _18(T18),
2559 _19(T19),
2560 _20(T20),
2561 _21(T21),
2562 _22(T22),
2563 _23(T23),
2564 _24(T24),
2565 _25(T25),
2566 _26(T26),
2567 _27(T27),
2568 _28(T28),
2569 _29(T29),
2570 _30(T30),
2571 _31(T31),
2572 _32(T32),
2573 _33(T33),
2574 _34(T34),
2575 _35(T35),
2576 _36(T36),
2577 _37(T37),
2578 _38(T38),
2579 _39(T39),
2580 }
2581 };
2582 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
2583 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> {
2584 Completed,
2585 WouldBlock,
2586 _0(T0),
2587 _1(T1),
2588 _2(T2),
2589 _3(T3),
2590 _4(T4),
2591 _5(T5),
2592 _6(T6),
2593 _7(T7),
2594 _8(T8),
2595 _9(T9),
2596 _10(T10),
2597 _11(T11),
2598 _12(T12),
2599 _13(T13),
2600 _14(T14),
2601 _15(T15),
2602 _16(T16),
2603 _17(T17),
2604 _18(T18),
2605 _19(T19),
2606 _20(T20),
2607 _21(T21),
2608 _22(T22),
2609 _23(T23),
2610 _24(T24),
2611 _25(T25),
2612 _26(T26),
2613 _27(T27),
2614 _28(T28),
2615 _29(T29),
2616 _30(T30),
2617 _31(T31),
2618 _32(T32),
2619 _33(T33),
2620 _34(T34),
2621 _35(T35),
2622 _36(T36),
2623 _37(T37),
2624 _38(T38),
2625 _39(T39),
2626 _40(T40),
2627 }
2628 };
2629 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
2630 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41> {
2631 Completed,
2632 WouldBlock,
2633 _0(T0),
2634 _1(T1),
2635 _2(T2),
2636 _3(T3),
2637 _4(T4),
2638 _5(T5),
2639 _6(T6),
2640 _7(T7),
2641 _8(T8),
2642 _9(T9),
2643 _10(T10),
2644 _11(T11),
2645 _12(T12),
2646 _13(T13),
2647 _14(T14),
2648 _15(T15),
2649 _16(T16),
2650 _17(T17),
2651 _18(T18),
2652 _19(T19),
2653 _20(T20),
2654 _21(T21),
2655 _22(T22),
2656 _23(T23),
2657 _24(T24),
2658 _25(T25),
2659 _26(T26),
2660 _27(T27),
2661 _28(T28),
2662 _29(T29),
2663 _30(T30),
2664 _31(T31),
2665 _32(T32),
2666 _33(T33),
2667 _34(T34),
2668 _35(T35),
2669 _36(T36),
2670 _37(T37),
2671 _38(T38),
2672 _39(T39),
2673 _40(T40),
2674 _41(T41),
2675 }
2676 };
2677 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
2678 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42> {
2679 Completed,
2680 WouldBlock,
2681 _0(T0),
2682 _1(T1),
2683 _2(T2),
2684 _3(T3),
2685 _4(T4),
2686 _5(T5),
2687 _6(T6),
2688 _7(T7),
2689 _8(T8),
2690 _9(T9),
2691 _10(T10),
2692 _11(T11),
2693 _12(T12),
2694 _13(T13),
2695 _14(T14),
2696 _15(T15),
2697 _16(T16),
2698 _17(T17),
2699 _18(T18),
2700 _19(T19),
2701 _20(T20),
2702 _21(T21),
2703 _22(T22),
2704 _23(T23),
2705 _24(T24),
2706 _25(T25),
2707 _26(T26),
2708 _27(T27),
2709 _28(T28),
2710 _29(T29),
2711 _30(T30),
2712 _31(T31),
2713 _32(T32),
2714 _33(T33),
2715 _34(T34),
2716 _35(T35),
2717 _36(T36),
2718 _37(T37),
2719 _38(T38),
2720 _39(T39),
2721 _40(T40),
2722 _41(T41),
2723 _42(T42),
2724 }
2725 };
2726 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
2727 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43> {
2728 Completed,
2729 WouldBlock,
2730 _0(T0),
2731 _1(T1),
2732 _2(T2),
2733 _3(T3),
2734 _4(T4),
2735 _5(T5),
2736 _6(T6),
2737 _7(T7),
2738 _8(T8),
2739 _9(T9),
2740 _10(T10),
2741 _11(T11),
2742 _12(T12),
2743 _13(T13),
2744 _14(T14),
2745 _15(T15),
2746 _16(T16),
2747 _17(T17),
2748 _18(T18),
2749 _19(T19),
2750 _20(T20),
2751 _21(T21),
2752 _22(T22),
2753 _23(T23),
2754 _24(T24),
2755 _25(T25),
2756 _26(T26),
2757 _27(T27),
2758 _28(T28),
2759 _29(T29),
2760 _30(T30),
2761 _31(T31),
2762 _32(T32),
2763 _33(T33),
2764 _34(T34),
2765 _35(T35),
2766 _36(T36),
2767 _37(T37),
2768 _38(T38),
2769 _39(T39),
2770 _40(T40),
2771 _41(T41),
2772 _42(T42),
2773 _43(T43),
2774 }
2775 };
2776 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
2777 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44> {
2778 Completed,
2779 WouldBlock,
2780 _0(T0),
2781 _1(T1),
2782 _2(T2),
2783 _3(T3),
2784 _4(T4),
2785 _5(T5),
2786 _6(T6),
2787 _7(T7),
2788 _8(T8),
2789 _9(T9),
2790 _10(T10),
2791 _11(T11),
2792 _12(T12),
2793 _13(T13),
2794 _14(T14),
2795 _15(T15),
2796 _16(T16),
2797 _17(T17),
2798 _18(T18),
2799 _19(T19),
2800 _20(T20),
2801 _21(T21),
2802 _22(T22),
2803 _23(T23),
2804 _24(T24),
2805 _25(T25),
2806 _26(T26),
2807 _27(T27),
2808 _28(T28),
2809 _29(T29),
2810 _30(T30),
2811 _31(T31),
2812 _32(T32),
2813 _33(T33),
2814 _34(T34),
2815 _35(T35),
2816 _36(T36),
2817 _37(T37),
2818 _38(T38),
2819 _39(T39),
2820 _40(T40),
2821 _41(T41),
2822 _42(T42),
2823 _43(T43),
2824 _44(T44),
2825 }
2826 };
2827 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
2828 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45> {
2829 Completed,
2830 WouldBlock,
2831 _0(T0),
2832 _1(T1),
2833 _2(T2),
2834 _3(T3),
2835 _4(T4),
2836 _5(T5),
2837 _6(T6),
2838 _7(T7),
2839 _8(T8),
2840 _9(T9),
2841 _10(T10),
2842 _11(T11),
2843 _12(T12),
2844 _13(T13),
2845 _14(T14),
2846 _15(T15),
2847 _16(T16),
2848 _17(T17),
2849 _18(T18),
2850 _19(T19),
2851 _20(T20),
2852 _21(T21),
2853 _22(T22),
2854 _23(T23),
2855 _24(T24),
2856 _25(T25),
2857 _26(T26),
2858 _27(T27),
2859 _28(T28),
2860 _29(T29),
2861 _30(T30),
2862 _31(T31),
2863 _32(T32),
2864 _33(T33),
2865 _34(T34),
2866 _35(T35),
2867 _36(T36),
2868 _37(T37),
2869 _38(T38),
2870 _39(T39),
2871 _40(T40),
2872 _41(T41),
2873 _42(T42),
2874 _43(T43),
2875 _44(T44),
2876 _45(T45),
2877 }
2878 };
2879 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
2880 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46> {
2881 Completed,
2882 WouldBlock,
2883 _0(T0),
2884 _1(T1),
2885 _2(T2),
2886 _3(T3),
2887 _4(T4),
2888 _5(T5),
2889 _6(T6),
2890 _7(T7),
2891 _8(T8),
2892 _9(T9),
2893 _10(T10),
2894 _11(T11),
2895 _12(T12),
2896 _13(T13),
2897 _14(T14),
2898 _15(T15),
2899 _16(T16),
2900 _17(T17),
2901 _18(T18),
2902 _19(T19),
2903 _20(T20),
2904 _21(T21),
2905 _22(T22),
2906 _23(T23),
2907 _24(T24),
2908 _25(T25),
2909 _26(T26),
2910 _27(T27),
2911 _28(T28),
2912 _29(T29),
2913 _30(T30),
2914 _31(T31),
2915 _32(T32),
2916 _33(T33),
2917 _34(T34),
2918 _35(T35),
2919 _36(T36),
2920 _37(T37),
2921 _38(T38),
2922 _39(T39),
2923 _40(T40),
2924 _41(T41),
2925 _42(T42),
2926 _43(T43),
2927 _44(T44),
2928 _45(T45),
2929 _46(T46),
2930 }
2931 };
2932 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
2933 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47> {
2934 Completed,
2935 WouldBlock,
2936 _0(T0),
2937 _1(T1),
2938 _2(T2),
2939 _3(T3),
2940 _4(T4),
2941 _5(T5),
2942 _6(T6),
2943 _7(T7),
2944 _8(T8),
2945 _9(T9),
2946 _10(T10),
2947 _11(T11),
2948 _12(T12),
2949 _13(T13),
2950 _14(T14),
2951 _15(T15),
2952 _16(T16),
2953 _17(T17),
2954 _18(T18),
2955 _19(T19),
2956 _20(T20),
2957 _21(T21),
2958 _22(T22),
2959 _23(T23),
2960 _24(T24),
2961 _25(T25),
2962 _26(T26),
2963 _27(T27),
2964 _28(T28),
2965 _29(T29),
2966 _30(T30),
2967 _31(T31),
2968 _32(T32),
2969 _33(T33),
2970 _34(T34),
2971 _35(T35),
2972 _36(T36),
2973 _37(T37),
2974 _38(T38),
2975 _39(T39),
2976 _40(T40),
2977 _41(T41),
2978 _42(T42),
2979 _43(T43),
2980 _44(T44),
2981 _45(T45),
2982 _46(T46),
2983 _47(T47),
2984 }
2985 };
2986 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
2987 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48> {
2988 Completed,
2989 WouldBlock,
2990 _0(T0),
2991 _1(T1),
2992 _2(T2),
2993 _3(T3),
2994 _4(T4),
2995 _5(T5),
2996 _6(T6),
2997 _7(T7),
2998 _8(T8),
2999 _9(T9),
3000 _10(T10),
3001 _11(T11),
3002 _12(T12),
3003 _13(T13),
3004 _14(T14),
3005 _15(T15),
3006 _16(T16),
3007 _17(T17),
3008 _18(T18),
3009 _19(T19),
3010 _20(T20),
3011 _21(T21),
3012 _22(T22),
3013 _23(T23),
3014 _24(T24),
3015 _25(T25),
3016 _26(T26),
3017 _27(T27),
3018 _28(T28),
3019 _29(T29),
3020 _30(T30),
3021 _31(T31),
3022 _32(T32),
3023 _33(T33),
3024 _34(T34),
3025 _35(T35),
3026 _36(T36),
3027 _37(T37),
3028 _38(T38),
3029 _39(T39),
3030 _40(T40),
3031 _41(T41),
3032 _42(T42),
3033 _43(T43),
3034 _44(T44),
3035 _45(T45),
3036 _46(T46),
3037 _47(T47),
3038 _48(T48),
3039 }
3040 };
3041 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
3042 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49> {
3043 Completed,
3044 WouldBlock,
3045 _0(T0),
3046 _1(T1),
3047 _2(T2),
3048 _3(T3),
3049 _4(T4),
3050 _5(T5),
3051 _6(T6),
3052 _7(T7),
3053 _8(T8),
3054 _9(T9),
3055 _10(T10),
3056 _11(T11),
3057 _12(T12),
3058 _13(T13),
3059 _14(T14),
3060 _15(T15),
3061 _16(T16),
3062 _17(T17),
3063 _18(T18),
3064 _19(T19),
3065 _20(T20),
3066 _21(T21),
3067 _22(T22),
3068 _23(T23),
3069 _24(T24),
3070 _25(T25),
3071 _26(T26),
3072 _27(T27),
3073 _28(T28),
3074 _29(T29),
3075 _30(T30),
3076 _31(T31),
3077 _32(T32),
3078 _33(T33),
3079 _34(T34),
3080 _35(T35),
3081 _36(T36),
3082 _37(T37),
3083 _38(T38),
3084 _39(T39),
3085 _40(T40),
3086 _41(T41),
3087 _42(T42),
3088 _43(T43),
3089 _44(T44),
3090 _45(T45),
3091 _46(T46),
3092 _47(T47),
3093 _48(T48),
3094 _49(T49),
3095 }
3096 };
3097 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
3098 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50> {
3099 Completed,
3100 WouldBlock,
3101 _0(T0),
3102 _1(T1),
3103 _2(T2),
3104 _3(T3),
3105 _4(T4),
3106 _5(T5),
3107 _6(T6),
3108 _7(T7),
3109 _8(T8),
3110 _9(T9),
3111 _10(T10),
3112 _11(T11),
3113 _12(T12),
3114 _13(T13),
3115 _14(T14),
3116 _15(T15),
3117 _16(T16),
3118 _17(T17),
3119 _18(T18),
3120 _19(T19),
3121 _20(T20),
3122 _21(T21),
3123 _22(T22),
3124 _23(T23),
3125 _24(T24),
3126 _25(T25),
3127 _26(T26),
3128 _27(T27),
3129 _28(T28),
3130 _29(T29),
3131 _30(T30),
3132 _31(T31),
3133 _32(T32),
3134 _33(T33),
3135 _34(T34),
3136 _35(T35),
3137 _36(T36),
3138 _37(T37),
3139 _38(T38),
3140 _39(T39),
3141 _40(T40),
3142 _41(T41),
3143 _42(T42),
3144 _43(T43),
3145 _44(T44),
3146 _45(T45),
3147 _46(T46),
3148 _47(T47),
3149 _48(T48),
3150 _49(T49),
3151 _50(T50),
3152 }
3153 };
3154 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
3155 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51> {
3156 Completed,
3157 WouldBlock,
3158 _0(T0),
3159 _1(T1),
3160 _2(T2),
3161 _3(T3),
3162 _4(T4),
3163 _5(T5),
3164 _6(T6),
3165 _7(T7),
3166 _8(T8),
3167 _9(T9),
3168 _10(T10),
3169 _11(T11),
3170 _12(T12),
3171 _13(T13),
3172 _14(T14),
3173 _15(T15),
3174 _16(T16),
3175 _17(T17),
3176 _18(T18),
3177 _19(T19),
3178 _20(T20),
3179 _21(T21),
3180 _22(T22),
3181 _23(T23),
3182 _24(T24),
3183 _25(T25),
3184 _26(T26),
3185 _27(T27),
3186 _28(T28),
3187 _29(T29),
3188 _30(T30),
3189 _31(T31),
3190 _32(T32),
3191 _33(T33),
3192 _34(T34),
3193 _35(T35),
3194 _36(T36),
3195 _37(T37),
3196 _38(T38),
3197 _39(T39),
3198 _40(T40),
3199 _41(T41),
3200 _42(T42),
3201 _43(T43),
3202 _44(T44),
3203 _45(T45),
3204 _46(T46),
3205 _47(T47),
3206 _48(T48),
3207 _49(T49),
3208 _50(T50),
3209 _51(T51),
3210 }
3211 };
3212 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
3213 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51, T52> {
3214 Completed,
3215 WouldBlock,
3216 _0(T0),
3217 _1(T1),
3218 _2(T2),
3219 _3(T3),
3220 _4(T4),
3221 _5(T5),
3222 _6(T6),
3223 _7(T7),
3224 _8(T8),
3225 _9(T9),
3226 _10(T10),
3227 _11(T11),
3228 _12(T12),
3229 _13(T13),
3230 _14(T14),
3231 _15(T15),
3232 _16(T16),
3233 _17(T17),
3234 _18(T18),
3235 _19(T19),
3236 _20(T20),
3237 _21(T21),
3238 _22(T22),
3239 _23(T23),
3240 _24(T24),
3241 _25(T25),
3242 _26(T26),
3243 _27(T27),
3244 _28(T28),
3245 _29(T29),
3246 _30(T30),
3247 _31(T31),
3248 _32(T32),
3249 _33(T33),
3250 _34(T34),
3251 _35(T35),
3252 _36(T36),
3253 _37(T37),
3254 _38(T38),
3255 _39(T39),
3256 _40(T40),
3257 _41(T41),
3258 _42(T42),
3259 _43(T43),
3260 _44(T44),
3261 _45(T45),
3262 _46(T46),
3263 _47(T47),
3264 _48(T48),
3265 _49(T49),
3266 _50(T50),
3267 _51(T51),
3268 _52(T52),
3269 }
3270 };
3271 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
3272 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51, T52, T53> {
3273 Completed,
3274 WouldBlock,
3275 _0(T0),
3276 _1(T1),
3277 _2(T2),
3278 _3(T3),
3279 _4(T4),
3280 _5(T5),
3281 _6(T6),
3282 _7(T7),
3283 _8(T8),
3284 _9(T9),
3285 _10(T10),
3286 _11(T11),
3287 _12(T12),
3288 _13(T13),
3289 _14(T14),
3290 _15(T15),
3291 _16(T16),
3292 _17(T17),
3293 _18(T18),
3294 _19(T19),
3295 _20(T20),
3296 _21(T21),
3297 _22(T22),
3298 _23(T23),
3299 _24(T24),
3300 _25(T25),
3301 _26(T26),
3302 _27(T27),
3303 _28(T28),
3304 _29(T29),
3305 _30(T30),
3306 _31(T31),
3307 _32(T32),
3308 _33(T33),
3309 _34(T34),
3310 _35(T35),
3311 _36(T36),
3312 _37(T37),
3313 _38(T38),
3314 _39(T39),
3315 _40(T40),
3316 _41(T41),
3317 _42(T42),
3318 _43(T43),
3319 _44(T44),
3320 _45(T45),
3321 _46(T46),
3322 _47(T47),
3323 _48(T48),
3324 _49(T49),
3325 _50(T50),
3326 _51(T51),
3327 _52(T52),
3328 _53(T53),
3329 }
3330 };
3331 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
3332 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51, T52, T53, T54> {
3333 Completed,
3334 WouldBlock,
3335 _0(T0),
3336 _1(T1),
3337 _2(T2),
3338 _3(T3),
3339 _4(T4),
3340 _5(T5),
3341 _6(T6),
3342 _7(T7),
3343 _8(T8),
3344 _9(T9),
3345 _10(T10),
3346 _11(T11),
3347 _12(T12),
3348 _13(T13),
3349 _14(T14),
3350 _15(T15),
3351 _16(T16),
3352 _17(T17),
3353 _18(T18),
3354 _19(T19),
3355 _20(T20),
3356 _21(T21),
3357 _22(T22),
3358 _23(T23),
3359 _24(T24),
3360 _25(T25),
3361 _26(T26),
3362 _27(T27),
3363 _28(T28),
3364 _29(T29),
3365 _30(T30),
3366 _31(T31),
3367 _32(T32),
3368 _33(T33),
3369 _34(T34),
3370 _35(T35),
3371 _36(T36),
3372 _37(T37),
3373 _38(T38),
3374 _39(T39),
3375 _40(T40),
3376 _41(T41),
3377 _42(T42),
3378 _43(T43),
3379 _44(T44),
3380 _45(T45),
3381 _46(T46),
3382 _47(T47),
3383 _48(T48),
3384 _49(T49),
3385 _50(T50),
3386 _51(T51),
3387 _52(T52),
3388 _53(T53),
3389 _54(T54),
3390 }
3391 };
3392 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
3393 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51, T52, T53, T54, T55> {
3394 Completed,
3395 WouldBlock,
3396 _0(T0),
3397 _1(T1),
3398 _2(T2),
3399 _3(T3),
3400 _4(T4),
3401 _5(T5),
3402 _6(T6),
3403 _7(T7),
3404 _8(T8),
3405 _9(T9),
3406 _10(T10),
3407 _11(T11),
3408 _12(T12),
3409 _13(T13),
3410 _14(T14),
3411 _15(T15),
3412 _16(T16),
3413 _17(T17),
3414 _18(T18),
3415 _19(T19),
3416 _20(T20),
3417 _21(T21),
3418 _22(T22),
3419 _23(T23),
3420 _24(T24),
3421 _25(T25),
3422 _26(T26),
3423 _27(T27),
3424 _28(T28),
3425 _29(T29),
3426 _30(T30),
3427 _31(T31),
3428 _32(T32),
3429 _33(T33),
3430 _34(T34),
3431 _35(T35),
3432 _36(T36),
3433 _37(T37),
3434 _38(T38),
3435 _39(T39),
3436 _40(T40),
3437 _41(T41),
3438 _42(T42),
3439 _43(T43),
3440 _44(T44),
3441 _45(T45),
3442 _46(T46),
3443 _47(T47),
3444 _48(T48),
3445 _49(T49),
3446 _50(T50),
3447 _51(T51),
3448 _52(T52),
3449 _53(T53),
3450 _54(T54),
3451 _55(T55),
3452 }
3453 };
3454 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
3455 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51, T52, T53, T54, T55, T56> {
3456 Completed,
3457 WouldBlock,
3458 _0(T0),
3459 _1(T1),
3460 _2(T2),
3461 _3(T3),
3462 _4(T4),
3463 _5(T5),
3464 _6(T6),
3465 _7(T7),
3466 _8(T8),
3467 _9(T9),
3468 _10(T10),
3469 _11(T11),
3470 _12(T12),
3471 _13(T13),
3472 _14(T14),
3473 _15(T15),
3474 _16(T16),
3475 _17(T17),
3476 _18(T18),
3477 _19(T19),
3478 _20(T20),
3479 _21(T21),
3480 _22(T22),
3481 _23(T23),
3482 _24(T24),
3483 _25(T25),
3484 _26(T26),
3485 _27(T27),
3486 _28(T28),
3487 _29(T29),
3488 _30(T30),
3489 _31(T31),
3490 _32(T32),
3491 _33(T33),
3492 _34(T34),
3493 _35(T35),
3494 _36(T36),
3495 _37(T37),
3496 _38(T38),
3497 _39(T39),
3498 _40(T40),
3499 _41(T41),
3500 _42(T42),
3501 _43(T43),
3502 _44(T44),
3503 _45(T45),
3504 _46(T46),
3505 _47(T47),
3506 _48(T48),
3507 _49(T49),
3508 _50(T50),
3509 _51(T51),
3510 _52(T52),
3511 _53(T53),
3512 _54(T54),
3513 _55(T55),
3514 _56(T56),
3515 }
3516 };
3517 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
3518 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51, T52, T53, T54, T55, T56, T57> {
3519 Completed,
3520 WouldBlock,
3521 _0(T0),
3522 _1(T1),
3523 _2(T2),
3524 _3(T3),
3525 _4(T4),
3526 _5(T5),
3527 _6(T6),
3528 _7(T7),
3529 _8(T8),
3530 _9(T9),
3531 _10(T10),
3532 _11(T11),
3533 _12(T12),
3534 _13(T13),
3535 _14(T14),
3536 _15(T15),
3537 _16(T16),
3538 _17(T17),
3539 _18(T18),
3540 _19(T19),
3541 _20(T20),
3542 _21(T21),
3543 _22(T22),
3544 _23(T23),
3545 _24(T24),
3546 _25(T25),
3547 _26(T26),
3548 _27(T27),
3549 _28(T28),
3550 _29(T29),
3551 _30(T30),
3552 _31(T31),
3553 _32(T32),
3554 _33(T33),
3555 _34(T34),
3556 _35(T35),
3557 _36(T36),
3558 _37(T37),
3559 _38(T38),
3560 _39(T39),
3561 _40(T40),
3562 _41(T41),
3563 _42(T42),
3564 _43(T43),
3565 _44(T44),
3566 _45(T45),
3567 _46(T46),
3568 _47(T47),
3569 _48(T48),
3570 _49(T49),
3571 _50(T50),
3572 _51(T51),
3573 _52(T52),
3574 _53(T53),
3575 _54(T54),
3576 _55(T55),
3577 _56(T56),
3578 _57(T57),
3579 }
3580 };
3581 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
3582 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51, T52, T53, T54, T55, T56, T57, T58> {
3583 Completed,
3584 WouldBlock,
3585 _0(T0),
3586 _1(T1),
3587 _2(T2),
3588 _3(T3),
3589 _4(T4),
3590 _5(T5),
3591 _6(T6),
3592 _7(T7),
3593 _8(T8),
3594 _9(T9),
3595 _10(T10),
3596 _11(T11),
3597 _12(T12),
3598 _13(T13),
3599 _14(T14),
3600 _15(T15),
3601 _16(T16),
3602 _17(T17),
3603 _18(T18),
3604 _19(T19),
3605 _20(T20),
3606 _21(T21),
3607 _22(T22),
3608 _23(T23),
3609 _24(T24),
3610 _25(T25),
3611 _26(T26),
3612 _27(T27),
3613 _28(T28),
3614 _29(T29),
3615 _30(T30),
3616 _31(T31),
3617 _32(T32),
3618 _33(T33),
3619 _34(T34),
3620 _35(T35),
3621 _36(T36),
3622 _37(T37),
3623 _38(T38),
3624 _39(T39),
3625 _40(T40),
3626 _41(T41),
3627 _42(T42),
3628 _43(T43),
3629 _44(T44),
3630 _45(T45),
3631 _46(T46),
3632 _47(T47),
3633 _48(T48),
3634 _49(T49),
3635 _50(T50),
3636 _51(T51),
3637 _52(T52),
3638 _53(T53),
3639 _54(T54),
3640 _55(T55),
3641 _56(T56),
3642 _57(T57),
3643 _58(T58),
3644 }
3645 };
3646 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
3647 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51, T52, T53, T54, T55, T56, T57, T58, T59> {
3648 Completed,
3649 WouldBlock,
3650 _0(T0),
3651 _1(T1),
3652 _2(T2),
3653 _3(T3),
3654 _4(T4),
3655 _5(T5),
3656 _6(T6),
3657 _7(T7),
3658 _8(T8),
3659 _9(T9),
3660 _10(T10),
3661 _11(T11),
3662 _12(T12),
3663 _13(T13),
3664 _14(T14),
3665 _15(T15),
3666 _16(T16),
3667 _17(T17),
3668 _18(T18),
3669 _19(T19),
3670 _20(T20),
3671 _21(T21),
3672 _22(T22),
3673 _23(T23),
3674 _24(T24),
3675 _25(T25),
3676 _26(T26),
3677 _27(T27),
3678 _28(T28),
3679 _29(T29),
3680 _30(T30),
3681 _31(T31),
3682 _32(T32),
3683 _33(T33),
3684 _34(T34),
3685 _35(T35),
3686 _36(T36),
3687 _37(T37),
3688 _38(T38),
3689 _39(T39),
3690 _40(T40),
3691 _41(T41),
3692 _42(T42),
3693 _43(T43),
3694 _44(T44),
3695 _45(T45),
3696 _46(T46),
3697 _47(T47),
3698 _48(T48),
3699 _49(T49),
3700 _50(T50),
3701 _51(T51),
3702 _52(T52),
3703 _53(T53),
3704 _54(T54),
3705 _55(T55),
3706 _56(T56),
3707 _57(T57),
3708 _58(T58),
3709 _59(T59),
3710 }
3711 };
3712 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
3713 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51, T52, T53, T54, T55, T56, T57, T58, T59, T60> {
3714 Completed,
3715 WouldBlock,
3716 _0(T0),
3717 _1(T1),
3718 _2(T2),
3719 _3(T3),
3720 _4(T4),
3721 _5(T5),
3722 _6(T6),
3723 _7(T7),
3724 _8(T8),
3725 _9(T9),
3726 _10(T10),
3727 _11(T11),
3728 _12(T12),
3729 _13(T13),
3730 _14(T14),
3731 _15(T15),
3732 _16(T16),
3733 _17(T17),
3734 _18(T18),
3735 _19(T19),
3736 _20(T20),
3737 _21(T21),
3738 _22(T22),
3739 _23(T23),
3740 _24(T24),
3741 _25(T25),
3742 _26(T26),
3743 _27(T27),
3744 _28(T28),
3745 _29(T29),
3746 _30(T30),
3747 _31(T31),
3748 _32(T32),
3749 _33(T33),
3750 _34(T34),
3751 _35(T35),
3752 _36(T36),
3753 _37(T37),
3754 _38(T38),
3755 _39(T39),
3756 _40(T40),
3757 _41(T41),
3758 _42(T42),
3759 _43(T43),
3760 _44(T44),
3761 _45(T45),
3762 _46(T46),
3763 _47(T47),
3764 _48(T48),
3765 _49(T49),
3766 _50(T50),
3767 _51(T51),
3768 _52(T52),
3769 _53(T53),
3770 _54(T54),
3771 _55(T55),
3772 _56(T56),
3773 _57(T57),
3774 _58(T58),
3775 _59(T59),
3776 _60(T60),
3777 }
3778 };
3779 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
3780 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51, T52, T53, T54, T55, T56, T57, T58, T59, T60, T61> {
3781 Completed,
3782 WouldBlock,
3783 _0(T0),
3784 _1(T1),
3785 _2(T2),
3786 _3(T3),
3787 _4(T4),
3788 _5(T5),
3789 _6(T6),
3790 _7(T7),
3791 _8(T8),
3792 _9(T9),
3793 _10(T10),
3794 _11(T11),
3795 _12(T12),
3796 _13(T13),
3797 _14(T14),
3798 _15(T15),
3799 _16(T16),
3800 _17(T17),
3801 _18(T18),
3802 _19(T19),
3803 _20(T20),
3804 _21(T21),
3805 _22(T22),
3806 _23(T23),
3807 _24(T24),
3808 _25(T25),
3809 _26(T26),
3810 _27(T27),
3811 _28(T28),
3812 _29(T29),
3813 _30(T30),
3814 _31(T31),
3815 _32(T32),
3816 _33(T33),
3817 _34(T34),
3818 _35(T35),
3819 _36(T36),
3820 _37(T37),
3821 _38(T38),
3822 _39(T39),
3823 _40(T40),
3824 _41(T41),
3825 _42(T42),
3826 _43(T43),
3827 _44(T44),
3828 _45(T45),
3829 _46(T46),
3830 _47(T47),
3831 _48(T48),
3832 _49(T49),
3833 _50(T50),
3834 _51(T51),
3835 _52(T52),
3836 _53(T53),
3837 _54(T54),
3838 _55(T55),
3839 _56(T56),
3840 _57(T57),
3841 _58(T58),
3842 _59(T59),
3843 _60(T60),
3844 _61(T61),
3845 }
3846 };
3847 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
3848 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51, T52, T53, T54, T55, T56, T57, T58, T59, T60, T61, T62> {
3849 Completed,
3850 WouldBlock,
3851 _0(T0),
3852 _1(T1),
3853 _2(T2),
3854 _3(T3),
3855 _4(T4),
3856 _5(T5),
3857 _6(T6),
3858 _7(T7),
3859 _8(T8),
3860 _9(T9),
3861 _10(T10),
3862 _11(T11),
3863 _12(T12),
3864 _13(T13),
3865 _14(T14),
3866 _15(T15),
3867 _16(T16),
3868 _17(T17),
3869 _18(T18),
3870 _19(T19),
3871 _20(T20),
3872 _21(T21),
3873 _22(T22),
3874 _23(T23),
3875 _24(T24),
3876 _25(T25),
3877 _26(T26),
3878 _27(T27),
3879 _28(T28),
3880 _29(T29),
3881 _30(T30),
3882 _31(T31),
3883 _32(T32),
3884 _33(T33),
3885 _34(T34),
3886 _35(T35),
3887 _36(T36),
3888 _37(T37),
3889 _38(T38),
3890 _39(T39),
3891 _40(T40),
3892 _41(T41),
3893 _42(T42),
3894 _43(T43),
3895 _44(T44),
3896 _45(T45),
3897 _46(T46),
3898 _47(T47),
3899 _48(T48),
3900 _49(T49),
3901 _50(T50),
3902 _51(T51),
3903 _52(T52),
3904 _53(T53),
3905 _54(T54),
3906 _55(T55),
3907 _56(T56),
3908 _57(T57),
3909 _58(T58),
3910 _59(T59),
3911 _60(T60),
3912 _61(T61),
3913 _62(T62),
3914 }
3915 };
3916 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
3917 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51, T52, T53, T54, T55, T56, T57, T58, T59, T60, T61, T62, T63> {
3918 Completed,
3919 WouldBlock,
3920 _0(T0),
3921 _1(T1),
3922 _2(T2),
3923 _3(T3),
3924 _4(T4),
3925 _5(T5),
3926 _6(T6),
3927 _7(T7),
3928 _8(T8),
3929 _9(T9),
3930 _10(T10),
3931 _11(T11),
3932 _12(T12),
3933 _13(T13),
3934 _14(T14),
3935 _15(T15),
3936 _16(T16),
3937 _17(T17),
3938 _18(T18),
3939 _19(T19),
3940 _20(T20),
3941 _21(T21),
3942 _22(T22),
3943 _23(T23),
3944 _24(T24),
3945 _25(T25),
3946 _26(T26),
3947 _27(T27),
3948 _28(T28),
3949 _29(T29),
3950 _30(T30),
3951 _31(T31),
3952 _32(T32),
3953 _33(T33),
3954 _34(T34),
3955 _35(T35),
3956 _36(T36),
3957 _37(T37),
3958 _38(T38),
3959 _39(T39),
3960 _40(T40),
3961 _41(T41),
3962 _42(T42),
3963 _43(T43),
3964 _44(T44),
3965 _45(T45),
3966 _46(T46),
3967 _47(T47),
3968 _48(T48),
3969 _49(T49),
3970 _50(T50),
3971 _51(T51),
3972 _52(T52),
3973 _53(T53),
3974 _54(T54),
3975 _55(T55),
3976 _56(T56),
3977 _57(T57),
3978 _58(T58),
3979 _59(T59),
3980 _60(T60),
3981 _61(T61),
3982 _62(T62),
3983 _63(T63),
3984 }
3985 };
3986 (@output-type (_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)) => {
3987 enum __SelectOutput<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51, T52, T53, T54, T55, T56, T57, T58, T59, T60, T61, T62, T63, T64> {
3988 Completed,
3989 WouldBlock,
3990 _0(T0),
3991 _1(T1),
3992 _2(T2),
3993 _3(T3),
3994 _4(T4),
3995 _5(T5),
3996 _6(T6),
3997 _7(T7),
3998 _8(T8),
3999 _9(T9),
4000 _10(T10),
4001 _11(T11),
4002 _12(T12),
4003 _13(T13),
4004 _14(T14),
4005 _15(T15),
4006 _16(T16),
4007 _17(T17),
4008 _18(T18),
4009 _19(T19),
4010 _20(T20),
4011 _21(T21),
4012 _22(T22),
4013 _23(T23),
4014 _24(T24),
4015 _25(T25),
4016 _26(T26),
4017 _27(T27),
4018 _28(T28),
4019 _29(T29),
4020 _30(T30),
4021 _31(T31),
4022 _32(T32),
4023 _33(T33),
4024 _34(T34),
4025 _35(T35),
4026 _36(T36),
4027 _37(T37),
4028 _38(T38),
4029 _39(T39),
4030 _40(T40),
4031 _41(T41),
4032 _42(T42),
4033 _43(T43),
4034 _44(T44),
4035 _45(T45),
4036 _46(T46),
4037 _47(T47),
4038 _48(T48),
4039 _49(T49),
4040 _50(T50),
4041 _51(T51),
4042 _52(T52),
4043 _53(T53),
4044 _54(T54),
4045 _55(T55),
4046 _56(T56),
4047 _57(T57),
4048 _58(T58),
4049 _59(T59),
4050 _60(T60),
4051 _61(T61),
4052 _62(T62),
4053 _63(T63),
4054 _64(T64),
4055 }
4056 };
4057
4058 (biased; $($token:tt)*) => {
4060 $crate::select_internal!(@list ($($token)*) () () () (); biased = true)
4061 };
4062 ($($token:tt)*) => {
4063 $crate::select_internal!(@list ($($token)*) () () () (); biased = false)
4064 }
4065}
4066
4067#[cfg(test)]
4068mod tests;