Stepan Koltsov f1b63cb4ac Optimize shallow_clone for Bytes::split_{off,to} (#92)
If `shallow_clone` is called with `&mut self`, and `Bytes` contains
`Vec`, then expensive CAS can be avoided, because no other thread
have references to this `Bytes` object.

Bench `split_off_and_drop` difference:

Before the diff:

```
test split_off_and_drop             ... bench:      91,858 ns/iter (+/- 17,401)
```

With the diff:

```
test split_off_and_drop             ... bench:      81,162 ns/iter (+/- 17,603)
```
2018-01-03 11:41:33 -08:00
2015-01-30 00:04:33 -08:00
2017-08-12 10:59:31 -07:00
2017-08-12 10:59:31 -07:00
2017-02-20 14:31:26 -08:00
2017-02-20 14:31:26 -08:00

Bytes

A utility library for working with bytes.

Crates.io Build Status

Documentation

Usage

To use bytes, first add this to your Cargo.toml:

[dependencies]
bytes = "0.4"

Next, add this to your crate:

extern crate bytes;

use bytes::{Bytes, BytesMut, Buf, BufMut};

Serde support

Serde support is optional and disabled by default. To enable use the feature serde.

[dependencies]
bytes = { version = "0.4", features = ["serde"] }

License

bytes is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0), with portions covered by various BSD-like licenses.

See LICENSE-APACHE, and LICENSE-MIT for details.

S
Description
工具库用于操作字节
Readme MIT 1.5 MiB
Languages
Rust 99.3%
Shell 0.7%