pub trait Vec2Swizzles: Sized + Copy + Clone {
type Vec3;
type Vec4;
#[inline]
fn xy(self) -> Self {
self
}
fn xx(self) -> Self;
fn yx(self) -> Self;
fn yy(self) -> Self;
fn xxx(self) -> Self::Vec3;
fn xxy(self) -> Self::Vec3;
fn xyx(self) -> Self::Vec3;
fn xyy(self) -> Self::Vec3;
fn yxx(self) -> Self::Vec3;
fn yxy(self) -> Self::Vec3;
fn yyx(self) -> Self::Vec3;
fn yyy(self) -> Self::Vec3;
fn xxxx(self) -> Self::Vec4;
fn xxxy(self) -> Self::Vec4;
fn xxyx(self) -> Self::Vec4;
fn xxyy(self) -> Self::Vec4;
fn xyxx(self) -> Self::Vec4;
fn xyxy(self) -> Self::Vec4;
fn xyyx(self) -> Self::Vec4;
fn xyyy(self) -> Self::Vec4;
fn yxxx(self) -> Self::Vec4;
fn yxxy(self) -> Self::Vec4;
fn yxyx(self) -> Self::Vec4;
fn yxyy(self) -> Self::Vec4;
fn yyxx(self) -> Self::Vec4;
fn yyxy(self) -> Self::Vec4;
fn yyyx(self) -> Self::Vec4;
fn yyyy(self) -> Self::Vec4;
}
pub trait Vec3Swizzles: Sized + Copy + Clone {
type Vec2;
type Vec4;
#[inline]
fn xyz(self) -> Self {
self
}
fn xx(self) -> Self::Vec2;
fn xy(self) -> Self::Vec2;
fn xz(self) -> Self::Vec2;
fn yx(self) -> Self::Vec2;
fn yy(self) -> Self::Vec2;
fn yz(self) -> Self::Vec2;
fn zx(self) -> Self::Vec2;
fn zy(self) -> Self::Vec2;
fn zz(self) -> Self::Vec2;
fn xxx(self) -> Self;
fn xxy(self) -> Self;
fn xxz(self) -> Self;
fn xyx(self) -> Self;
fn xyy(self) -> Self;
fn xzx(self) -> Self;
fn xzy(self) -> Self;
fn xzz(self) -> Self;
fn yxx(self) -> Self;
fn yxy(self) -> Self;
fn yxz(self) -> Self;
fn yyx(self) -> Self;
fn yyy(self) -> Self;
fn yyz(self) -> Self;
fn yzx(self) -> Self;
fn yzy(self) -> Self;
fn yzz(self) -> Self;
fn zxx(self) -> Self;
fn zxy(self) -> Self;
fn zxz(self) -> Self;
fn zyx(self) -> Self;
fn zyy(self) -> Self;
fn zyz(self) -> Self;
fn zzx(self) -> Self;
fn zzy(self) -> Self;
fn zzz(self) -> Self;
fn xxxx(self) -> Self::Vec4;
fn xxxy(self) -> Self::Vec4;
fn xxxz(self) -> Self::Vec4;
fn xxyx(self) -> Self::Vec4;
fn xxyy(self) -> Self::Vec4;
fn xxyz(self) -> Self::Vec4;
fn xxzx(self) -> Self::Vec4;
fn xxzy(self) -> Self::Vec4;
fn xxzz(self) -> Self::Vec4;
fn xyxx(self) -> Self::Vec4;
fn xyxy(self) -> Self::Vec4;
fn xyxz(self) -> Self::Vec4;
fn xyyx(self) -> Self::Vec4;
fn xyyy(self) -> Self::Vec4;
fn xyyz(self) -> Self::Vec4;
fn xyzx(self) -> Self::Vec4;
fn xyzy(self) -> Self::Vec4;
fn xyzz(self) -> Self::Vec4;
fn xzxx(self) -> Self::Vec4;
fn xzxy(self) -> Self::Vec4;
fn xzxz(self) -> Self::Vec4;
fn xzyx(self) -> Self::Vec4;
fn xzyy(self) -> Self::Vec4;
fn xzyz(self) -> Self::Vec4;
fn xzzx(self) -> Self::Vec4;
fn xzzy(self) -> Self::Vec4;
fn xzzz(self) -> Self::Vec4;
fn yxxx(self) -> Self::Vec4;
fn yxxy(self) -> Self::Vec4;
fn yxxz(self) -> Self::Vec4;
fn yxyx(self) -> Self::Vec4;
fn yxyy(self) -> Self::Vec4;
fn yxyz(self) -> Self::Vec4;
fn yxzx(self) -> Self::Vec4;
fn yxzy(self) -> Self::Vec4;
fn yxzz(self) -> Self::Vec4;
fn yyxx(self) -> Self::Vec4;
fn yyxy(self) -> Self::Vec4;
fn yyxz(self) -> Self::Vec4;
fn yyyx(self) -> Self::Vec4;
fn yyyy(self) -> Self::Vec4;
fn yyyz(self) -> Self::Vec4;
fn yyzx(self) -> Self::Vec4;
fn yyzy(self) -> Self::Vec4;
fn yyzz(self) -> Self::Vec4;
fn yzxx(self) -> Self::Vec4;
fn yzxy(self) -> Self::Vec4;
fn yzxz(self) -> Self::Vec4;
fn yzyx(self) -> Self::Vec4;
fn yzyy(self) -> Self::Vec4;
fn yzyz(self) -> Self::Vec4;
fn yzzx(self) -> Self::Vec4;
fn yzzy(self) -> Self::Vec4;
fn yzzz(self) -> Self::Vec4;
fn zxxx(self) -> Self::Vec4;
fn zxxy(self) -> Self::Vec4;
fn zxxz(self) -> Self::Vec4;
fn zxyx(self) -> Self::Vec4;
fn zxyy(self) -> Self::Vec4;
fn zxyz(self) -> Self::Vec4;
fn zxzx(self) -> Self::Vec4;
fn zxzy(self) -> Self::Vec4;
fn zxzz(self) -> Self::Vec4;
fn zyxx(self) -> Self::Vec4;
fn zyxy(self) -> Self::Vec4;
fn zyxz(self) -> Self::Vec4;
fn zyyx(self) -> Self::Vec4;
fn zyyy(self) -> Self::Vec4;
fn zyyz(self) -> Self::Vec4;
fn zyzx(self) -> Self::Vec4;
fn zyzy(self) -> Self::Vec4;
fn zyzz(self) -> Self::Vec4;
fn zzxx(self) -> Self::Vec4;
fn zzxy(self) -> Self::Vec4;
fn zzxz(self) -> Self::Vec4;
fn zzyx(self) -> Self::Vec4;
fn zzyy(self) -> Self::Vec4;
fn zzyz(self) -> Self::Vec4;
fn zzzx(self) -> Self::Vec4;
fn zzzy(self) -> Self::Vec4;
fn zzzz(self) -> Self::Vec4;
}
pub trait Vec4Swizzles: Sized + Copy + Clone {
type Vec2;
type Vec3;
#[inline]
fn xyzw(self) -> Self {
self
}
fn xx(self) -> Self::Vec2;
fn xy(self) -> Self::Vec2;
fn xz(self) -> Self::Vec2;
fn xw(self) -> Self::Vec2;
fn yx(self) -> Self::Vec2;
fn yy(self) -> Self::Vec2;
fn yz(self) -> Self::Vec2;
fn yw(self) -> Self::Vec2;
fn zx(self) -> Self::Vec2;
fn zy(self) -> Self::Vec2;
fn zz(self) -> Self::Vec2;
fn zw(self) -> Self::Vec2;
fn wx(self) -> Self::Vec2;
fn wy(self) -> Self::Vec2;
fn wz(self) -> Self::Vec2;
fn ww(self) -> Self::Vec2;
fn xxx(self) -> Self::Vec3;
fn xxy(self) -> Self::Vec3;
fn xxz(self) -> Self::Vec3;
fn xxw(self) -> Self::Vec3;
fn xyx(self) -> Self::Vec3;
fn xyy(self) -> Self::Vec3;
fn xyz(self) -> Self::Vec3;
fn xyw(self) -> Self::Vec3;
fn xzx(self) -> Self::Vec3;
fn xzy(self) -> Self::Vec3;
fn xzz(self) -> Self::Vec3;
fn xzw(self) -> Self::Vec3;
fn xwx(self) -> Self::Vec3;
fn xwy(self) -> Self::Vec3;
fn xwz(self) -> Self::Vec3;
fn xww(self) -> Self::Vec3;
fn yxx(self) -> Self::Vec3;
fn yxy(self) -> Self::Vec3;
fn yxz(self) -> Self::Vec3;
fn yxw(self) -> Self::Vec3;
fn yyx(self) -> Self::Vec3;
fn yyy(self) -> Self::Vec3;
fn yyz(self) -> Self::Vec3;
fn yyw(self) -> Self::Vec3;
fn yzx(self) -> Self::Vec3;
fn yzy(self) -> Self::Vec3;
fn yzz(self) -> Self::Vec3;
fn yzw(self) -> Self::Vec3;
fn ywx(self) -> Self::Vec3;
fn ywy(self) -> Self::Vec3;
fn ywz(self) -> Self::Vec3;
fn yww(self) -> Self::Vec3;
fn zxx(self) -> Self::Vec3;
fn zxy(self) -> Self::Vec3;
fn zxz(self) -> Self::Vec3;
fn zxw(self) -> Self::Vec3;
fn zyx(self) -> Self::Vec3;
fn zyy(self) -> Self::Vec3;
fn zyz(self) -> Self::Vec3;
fn zyw(self) -> Self::Vec3;
fn zzx(self) -> Self::Vec3;
fn zzy(self) -> Self::Vec3;
fn zzz(self) -> Self::Vec3;
fn zzw(self) -> Self::Vec3;
fn zwx(self) -> Self::Vec3;
fn zwy(self) -> Self::Vec3;
fn zwz(self) -> Self::Vec3;
fn zww(self) -> Self::Vec3;
fn wxx(self) -> Self::Vec3;
fn wxy(self) -> Self::Vec3;
fn wxz(self) -> Self::Vec3;
fn wxw(self) -> Self::Vec3;
fn wyx(self) -> Self::Vec3;
fn wyy(self) -> Self::Vec3;
fn wyz(self) -> Self::Vec3;
fn wyw(self) -> Self::Vec3;
fn wzx(self) -> Self::Vec3;
fn wzy(self) -> Self::Vec3;
fn wzz(self) -> Self::Vec3;
fn wzw(self) -> Self::Vec3;
fn wwx(self) -> Self::Vec3;
fn wwy(self) -> Self::Vec3;
fn wwz(self) -> Self::Vec3;
fn www(self) -> Self::Vec3;
fn xxxx(self) -> Self;
fn xxxy(self) -> Self;
fn xxxz(self) -> Self;
fn xxxw(self) -> Self;
fn xxyx(self) -> Self;
fn xxyy(self) -> Self;
fn xxyz(self) -> Self;
fn xxyw(self) -> Self;
fn xxzx(self) -> Self;
fn xxzy(self) -> Self;
fn xxzz(self) -> Self;
fn xxzw(self) -> Self;
fn xxwx(self) -> Self;
fn xxwy(self) -> Self;
fn xxwz(self) -> Self;
fn xxww(self) -> Self;
fn xyxx(self) -> Self;
fn xyxy(self) -> Self;
fn xyxz(self) -> Self;
fn xyxw(self) -> Self;
fn xyyx(self) -> Self;
fn xyyy(self) -> Self;
fn xyyz(self) -> Self;
fn xyyw(self) -> Self;
fn xyzx(self) -> Self;
fn xyzy(self) -> Self;
fn xyzz(self) -> Self;
fn xywx(self) -> Self;
fn xywy(self) -> Self;
fn xywz(self) -> Self;
fn xyww(self) -> Self;
fn xzxx(self) -> Self;
fn xzxy(self) -> Self;
fn xzxz(self) -> Self;
fn xzxw(self) -> Self;
fn xzyx(self) -> Self;
fn xzyy(self) -> Self;
fn xzyz(self) -> Self;
fn xzyw(self) -> Self;
fn xzzx(self) -> Self;
fn xzzy(self) -> Self;
fn xzzz(self) -> Self;
fn xzzw(self) -> Self;
fn xzwx(self) -> Self;
fn xzwy(self) -> Self;
fn xzwz(self) -> Self;
fn xzww(self) -> Self;
fn xwxx(self) -> Self;
fn xwxy(self) -> Self;
fn xwxz(self) -> Self;
fn xwxw(self) -> Self;
fn xwyx(self) -> Self;
fn xwyy(self) -> Self;
fn xwyz(self) -> Self;
fn xwyw(self) -> Self;
fn xwzx(self) -> Self;
fn xwzy(self) -> Self;
fn xwzz(self) -> Self;
fn xwzw(self) -> Self;
fn xwwx(self) -> Self;
fn xwwy(self) -> Self;
fn xwwz(self) -> Self;
fn xwww(self) -> Self;
fn yxxx(self) -> Self;
fn yxxy(self) -> Self;
fn yxxz(self) -> Self;
fn yxxw(self) -> Self;
fn yxyx(self) -> Self;
fn yxyy(self) -> Self;
fn yxyz(self) -> Self;
fn yxyw(self) -> Self;
fn yxzx(self) -> Self;
fn yxzy(self) -> Self;
fn yxzz(self) -> Self;
fn yxzw(self) -> Self;
fn yxwx(self) -> Self;
fn yxwy(self) -> Self;
fn yxwz(self) -> Self;
fn yxww(self) -> Self;
fn yyxx(self) -> Self;
fn yyxy(self) -> Self;
fn yyxz(self) -> Self;
fn yyxw(self) -> Self;
fn yyyx(self) -> Self;
fn yyyy(self) -> Self;
fn yyyz(self) -> Self;
fn yyyw(self) -> Self;
fn yyzx(self) -> Self;
fn yyzy(self) -> Self;
fn yyzz(self) -> Self;
fn yyzw(self) -> Self;
fn yywx(self) -> Self;
fn yywy(self) -> Self;
fn yywz(self) -> Self;
fn yyww(self) -> Self;
fn yzxx(self) -> Self;
fn yzxy(self) -> Self;
fn yzxz(self) -> Self;
fn yzxw(self) -> Self;
fn yzyx(self) -> Self;
fn yzyy(self) -> Self;
fn yzyz(self) -> Self;
fn yzyw(self) -> Self;
fn yzzx(self) -> Self;
fn yzzy(self) -> Self;
fn yzzz(self) -> Self;
fn yzzw(self) -> Self;
fn yzwx(self) -> Self;
fn yzwy(self) -> Self;
fn yzwz(self) -> Self;
fn yzww(self) -> Self;
fn ywxx(self) -> Self;
fn ywxy(self) -> Self;
fn ywxz(self) -> Self;
fn ywxw(self) -> Self;
fn ywyx(self) -> Self;
fn ywyy(self) -> Self;
fn ywyz(self) -> Self;
fn ywyw(self) -> Self;
fn ywzx(self) -> Self;
fn ywzy(self) -> Self;
fn ywzz(self) -> Self;
fn ywzw(self) -> Self;
fn ywwx(self) -> Self;
fn ywwy(self) -> Self;
fn ywwz(self) -> Self;
fn ywww(self) -> Self;
fn zxxx(self) -> Self;
fn zxxy(self) -> Self;
fn zxxz(self) -> Self;
fn zxxw(self) -> Self;
fn zxyx(self) -> Self;
fn zxyy(self) -> Self;
fn zxyz(self) -> Self;
fn zxyw(self) -> Self;
fn zxzx(self) -> Self;
fn zxzy(self) -> Self;
fn zxzz(self) -> Self;
fn zxzw(self) -> Self;
fn zxwx(self) -> Self;
fn zxwy(self) -> Self;
fn zxwz(self) -> Self;
fn zxww(self) -> Self;
fn zyxx(self) -> Self;
fn zyxy(self) -> Self;
fn zyxz(self) -> Self;
fn zyxw(self) -> Self;
fn zyyx(self) -> Self;
fn zyyy(self) -> Self;
fn zyyz(self) -> Self;
fn zyyw(self) -> Self;
fn zyzx(self) -> Self;
fn zyzy(self) -> Self;
fn zyzz(self) -> Self;
fn zyzw(self) -> Self;
fn zywx(self) -> Self;
fn zywy(self) -> Self;
fn zywz(self) -> Self;
fn zyww(self) -> Self;
fn zzxx(self) -> Self;
fn zzxy(self) -> Self;
fn zzxz(self) -> Self;
fn zzxw(self) -> Self;
fn zzyx(self) -> Self;
fn zzyy(self) -> Self;
fn zzyz(self) -> Self;
fn zzyw(self) -> Self;
fn zzzx(self) -> Self;
fn zzzy(self) -> Self;
fn zzzz(self) -> Self;
fn zzzw(self) -> Self;
fn zzwx(self) -> Self;
fn zzwy(self) -> Self;
fn zzwz(self) -> Self;
fn zzww(self) -> Self;
fn zwxx(self) -> Self;
fn zwxy(self) -> Self;
fn zwxz(self) -> Self;
fn zwxw(self) -> Self;
fn zwyx(self) -> Self;
fn zwyy(self) -> Self;
fn zwyz(self) -> Self;
fn zwyw(self) -> Self;
fn zwzx(self) -> Self;
fn zwzy(self) -> Self;
fn zwzz(self) -> Self;
fn zwzw(self) -> Self;
fn zwwx(self) -> Self;
fn zwwy(self) -> Self;
fn zwwz(self) -> Self;
fn zwww(self) -> Self;
fn wxxx(self) -> Self;
fn wxxy(self) -> Self;
fn wxxz(self) -> Self;
fn wxxw(self) -> Self;
fn wxyx(self) -> Self;
fn wxyy(self) -> Self;
fn wxyz(self) -> Self;
fn wxyw(self) -> Self;
fn wxzx(self) -> Self;
fn wxzy(self) -> Self;
fn wxzz(self) -> Self;
fn wxzw(self) -> Self;
fn wxwx(self) -> Self;
fn wxwy(self) -> Self;
fn wxwz(self) -> Self;
fn wxww(self) -> Self;
fn wyxx(self) -> Self;
fn wyxy(self) -> Self;
fn wyxz(self) -> Self;
fn wyxw(self) -> Self;
fn wyyx(self) -> Self;
fn wyyy(self) -> Self;
fn wyyz(self) -> Self;
fn wyyw(self) -> Self;
fn wyzx(self) -> Self;
fn wyzy(self) -> Self;
fn wyzz(self) -> Self;
fn wyzw(self) -> Self;
fn wywx(self) -> Self;
fn wywy(self) -> Self;
fn wywz(self) -> Self;
fn wyww(self) -> Self;
fn wzxx(self) -> Self;
fn wzxy(self) -> Self;
fn wzxz(self) -> Self;
fn wzxw(self) -> Self;
fn wzyx(self) -> Self;
fn wzyy(self) -> Self;
fn wzyz(self) -> Self;
fn wzyw(self) -> Self;
fn wzzx(self) -> Self;
fn wzzy(self) -> Self;
fn wzzz(self) -> Self;
fn wzzw(self) -> Self;
fn wzwx(self) -> Self;
fn wzwy(self) -> Self;
fn wzwz(self) -> Self;
fn wzww(self) -> Self;
fn wwxx(self) -> Self;
fn wwxy(self) -> Self;
fn wwxz(self) -> Self;
fn wwxw(self) -> Self;
fn wwyx(self) -> Self;
fn wwyy(self) -> Self;
fn wwyz(self) -> Self;
fn wwyw(self) -> Self;
fn wwzx(self) -> Self;
fn wwzy(self) -> Self;
fn wwzz(self) -> Self;
fn wwzw(self) -> Self;
fn wwwx(self) -> Self;
fn wwwy(self) -> Self;
fn wwwz(self) -> Self;
fn wwww(self) -> Self;
}