shadow_crypt_core/
version.rs1#[derive(Debug, Clone, PartialEq, Eq)]
2pub enum Version {
3 V1,
4}
5
6impl Version {
7 pub fn as_str(&self) -> &'static str {
8 match self {
9 Version::V1 => "v1",
10 }
11 }
12
13 pub fn as_u8(&self) -> u8 {
14 match self {
15 Version::V1 => 1,
16 }
17 }
18}
19
20impl TryFrom<u8> for Version {
21 type Error = ();
22
23 fn try_from(value: u8) -> Result<Self, Self::Error> {
24 match value {
25 1 => Ok(Version::V1),
26 _ => Err(()),
27 }
28 }
29}
30
31pub fn is_supported_version(version: u8) -> bool {
32 matches!(version, 1)
33}
34
35#[cfg(test)]
36mod tests {
37 use super::*;
38
39 #[test]
40 fn test_version_as_str() {
41 assert_eq!(Version::V1.as_str(), "v1");
42 }
43
44 #[test]
45 fn test_version_as_u8() {
46 assert_eq!(Version::V1.as_u8(), 1);
47 }
48
49 #[test]
50 fn test_is_supported_version() {
51 assert!(is_supported_version(1));
52 assert!(!is_supported_version(0));
53 assert!(!is_supported_version(2));
54 assert!(!is_supported_version(255));
55 }
56}