Skip to main content

glam/swizzles/
dvec4_impl.rs

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