32 lines
655 B
Rust
32 lines
655 B
Rust
//@ check-pass
|
|
// https://github.com/rust-lang/rust/issues/51300
|
|
|
|
#[derive(PartialEq, Eq, Clone, Copy)]
|
|
pub struct Stat {
|
|
pub id: u8,
|
|
pub index: usize,
|
|
}
|
|
|
|
impl Stat {
|
|
pub const STUDENT_HAPPINESS: Stat = Stat{
|
|
id: 0,
|
|
index: 0,
|
|
};
|
|
pub const STUDENT_HUNGER: Stat = Stat{
|
|
id: 0,
|
|
index: Self::STUDENT_HAPPINESS.index + 1,
|
|
};
|
|
|
|
}
|
|
|
|
pub fn from_index(id: u8, index: usize) -> Option<Stat> {
|
|
let stat = Stat{id, index};
|
|
match stat {
|
|
Stat::STUDENT_HAPPINESS => Some(Stat::STUDENT_HAPPINESS),
|
|
Stat::STUDENT_HUNGER => Some(Stat::STUDENT_HUNGER),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
fn main() { }
|