control_code/csi/
qualification.rs1use nom;
16
17#[derive(Eq, PartialEq, Copy, Clone, Debug)]
18pub enum Qualification {
19 UnprotectedUnguarded,
20 ProtectedGuarded,
21 GraphicCharacterInput,
22 NumericInput,
23 AlphabeticInput,
24 AlignLast,
25 ZeroFill,
26 FieldStart,
27 ProtectedUnguarded,
28 SpaceFill,
29 AlignFirst,
30 Reverse,
31}
32
33impl Qualification {
34 #[inline]
35 pub fn parse<'a>(value: u32) -> Result<Self, nom::ErrorKind> {
36 match value {
37 0 => Ok(Qualification::UnprotectedUnguarded),
38 1 => Ok(Qualification::ProtectedGuarded),
39 2 => Ok(Qualification::GraphicCharacterInput),
40 3 => Ok(Qualification::NumericInput),
41 4 => Ok(Qualification::AlphabeticInput),
42 5 => Ok(Qualification::AlignLast),
43 6 => Ok(Qualification::ZeroFill),
44 7 => Ok(Qualification::FieldStart),
45 8 => Ok(Qualification::ProtectedUnguarded),
46 9 => Ok(Qualification::SpaceFill),
47 10 => Ok(Qualification::AlignFirst),
48 11 => Ok(Qualification::Reverse),
49 _ => Err(nom::ErrorKind::Custom(9004)),
50 }
51 }
52}
53
54impl Into<u32> for Qualification {
55 #[inline]
56 fn into(self) -> u32 {
57 match self {
58 Qualification::UnprotectedUnguarded => 0,
59 Qualification::ProtectedGuarded => 1,
60 Qualification::GraphicCharacterInput => 2,
61 Qualification::NumericInput => 3,
62 Qualification::AlphabeticInput => 4,
63 Qualification::AlignLast => 5,
64 Qualification::ZeroFill => 6,
65 Qualification::FieldStart => 7,
66 Qualification::ProtectedUnguarded => 8,
67 Qualification::SpaceFill => 9,
68 Qualification::AlignFirst => 10,
69 Qualification::Reverse => 11,
70 }
71 }
72}