data-stream 0.3.1

A simple serialization library based on streams
Documentation
mod shared;
use shared::assert_streamed_eq;

use data_stream::{default_settings::PortableSettings, from_stream};

#[test]
fn box_roundtrip() {
    assert_streamed_eq::<PortableSettings, _>(&Box::new(42u32));
}

#[test]
fn option_some_roundtrip() {
    assert_streamed_eq::<PortableSettings, _>(&Some(7u32));
}

#[test]
fn option_none_roundtrip() {
    assert_streamed_eq::<PortableSettings, _>(&Option::<u32>::None);
}

#[test]
fn result_ok_roundtrip() {
    assert_streamed_eq::<PortableSettings, _>(&Result::<u32, bool>::Ok(5));
}

#[test]
fn result_err_roundtrip() {
    assert_streamed_eq::<PortableSettings, _>(&Result::<u32, bool>::Err(true));
}

#[test]
fn option_invalid_tag_fails() {
    let bytes = [2u8];
    let result = from_stream::<PortableSettings, Option<u32>, _>(&mut &bytes[..]);
    assert!(result.is_err());
}

#[test]
fn result_invalid_tag_fails() {
    let bytes = [2u8];
    let result = from_stream::<PortableSettings, Result<u32, u32>, _>(&mut &bytes[..]);
    assert!(result.is_err());
}