use crate::vm::{Exception, Vm};
use std::sync::atomic::{Atomic, Ordering};
static COUNTER: Atomic<u8> = Atomic::<u8>::new(0);
impl Vm {
#[inline]
#[must_use]
pub fn exec(&mut self) -> Option<Exception> {
match COUNTER.fetch_add(1, Ordering::AcqRel) {
0 => {
Event::Configure(
&ll_mode {
channel_count: 3,
width: 64,
height: 64,
frame_count: 1,
},
)
}
1 => {
Event::Push(
&[
0x00, 0x00, 0x00,
0xFF, 0x00, 0x00,
0x00, 0xFF, 0x00,
0xFF, 0xFF, 0x00,
0x00, 0x00, 0xFF,
0xFF, 0x00, 0xFF,
0x00, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF,
]
)
}
2 => {
Event::Exit
}
_ => {
unreachable!();
}
}
}
}