logo
macro_rules! assert_eq_size_ptr {
    ($x:expr, $($xs:expr),+ $(,)?) => { ... };
}
Expand description

Asserts that values pointed to are equal in size.

Examples

This especially is useful for when coercing pointers between different types and ensuring the underlying values are the same size.

fn operation(x: &(u32, u32), y: &[u16; 4]) {
    assert_eq_size_ptr!(x, y);
    // ...
}

The following example fails to compile because byte arrays of different lengths have different sizes:

static BYTES: &[u8; 4] = &[
    /* ... */
];

static TABLE: &[u8; 16] = &[
    /* ... */
];

assert_eq_size_ptr!(BYTES, TABLE);