#[cfg(feature = "zerocopy")]
use ::zerocopy::*;
use crate::VectorScalar;
#[derive(Copy, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "zerocopy", derive(FromBytes, Immutable, IntoBytes, KnownLayout))]
#[repr(C)]
pub struct Vec2<T: VectorScalar> {
pub x: T,
pub y: T,
}
#[derive(Copy, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "zerocopy", derive(FromBytes, Immutable, IntoBytes, KnownLayout))]
#[repr(C)]
pub struct Vec3<T: VectorScalar> {
pub x: T,
pub y: T,
pub z: T,
}
#[derive(Copy, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "zerocopy", derive(FromBytes, Immutable, IntoBytes, KnownLayout))]
#[repr(C)]
pub struct Vec4<T: VectorScalar> {
pub x: T,
pub y: T,
pub z: T,
pub w: T,
}