testaso

Crates.iotestaso
lib.rstestaso
version0.1.0
sourcesrc
created_at2022-03-25 14:55:03.88006
updated_at2022-03-25 14:55:03.88006
descriptionTest alignment, size and offset for structs.
homepagehttps://github.com/enarx/testaso
repositoryhttps://github.com/enarx/testaso
max_upload_size
id556254
size8,831
owners (github:enarx:owners)

documentation

README

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

Commit count: 7

cargo fmt