Macro static_assertions::assert_eq_size [] [src]

macro_rules! assert_eq_size {
    ($x:ty, $($xs:ty),+) => { ... };
    ($label:ident; $x:ty, $($xs:ty),+) => { ... };
}

Asserts at compile-time that the types have equal sizes.

Example

struct Byte(u8);

assert_eq_size!(pair; (u16, u16), [u16; 2], [u8; 4]);

// Fails to compile (same label):
// assert_eq_size!(pair; u8, u8);

fn main() {
    assert_eq_size!(Byte, u8);

    // Supports unlimited arguments:
    assert_eq_size!([Byte; 4], [u16; 2], u32);

    // Produces a compilation failure:
    // assert_eq_size!(Byte, u16);
}