1use crate::{U64Vec2, U64Vec3, U64Vec4, Vec3Swizzles};
4
5impl Vec3Swizzles for U64Vec3 {
6 type Vec2 = U64Vec2;
7
8 type Vec4 = U64Vec4;
9
10 #[inline]
11 #[must_use]
12 fn xx(self) -> U64Vec2 {
13 U64Vec2 {
14 x: self.x,
15 y: self.x,
16 }
17 }
18
19 #[inline]
20 #[must_use]
21 fn xy(self) -> U64Vec2 {
22 U64Vec2 {
23 x: self.x,
24 y: self.y,
25 }
26 }
27
28 #[inline]
29 #[must_use]
30 fn xz(self) -> U64Vec2 {
31 U64Vec2 {
32 x: self.x,
33 y: self.z,
34 }
35 }
36
37 #[inline]
38 #[must_use]
39 fn yx(self) -> U64Vec2 {
40 U64Vec2 {
41 x: self.y,
42 y: self.x,
43 }
44 }
45
46 #[inline]
47 #[must_use]
48 fn yy(self) -> U64Vec2 {
49 U64Vec2 {
50 x: self.y,
51 y: self.y,
52 }
53 }
54
55 #[inline]
56 #[must_use]
57 fn yz(self) -> U64Vec2 {
58 U64Vec2 {
59 x: self.y,
60 y: self.z,
61 }
62 }
63
64 #[inline]
65 #[must_use]
66 fn zx(self) -> U64Vec2 {
67 U64Vec2 {
68 x: self.z,
69 y: self.x,
70 }
71 }
72
73 #[inline]
74 #[must_use]
75 fn zy(self) -> U64Vec2 {
76 U64Vec2 {
77 x: self.z,
78 y: self.y,
79 }
80 }
81
82 #[inline]
83 #[must_use]
84 fn zz(self) -> U64Vec2 {
85 U64Vec2 {
86 x: self.z,
87 y: self.z,
88 }
89 }
90
91 #[inline]
92 #[must_use]
93 fn xxx(self) -> U64Vec3 {
94 U64Vec3 {
95 x: self.x,
96 y: self.x,
97 z: self.x,
98 }
99 }
100
101 #[inline]
102 #[must_use]
103 fn xxy(self) -> U64Vec3 {
104 U64Vec3 {
105 x: self.x,
106 y: self.x,
107 z: self.y,
108 }
109 }
110
111 #[inline]
112 #[must_use]
113 fn xxz(self) -> U64Vec3 {
114 U64Vec3 {
115 x: self.x,
116 y: self.x,
117 z: self.z,
118 }
119 }
120
121 #[inline]
122 #[must_use]
123 fn xyx(self) -> U64Vec3 {
124 U64Vec3 {
125 x: self.x,
126 y: self.y,
127 z: self.x,
128 }
129 }
130
131 #[inline]
132 #[must_use]
133 fn xyy(self) -> U64Vec3 {
134 U64Vec3 {
135 x: self.x,
136 y: self.y,
137 z: self.y,
138 }
139 }
140
141 #[inline]
142 #[must_use]
143 fn xyz(self) -> U64Vec3 {
144 U64Vec3 {
145 x: self.x,
146 y: self.y,
147 z: self.z,
148 }
149 }
150
151 #[inline]
152 #[must_use]
153 fn xzx(self) -> U64Vec3 {
154 U64Vec3 {
155 x: self.x,
156 y: self.z,
157 z: self.x,
158 }
159 }
160
161 #[inline]
162 #[must_use]
163 fn xzy(self) -> U64Vec3 {
164 U64Vec3 {
165 x: self.x,
166 y: self.z,
167 z: self.y,
168 }
169 }
170
171 #[inline]
172 #[must_use]
173 fn xzz(self) -> U64Vec3 {
174 U64Vec3 {
175 x: self.x,
176 y: self.z,
177 z: self.z,
178 }
179 }
180
181 #[inline]
182 #[must_use]
183 fn yxx(self) -> U64Vec3 {
184 U64Vec3 {
185 x: self.y,
186 y: self.x,
187 z: self.x,
188 }
189 }
190
191 #[inline]
192 #[must_use]
193 fn yxy(self) -> U64Vec3 {
194 U64Vec3 {
195 x: self.y,
196 y: self.x,
197 z: self.y,
198 }
199 }
200
201 #[inline]
202 #[must_use]
203 fn yxz(self) -> U64Vec3 {
204 U64Vec3 {
205 x: self.y,
206 y: self.x,
207 z: self.z,
208 }
209 }
210
211 #[inline]
212 #[must_use]
213 fn yyx(self) -> U64Vec3 {
214 U64Vec3 {
215 x: self.y,
216 y: self.y,
217 z: self.x,
218 }
219 }
220
221 #[inline]
222 #[must_use]
223 fn yyy(self) -> U64Vec3 {
224 U64Vec3 {
225 x: self.y,
226 y: self.y,
227 z: self.y,
228 }
229 }
230
231 #[inline]
232 #[must_use]
233 fn yyz(self) -> U64Vec3 {
234 U64Vec3 {
235 x: self.y,
236 y: self.y,
237 z: self.z,
238 }
239 }
240
241 #[inline]
242 #[must_use]
243 fn yzx(self) -> U64Vec3 {
244 U64Vec3 {
245 x: self.y,
246 y: self.z,
247 z: self.x,
248 }
249 }
250
251 #[inline]
252 #[must_use]
253 fn yzy(self) -> U64Vec3 {
254 U64Vec3 {
255 x: self.y,
256 y: self.z,
257 z: self.y,
258 }
259 }
260
261 #[inline]
262 #[must_use]
263 fn yzz(self) -> U64Vec3 {
264 U64Vec3 {
265 x: self.y,
266 y: self.z,
267 z: self.z,
268 }
269 }
270
271 #[inline]
272 #[must_use]
273 fn zxx(self) -> U64Vec3 {
274 U64Vec3 {
275 x: self.z,
276 y: self.x,
277 z: self.x,
278 }
279 }
280
281 #[inline]
282 #[must_use]
283 fn zxy(self) -> U64Vec3 {
284 U64Vec3 {
285 x: self.z,
286 y: self.x,
287 z: self.y,
288 }
289 }
290
291 #[inline]
292 #[must_use]
293 fn zxz(self) -> U64Vec3 {
294 U64Vec3 {
295 x: self.z,
296 y: self.x,
297 z: self.z,
298 }
299 }
300
301 #[inline]
302 #[must_use]
303 fn zyx(self) -> U64Vec3 {
304 U64Vec3 {
305 x: self.z,
306 y: self.y,
307 z: self.x,
308 }
309 }
310
311 #[inline]
312 #[must_use]
313 fn zyy(self) -> U64Vec3 {
314 U64Vec3 {
315 x: self.z,
316 y: self.y,
317 z: self.y,
318 }
319 }
320
321 #[inline]
322 #[must_use]
323 fn zyz(self) -> U64Vec3 {
324 U64Vec3 {
325 x: self.z,
326 y: self.y,
327 z: self.z,
328 }
329 }
330
331 #[inline]
332 #[must_use]
333 fn zzx(self) -> U64Vec3 {
334 U64Vec3 {
335 x: self.z,
336 y: self.z,
337 z: self.x,
338 }
339 }
340
341 #[inline]
342 #[must_use]
343 fn zzy(self) -> U64Vec3 {
344 U64Vec3 {
345 x: self.z,
346 y: self.z,
347 z: self.y,
348 }
349 }
350
351 #[inline]
352 #[must_use]
353 fn zzz(self) -> U64Vec3 {
354 U64Vec3 {
355 x: self.z,
356 y: self.z,
357 z: self.z,
358 }
359 }
360
361 #[inline]
362 #[must_use]
363 fn xxxx(self) -> U64Vec4 {
364 U64Vec4::new(self.x, self.x, self.x, self.x)
365 }
366
367 #[inline]
368 #[must_use]
369 fn xxxy(self) -> U64Vec4 {
370 U64Vec4::new(self.x, self.x, self.x, self.y)
371 }
372
373 #[inline]
374 #[must_use]
375 fn xxxz(self) -> U64Vec4 {
376 U64Vec4::new(self.x, self.x, self.x, self.z)
377 }
378
379 #[inline]
380 #[must_use]
381 fn xxyx(self) -> U64Vec4 {
382 U64Vec4::new(self.x, self.x, self.y, self.x)
383 }
384
385 #[inline]
386 #[must_use]
387 fn xxyy(self) -> U64Vec4 {
388 U64Vec4::new(self.x, self.x, self.y, self.y)
389 }
390
391 #[inline]
392 #[must_use]
393 fn xxyz(self) -> U64Vec4 {
394 U64Vec4::new(self.x, self.x, self.y, self.z)
395 }
396
397 #[inline]
398 #[must_use]
399 fn xxzx(self) -> U64Vec4 {
400 U64Vec4::new(self.x, self.x, self.z, self.x)
401 }
402
403 #[inline]
404 #[must_use]
405 fn xxzy(self) -> U64Vec4 {
406 U64Vec4::new(self.x, self.x, self.z, self.y)
407 }
408
409 #[inline]
410 #[must_use]
411 fn xxzz(self) -> U64Vec4 {
412 U64Vec4::new(self.x, self.x, self.z, self.z)
413 }
414
415 #[inline]
416 #[must_use]
417 fn xyxx(self) -> U64Vec4 {
418 U64Vec4::new(self.x, self.y, self.x, self.x)
419 }
420
421 #[inline]
422 #[must_use]
423 fn xyxy(self) -> U64Vec4 {
424 U64Vec4::new(self.x, self.y, self.x, self.y)
425 }
426
427 #[inline]
428 #[must_use]
429 fn xyxz(self) -> U64Vec4 {
430 U64Vec4::new(self.x, self.y, self.x, self.z)
431 }
432
433 #[inline]
434 #[must_use]
435 fn xyyx(self) -> U64Vec4 {
436 U64Vec4::new(self.x, self.y, self.y, self.x)
437 }
438
439 #[inline]
440 #[must_use]
441 fn xyyy(self) -> U64Vec4 {
442 U64Vec4::new(self.x, self.y, self.y, self.y)
443 }
444
445 #[inline]
446 #[must_use]
447 fn xyyz(self) -> U64Vec4 {
448 U64Vec4::new(self.x, self.y, self.y, self.z)
449 }
450
451 #[inline]
452 #[must_use]
453 fn xyzx(self) -> U64Vec4 {
454 U64Vec4::new(self.x, self.y, self.z, self.x)
455 }
456
457 #[inline]
458 #[must_use]
459 fn xyzy(self) -> U64Vec4 {
460 U64Vec4::new(self.x, self.y, self.z, self.y)
461 }
462
463 #[inline]
464 #[must_use]
465 fn xyzz(self) -> U64Vec4 {
466 U64Vec4::new(self.x, self.y, self.z, self.z)
467 }
468
469 #[inline]
470 #[must_use]
471 fn xzxx(self) -> U64Vec4 {
472 U64Vec4::new(self.x, self.z, self.x, self.x)
473 }
474
475 #[inline]
476 #[must_use]
477 fn xzxy(self) -> U64Vec4 {
478 U64Vec4::new(self.x, self.z, self.x, self.y)
479 }
480
481 #[inline]
482 #[must_use]
483 fn xzxz(self) -> U64Vec4 {
484 U64Vec4::new(self.x, self.z, self.x, self.z)
485 }
486
487 #[inline]
488 #[must_use]
489 fn xzyx(self) -> U64Vec4 {
490 U64Vec4::new(self.x, self.z, self.y, self.x)
491 }
492
493 #[inline]
494 #[must_use]
495 fn xzyy(self) -> U64Vec4 {
496 U64Vec4::new(self.x, self.z, self.y, self.y)
497 }
498
499 #[inline]
500 #[must_use]
501 fn xzyz(self) -> U64Vec4 {
502 U64Vec4::new(self.x, self.z, self.y, self.z)
503 }
504
505 #[inline]
506 #[must_use]
507 fn xzzx(self) -> U64Vec4 {
508 U64Vec4::new(self.x, self.z, self.z, self.x)
509 }
510
511 #[inline]
512 #[must_use]
513 fn xzzy(self) -> U64Vec4 {
514 U64Vec4::new(self.x, self.z, self.z, self.y)
515 }
516
517 #[inline]
518 #[must_use]
519 fn xzzz(self) -> U64Vec4 {
520 U64Vec4::new(self.x, self.z, self.z, self.z)
521 }
522
523 #[inline]
524 #[must_use]
525 fn yxxx(self) -> U64Vec4 {
526 U64Vec4::new(self.y, self.x, self.x, self.x)
527 }
528
529 #[inline]
530 #[must_use]
531 fn yxxy(self) -> U64Vec4 {
532 U64Vec4::new(self.y, self.x, self.x, self.y)
533 }
534
535 #[inline]
536 #[must_use]
537 fn yxxz(self) -> U64Vec4 {
538 U64Vec4::new(self.y, self.x, self.x, self.z)
539 }
540
541 #[inline]
542 #[must_use]
543 fn yxyx(self) -> U64Vec4 {
544 U64Vec4::new(self.y, self.x, self.y, self.x)
545 }
546
547 #[inline]
548 #[must_use]
549 fn yxyy(self) -> U64Vec4 {
550 U64Vec4::new(self.y, self.x, self.y, self.y)
551 }
552
553 #[inline]
554 #[must_use]
555 fn yxyz(self) -> U64Vec4 {
556 U64Vec4::new(self.y, self.x, self.y, self.z)
557 }
558
559 #[inline]
560 #[must_use]
561 fn yxzx(self) -> U64Vec4 {
562 U64Vec4::new(self.y, self.x, self.z, self.x)
563 }
564
565 #[inline]
566 #[must_use]
567 fn yxzy(self) -> U64Vec4 {
568 U64Vec4::new(self.y, self.x, self.z, self.y)
569 }
570
571 #[inline]
572 #[must_use]
573 fn yxzz(self) -> U64Vec4 {
574 U64Vec4::new(self.y, self.x, self.z, self.z)
575 }
576
577 #[inline]
578 #[must_use]
579 fn yyxx(self) -> U64Vec4 {
580 U64Vec4::new(self.y, self.y, self.x, self.x)
581 }
582
583 #[inline]
584 #[must_use]
585 fn yyxy(self) -> U64Vec4 {
586 U64Vec4::new(self.y, self.y, self.x, self.y)
587 }
588
589 #[inline]
590 #[must_use]
591 fn yyxz(self) -> U64Vec4 {
592 U64Vec4::new(self.y, self.y, self.x, self.z)
593 }
594
595 #[inline]
596 #[must_use]
597 fn yyyx(self) -> U64Vec4 {
598 U64Vec4::new(self.y, self.y, self.y, self.x)
599 }
600
601 #[inline]
602 #[must_use]
603 fn yyyy(self) -> U64Vec4 {
604 U64Vec4::new(self.y, self.y, self.y, self.y)
605 }
606
607 #[inline]
608 #[must_use]
609 fn yyyz(self) -> U64Vec4 {
610 U64Vec4::new(self.y, self.y, self.y, self.z)
611 }
612
613 #[inline]
614 #[must_use]
615 fn yyzx(self) -> U64Vec4 {
616 U64Vec4::new(self.y, self.y, self.z, self.x)
617 }
618
619 #[inline]
620 #[must_use]
621 fn yyzy(self) -> U64Vec4 {
622 U64Vec4::new(self.y, self.y, self.z, self.y)
623 }
624
625 #[inline]
626 #[must_use]
627 fn yyzz(self) -> U64Vec4 {
628 U64Vec4::new(self.y, self.y, self.z, self.z)
629 }
630
631 #[inline]
632 #[must_use]
633 fn yzxx(self) -> U64Vec4 {
634 U64Vec4::new(self.y, self.z, self.x, self.x)
635 }
636
637 #[inline]
638 #[must_use]
639 fn yzxy(self) -> U64Vec4 {
640 U64Vec4::new(self.y, self.z, self.x, self.y)
641 }
642
643 #[inline]
644 #[must_use]
645 fn yzxz(self) -> U64Vec4 {
646 U64Vec4::new(self.y, self.z, self.x, self.z)
647 }
648
649 #[inline]
650 #[must_use]
651 fn yzyx(self) -> U64Vec4 {
652 U64Vec4::new(self.y, self.z, self.y, self.x)
653 }
654
655 #[inline]
656 #[must_use]
657 fn yzyy(self) -> U64Vec4 {
658 U64Vec4::new(self.y, self.z, self.y, self.y)
659 }
660
661 #[inline]
662 #[must_use]
663 fn yzyz(self) -> U64Vec4 {
664 U64Vec4::new(self.y, self.z, self.y, self.z)
665 }
666
667 #[inline]
668 #[must_use]
669 fn yzzx(self) -> U64Vec4 {
670 U64Vec4::new(self.y, self.z, self.z, self.x)
671 }
672
673 #[inline]
674 #[must_use]
675 fn yzzy(self) -> U64Vec4 {
676 U64Vec4::new(self.y, self.z, self.z, self.y)
677 }
678
679 #[inline]
680 #[must_use]
681 fn yzzz(self) -> U64Vec4 {
682 U64Vec4::new(self.y, self.z, self.z, self.z)
683 }
684
685 #[inline]
686 #[must_use]
687 fn zxxx(self) -> U64Vec4 {
688 U64Vec4::new(self.z, self.x, self.x, self.x)
689 }
690
691 #[inline]
692 #[must_use]
693 fn zxxy(self) -> U64Vec4 {
694 U64Vec4::new(self.z, self.x, self.x, self.y)
695 }
696
697 #[inline]
698 #[must_use]
699 fn zxxz(self) -> U64Vec4 {
700 U64Vec4::new(self.z, self.x, self.x, self.z)
701 }
702
703 #[inline]
704 #[must_use]
705 fn zxyx(self) -> U64Vec4 {
706 U64Vec4::new(self.z, self.x, self.y, self.x)
707 }
708
709 #[inline]
710 #[must_use]
711 fn zxyy(self) -> U64Vec4 {
712 U64Vec4::new(self.z, self.x, self.y, self.y)
713 }
714
715 #[inline]
716 #[must_use]
717 fn zxyz(self) -> U64Vec4 {
718 U64Vec4::new(self.z, self.x, self.y, self.z)
719 }
720
721 #[inline]
722 #[must_use]
723 fn zxzx(self) -> U64Vec4 {
724 U64Vec4::new(self.z, self.x, self.z, self.x)
725 }
726
727 #[inline]
728 #[must_use]
729 fn zxzy(self) -> U64Vec4 {
730 U64Vec4::new(self.z, self.x, self.z, self.y)
731 }
732
733 #[inline]
734 #[must_use]
735 fn zxzz(self) -> U64Vec4 {
736 U64Vec4::new(self.z, self.x, self.z, self.z)
737 }
738
739 #[inline]
740 #[must_use]
741 fn zyxx(self) -> U64Vec4 {
742 U64Vec4::new(self.z, self.y, self.x, self.x)
743 }
744
745 #[inline]
746 #[must_use]
747 fn zyxy(self) -> U64Vec4 {
748 U64Vec4::new(self.z, self.y, self.x, self.y)
749 }
750
751 #[inline]
752 #[must_use]
753 fn zyxz(self) -> U64Vec4 {
754 U64Vec4::new(self.z, self.y, self.x, self.z)
755 }
756
757 #[inline]
758 #[must_use]
759 fn zyyx(self) -> U64Vec4 {
760 U64Vec4::new(self.z, self.y, self.y, self.x)
761 }
762
763 #[inline]
764 #[must_use]
765 fn zyyy(self) -> U64Vec4 {
766 U64Vec4::new(self.z, self.y, self.y, self.y)
767 }
768
769 #[inline]
770 #[must_use]
771 fn zyyz(self) -> U64Vec4 {
772 U64Vec4::new(self.z, self.y, self.y, self.z)
773 }
774
775 #[inline]
776 #[must_use]
777 fn zyzx(self) -> U64Vec4 {
778 U64Vec4::new(self.z, self.y, self.z, self.x)
779 }
780
781 #[inline]
782 #[must_use]
783 fn zyzy(self) -> U64Vec4 {
784 U64Vec4::new(self.z, self.y, self.z, self.y)
785 }
786
787 #[inline]
788 #[must_use]
789 fn zyzz(self) -> U64Vec4 {
790 U64Vec4::new(self.z, self.y, self.z, self.z)
791 }
792
793 #[inline]
794 #[must_use]
795 fn zzxx(self) -> U64Vec4 {
796 U64Vec4::new(self.z, self.z, self.x, self.x)
797 }
798
799 #[inline]
800 #[must_use]
801 fn zzxy(self) -> U64Vec4 {
802 U64Vec4::new(self.z, self.z, self.x, self.y)
803 }
804
805 #[inline]
806 #[must_use]
807 fn zzxz(self) -> U64Vec4 {
808 U64Vec4::new(self.z, self.z, self.x, self.z)
809 }
810
811 #[inline]
812 #[must_use]
813 fn zzyx(self) -> U64Vec4 {
814 U64Vec4::new(self.z, self.z, self.y, self.x)
815 }
816
817 #[inline]
818 #[must_use]
819 fn zzyy(self) -> U64Vec4 {
820 U64Vec4::new(self.z, self.z, self.y, self.y)
821 }
822
823 #[inline]
824 #[must_use]
825 fn zzyz(self) -> U64Vec4 {
826 U64Vec4::new(self.z, self.z, self.y, self.z)
827 }
828
829 #[inline]
830 #[must_use]
831 fn zzzx(self) -> U64Vec4 {
832 U64Vec4::new(self.z, self.z, self.z, self.x)
833 }
834
835 #[inline]
836 #[must_use]
837 fn zzzy(self) -> U64Vec4 {
838 U64Vec4::new(self.z, self.z, self.z, self.y)
839 }
840
841 #[inline]
842 #[must_use]
843 fn zzzz(self) -> U64Vec4 {
844 U64Vec4::new(self.z, self.z, self.z, self.z)
845 }
846}