7个版本
0.2.2 | 2023年2月25日 |
---|---|
0.2.1 | 2021年1月30日 |
0.1.2 | 2021年1月8日 |
0.1.1 | 2020年7月30日 |
0.0.1 | 2020年5月21日 |
#60 in 无标准库
26,787 每月下载量
在 32 个crate中使用(通过 abi_stable)
210KB
2K SLoC
repr_offset
允许计算并安全地使用具有定义布局的类型字段偏移量。
目前仅支持 #[repr(C)]
/#[repr(C,packed)]
/#[repr(C,align)]
结构体。
特性
以下是一些该库提供的功能
-
ReprOffset
带宏,输出与字段偏移量相关联的常量,并为每个字段实现GetFieldOffset
特性。 -
FieldOffset
类型(如何表示偏移量),包含通过结构体指针操作字段的方法,包括获取字段引用(或指针)。 -
unsafe_struct_field_offsets
宏作为ReprOffset
带宏的替代方案,当禁用 "derive" 功能时最有用。 -
《GetFieldOffset》特质,用于获取字段的
FieldOffset
,以及用于获取字段FieldOffset
的便捷语法的宏OFF!
、off
、PUB_OFF!
和pub_off
。 -
ext
模块扩展特质,定义了给定FieldOffset
操作字段的方法。
示例
有关示例,您可以查看 repr_offset
库根模块的文档示例部分
未来计划
目前没有。
Cargo 功能
以下是 repr_offset
中的 cargo 功能
-
derive
(默认禁用):启用ReprOffset
derive 宏。这需要与syn
相同的 Rust 版本,目前为>= 1.56.0
。 -
"for_examples"
(默认禁用):启用for_examples
模块,其中包含文档示例中使用的类型。
将 "derive" 功能添加到 Cargo.toml 文件
repr_offset = { version = "0.2", features = ["derive"] }
no-std 支持
这个库无条件地 #![no_std]
,未来也不太可能改变。
最低 Rust 版本
此 crate 支持 Rust 1.41.0。
许可证
受 Zlib 许可证的许可
依赖项
~74–370KB