webview_bundle/
version.rs

1use std::fmt::{Display, Formatter};
2
3pub(crate) const VERSION_LEN: usize = 1;
4
5#[derive(Debug, PartialEq, Eq, Copy, Clone)]
6pub enum Version {
7  /// Version 1
8  V1,
9}
10
11impl Default for Version {
12  fn default() -> Self {
13    Self::V1
14  }
15}
16
17impl Version {
18  pub const fn bytes(&self) -> [u8; VERSION_LEN] {
19    match self {
20      Version::V1 => [0x01],
21    }
22  }
23}
24
25impl Display for Version {
26  fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
27    let s = match self {
28      Self::V1 => "v1",
29    };
30    f.write_str(s)
31  }
32}
33
34#[cfg(test)]
35mod tests {
36  use super::*;
37
38  #[test]
39  fn default() {
40    assert_eq!(Version::default(), Version::V1);
41  }
42
43  #[test]
44  fn bytes() {
45    assert_eq!(Version::V1.bytes(), [0x01]);
46  }
47
48  #[test]
49  fn display() {
50    assert_eq!(format!("{}", Version::V1), "v1");
51  }
52}