1use simavr_ffi as ffi;
2
3#[derive(Clone, Copy, Debug, Eq, PartialEq)]
4pub enum AvrState {
5 Limbo,
6 Stopped,
7 Running,
8 Sleeping,
9 Step,
10 StepDone,
11 Done,
12 Crashed,
13}
14
15impl AvrState {
16 pub(crate) fn from_ffi(val: i32) -> Self {
17 match val as u32 {
18 ffi::cpu_Limbo => Self::Limbo,
19 ffi::cpu_Stopped => Self::Stopped,
20 ffi::cpu_Running => Self::Running,
21 ffi::cpu_Sleeping => Self::Sleeping,
22 ffi::cpu_Step => Self::Step,
23 ffi::cpu_StepDone => Self::StepDone,
24 ffi::cpu_Done => Self::Done,
25 ffi::cpu_Crashed => Self::Crashed,
26
27 val => {
28 panic!("Unknown AvrState: {}", val);
29 }
30 }
31 }
32}