LCOV - code coverage report
Current view: top level - libs/utils/tests - bin_ser_test.rs (source / functions) Coverage Total Hit
Test: 1b0a6a0c05cee5a7de360813c8034804e105ce1c.info Lines: 95.5 % 22 21
Test Date: 2025-03-12 00:01:28 Functions: 37.5 % 8 3

            Line data    Source code
       1              : use std::io::Read;
       2              : 
       3              : use bytes::{Buf, BytesMut};
       4              : use hex_literal::hex;
       5              : use serde::Deserialize;
       6              : use utils::bin_ser::LeSer;
       7              : 
       8            0 : #[derive(Debug, PartialEq, Eq, Deserialize)]
       9              : pub struct HeaderData {
      10              :     magic: u16,
      11              :     info: u16,
      12              :     tli: u32,
      13              :     pageaddr: u64,
      14              :     len: u32,
      15              : }
      16              : 
      17              : // A manual implementation using BytesMut, just so we can
      18              : // verify that we decode the same way.
      19            1 : pub fn decode_header_data(buf: &mut BytesMut) -> HeaderData {
      20            1 :     HeaderData {
      21            1 :         magic: buf.get_u16_le(),
      22            1 :         info: buf.get_u16_le(),
      23            1 :         tli: buf.get_u32_le(),
      24            1 :         pageaddr: buf.get_u64_le(),
      25            1 :         len: buf.get_u32_le(),
      26            1 :     }
      27            1 : }
      28              : 
      29            1 : pub fn decode2<R: Read>(reader: &mut R) -> HeaderData {
      30            1 :     HeaderData::des_from(reader).unwrap()
      31            1 : }
      32              : 
      33              : #[test]
      34            1 : fn test1() {
      35            1 :     let raw1 = hex!("8940 7890 5534 7890  1289 5379 8378 7893  4207 8923 4712 3218");
      36            1 :     let mut buf1 = BytesMut::from(&raw1[..]);
      37            1 :     let mut buf2 = &raw1[..];
      38            1 :     let dec1 = decode_header_data(&mut buf1);
      39            1 :     let dec2 = decode2(&mut buf2);
      40            1 :     assert_eq!(dec1, dec2);
      41            1 :     assert_eq!(buf1, buf2);
      42            1 : }
        

Generated by: LCOV version 2.1-beta