diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
commit | 2aa4a82499d4becd2284cdb482213d541b8804dd (patch) | |
tree | b80bf8bf13c3766139fbacc530efd0dd9d54394c /third_party/rust/serde_bytes/README.md | |
parent | Initial commit. (diff) | |
download | firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.tar.xz firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.zip |
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/serde_bytes/README.md')
-rw-r--r-- | third_party/rust/serde_bytes/README.md | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/third_party/rust/serde_bytes/README.md b/third_party/rust/serde_bytes/README.md new file mode 100644 index 0000000000..8546e58525 --- /dev/null +++ b/third_party/rust/serde_bytes/README.md @@ -0,0 +1,54 @@ +# serde\_bytes [![Build Status](https://api.travis-ci.org/serde-rs/bytes.svg?branch=master)](https://travis-ci.org/serde-rs/bytes) [![Latest Version](https://img.shields.io/crates/v/serde_bytes.svg)](https://crates.io/crates/serde_bytes) + +Wrapper types to enable optimized handling of `&[u8]` and `Vec<u8>`. + +```toml +[dependencies] +serde_bytes = "0.11" +``` + +## Explanation + +Without specialization, Rust forces Serde 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 `serde_bytes::Bytes` and `Vec<u8>` by wrapping it +in `serde_bytes::ByteBuf`. + +Additionally this crate supports the Serde `with` attribute to enable efficient +handling of `&[u8]` and `Vec<u8>` in structs without needing a wrapper type. + +## Example + +```rust +use serde::{Deserialize, Serialize}; + +#[derive(Deserialize, Serialize)] +struct Efficient<'a> { + #[serde(with = "serde_bytes")] + bytes: &'a [u8], + + #[serde(with = "serde_bytes")] + byte_buf: Vec<u8>, +} +``` + +<br> + +#### License + +<sup> +Licensed under either of <a href="LICENSE-APACHE">Apache License, Version +2.0</a> or <a href="LICENSE-MIT">MIT license</a> at your option. +</sup> + +<br> + +<sub> +Unless you explicitly state otherwise, any contribution intentionally submitted +for inclusion in this crate by you, as defined in the Apache-2.0 license, shall +be dual licensed as above, without any additional terms or conditions. +</sub> |