1 unstable release
0.1.0 | Apr 21, 2021 |
---|
#19 in #structural
8KB
128 lines
structural-assert
Inline assertions of the structural layout of a struct. This was implemented exclusively to make it easier to implement structs which conform to a specification which defines the start and end of a field. The specific use case was initially to help faithfully reproduce structures from the NVMe spec.
Usage
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,
}
Dependencies
~1.5MB
~38K SLoC