6个稳定版本
2.0.0 | 2024年7月3日 |
---|---|
1.2.0 | 2024年6月20日 |
1.1.1 | 2024年6月20日 |
1.1.0 | 2024年5月31日 |
1.0.1 | 2024年5月30日 |
#532 在 嵌入式开发
每月216次下载
25KB
434 代码行
生成可以叠加的结构体的proc-macro。有关使用方法和示例,请参阅文档。
使用方法
#[overlay]
#[derive(Clone, Debug)]
pub struct InquiryCommand {
#[overlay(byte=0, bits=0..8)]
pub op_code: u8,
#[overlay(byte=1)]
pub enable_vital_product_data: bool,
#[overlay(byte=2, bits=0..=7)]
pub page_code: u8,
#[overlay(bytes=3..=4, bits=0..=7)]
pub allocation_length: u16,
...
}
这将创建一个围绕字节数组的包装结构体,并为每个"字段"生成getter和setter,访问给定偏移的字节/位。
待办事项
- 支持嵌套结构体
- 支持大于
u32
的单个字段 ? compile_error!()
/ 移除unwrap
/expect
- 并使用 trybuild
- 发出一个假的结构体以避免进一步的错误
- 允许在字节/位范围内缺少起始/结束位置
- 升级到
syn
2.0 - 不要在枚举成员上删除所有其他属性
- 关闭所有 syn (crate 依赖) 功能(除必要的以外)
依赖关系
~1.5MB
~34K SLoC