1个不稳定版本
0.1.0 | 2024年7月3日 |
---|
#1637 在 过程宏
每月下载量 271
在 2 crates 中使用
15KB
217 行
uniform-array-derive
为统一类型的结构体提供类似数组的衍生行为。
这将衍生 AsRef<[T]>
、AsMut<[T]>,
Deref<Target = [T]>,
DerefMut,
Index<Target = T>和
IndexMutfor 你的同构结构体字段类型 type
T. 由于生成的代码是
unsafe, 它默认在
#[cfg(feature = "unsafe")]` 特性门后面。
#[derive(UniformArray)]
pub struct Vector3 {
pub x: f32,
pub y: f32,
pub z: f32,
}
#[derive(UniformArray)]
pub struct Coordinate(u32, u32);
如果您需要重命名特性门,也可以这样做
/// 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,
}
如果您只需要确保所有字段具有相同的类型,请考虑使用 ensure-uniform-type crate。
依赖项
~0.6–1MB
~24K SLoC