#![allow(non_camel_case_types)]
use core::mem;
#[allow(dead_code)]
#[derive(Debug, Copy, Clone)]
pub enum State {
Ground = 0,
Tail3 = 1,
Tail2 = 2,
Tail1 = 3,
U3_2_e0 = 4,
U3_2_ed = 5,
Utf8_4_3_f0 = 6,
Utf8_4_3_f4 = 7,
}
#[allow(dead_code)]
#[derive(Debug, Copy, Clone)]
pub enum Action {
InvalidSequence = 0,
EmitByte = 1,
SetByte1 = 2,
SetByte2 = 3,
SetByte2Top = 4,
SetByte3 = 5,
SetByte3Top = 6,
SetByte4 = 7,
}
#[inline]
#[allow(dead_code)]
pub fn pack(state: State, action: Action) -> u8 {
((action as u8) << 4) | (state as u8)
}
#[inline]
pub unsafe fn unpack(val: u8) -> (State, Action) {
(
mem::transmute(val & 0x0f),
mem::transmute(val >> 4),
)
}