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> { 23 pub nul: (), 24 pub inner: T, 25 } 26 } 27 28 #[allow(dead_code)] 29 use m::Bar as Baz; 30 31 assert_fields!(m::Bar<str>: inner, nul); 32 assert_fields!(Baz<dyn Send>: inner, nul); 33