4 个版本 (2 个破坏性更改)
| 0.2.0 | 2021年1月29日 |
|---|---|
| 0.1.1 | 2020年7月30日 |
| 0.1.0 | 2020年6月14日 |
| 0.0.0 | 2020年5月21日 |
#7 在 #offset-of
每月下载量 94
用于 repr_offset
16KB
348 行
repr_offset 允许计算并安全地使用具有定义布局的类型中的字段偏移量。
目前仅支持 #[repr(C)]/#[repr(C,packed)]/#[repr(C,align)] 结构体。
功能
以下是该库提供的一些功能
-
提供
ReprOffset推导宏,该宏输出与字段偏移量相关联的常量,并为每个字段实现GetFieldOffset特性。 -
提供
FieldOffset类型(如何表示偏移量),包含通过结构体的指针操作字段的函数,包括获取字段引用(或指针)的函数。 -
作为
ReprOffset宏的替代方案,unsafe_struct_field_offsets宏,在禁用"derive"功能时非常有用。 -
GetFieldOffset特质,用于获取字段的FieldOffset,以及用于获取字段FieldOffset的宏OFF!、off、PUB_OFF!和pub_off,语法方便。 -
来自
ext模块的扩展特质,它定义了在给定FieldOffset的情况下操作字段的函数。
示例
对于示例,您可以查看repr_offset存储库根模块的文档中的示例部分
未来计划
目前没有。
Cargo功能
这些是repr_offset中的cargo功能
-
derive(默认禁用):启用ReprOffset宏。这需要与syn相同的Rust版本,目前为>= 1.56.0。 -
"for_examples"(默认禁用):启用for_examples模块,其中包含文档示例中使用的类型。
将"derive"功能添加到Cargo.toml文件
repr_offset = { version = "0.2", features = ["derive"] }
no-std支持
这个库无条件地#![no_std],并且将来不太可能改变。
最小Rust版本
此存储库支持Rust回退到1.41.0。
许可证
使用Zlib许可证授权
依赖关系
~1.7–2.6MB
~56K SLoC