use std::collections::VecDeque; use musli::compat::Bytes; use musli::{Decode, Encode}; #[derive(Debug, PartialEq, Decode, Encode)] struct Container { #[musli(bytes)] vec: Vec, #[musli(bytes)] vec_deque: VecDeque, #[musli(bytes)] boxed: Box<[u8]>, } #[test] fn container() { musli::macros::assert_roundtrip_eq!( full, Container { vec: vec![0, 1, 2, 3], vec_deque: VecDeque::from([0, 1, 2, 3]), boxed: Box::from([0, 1, 2, 3]), }, json = r#"{"vec":[0,1,2,3],"vec_deque":[0,1,2,3],"boxed":[0,1,2,3]}"# ); } #[derive(Debug, PartialEq, Decode, Encode)] #[allow(dead_code)] struct ContainerBorrowed<'de> { #[musli(bytes)] bytes: &'de [u8], } #[derive(Debug, PartialEq, Encode, Decode)] pub struct BytesCompat { pub empty_bytes: Bytes<[u8; 0]>, } #[test] fn bytes_compat() { musli::macros::assert_roundtrip_eq!( full, BytesCompat { empty_bytes: Bytes([]), } ); }