From 1c0891bbbb06a09ab2b3000463965b95c92b53bc Mon Sep 17 00:00:00 2001 From: iMplode nZ Date: Fri, 12 Feb 2021 15:30:12 -0800 Subject: [PATCH] Added bytemuck for Unit and Quaternion. --- src/base/unit.rs | 6 ++++++ src/geometry/quaternion.rs | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/src/base/unit.rs b/src/base/unit.rs index 2483307a..70e3a927 100644 --- a/src/base/unit.rs +++ b/src/base/unit.rs @@ -30,6 +30,12 @@ pub struct Unit { pub(crate) value: T, } +#[cfg(feature = "bytemuck")] +unsafe impl bytemuck::Zeroable for Unit where T: bytemuck::Zeroable {} + +#[cfg(feature = "bytemuck")] +unsafe impl bytemuck::Pod for Unit where T: bytemuck::Pod {} + #[cfg(feature = "serde-serialize")] impl Serialize for Unit { fn serialize(&self, serializer: S) -> Result diff --git a/src/geometry/quaternion.rs b/src/geometry/quaternion.rs index a5db1c69..78b95332 100755 --- a/src/geometry/quaternion.rs +++ b/src/geometry/quaternion.rs @@ -40,6 +40,12 @@ impl Default for Quaternion { } } +#[cfg(feature = "bytemuck")] +unsafe impl bytemuck::Zeroable for Quaternion where Vector4: bytemuck::Zeroable {} + +#[cfg(feature = "bytemuck")] +unsafe impl bytemuck::Pod for Quaternion where Vector4: bytemuck::Pod, N: Copy {} + #[cfg(feature = "abomonation-serialize")] impl Abomonation for Quaternion where