3个版本
0.1.3 | 2021年2月1日 |
---|---|
0.1.2 |
|
0.1.1 | 2019年8月5日 |
0.1.0 | 2019年2月12日 |
#27 in #io-operations
用于 sync_tools
23KB
549 行
Byte_Buffer
这是什么
这个crate提供了一种易于使用和管理的字节缓冲区,在频繁的I/O操作中使用,其中广泛使用了Read/Write特质的实现。通过我们的预分配缓冲池,您的I/O代码可以节省大量用于动态缓冲区分配的CPU周期,这通常是整个性能的瓶颈。
使用此crate
要使用此crate,请在您的项目Cargo.toml文件中添加crate依赖项
[dependencies]
byte_buffer = "0.1"
然后您可以使用缓冲区,在声明要初始化的缓冲区实例的数量和每个实例的容量后。
extern crate byte_buffer;
use byte_buffer::prelude::*;
fn main() {
// Count of buffer: 10; Buffer capacity: 3
ByteBuffer::init(10, 3);
// Slice the buffer for use in your code
let mut buffer = ByteBuffer::slice();
// Fill the buffer with some byte data
io::repeat(0b101).read_exact(buffer.as_writable().unwrap()).unwrap();
// Read the data out. The buffer will be released back to the pool after going out of the scope
assert_eq!(buffer.as_readable().unwrap(), [0b101, 0b101, 0b101]);
}
欢迎贡献!
请随时提交错误报告或功能请求。
依赖项
~395KB