/rust/registry/src/index.crates.io-6f17d22bba15001f/revision-0.11.0/src/implementations/decimal.rs
Line | Count | Source (jump to first uncovered line) |
1 | | #![cfg(feature = "rust_decimal")] |
2 | | |
3 | | use super::super::Error; |
4 | | use super::super::Revisioned; |
5 | | use rust_decimal::Decimal; |
6 | | |
7 | | impl Revisioned for Decimal { |
8 | | #[inline] |
9 | 4 | fn serialize_revisioned<W: std::io::Write>(&self, writer: &mut W) -> Result<(), Error> { |
10 | 4 | writer.write_all(self.serialize().as_slice()).map_err(Error::Io) |
11 | 4 | } <rust_decimal::decimal::Decimal as revision::Revisioned>::serialize_revisioned::<alloc::vec::Vec<u8>> Line | Count | Source | 9 | 4 | fn serialize_revisioned<W: std::io::Write>(&self, writer: &mut W) -> Result<(), Error> { | 10 | 4 | writer.write_all(self.serialize().as_slice()).map_err(Error::Io) | 11 | 4 | } |
Unexecuted instantiation: <rust_decimal::decimal::Decimal as revision::Revisioned>::serialize_revisioned::<_> |
12 | | |
13 | | #[inline] |
14 | 3 | fn deserialize_revisioned<R: std::io::Read>(reader: &mut R) -> Result<Self, Error> { |
15 | 3 | let mut b = [0u8; 16]; |
16 | 3 | reader.read_exact(&mut b).map_err(Error::Io)?; |
17 | 3 | Ok(Decimal::deserialize(b)) |
18 | 3 | } <rust_decimal::decimal::Decimal as revision::Revisioned>::deserialize_revisioned::<&[u8]> Line | Count | Source | 14 | 3 | fn deserialize_revisioned<R: std::io::Read>(reader: &mut R) -> Result<Self, Error> { | 15 | 3 | let mut b = [0u8; 16]; | 16 | 3 | reader.read_exact(&mut b).map_err(Error::Io)?; | 17 | 3 | Ok(Decimal::deserialize(b)) | 18 | 3 | } |
Unexecuted instantiation: <rust_decimal::decimal::Decimal as revision::Revisioned>::deserialize_revisioned::<_> |
19 | | |
20 | 0 | fn revision() -> u16 { |
21 | 0 | 1 |
22 | 0 | } |
23 | | } |
24 | | |
25 | | #[cfg(test)] |
26 | | mod tests { |
27 | | |
28 | | use super::Decimal; |
29 | | use super::Revisioned; |
30 | | |
31 | | #[test] |
32 | | fn test_decimal_min() { |
33 | | let val = Decimal::MIN; |
34 | | let mut mem: Vec<u8> = vec![]; |
35 | | val.serialize_revisioned(&mut mem).unwrap(); |
36 | | assert_eq!(mem.len(), 16); |
37 | | let out = <Decimal as Revisioned>::deserialize_revisioned(&mut mem.as_slice()).unwrap(); |
38 | | assert_eq!(val, out); |
39 | | } |
40 | | |
41 | | #[test] |
42 | | fn test_decimal_max() { |
43 | | let val = Decimal::MAX; |
44 | | let mut mem: Vec<u8> = vec![]; |
45 | | val.serialize_revisioned(&mut mem).unwrap(); |
46 | | assert_eq!(mem.len(), 16); |
47 | | let out = <Decimal as Revisioned>::deserialize_revisioned(&mut mem.as_slice()).unwrap(); |
48 | | assert_eq!(val, out); |
49 | | } |
50 | | } |