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 日

#89Rust 模式

Download history 75434/week @ 2024-03-14 80611/week @ 2024-03-21 77016/week @ 2024-03-28 77622/week @ 2024-04-04 79969/week @ 2024-04-11 79817/week @ 2024-04-18 79157/week @ 2024-04-25 80141/week @ 2024-05-02 80243/week @ 2024-05-09 81407/week @ 2024-05-16 81596/week @ 2024-05-23 83708/week @ 2024-05-30 83983/week @ 2024-06-06 95804/week @ 2024-06-13 91227/week @ 2024-06-20 77697/week @ 2024-06-27

361,880 每月下载量
529 个crate中使用 (17 个直接使用)

MIT/Apache

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