1 个稳定版本

1.0.4 2023年3月27日
1.0.3 2023年3月15日
1.0.2 2023年3月11日
1.0.1 2023年2月26日
1.0.0 2023年2月25日

#5 in #rb

每月29次下载

MIT许可证

15KB
142

byte_rb

为Rust编写的byte环形缓冲区。

https://crates.io/crates/byte_rb

文档

安装

要使用byte_rb,首先将其添加到您的Cargo.toml

[dependencies]
byte_rb = "1"

或者在您的项目目录中运行以下Cargo命令

cargo add byte_rb

用法

use byte_rb::BrBuffer;

let mut cbuf = BrBuffer::new(6);
println!("{:?}", cbuf);

assert!(cbuf.append(6, b"123456").unwrap());
assert_eq!(cbuf.rpos(), 0);
assert_eq!(cbuf.wpos(), 6);
// "123456"

// Peek at data without changing its internal state.
let result = cbuf.peek(3).unwrap();
assert_eq!(result, b"123");
assert_eq!(cbuf.cumulated_len(), 6);

// Consume data
let result = cbuf.get(3).unwrap();
assert_eq!(result, b"123");
assert_eq!(cbuf.cumulated_len(), 3);
assert_eq!(cbuf.rpos(), 3);
assert_eq!(cbuf.wpos(), 6);
// "  456"

assert!(cbuf.append(3, b"789").unwrap());
assert_eq!(cbuf.cumulated_len(), 6);
assert_eq!(cbuf.rpos(), 3);
assert_eq!(cbuf.wpos(), 3);
// "789456"

let result = cbuf.get(1).unwrap();
assert_eq!(result, b"4");
assert_eq!(cbuf.rpos(), 4);
assert_eq!(cbuf.wpos(), 3);
assert_eq!(cbuf.cumulated_len(), 5);
// "789 56"

let result = cbuf.get(5).unwrap();
assert_eq!(result, b"56789");
assert_eq!(cbuf.rpos(), 3);
assert_eq!(cbuf.wpos(), 3);
assert_eq!(cbuf.cumulated_len(), 0);

assert_eq!(cbuf.capacity(), 6);

许可证

本项目采用MIT许可证

无运行时依赖