Coverage Report

Created: 2025-02-21 07:11

/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
}