10 个版本
使用旧的 Rust 2015
0.3.6 | 2023 年 6 月 2 日 |
---|---|
0.3.5 | 2023 年 3 月 4 日 |
0.3.4 | 2021 年 5 月 12 日 |
0.3.3 | 2021 年 2 月 10 日 |
0.1.1 | 2016 年 5 月 2 日 |
#89 在 Rust 模式
361,880 每月下载量
在 529 个crate中使用 (17 个直接使用)
21KB
295 代码行
field-offset: 安全成员指针功能
此crate实现了一个offset_of!(...)
宏,该宏安全地封装了一个成员指针。
示例
struct Foo {
x: u32,
y: f64
}
let foo_y = offset_of!(Foo => y);
let mut a = Foo { x: 1, y: 2.0 };
*foo_y.apply_mut(&mut a) = 3.0;
assert!(a.y == 3.0);
该宏返回一个FieldOffset<T, U>
实例,它表示一个指向包含类型T
中类型U
的字段的指针。
FieldOffset
类型实现了Add
。应用生成的字段偏移量相当于先应用第一个字段偏移量,然后应用第二个字段偏移量。
该宏还支持访问嵌套字段
let bar_foo_y = offset_of!(Bar => foo: Foo => y);
依赖关系
~46KB