1 unstable release
0.1.0 | Jul 3, 2024 |
---|
#1701 in Procedural macros
86 downloads per month
Used in 2 crates
15KB
217 lines
uniform-array-derive
Derive array-like behavior for your structs of uniform types.
This will derive AsRef<[T]>
, AsMut<[T]>,
Deref<Target = [T]>,
DerefMut,
Index<Target = T>and
IndexMutfor your homogeneous structs field type
T. Since the generated code is
unsafe, it is feature gated behind a
#[cfg(feature = "unsafe")]` by default.
#[derive(UniformArray)]
pub struct Vector3 {
pub x: f32,
pub y: f32,
pub z: f32,
}
#[derive(UniformArray)]
pub struct Coordinate(u32, u32);
If you need to rename the feature gate, you can do that as well:
/// Use a custom feature gate instead of "unsafe".
#[derive(UniformArray)]
#[uniform_array(safety_gate = "super_unsafe")]
pub struct Quaternion<T>
where
T: Sized,
{
pub a: T,
pub b: T,
pub c: T,
pub d: T,
}
If you only need to ensure that all your fields have the same type, consider the ensure-uniform-type crate instead.
Dependencies
~0.6–1MB
~23K SLoC