vte/
definitions.rs
1#[allow(dead_code)]
2#[derive(Debug, Copy, Clone)]
3pub enum State {
4 Anywhere = 0,
5 CsiEntry = 1,
6 CsiIgnore = 2,
7 CsiIntermediate = 3,
8 CsiParam = 4,
9 DcsEntry = 5,
10 DcsIgnore = 6,
11 DcsIntermediate = 7,
12 DcsParam = 8,
13 DcsPassthrough = 9,
14 Escape = 10,
15 EscapeIntermediate = 11,
16 Ground = 12,
17 OscString = 13,
18 SosPmApcString = 14,
19 Utf8 = 15,
20}
21
22#[allow(dead_code)]
23#[derive(Debug, Clone, Copy)]
24pub enum Action {
25 None = 0,
26 Clear = 1,
27 Collect = 2,
28 CsiDispatch = 3,
29 EscDispatch = 4,
30 Execute = 5,
31 Hook = 6,
32 Ignore = 7,
33 OscEnd = 8,
34 OscPut = 9,
35 OscStart = 10,
36 Param = 11,
37 Print = 12,
38 Put = 13,
39 Unhook = 14,
40 BeginUtf8 = 15,
41}
42
43#[inline(always)]
51pub fn unpack(delta: u8) -> (State, Action) {
52 (
53 unsafe { ::core::mem::transmute(delta & 0x0f) },
55
56 unsafe { ::core::mem::transmute(delta >> 4) },
58 )
59}
60
61#[cfg(test)]
62mod tests {
63 use super::{State, Action, unpack};
64 #[test]
65 fn unpack_state_action() {
66 match unpack(0xee) {
67 (State::SosPmApcString, Action::Unhook) => (),
68 _ => panic!("unpack failed"),
69 }
70
71 match unpack(0x0f) {
72 (State::Utf8, Action::None) => (),
73 _ => panic!("unpack failed"),
74 }
75
76 match unpack(0xff) {
77 (State::Utf8, Action::BeginUtf8) => (),
78 _ => panic!("unpack failed"),
79 }
80 }
81}