glam/swizzles/
vec_traits.rs

1// Generated from swizzle_traits.rs.tera template. Edit the template, not the generated file.
2
3pub trait Vec2Swizzles: Sized + Copy + Clone {
4    type Vec3;
5
6    type Vec4;
7
8    #[inline]
9    #[must_use]
10    fn xy(self) -> Self {
11        self
12    }
13
14    #[must_use]
15    fn xx(self) -> Self;
16
17    #[must_use]
18    fn yx(self) -> Self;
19
20    #[must_use]
21    fn yy(self) -> Self;
22
23    #[must_use]
24    fn xxx(self) -> Self::Vec3;
25
26    #[must_use]
27    fn xxy(self) -> Self::Vec3;
28
29    #[must_use]
30    fn xyx(self) -> Self::Vec3;
31
32    #[must_use]
33    fn xyy(self) -> Self::Vec3;
34
35    #[must_use]
36    fn yxx(self) -> Self::Vec3;
37
38    #[must_use]
39    fn yxy(self) -> Self::Vec3;
40
41    #[must_use]
42    fn yyx(self) -> Self::Vec3;
43
44    #[must_use]
45    fn yyy(self) -> Self::Vec3;
46
47    #[must_use]
48    fn xxxx(self) -> Self::Vec4;
49
50    #[must_use]
51    fn xxxy(self) -> Self::Vec4;
52
53    #[must_use]
54    fn xxyx(self) -> Self::Vec4;
55
56    #[must_use]
57    fn xxyy(self) -> Self::Vec4;
58
59    #[must_use]
60    fn xyxx(self) -> Self::Vec4;
61
62    #[must_use]
63    fn xyxy(self) -> Self::Vec4;
64
65    #[must_use]
66    fn xyyx(self) -> Self::Vec4;
67
68    #[must_use]
69    fn xyyy(self) -> Self::Vec4;
70
71    #[must_use]
72    fn yxxx(self) -> Self::Vec4;
73
74    #[must_use]
75    fn yxxy(self) -> Self::Vec4;
76
77    #[must_use]
78    fn yxyx(self) -> Self::Vec4;
79
80    #[must_use]
81    fn yxyy(self) -> Self::Vec4;
82
83    #[must_use]
84    fn yyxx(self) -> Self::Vec4;
85
86    #[must_use]
87    fn yyxy(self) -> Self::Vec4;
88
89    #[must_use]
90    fn yyyx(self) -> Self::Vec4;
91
92    #[must_use]
93    fn yyyy(self) -> Self::Vec4;
94}
95
96pub trait Vec3Swizzles: Sized + Copy + Clone {
97    type Vec2;
98
99    type Vec4;
100
101    #[inline]
102    #[must_use]
103    fn xyz(self) -> Self {
104        self
105    }
106
107    #[must_use]
108    fn xx(self) -> Self::Vec2;
109
110    #[must_use]
111    fn xy(self) -> Self::Vec2;
112
113    #[must_use]
114    fn with_xy(self, rhs: Self::Vec2) -> Self;
115
116    #[must_use]
117    fn xz(self) -> Self::Vec2;
118
119    #[must_use]
120    fn with_xz(self, rhs: Self::Vec2) -> Self;
121
122    #[must_use]
123    fn yx(self) -> Self::Vec2;
124
125    #[must_use]
126    fn with_yx(self, rhs: Self::Vec2) -> Self;
127
128    #[must_use]
129    fn yy(self) -> Self::Vec2;
130
131    #[must_use]
132    fn yz(self) -> Self::Vec2;
133
134    #[must_use]
135    fn with_yz(self, rhs: Self::Vec2) -> Self;
136
137    #[must_use]
138    fn zx(self) -> Self::Vec2;
139
140    #[must_use]
141    fn with_zx(self, rhs: Self::Vec2) -> Self;
142
143    #[must_use]
144    fn zy(self) -> Self::Vec2;
145
146    #[must_use]
147    fn with_zy(self, rhs: Self::Vec2) -> Self;
148
149    #[must_use]
150    fn zz(self) -> Self::Vec2;
151
152    #[must_use]
153    fn xxx(self) -> Self;
154
155    #[must_use]
156    fn xxy(self) -> Self;
157
158    #[must_use]
159    fn xxz(self) -> Self;
160
161    #[must_use]
162    fn xyx(self) -> Self;
163
164    #[must_use]
165    fn xyy(self) -> Self;
166
167    #[must_use]
168    fn xzx(self) -> Self;
169
170    #[must_use]
171    fn xzy(self) -> Self;
172
173    #[must_use]
174    fn xzz(self) -> Self;
175
176    #[must_use]
177    fn yxx(self) -> Self;
178
179    #[must_use]
180    fn yxy(self) -> Self;
181
182    #[must_use]
183    fn yxz(self) -> Self;
184
185    #[must_use]
186    fn yyx(self) -> Self;
187
188    #[must_use]
189    fn yyy(self) -> Self;
190
191    #[must_use]
192    fn yyz(self) -> Self;
193
194    #[must_use]
195    fn yzx(self) -> Self;
196
197    #[must_use]
198    fn yzy(self) -> Self;
199
200    #[must_use]
201    fn yzz(self) -> Self;
202
203    #[must_use]
204    fn zxx(self) -> Self;
205
206    #[must_use]
207    fn zxy(self) -> Self;
208
209    #[must_use]
210    fn zxz(self) -> Self;
211
212    #[must_use]
213    fn zyx(self) -> Self;
214
215    #[must_use]
216    fn zyy(self) -> Self;
217
218    #[must_use]
219    fn zyz(self) -> Self;
220
221    #[must_use]
222    fn zzx(self) -> Self;
223
224    #[must_use]
225    fn zzy(self) -> Self;
226
227    #[must_use]
228    fn zzz(self) -> Self;
229
230    #[must_use]
231    fn xxxx(self) -> Self::Vec4;
232
233    #[must_use]
234    fn xxxy(self) -> Self::Vec4;
235
236    #[must_use]
237    fn xxxz(self) -> Self::Vec4;
238
239    #[must_use]
240    fn xxyx(self) -> Self::Vec4;
241
242    #[must_use]
243    fn xxyy(self) -> Self::Vec4;
244
245    #[must_use]
246    fn xxyz(self) -> Self::Vec4;
247
248    #[must_use]
249    fn xxzx(self) -> Self::Vec4;
250
251    #[must_use]
252    fn xxzy(self) -> Self::Vec4;
253
254    #[must_use]
255    fn xxzz(self) -> Self::Vec4;
256
257    #[must_use]
258    fn xyxx(self) -> Self::Vec4;
259
260    #[must_use]
261    fn xyxy(self) -> Self::Vec4;
262
263    #[must_use]
264    fn xyxz(self) -> Self::Vec4;
265
266    #[must_use]
267    fn xyyx(self) -> Self::Vec4;
268
269    #[must_use]
270    fn xyyy(self) -> Self::Vec4;
271
272    #[must_use]
273    fn xyyz(self) -> Self::Vec4;
274
275    #[must_use]
276    fn xyzx(self) -> Self::Vec4;
277
278    #[must_use]
279    fn xyzy(self) -> Self::Vec4;
280
281    #[must_use]
282    fn xyzz(self) -> Self::Vec4;
283
284    #[must_use]
285    fn xzxx(self) -> Self::Vec4;
286
287    #[must_use]
288    fn xzxy(self) -> Self::Vec4;
289
290    #[must_use]
291    fn xzxz(self) -> Self::Vec4;
292
293    #[must_use]
294    fn xzyx(self) -> Self::Vec4;
295
296    #[must_use]
297    fn xzyy(self) -> Self::Vec4;
298
299    #[must_use]
300    fn xzyz(self) -> Self::Vec4;
301
302    #[must_use]
303    fn xzzx(self) -> Self::Vec4;
304
305    #[must_use]
306    fn xzzy(self) -> Self::Vec4;
307
308    #[must_use]
309    fn xzzz(self) -> Self::Vec4;
310
311    #[must_use]
312    fn yxxx(self) -> Self::Vec4;
313
314    #[must_use]
315    fn yxxy(self) -> Self::Vec4;
316
317    #[must_use]
318    fn yxxz(self) -> Self::Vec4;
319
320    #[must_use]
321    fn yxyx(self) -> Self::Vec4;
322
323    #[must_use]
324    fn yxyy(self) -> Self::Vec4;
325
326    #[must_use]
327    fn yxyz(self) -> Self::Vec4;
328
329    #[must_use]
330    fn yxzx(self) -> Self::Vec4;
331
332    #[must_use]
333    fn yxzy(self) -> Self::Vec4;
334
335    #[must_use]
336    fn yxzz(self) -> Self::Vec4;
337
338    #[must_use]
339    fn yyxx(self) -> Self::Vec4;
340
341    #[must_use]
342    fn yyxy(self) -> Self::Vec4;
343
344    #[must_use]
345    fn yyxz(self) -> Self::Vec4;
346
347    #[must_use]
348    fn yyyx(self) -> Self::Vec4;
349
350    #[must_use]
351    fn yyyy(self) -> Self::Vec4;
352
353    #[must_use]
354    fn yyyz(self) -> Self::Vec4;
355
356    #[must_use]
357    fn yyzx(self) -> Self::Vec4;
358
359    #[must_use]
360    fn yyzy(self) -> Self::Vec4;
361
362    #[must_use]
363    fn yyzz(self) -> Self::Vec4;
364
365    #[must_use]
366    fn yzxx(self) -> Self::Vec4;
367
368    #[must_use]
369    fn yzxy(self) -> Self::Vec4;
370
371    #[must_use]
372    fn yzxz(self) -> Self::Vec4;
373
374    #[must_use]
375    fn yzyx(self) -> Self::Vec4;
376
377    #[must_use]
378    fn yzyy(self) -> Self::Vec4;
379
380    #[must_use]
381    fn yzyz(self) -> Self::Vec4;
382
383    #[must_use]
384    fn yzzx(self) -> Self::Vec4;
385
386    #[must_use]
387    fn yzzy(self) -> Self::Vec4;
388
389    #[must_use]
390    fn yzzz(self) -> Self::Vec4;
391
392    #[must_use]
393    fn zxxx(self) -> Self::Vec4;
394
395    #[must_use]
396    fn zxxy(self) -> Self::Vec4;
397
398    #[must_use]
399    fn zxxz(self) -> Self::Vec4;
400
401    #[must_use]
402    fn zxyx(self) -> Self::Vec4;
403
404    #[must_use]
405    fn zxyy(self) -> Self::Vec4;
406
407    #[must_use]
408    fn zxyz(self) -> Self::Vec4;
409
410    #[must_use]
411    fn zxzx(self) -> Self::Vec4;
412
413    #[must_use]
414    fn zxzy(self) -> Self::Vec4;
415
416    #[must_use]
417    fn zxzz(self) -> Self::Vec4;
418
419    #[must_use]
420    fn zyxx(self) -> Self::Vec4;
421
422    #[must_use]
423    fn zyxy(self) -> Self::Vec4;
424
425    #[must_use]
426    fn zyxz(self) -> Self::Vec4;
427
428    #[must_use]
429    fn zyyx(self) -> Self::Vec4;
430
431    #[must_use]
432    fn zyyy(self) -> Self::Vec4;
433
434    #[must_use]
435    fn zyyz(self) -> Self::Vec4;
436
437    #[must_use]
438    fn zyzx(self) -> Self::Vec4;
439
440    #[must_use]
441    fn zyzy(self) -> Self::Vec4;
442
443    #[must_use]
444    fn zyzz(self) -> Self::Vec4;
445
446    #[must_use]
447    fn zzxx(self) -> Self::Vec4;
448
449    #[must_use]
450    fn zzxy(self) -> Self::Vec4;
451
452    #[must_use]
453    fn zzxz(self) -> Self::Vec4;
454
455    #[must_use]
456    fn zzyx(self) -> Self::Vec4;
457
458    #[must_use]
459    fn zzyy(self) -> Self::Vec4;
460
461    #[must_use]
462    fn zzyz(self) -> Self::Vec4;
463
464    #[must_use]
465    fn zzzx(self) -> Self::Vec4;
466
467    #[must_use]
468    fn zzzy(self) -> Self::Vec4;
469
470    #[must_use]
471    fn zzzz(self) -> Self::Vec4;
472}
473
474pub trait Vec4Swizzles: Sized + Copy + Clone {
475    type Vec2;
476
477    type Vec3;
478
479    #[inline]
480    #[must_use]
481    fn xyzw(self) -> Self {
482        self
483    }
484
485    #[must_use]
486    fn xx(self) -> Self::Vec2;
487
488    #[must_use]
489    fn xy(self) -> Self::Vec2;
490
491    #[must_use]
492    fn with_xy(self, rhs: Self::Vec2) -> Self;
493
494    #[must_use]
495    fn xz(self) -> Self::Vec2;
496
497    #[must_use]
498    fn with_xz(self, rhs: Self::Vec2) -> Self;
499
500    #[must_use]
501    fn xw(self) -> Self::Vec2;
502
503    #[must_use]
504    fn with_xw(self, rhs: Self::Vec2) -> Self;
505
506    #[must_use]
507    fn yx(self) -> Self::Vec2;
508
509    #[must_use]
510    fn with_yx(self, rhs: Self::Vec2) -> Self;
511
512    #[must_use]
513    fn yy(self) -> Self::Vec2;
514
515    #[must_use]
516    fn yz(self) -> Self::Vec2;
517
518    #[must_use]
519    fn with_yz(self, rhs: Self::Vec2) -> Self;
520
521    #[must_use]
522    fn yw(self) -> Self::Vec2;
523
524    #[must_use]
525    fn with_yw(self, rhs: Self::Vec2) -> Self;
526
527    #[must_use]
528    fn zx(self) -> Self::Vec2;
529
530    #[must_use]
531    fn with_zx(self, rhs: Self::Vec2) -> Self;
532
533    #[must_use]
534    fn zy(self) -> Self::Vec2;
535
536    #[must_use]
537    fn with_zy(self, rhs: Self::Vec2) -> Self;
538
539    #[must_use]
540    fn zz(self) -> Self::Vec2;
541
542    #[must_use]
543    fn zw(self) -> Self::Vec2;
544
545    #[must_use]
546    fn with_zw(self, rhs: Self::Vec2) -> Self;
547
548    #[must_use]
549    fn wx(self) -> Self::Vec2;
550
551    #[must_use]
552    fn with_wx(self, rhs: Self::Vec2) -> Self;
553
554    #[must_use]
555    fn wy(self) -> Self::Vec2;
556
557    #[must_use]
558    fn with_wy(self, rhs: Self::Vec2) -> Self;
559
560    #[must_use]
561    fn wz(self) -> Self::Vec2;
562
563    #[must_use]
564    fn with_wz(self, rhs: Self::Vec2) -> Self;
565
566    #[must_use]
567    fn ww(self) -> Self::Vec2;
568
569    #[must_use]
570    fn xxx(self) -> Self::Vec3;
571
572    #[must_use]
573    fn xxy(self) -> Self::Vec3;
574
575    #[must_use]
576    fn xxz(self) -> Self::Vec3;
577
578    #[must_use]
579    fn xxw(self) -> Self::Vec3;
580
581    #[must_use]
582    fn xyx(self) -> Self::Vec3;
583
584    #[must_use]
585    fn xyy(self) -> Self::Vec3;
586
587    #[must_use]
588    fn xyz(self) -> Self::Vec3;
589
590    #[must_use]
591    fn with_xyz(self, rhs: Self::Vec3) -> Self;
592
593    #[must_use]
594    fn xyw(self) -> Self::Vec3;
595
596    #[must_use]
597    fn with_xyw(self, rhs: Self::Vec3) -> Self;
598
599    #[must_use]
600    fn xzx(self) -> Self::Vec3;
601
602    #[must_use]
603    fn xzy(self) -> Self::Vec3;
604
605    #[must_use]
606    fn with_xzy(self, rhs: Self::Vec3) -> Self;
607
608    #[must_use]
609    fn xzz(self) -> Self::Vec3;
610
611    #[must_use]
612    fn xzw(self) -> Self::Vec3;
613
614    #[must_use]
615    fn with_xzw(self, rhs: Self::Vec3) -> Self;
616
617    #[must_use]
618    fn xwx(self) -> Self::Vec3;
619
620    #[must_use]
621    fn xwy(self) -> Self::Vec3;
622
623    #[must_use]
624    fn with_xwy(self, rhs: Self::Vec3) -> Self;
625
626    #[must_use]
627    fn xwz(self) -> Self::Vec3;
628
629    #[must_use]
630    fn with_xwz(self, rhs: Self::Vec3) -> Self;
631
632    #[must_use]
633    fn xww(self) -> Self::Vec3;
634
635    #[must_use]
636    fn yxx(self) -> Self::Vec3;
637
638    #[must_use]
639    fn yxy(self) -> Self::Vec3;
640
641    #[must_use]
642    fn yxz(self) -> Self::Vec3;
643
644    #[must_use]
645    fn with_yxz(self, rhs: Self::Vec3) -> Self;
646
647    #[must_use]
648    fn yxw(self) -> Self::Vec3;
649
650    #[must_use]
651    fn with_yxw(self, rhs: Self::Vec3) -> Self;
652
653    #[must_use]
654    fn yyx(self) -> Self::Vec3;
655
656    #[must_use]
657    fn yyy(self) -> Self::Vec3;
658
659    #[must_use]
660    fn yyz(self) -> Self::Vec3;
661
662    #[must_use]
663    fn yyw(self) -> Self::Vec3;
664
665    #[must_use]
666    fn yzx(self) -> Self::Vec3;
667
668    #[must_use]
669    fn with_yzx(self, rhs: Self::Vec3) -> Self;
670
671    #[must_use]
672    fn yzy(self) -> Self::Vec3;
673
674    #[must_use]
675    fn yzz(self) -> Self::Vec3;
676
677    #[must_use]
678    fn yzw(self) -> Self::Vec3;
679
680    #[must_use]
681    fn with_yzw(self, rhs: Self::Vec3) -> Self;
682
683    #[must_use]
684    fn ywx(self) -> Self::Vec3;
685
686    #[must_use]
687    fn with_ywx(self, rhs: Self::Vec3) -> Self;
688
689    #[must_use]
690    fn ywy(self) -> Self::Vec3;
691
692    #[must_use]
693    fn ywz(self) -> Self::Vec3;
694
695    #[must_use]
696    fn with_ywz(self, rhs: Self::Vec3) -> Self;
697
698    #[must_use]
699    fn yww(self) -> Self::Vec3;
700
701    #[must_use]
702    fn zxx(self) -> Self::Vec3;
703
704    #[must_use]
705    fn zxy(self) -> Self::Vec3;
706
707    #[must_use]
708    fn with_zxy(self, rhs: Self::Vec3) -> Self;
709
710    #[must_use]
711    fn zxz(self) -> Self::Vec3;
712
713    #[must_use]
714    fn zxw(self) -> Self::Vec3;
715
716    #[must_use]
717    fn with_zxw(self, rhs: Self::Vec3) -> Self;
718
719    #[must_use]
720    fn zyx(self) -> Self::Vec3;
721
722    #[must_use]
723    fn with_zyx(self, rhs: Self::Vec3) -> Self;
724
725    #[must_use]
726    fn zyy(self) -> Self::Vec3;
727
728    #[must_use]
729    fn zyz(self) -> Self::Vec3;
730
731    #[must_use]
732    fn zyw(self) -> Self::Vec3;
733
734    #[must_use]
735    fn with_zyw(self, rhs: Self::Vec3) -> Self;
736
737    #[must_use]
738    fn zzx(self) -> Self::Vec3;
739
740    #[must_use]
741    fn zzy(self) -> Self::Vec3;
742
743    #[must_use]
744    fn zzz(self) -> Self::Vec3;
745
746    #[must_use]
747    fn zzw(self) -> Self::Vec3;
748
749    #[must_use]
750    fn zwx(self) -> Self::Vec3;
751
752    #[must_use]
753    fn with_zwx(self, rhs: Self::Vec3) -> Self;
754
755    #[must_use]
756    fn zwy(self) -> Self::Vec3;
757
758    #[must_use]
759    fn with_zwy(self, rhs: Self::Vec3) -> Self;
760
761    #[must_use]
762    fn zwz(self) -> Self::Vec3;
763
764    #[must_use]
765    fn zww(self) -> Self::Vec3;
766
767    #[must_use]
768    fn wxx(self) -> Self::Vec3;
769
770    #[must_use]
771    fn wxy(self) -> Self::Vec3;
772
773    #[must_use]
774    fn with_wxy(self, rhs: Self::Vec3) -> Self;
775
776    #[must_use]
777    fn wxz(self) -> Self::Vec3;
778
779    #[must_use]
780    fn with_wxz(self, rhs: Self::Vec3) -> Self;
781
782    #[must_use]
783    fn wxw(self) -> Self::Vec3;
784
785    #[must_use]
786    fn wyx(self) -> Self::Vec3;
787
788    #[must_use]
789    fn with_wyx(self, rhs: Self::Vec3) -> Self;
790
791    #[must_use]
792    fn wyy(self) -> Self::Vec3;
793
794    #[must_use]
795    fn wyz(self) -> Self::Vec3;
796
797    #[must_use]
798    fn with_wyz(self, rhs: Self::Vec3) -> Self;
799
800    #[must_use]
801    fn wyw(self) -> Self::Vec3;
802
803    #[must_use]
804    fn wzx(self) -> Self::Vec3;
805
806    #[must_use]
807    fn with_wzx(self, rhs: Self::Vec3) -> Self;
808
809    #[must_use]
810    fn wzy(self) -> Self::Vec3;
811
812    #[must_use]
813    fn with_wzy(self, rhs: Self::Vec3) -> Self;
814
815    #[must_use]
816    fn wzz(self) -> Self::Vec3;
817
818    #[must_use]
819    fn wzw(self) -> Self::Vec3;
820
821    #[must_use]
822    fn wwx(self) -> Self::Vec3;
823
824    #[must_use]
825    fn wwy(self) -> Self::Vec3;
826
827    #[must_use]
828    fn wwz(self) -> Self::Vec3;
829
830    #[must_use]
831    fn www(self) -> Self::Vec3;
832
833    #[must_use]
834    fn xxxx(self) -> Self;
835
836    #[must_use]
837    fn xxxy(self) -> Self;
838
839    #[must_use]
840    fn xxxz(self) -> Self;
841
842    #[must_use]
843    fn xxxw(self) -> Self;
844
845    #[must_use]
846    fn xxyx(self) -> Self;
847
848    #[must_use]
849    fn xxyy(self) -> Self;
850
851    #[must_use]
852    fn xxyz(self) -> Self;
853
854    #[must_use]
855    fn xxyw(self) -> Self;
856
857    #[must_use]
858    fn xxzx(self) -> Self;
859
860    #[must_use]
861    fn xxzy(self) -> Self;
862
863    #[must_use]
864    fn xxzz(self) -> Self;
865
866    #[must_use]
867    fn xxzw(self) -> Self;
868
869    #[must_use]
870    fn xxwx(self) -> Self;
871
872    #[must_use]
873    fn xxwy(self) -> Self;
874
875    #[must_use]
876    fn xxwz(self) -> Self;
877
878    #[must_use]
879    fn xxww(self) -> Self;
880
881    #[must_use]
882    fn xyxx(self) -> Self;
883
884    #[must_use]
885    fn xyxy(self) -> Self;
886
887    #[must_use]
888    fn xyxz(self) -> Self;
889
890    #[must_use]
891    fn xyxw(self) -> Self;
892
893    #[must_use]
894    fn xyyx(self) -> Self;
895
896    #[must_use]
897    fn xyyy(self) -> Self;
898
899    #[must_use]
900    fn xyyz(self) -> Self;
901
902    #[must_use]
903    fn xyyw(self) -> Self;
904
905    #[must_use]
906    fn xyzx(self) -> Self;
907
908    #[must_use]
909    fn xyzy(self) -> Self;
910
911    #[must_use]
912    fn xyzz(self) -> Self;
913
914    #[must_use]
915    fn xywx(self) -> Self;
916
917    #[must_use]
918    fn xywy(self) -> Self;
919
920    #[must_use]
921    fn xywz(self) -> Self;
922
923    #[must_use]
924    fn xyww(self) -> Self;
925
926    #[must_use]
927    fn xzxx(self) -> Self;
928
929    #[must_use]
930    fn xzxy(self) -> Self;
931
932    #[must_use]
933    fn xzxz(self) -> Self;
934
935    #[must_use]
936    fn xzxw(self) -> Self;
937
938    #[must_use]
939    fn xzyx(self) -> Self;
940
941    #[must_use]
942    fn xzyy(self) -> Self;
943
944    #[must_use]
945    fn xzyz(self) -> Self;
946
947    #[must_use]
948    fn xzyw(self) -> Self;
949
950    #[must_use]
951    fn xzzx(self) -> Self;
952
953    #[must_use]
954    fn xzzy(self) -> Self;
955
956    #[must_use]
957    fn xzzz(self) -> Self;
958
959    #[must_use]
960    fn xzzw(self) -> Self;
961
962    #[must_use]
963    fn xzwx(self) -> Self;
964
965    #[must_use]
966    fn xzwy(self) -> Self;
967
968    #[must_use]
969    fn xzwz(self) -> Self;
970
971    #[must_use]
972    fn xzww(self) -> Self;
973
974    #[must_use]
975    fn xwxx(self) -> Self;
976
977    #[must_use]
978    fn xwxy(self) -> Self;
979
980    #[must_use]
981    fn xwxz(self) -> Self;
982
983    #[must_use]
984    fn xwxw(self) -> Self;
985
986    #[must_use]
987    fn xwyx(self) -> Self;
988
989    #[must_use]
990    fn xwyy(self) -> Self;
991
992    #[must_use]
993    fn xwyz(self) -> Self;
994
995    #[must_use]
996    fn xwyw(self) -> Self;
997
998    #[must_use]
999    fn xwzx(self) -> Self;
1000
1001    #[must_use]
1002    fn xwzy(self) -> Self;
1003
1004    #[must_use]
1005    fn xwzz(self) -> Self;
1006
1007    #[must_use]
1008    fn xwzw(self) -> Self;
1009
1010    #[must_use]
1011    fn xwwx(self) -> Self;
1012
1013    #[must_use]
1014    fn xwwy(self) -> Self;
1015
1016    #[must_use]
1017    fn xwwz(self) -> Self;
1018
1019    #[must_use]
1020    fn xwww(self) -> Self;
1021
1022    #[must_use]
1023    fn yxxx(self) -> Self;
1024
1025    #[must_use]
1026    fn yxxy(self) -> Self;
1027
1028    #[must_use]
1029    fn yxxz(self) -> Self;
1030
1031    #[must_use]
1032    fn yxxw(self) -> Self;
1033
1034    #[must_use]
1035    fn yxyx(self) -> Self;
1036
1037    #[must_use]
1038    fn yxyy(self) -> Self;
1039
1040    #[must_use]
1041    fn yxyz(self) -> Self;
1042
1043    #[must_use]
1044    fn yxyw(self) -> Self;
1045
1046    #[must_use]
1047    fn yxzx(self) -> Self;
1048
1049    #[must_use]
1050    fn yxzy(self) -> Self;
1051
1052    #[must_use]
1053    fn yxzz(self) -> Self;
1054
1055    #[must_use]
1056    fn yxzw(self) -> Self;
1057
1058    #[must_use]
1059    fn yxwx(self) -> Self;
1060
1061    #[must_use]
1062    fn yxwy(self) -> Self;
1063
1064    #[must_use]
1065    fn yxwz(self) -> Self;
1066
1067    #[must_use]
1068    fn yxww(self) -> Self;
1069
1070    #[must_use]
1071    fn yyxx(self) -> Self;
1072
1073    #[must_use]
1074    fn yyxy(self) -> Self;
1075
1076    #[must_use]
1077    fn yyxz(self) -> Self;
1078
1079    #[must_use]
1080    fn yyxw(self) -> Self;
1081
1082    #[must_use]
1083    fn yyyx(self) -> Self;
1084
1085    #[must_use]
1086    fn yyyy(self) -> Self;
1087
1088    #[must_use]
1089    fn yyyz(self) -> Self;
1090
1091    #[must_use]
1092    fn yyyw(self) -> Self;
1093
1094    #[must_use]
1095    fn yyzx(self) -> Self;
1096
1097    #[must_use]
1098    fn yyzy(self) -> Self;
1099
1100    #[must_use]
1101    fn yyzz(self) -> Self;
1102
1103    #[must_use]
1104    fn yyzw(self) -> Self;
1105
1106    #[must_use]
1107    fn yywx(self) -> Self;
1108
1109    #[must_use]
1110    fn yywy(self) -> Self;
1111
1112    #[must_use]
1113    fn yywz(self) -> Self;
1114
1115    #[must_use]
1116    fn yyww(self) -> Self;
1117
1118    #[must_use]
1119    fn yzxx(self) -> Self;
1120
1121    #[must_use]
1122    fn yzxy(self) -> Self;
1123
1124    #[must_use]
1125    fn yzxz(self) -> Self;
1126
1127    #[must_use]
1128    fn yzxw(self) -> Self;
1129
1130    #[must_use]
1131    fn yzyx(self) -> Self;
1132
1133    #[must_use]
1134    fn yzyy(self) -> Self;
1135
1136    #[must_use]
1137    fn yzyz(self) -> Self;
1138
1139    #[must_use]
1140    fn yzyw(self) -> Self;
1141
1142    #[must_use]
1143    fn yzzx(self) -> Self;
1144
1145    #[must_use]
1146    fn yzzy(self) -> Self;
1147
1148    #[must_use]
1149    fn yzzz(self) -> Self;
1150
1151    #[must_use]
1152    fn yzzw(self) -> Self;
1153
1154    #[must_use]
1155    fn yzwx(self) -> Self;
1156
1157    #[must_use]
1158    fn yzwy(self) -> Self;
1159
1160    #[must_use]
1161    fn yzwz(self) -> Self;
1162
1163    #[must_use]
1164    fn yzww(self) -> Self;
1165
1166    #[must_use]
1167    fn ywxx(self) -> Self;
1168
1169    #[must_use]
1170    fn ywxy(self) -> Self;
1171
1172    #[must_use]
1173    fn ywxz(self) -> Self;
1174
1175    #[must_use]
1176    fn ywxw(self) -> Self;
1177
1178    #[must_use]
1179    fn ywyx(self) -> Self;
1180
1181    #[must_use]
1182    fn ywyy(self) -> Self;
1183
1184    #[must_use]
1185    fn ywyz(self) -> Self;
1186
1187    #[must_use]
1188    fn ywyw(self) -> Self;
1189
1190    #[must_use]
1191    fn ywzx(self) -> Self;
1192
1193    #[must_use]
1194    fn ywzy(self) -> Self;
1195
1196    #[must_use]
1197    fn ywzz(self) -> Self;
1198
1199    #[must_use]
1200    fn ywzw(self) -> Self;
1201
1202    #[must_use]
1203    fn ywwx(self) -> Self;
1204
1205    #[must_use]
1206    fn ywwy(self) -> Self;
1207
1208    #[must_use]
1209    fn ywwz(self) -> Self;
1210
1211    #[must_use]
1212    fn ywww(self) -> Self;
1213
1214    #[must_use]
1215    fn zxxx(self) -> Self;
1216
1217    #[must_use]
1218    fn zxxy(self) -> Self;
1219
1220    #[must_use]
1221    fn zxxz(self) -> Self;
1222
1223    #[must_use]
1224    fn zxxw(self) -> Self;
1225
1226    #[must_use]
1227    fn zxyx(self) -> Self;
1228
1229    #[must_use]
1230    fn zxyy(self) -> Self;
1231
1232    #[must_use]
1233    fn zxyz(self) -> Self;
1234
1235    #[must_use]
1236    fn zxyw(self) -> Self;
1237
1238    #[must_use]
1239    fn zxzx(self) -> Self;
1240
1241    #[must_use]
1242    fn zxzy(self) -> Self;
1243
1244    #[must_use]
1245    fn zxzz(self) -> Self;
1246
1247    #[must_use]
1248    fn zxzw(self) -> Self;
1249
1250    #[must_use]
1251    fn zxwx(self) -> Self;
1252
1253    #[must_use]
1254    fn zxwy(self) -> Self;
1255
1256    #[must_use]
1257    fn zxwz(self) -> Self;
1258
1259    #[must_use]
1260    fn zxww(self) -> Self;
1261
1262    #[must_use]
1263    fn zyxx(self) -> Self;
1264
1265    #[must_use]
1266    fn zyxy(self) -> Self;
1267
1268    #[must_use]
1269    fn zyxz(self) -> Self;
1270
1271    #[must_use]
1272    fn zyxw(self) -> Self;
1273
1274    #[must_use]
1275    fn zyyx(self) -> Self;
1276
1277    #[must_use]
1278    fn zyyy(self) -> Self;
1279
1280    #[must_use]
1281    fn zyyz(self) -> Self;
1282
1283    #[must_use]
1284    fn zyyw(self) -> Self;
1285
1286    #[must_use]
1287    fn zyzx(self) -> Self;
1288
1289    #[must_use]
1290    fn zyzy(self) -> Self;
1291
1292    #[must_use]
1293    fn zyzz(self) -> Self;
1294
1295    #[must_use]
1296    fn zyzw(self) -> Self;
1297
1298    #[must_use]
1299    fn zywx(self) -> Self;
1300
1301    #[must_use]
1302    fn zywy(self) -> Self;
1303
1304    #[must_use]
1305    fn zywz(self) -> Self;
1306
1307    #[must_use]
1308    fn zyww(self) -> Self;
1309
1310    #[must_use]
1311    fn zzxx(self) -> Self;
1312
1313    #[must_use]
1314    fn zzxy(self) -> Self;
1315
1316    #[must_use]
1317    fn zzxz(self) -> Self;
1318
1319    #[must_use]
1320    fn zzxw(self) -> Self;
1321
1322    #[must_use]
1323    fn zzyx(self) -> Self;
1324
1325    #[must_use]
1326    fn zzyy(self) -> Self;
1327
1328    #[must_use]
1329    fn zzyz(self) -> Self;
1330
1331    #[must_use]
1332    fn zzyw(self) -> Self;
1333
1334    #[must_use]
1335    fn zzzx(self) -> Self;
1336
1337    #[must_use]
1338    fn zzzy(self) -> Self;
1339
1340    #[must_use]
1341    fn zzzz(self) -> Self;
1342
1343    #[must_use]
1344    fn zzzw(self) -> Self;
1345
1346    #[must_use]
1347    fn zzwx(self) -> Self;
1348
1349    #[must_use]
1350    fn zzwy(self) -> Self;
1351
1352    #[must_use]
1353    fn zzwz(self) -> Self;
1354
1355    #[must_use]
1356    fn zzww(self) -> Self;
1357
1358    #[must_use]
1359    fn zwxx(self) -> Self;
1360
1361    #[must_use]
1362    fn zwxy(self) -> Self;
1363
1364    #[must_use]
1365    fn zwxz(self) -> Self;
1366
1367    #[must_use]
1368    fn zwxw(self) -> Self;
1369
1370    #[must_use]
1371    fn zwyx(self) -> Self;
1372
1373    #[must_use]
1374    fn zwyy(self) -> Self;
1375
1376    #[must_use]
1377    fn zwyz(self) -> Self;
1378
1379    #[must_use]
1380    fn zwyw(self) -> Self;
1381
1382    #[must_use]
1383    fn zwzx(self) -> Self;
1384
1385    #[must_use]
1386    fn zwzy(self) -> Self;
1387
1388    #[must_use]
1389    fn zwzz(self) -> Self;
1390
1391    #[must_use]
1392    fn zwzw(self) -> Self;
1393
1394    #[must_use]
1395    fn zwwx(self) -> Self;
1396
1397    #[must_use]
1398    fn zwwy(self) -> Self;
1399
1400    #[must_use]
1401    fn zwwz(self) -> Self;
1402
1403    #[must_use]
1404    fn zwww(self) -> Self;
1405
1406    #[must_use]
1407    fn wxxx(self) -> Self;
1408
1409    #[must_use]
1410    fn wxxy(self) -> Self;
1411
1412    #[must_use]
1413    fn wxxz(self) -> Self;
1414
1415    #[must_use]
1416    fn wxxw(self) -> Self;
1417
1418    #[must_use]
1419    fn wxyx(self) -> Self;
1420
1421    #[must_use]
1422    fn wxyy(self) -> Self;
1423
1424    #[must_use]
1425    fn wxyz(self) -> Self;
1426
1427    #[must_use]
1428    fn wxyw(self) -> Self;
1429
1430    #[must_use]
1431    fn wxzx(self) -> Self;
1432
1433    #[must_use]
1434    fn wxzy(self) -> Self;
1435
1436    #[must_use]
1437    fn wxzz(self) -> Self;
1438
1439    #[must_use]
1440    fn wxzw(self) -> Self;
1441
1442    #[must_use]
1443    fn wxwx(self) -> Self;
1444
1445    #[must_use]
1446    fn wxwy(self) -> Self;
1447
1448    #[must_use]
1449    fn wxwz(self) -> Self;
1450
1451    #[must_use]
1452    fn wxww(self) -> Self;
1453
1454    #[must_use]
1455    fn wyxx(self) -> Self;
1456
1457    #[must_use]
1458    fn wyxy(self) -> Self;
1459
1460    #[must_use]
1461    fn wyxz(self) -> Self;
1462
1463    #[must_use]
1464    fn wyxw(self) -> Self;
1465
1466    #[must_use]
1467    fn wyyx(self) -> Self;
1468
1469    #[must_use]
1470    fn wyyy(self) -> Self;
1471
1472    #[must_use]
1473    fn wyyz(self) -> Self;
1474
1475    #[must_use]
1476    fn wyyw(self) -> Self;
1477
1478    #[must_use]
1479    fn wyzx(self) -> Self;
1480
1481    #[must_use]
1482    fn wyzy(self) -> Self;
1483
1484    #[must_use]
1485    fn wyzz(self) -> Self;
1486
1487    #[must_use]
1488    fn wyzw(self) -> Self;
1489
1490    #[must_use]
1491    fn wywx(self) -> Self;
1492
1493    #[must_use]
1494    fn wywy(self) -> Self;
1495
1496    #[must_use]
1497    fn wywz(self) -> Self;
1498
1499    #[must_use]
1500    fn wyww(self) -> Self;
1501
1502    #[must_use]
1503    fn wzxx(self) -> Self;
1504
1505    #[must_use]
1506    fn wzxy(self) -> Self;
1507
1508    #[must_use]
1509    fn wzxz(self) -> Self;
1510
1511    #[must_use]
1512    fn wzxw(self) -> Self;
1513
1514    #[must_use]
1515    fn wzyx(self) -> Self;
1516
1517    #[must_use]
1518    fn wzyy(self) -> Self;
1519
1520    #[must_use]
1521    fn wzyz(self) -> Self;
1522
1523    #[must_use]
1524    fn wzyw(self) -> Self;
1525
1526    #[must_use]
1527    fn wzzx(self) -> Self;
1528
1529    #[must_use]
1530    fn wzzy(self) -> Self;
1531
1532    #[must_use]
1533    fn wzzz(self) -> Self;
1534
1535    #[must_use]
1536    fn wzzw(self) -> Self;
1537
1538    #[must_use]
1539    fn wzwx(self) -> Self;
1540
1541    #[must_use]
1542    fn wzwy(self) -> Self;
1543
1544    #[must_use]
1545    fn wzwz(self) -> Self;
1546
1547    #[must_use]
1548    fn wzww(self) -> Self;
1549
1550    #[must_use]
1551    fn wwxx(self) -> Self;
1552
1553    #[must_use]
1554    fn wwxy(self) -> Self;
1555
1556    #[must_use]
1557    fn wwxz(self) -> Self;
1558
1559    #[must_use]
1560    fn wwxw(self) -> Self;
1561
1562    #[must_use]
1563    fn wwyx(self) -> Self;
1564
1565    #[must_use]
1566    fn wwyy(self) -> Self;
1567
1568    #[must_use]
1569    fn wwyz(self) -> Self;
1570
1571    #[must_use]
1572    fn wwyw(self) -> Self;
1573
1574    #[must_use]
1575    fn wwzx(self) -> Self;
1576
1577    #[must_use]
1578    fn wwzy(self) -> Self;
1579
1580    #[must_use]
1581    fn wwzz(self) -> Self;
1582
1583    #[must_use]
1584    fn wwzw(self) -> Self;
1585
1586    #[must_use]
1587    fn wwwx(self) -> Self;
1588
1589    #[must_use]
1590    fn wwwy(self) -> Self;
1591
1592    #[must_use]
1593    fn wwwz(self) -> Self;
1594
1595    #[must_use]
1596    fn wwww(self) -> Self;
1597}