#byte-slice #elements #queue #traits #amount #limit #push

slice_queue

本库提供了一个VecQueue,用于高效处理(字节)切片

17个版本

使用旧的Rust 2015

0.3.2 2018年9月9日
0.3.1 2018年9月9日
0.2.2 2018年8月16日
0.1.10 2018年8月16日

70#amount

41 每月下载量

BSD-2-Clause OR MIT

33KB
375

License License Travis CI AppVeyor CI

slice_queue

欢迎来到我的 slice_queue-库 🎊

关于此库

本库提供了一个优化队列,用于高效处理(字节)切片。它允许您

  • 通过消耗或从切片(如果类型支持 Clone/Copy 特性)克隆/复制它们来高效地将任意数量的元素推送到队列的末尾
  • 通信并强制限制存储元素的数量
  • 高效地从队列的前端弹出任意数量的元素(可选地放入切片以避免不必要的重新分配)
  • 通过使用(范围)索引直接访问底层缓冲区
  • 通过将 SliceQueue<T>deref() 调用传播到底层的 Vec<T>(可以禁用;见 功能门)来间接引用
  • 使用 io::Readio::Write 特性访问它
  • 使用 ReadableSliceQueue<T>WriteableSliceQueue<T> 特性或 io::Readio::Write 特性将队列“分割”成读写 halves

功能门

  • deref:此功能允许您通过将任何 deref() 调用传播到底层的 Vec<T>(通常结果是一个切片)来间接引用 SliceQueue<T>。因为在一些项目中这可能会被认为是一种“不良做法”,所以可以禁用这种行为。此功能默认启用。
  • unsafe_fast_code:由于本库的主要目标是性能,我们在一些地方使用了原始指针访问和手动内存管理。特别是对于类似 u8Copy 类型,这可以大幅提高性能。由于这需要可能不被您接受的 unsafe 代码,您可以通过禁用此功能,用安全的 Vec 操作来替换 unsafe 代码。 此功能默认启用。

构建文档和库

要构建和打开文档,请进入项目的根目录,然后运行 cargo doc --release --open

要构建此库,请切换到项目的根目录,然后运行 cargo build --release(或 cargo build --release --features ... 以手动指定要使用的功能);您可以在 target/release 中找到构建结果。

如果您是第一次使用此库或更新后,我们建议您运行 cargo test --release(或 cargo test --release --features ... 以手动指定要使用的功能)。

无运行时依赖

功能