use serde_bytes::{ByteArray, ByteBuf, Bytes}; use serde_test::{assert_de_tokens, assert_ser_tokens, assert_tokens, Token}; #[test] fn test_bytes() { let empty = Bytes::new(&[]); assert_tokens(&empty, &[Token::BorrowedBytes(b"")]); assert_ser_tokens(&empty, &[Token::Bytes(b"")]); assert_ser_tokens(&empty, &[Token::ByteBuf(b"")]); assert_de_tokens(&empty, &[Token::BorrowedStr("")]); let buf = vec![65, 66, 67]; let bytes = Bytes::new(&buf); assert_tokens(&bytes, &[Token::BorrowedBytes(b"ABC")]); assert_ser_tokens(&bytes, &[Token::Bytes(b"ABC")]); assert_ser_tokens(&bytes, &[Token::ByteBuf(b"ABC")]); assert_de_tokens(&bytes, &[Token::BorrowedStr("ABC")]); } #[test] fn test_byte_buf() { let empty = ByteBuf::new(); assert_tokens(&empty, &[Token::BorrowedBytes(b"")]); assert_tokens(&empty, &[Token::Bytes(b"")]); assert_tokens(&empty, &[Token::ByteBuf(b"")]); assert_de_tokens(&empty, &[Token::BorrowedStr("")]); assert_de_tokens(&empty, &[Token::Str("")]); assert_de_tokens(&empty, &[Token::String("")]); assert_de_tokens(&empty, &[Token::Seq { len: None }, Token::SeqEnd]); assert_de_tokens(&empty, &[Token::Seq { len: Some(0) }, Token::SeqEnd]); let buf = ByteBuf::from(vec![65, 66, 67]); assert_tokens(&buf, &[Token::BorrowedBytes(b"ABC")]); assert_tokens(&buf, &[Token::Bytes(b"ABC")]); assert_tokens(&buf, &[Token::ByteBuf(b"ABC")]); assert_de_tokens(&buf, &[Token::BorrowedStr("ABC")]); assert_de_tokens(&buf, &[Token::Str("ABC")]); assert_de_tokens(&buf, &[Token::String("ABC")]); assert_de_tokens( &buf, &[ Token::Seq { len: None }, Token::U8(65), Token::U8(66), Token::U8(67), Token::SeqEnd, ], ); assert_de_tokens( &buf, &[ Token::Seq { len: Some(3) }, Token::U8(65), Token::U8(66), Token::U8(67), Token::SeqEnd, ], ); } #[test] fn test_bytearray() { let empty = ByteArray::new([]); assert_tokens(&empty, &[Token::BorrowedBytes(b"")]); assert_ser_tokens(&empty, &[Token::Bytes(b"")]); assert_ser_tokens(&empty, &[Token::ByteBuf(b"")]); assert_de_tokens(&empty, &[Token::BorrowedStr("")]); let buf = [65, 66, 67]; let bytes = ByteArray::new(buf); assert_tokens(&bytes, &[Token::BorrowedBytes(b"ABC")]); assert_ser_tokens(&bytes, &[Token::Bytes(b"ABC")]); assert_ser_tokens(&bytes, &[Token::ByteBuf(b"ABC")]); assert_de_tokens(&bytes, &[Token::BorrowedStr("ABC")]); }