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 • Rust 包仓库 75434/week @ 2024-03-14 • Rust 包仓库 80611/week @ 2024-03-21 • Rust 包仓库 77016/week @ 2024-03-28 • Rust 包仓库 77622/week @ 2024-04-04 • Rust 包仓库 79969/week @ 2024-04-11 • Rust 包仓库 79817/week @ 2024-04-18 • Rust 包仓库 79157/week @ 2024-04-25 • Rust 包仓库 80141/week @ 2024-05-02 • Rust 包仓库 80243/week @ 2024-05-09 • Rust 包仓库 81407/week @ 2024-05-16 • Rust 包仓库 81596/week @ 2024-05-23 • Rust 包仓库 83708/week @ 2024-05-30 • Rust 包仓库 83983/week @ 2024-06-06 • Rust 包仓库 95804/week @ 2024-06-13 • Rust 包仓库 91227/week @ 2024-06-20 • Rust 包仓库 77697/week @ 2024-06-27 • Rust 包仓库

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