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