#structural #assertions #struct #layout #testing #assert #field

structural-assert

用于生成测试宏,可对结构体的布局进行断言

1个不稳定版本

0.1.0 2021年4月21日

#20 in #structural

MIT 协议

8KB
128 代码行

structural-assert

结构体布局的行内断言。此功能主要为了简化符合特定规范的结构体实现,该规范定义了字段的起始和结束位置。具体用途最初是为了帮助忠实复制来自NVMe规范的结构体。

使用方法

ust structural_assert::test_structure;

#[test_structure(size = 20)]
#[repr(C, packed)]
pub struct Foo {
    #[loc(0:0)]
    pub a: u8,
    #[loc(1:1)]
    pub b: u8,
    #[loc(2:3)]
    pub c: u16,
    #[loc(4:19)]
    pub d: u128,
}

依赖

~1.5MB
~35K SLoC