#![no_std] #![deny(unsafe_code)] #[macro_use] extern crate static_assertions; #[allow(dead_code)] enum Foo { A { x: u8, y: u8 }, B(u8), } assert_fields!(Foo::A: x); assert_fields!(Foo::A: x, x); assert_fields!(Foo::A: x, y, x); // TODO: Make tuple field access possible // assert_fields!(Foo::B, 0); mod m { #[allow(dead_code)] pub struct Bar { pub nul: (), pub inner: T } } #[allow(dead_code)] use m::Bar as Baz; assert_fields!(m::Bar: inner, nul); assert_fields!(Baz: inner, nul);