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