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