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