/rust/registry/src/index.crates.io-1949cf8c6b5b557f/revision-0.13.0/src/implementations/uuid.rs
Line | Count | Source |
1 | | #![cfg(feature = "uuid")] |
2 | | |
3 | | use super::super::Error; |
4 | | use super::super::{DeserializeRevisioned, Revisioned, SerializeRevisioned}; |
5 | | use uuid::Uuid; |
6 | | |
7 | | impl SerializeRevisioned for Uuid { |
8 | | #[inline] |
9 | 1.01k | fn serialize_revisioned<W: std::io::Write>(&self, writer: &mut W) -> Result<(), Error> { |
10 | 1.01k | writer.write_all(self.as_bytes()).map_err(Error::Io) |
11 | 1.01k | } <uuid::Uuid as revision::SerializeRevisioned>::serialize_revisioned::<alloc::vec::Vec<u8>> Line | Count | Source | 9 | 1.01k | fn serialize_revisioned<W: std::io::Write>(&self, writer: &mut W) -> Result<(), Error> { | 10 | 1.01k | writer.write_all(self.as_bytes()).map_err(Error::Io) | 11 | 1.01k | } |
Unexecuted instantiation: <uuid::Uuid as revision::SerializeRevisioned>::serialize_revisioned::<_> |
12 | | } |
13 | | |
14 | | impl DeserializeRevisioned for Uuid { |
15 | | #[inline] |
16 | 384 | fn deserialize_revisioned<R: std::io::Read>(reader: &mut R) -> Result<Self, Error> { |
17 | 384 | let mut v = [0u8; 16]; |
18 | 384 | reader.read_exact(&mut v).map_err(Error::Io)?; |
19 | 384 | Uuid::from_slice(&v).map_err(|_| Error::Deserialize("invalid uuid".to_string()))Unexecuted instantiation: <uuid::Uuid as revision::DeserializeRevisioned>::deserialize_revisioned::<&[u8]>::{closure#0}Unexecuted instantiation: <uuid::Uuid as revision::DeserializeRevisioned>::deserialize_revisioned::<_>::{closure#0} |
20 | 384 | } <uuid::Uuid as revision::DeserializeRevisioned>::deserialize_revisioned::<&[u8]> Line | Count | Source | 16 | 384 | fn deserialize_revisioned<R: std::io::Read>(reader: &mut R) -> Result<Self, Error> { | 17 | 384 | let mut v = [0u8; 16]; | 18 | 384 | reader.read_exact(&mut v).map_err(Error::Io)?; | 19 | 384 | Uuid::from_slice(&v).map_err(|_| Error::Deserialize("invalid uuid".to_string())) | 20 | 384 | } |
Unexecuted instantiation: <uuid::Uuid as revision::DeserializeRevisioned>::deserialize_revisioned::<_> |
21 | | } |
22 | | |
23 | | impl Revisioned for Uuid { |
24 | | #[inline] |
25 | 0 | fn revision() -> u16 { |
26 | 0 | 1 |
27 | 0 | } |
28 | | } |
29 | | |
30 | | #[cfg(test)] |
31 | | mod tests { |
32 | | |
33 | | use super::*; |
34 | | |
35 | | #[test] |
36 | | fn test_uuid() { |
37 | | #[rustfmt::skip] |
38 | | let val = Uuid::from_bytes([ |
39 | | 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, |
40 | | 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, |
41 | | ]); |
42 | | let mut mem: Vec<u8> = vec![]; |
43 | | val.serialize_revisioned(&mut mem).unwrap(); |
44 | | assert_eq!(mem.len(), 16); |
45 | | let out = |
46 | | <Uuid as DeserializeRevisioned>::deserialize_revisioned(&mut mem.as_slice()).unwrap(); |
47 | | assert_eq!(val, out); |
48 | | } |
49 | | } |