js_randomness_predictor/
nodejs_major_version.rs1use clap::ValueEnum;
2use std::fmt::{Display, Formatter, Result};
3
4#[derive(Clone, Copy, Debug, ValueEnum)]
5pub enum NodeJsMajorVersion {
6 V0 = 0,
7 V4 = 4,
8 V5 = 5,
9 V6 = 6,
10 V7 = 7,
11 V8 = 8,
12 V9 = 9,
13 V10 = 10,
14 V11 = 11,
15 V12 = 12,
16 V13 = 13,
17 V14 = 14,
18 V15 = 15,
19 V16 = 16,
20 V17 = 17,
21 V18 = 18,
22 V19 = 19,
23 V20 = 20,
24 V21 = 21,
25 V22 = 22,
26 V23 = 23,
27 V24 = 24,
28}
29
30impl NodeJsMajorVersion {
31 #[allow(dead_code, clippy::implicit_return)]
32 pub fn from_u8(value: u8) -> Option<Self> {
33 match value {
34 0 => Some(Self::V0),
35 4 => Some(Self::V4),
36 5 => Some(Self::V5),
37 6 => Some(Self::V6),
38 7 => Some(Self::V7),
39 8 => Some(Self::V8),
40 9 => Some(Self::V9),
41 10 => Some(Self::V10),
42 11 => Some(Self::V11),
43 12 => Some(Self::V12),
44 13 => Some(Self::V13),
45 14 => Some(Self::V14),
46 15 => Some(Self::V15),
47 16 => Some(Self::V16),
48 17 => Some(Self::V17),
49 18 => Some(Self::V18),
50 19 => Some(Self::V19),
51 20 => Some(Self::V20),
52 21 => Some(Self::V21),
53 22 => Some(Self::V22),
54 23 => Some(Self::V23),
55 24 => Some(Self::V24),
56 _ => None,
57 }
58 }
59}
60
61impl Display for NodeJsMajorVersion {
62 fn fmt(&self, f: &mut Formatter<'_>) -> Result {
63 return write!(f, "v{}", *self as u8);
64 }
65}