ssz_rs 0.7.0

ethereum's simple serialize
Documentation
mod test_utils;

use ssz_rs::prelude::*;
use test_utils::{
    deserialize, hash_tree_root, read_ssz_snappy_from_test_data, root_from_hex, serialize,
};

#[test]
fn test_boolean_true() {
    let value = true;
    let encoding = serialize(&value);
    let expected_encoding = read_ssz_snappy_from_test_data(
        "ssz_rs/tests/data/boolean/valid/true/serialized.ssz_snappy",
    );
    assert_eq!(encoding, expected_encoding);

    let recovered_value: bool = deserialize(&expected_encoding);
    assert_eq!(recovered_value, value);

    let root = hash_tree_root(&value);
    let expected_root =
        root_from_hex("0100000000000000000000000000000000000000000000000000000000000000");
    assert_eq!(root, expected_root);
}

#[test]
fn test_boolean_false() {
    let value = false;
    let encoding = serialize(&value);
    let expected_encoding = read_ssz_snappy_from_test_data(
        "ssz_rs/tests/data/boolean/valid/false/serialized.ssz_snappy",
    );
    assert_eq!(encoding, expected_encoding);

    let recovered_value: bool = deserialize(&expected_encoding);
    assert_eq!(recovered_value, value);

    let root = hash_tree_root(&value);
    let expected_root =
        root_from_hex("0000000000000000000000000000000000000000000000000000000000000000");
    assert_eq!(root, expected_root);
}

#[test]
#[should_panic]
fn test_boolean_byte_0x80() {
    let encoding = read_ssz_snappy_from_test_data(
        "ssz_rs/tests/data/boolean/invalid/byte_0x80/serialized.ssz_snappy",
    );

    deserialize::<bool>(&encoding);
}

#[test]
#[should_panic]
fn test_boolean_byte_2() {
    let encoding = read_ssz_snappy_from_test_data(
        "ssz_rs/tests/data/boolean/invalid/byte_2/serialized.ssz_snappy",
    );

    deserialize::<bool>(&encoding);
}

#[test]
#[should_panic]
fn test_boolean_byte_full() {
    let encoding = read_ssz_snappy_from_test_data(
        "ssz_rs/tests/data/boolean/invalid/byte_full/serialized.ssz_snappy",
    );

    deserialize::<bool>(&encoding);
}

#[test]
#[should_panic]
fn test_boolean_byte_rev_nibble() {
    let encoding = read_ssz_snappy_from_test_data(
        "ssz_rs/tests/data/boolean/invalid/byte_rev_nibble/serialized.ssz_snappy",
    );

    deserialize::<bool>(&encoding);
}