1#![no_std] 2#![deny(unsafe_code)] 3 4#[macro_use] 5extern crate static_assertions; 6 7#[allow(dead_code)] 8enum Foo { 9 A { x: u8, y: u8 }, 10 B(u8), 11} 12 13assert_fields!(Foo::A: x); 14assert_fields!(Foo::A: x, x); 15assert_fields!(Foo::A: x, y, x); 16 17// TODO: Make tuple field access possible 18// assert_fields!(Foo::B, 0); 19 20mod m { 21 #[allow(dead_code)] 22 pub struct Bar<T: ?Sized> { pub nul: (), pub inner: T } 23} 24 25#[allow(dead_code)] 26use m::Bar as Baz; 27 28assert_fields!(m::Bar<str>: inner, nul); 29assert_fields!(Baz<dyn Send>: inner, nul); 30