avr_simulator/
state.rs

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}