bcs 0.2.1

Binary Canonical Serialization (BCS)
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Copyright (c) The Diem Core Contributors
// SPDX-License-Identifier: Apache-2.0

use serde_core::{de::DeserializeOwned, Serialize};

pub fn assert_canonical_encode_decode<T>(t: T)
where
    T: Serialize + DeserializeOwned + std::fmt::Debug + PartialEq,
{
    let bytes = crate::to_bytes(&t).unwrap();
    let s: T = crate::from_bytes(&bytes).unwrap();
    assert_eq!(t, s);

    let mut reader = std::io::Cursor::new(bytes);
    let s_from_reader = crate::from_reader(&mut reader).unwrap();
    assert_eq!(t, s_from_reader);
}