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 cbor = ser(&value);
assert_eq!(
cbor,
concat!(
"a3",
"6468696e74", "4101", "63736571", "420203", "66666f72636564", "626666", )
);
assert_eq!(de::<Blob>(&cbor).unwrap(), value);
let value: Vec<u8> = de("644166383d").unwrap(); assert_eq!(value, [1, 255]);
}