testaso 0.1.0

Test alignment, size and offset for structs.
Documentation
  • Coverage
  • 100%
    2 out of 2 items documented2 out of 2 items with examples
  • Size
  • Source code size: 8.83 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 105.52 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 7s Average build duration of successful builds.
  • all releases: 7s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Homepage
  • enarx/testaso
    1 2 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • haraldh github:enarx:owners

lint enarxbot Workflow Status Average time to resolve an issue Percentage of issues still open Maintenance

testaso

Macro to test alignment, size and offsets of structs

This is mostly useful for creating FFI structures.

The crucial field offset calculation was extracted from the memoffset crate. Kudos to Gilad Naaman and Ralf Jung and all the other contributors.

Examples

#[repr(C)]
struct Simple {
    a: u32,
    b: [u8; 2],
    c: i64,
}

#[repr(C, packed)]
struct SimplePacked {
    a: u32,
    b: [u8; 2],
    c: i64,
}

#[cfg(test)]
mod test {
    use testaso::testaso;

    use super::Simple;
    use super::SimplePacked;

    testaso! {
        struct Simple: 8, 16 => {
            a: 0,
            b: 4,
            c: 8
        }

        struct SimplePacked: 1, 14 => {
            a: 0,
            b: 4,
            c: 6
        }
    }
}

License: MIT