Macro static_assertions::assert_fields [] [src]

macro_rules! assert_fields {
    ($t:path, $($f:ident),+) => { ... };
    ($label:ident; $($xs:tt)+) => { ... };
}

Asserts that the type has the given fields.

Examples

This may be used when types have odd fields as a result of #[cfg].

struct Ty {
    #[cfg(windows)]
    value: u8,
    #[cfg(not(windows))]
    value: usize,
}

/* ... */

// Always have `value` regardless of OS
assert_fields!(Ty, value);

Range does not have a field named middle:

This code doesn't compile so be extra careful!
use std::ops::Range;

assert_fields!(Range<u32>, middle);