webview_bundle/
version.rs1use std::fmt::{Display, Formatter};
2
3pub(crate) const VERSION_LEN: usize = 1;
4
5#[derive(Debug, PartialEq, Eq, Copy, Clone)]
6pub enum Version {
7 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}