// check-pass pub struct Stats; #[derive(PartialEq, Eq)] pub struct StatVariant { pub id: u8, _priv: (), } #[derive(PartialEq, Eq)] pub struct Stat { pub variant: StatVariant, pub index: usize, _priv: (), } impl Stats { pub const TEST: StatVariant = StatVariant{id: 0, _priv: (),}; #[allow(non_upper_case_globals)] pub const A: Stat = Stat{ variant: Self::TEST, index: 0, _priv: (),}; } impl Stat { pub fn from_index(variant: StatVariant, index: usize) -> Option { let stat = Stat{variant, index, _priv: (),}; match stat { Stats::A => Some(Stats::A), _ => None, } } } fn main() {}