use crate::common;
use common::{de, ser};
use deser::adapters::{BytesFallback, IntSeq};
use deser::{Deserialize, Serialize};
use deser_encoding::Hex;
#[derive(Debug, PartialEq, Serialize, Deserialize)]
struct Blob {
#[deser(as = BytesFallback<Hex>)]
hint: Vec<u8>,
#[deser(as = BytesFallback<IntSeq>)]
seq: [u8; 2],
#[deser(as = Hex)]
forced: Vec<u8>,
}
#[test]
fn test_bytes_formats() {
let value = Blob {
hint: vec![1],
seq: [2, 3],
forced: vec![255],
};
let msgpack = ser(&value);
assert_eq!(
msgpack,
concat!(
"83",
"a468696e74", "c40101", "a3736571", "c4020203", "a6666f72636564", "a26666", )
);
assert_eq!(de::<Blob>(&msgpack).unwrap(), value);
let value: Vec<u8> = de("a44166383d").unwrap(); assert_eq!(value, [1, 255]);
}