1use crate::core::*;
2use data_type::*;
3
4pub trait UniformDataType: DataType {}
8
9impl UniformDataType for u8 {}
10impl UniformDataType for u16 {}
11impl UniformDataType for u32 {}
12impl UniformDataType for i8 {}
13impl UniformDataType for i16 {}
14impl UniformDataType for i32 {}
15impl UniformDataType for f16 {}
16impl UniformDataType for f32 {}
17
18impl<T: UniformDataType + PrimitiveDataType> UniformDataType for Vector2<T> {}
19impl<T: UniformDataType + PrimitiveDataType> UniformDataType for Vector3<T> {}
20impl<T: UniformDataType + PrimitiveDataType> UniformDataType for Vector4<T> {}
21
22impl UniformDataType for Quat {}
23
24impl<T: UniformDataType + PrimitiveDataType> UniformDataType for Matrix2<T> {}
25impl<T: UniformDataType + PrimitiveDataType> UniformDataType for Matrix3<T> {}
26impl<T: UniformDataType + PrimitiveDataType> UniformDataType for Matrix4<T> {}
27
28impl<T: UniformDataType + ?Sized> UniformDataType for &T {}