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());
}