messagepack-core 0.2.3

messagepack for `no_std`
Documentation
use messagepack_core::{
    Decode, Encode,
    io::{SliceReader, SliceWriter},
};
use proptest::prelude::*;

proptest! {
    #[test]
    fn roundtrip_u8(x in any::<u8>()) {
        let mut buf = [0; 2];
        let mut writer = SliceWriter::new(&mut buf);
        let written_length = x.encode(&mut writer).unwrap();

        let mut reader = SliceReader::new(&buf[..written_length]);
        let y = u8::decode(&mut reader).unwrap();

        assert_eq!(x, y);
    }
}

proptest! {
    #[test]
    fn roundtrip_u16(x in any::<u16>()) {
        let mut buf = [0; 5];
        let mut writer = SliceWriter::new(&mut buf);
        let written_length = x.encode(&mut writer).unwrap();

        let mut reader = SliceReader::new(&buf[..written_length]);
        let y = u16::decode(&mut reader).unwrap();

        assert_eq!(x, y);
    }
}

proptest! {
    #[test]
    fn roundtrip_u32(x in any::<u32>()) {
        let mut buf = [0; 5];
        let mut writer = SliceWriter::new(&mut buf);
        let written_length = x.encode(&mut writer).unwrap();

        let mut reader = SliceReader::new(&buf[..written_length]);
        let y = u32::decode(&mut reader).unwrap();

        assert_eq!(x, y);
    }
}

proptest! {
    #[test]
    fn roundtrip_u64(x in any::<u64>()) {
        let mut buf = [0; 9];
        let mut writer = SliceWriter::new(&mut buf);
        let written_length = x.encode(&mut writer).unwrap();

        let mut reader = SliceReader::new(&buf[..written_length]);
        let y = u64::decode(&mut reader).unwrap();

        assert_eq!(x, y);
    }
}

proptest! {
    #[test]
    fn roundtrip_usize(x in any::<usize>()) {
        let mut buf = [0; 9];
        let mut writer = SliceWriter::new(&mut buf);
        let written_length = x.encode(&mut writer).unwrap();

        let mut reader = SliceReader::new(&buf[..written_length]);
        let y = usize::decode(&mut reader).unwrap();

        assert_eq!(x, y);
    }
}

proptest! {
    #[test]
    fn roundtrip_i8(x in any::<i8>()) {
        let mut buf = [0; 2];
        let mut writer = SliceWriter::new(&mut buf);
        let written_length = x.encode(&mut writer).unwrap();

        let mut reader = SliceReader::new(&buf[..written_length]);
        let y = i8::decode(&mut reader).unwrap();

        assert_eq!(x, y);
    }
}

proptest! {
    #[test]
    fn roundtrip_i16(x in any::<i16>()) {
        let mut buf = [0; 3];
        let mut writer = SliceWriter::new(&mut buf);
        let written_length = x.encode(&mut writer).unwrap();

        let mut reader = SliceReader::new(&buf[..written_length]);
        let y = i16::decode(&mut reader).unwrap();

        assert_eq!(x, y);
    }
}

proptest! {
    #[test]
    fn roundtrip_i32(x in any::<i32>()) {
        let mut buf = [0; 5];
        let mut writer = SliceWriter::new(&mut buf);
        let written_length = x.encode(&mut writer).unwrap();

        let mut reader = SliceReader::new(&buf[..written_length]);
        let y = i32::decode(&mut reader).unwrap();

        assert_eq!(x, y);
    }
}

proptest! {
    #[test]
    fn roundtrip_i64(x in any::<i64>()) {
        let mut buf = [0; 9];
        let mut writer = SliceWriter::new(&mut buf);
        let written_length = x.encode(&mut writer).unwrap();

        let mut reader = SliceReader::new(&buf[..written_length]);
        let y = i64::decode(&mut reader).unwrap();

        assert_eq!(x, y);
    }
}

proptest! {
    #[test]
    fn roundtrip_isize(x in any::<isize>()) {
        let mut buf = [0; 9];
        let mut writer = SliceWriter::new(&mut buf);
        let written_length = x.encode(&mut writer).unwrap();

        let mut reader = SliceReader::new(&buf[..written_length]);
        let y = isize::decode(&mut reader).unwrap();

        assert_eq!(x, y);
    }
}