#buffer #collection

range-split

范围分割的实用工具

7个不稳定版本 (3个重大变更)

0.4.0 2021年1月28日
0.3.0 2020年10月28日
0.2.0 2019年12月1日
0.2.0-beta.22019年11月28日
0.1.0-beta.12019年6月16日

#1778 in 数据结构


strchunk 中使用

MIT 许可证

14KB
256

使用范围语法分割序列

这个库提供了特性和支持工具,增加了根据给定范围分割序列的便利方法。

TakeRange 特性的主要用途是数据容器库,例如 bytes,其中数据缓冲区的表示可以有效地分割成更小的部分,但执行此操作的内建方法往往不太易记。使用不同范围类型参数化的特性实现提供了与范围语法的便利多态。

许可证

本项目采用 MIT许可证

贡献

除非您明确说明,否则您有意提交的任何贡献,都应按照MIT许可证许可,不附加任何额外条款或条件。


lib.rs:

范围参数分割序列的实用工具。

TakeRange 特性提供了多态、易于记忆的方法,用于分割带有范围语法参数的索引序列。

use range_split::TakeRange;

let mut buf = Bytes::from("Hello, world");
let p = buf.take_range(..5);
buf.remove_range(2..);
assert_eq!(p, "Hello");
assert_eq!(buf, ", ");

等价于

#
let mut buf = Bytes::from("Hello, world");
let p = buf.split_to(5);
buf.truncate(2);

如果启用了 bytes 的编译时功能,则为 BytesBytesMut 提供了 TakeRange 的实现,来自 bytes 包。

依赖项

~170KB