Module serde::bytes [] [src]

Wrapper types to enable optimized handling of &[u8] and Vec<u8>.

Without specialization, Rust forces us to treat &[u8] just like any other slice and Vec<u8> just like any other vector. In reality this particular slice and vector can often be serialized and deserialized in a more efficient, compact representation in many formats.

When working with such a format, you can opt into specialized handling of &[u8] by wrapping it in bytes::Bytes and Vec<u8> by wrapping it in bytes::ByteBuf.

Rust support for specialization is being tracked in rust-lang/rust#31844. Once it lands in the stable compiler we will be deprecating these wrapper types in favor of optimizing &[u8] and Vec<u8> out of the box.

Structs

ByteBuf

Wraps a Vec<u8> in order to serialize and deserialize in an efficient way.

Bytes

Wraps a &[u8] in order to serialize in an efficient way. Does not support deserialization.