#intrusive #rb-tree #list #memory-management #no-std

no-std intrusive-collections

Rust 的侵入式集合(链表和红黑树)

37 个版本

0.9.6 2023年7月30日
0.9.5 2023年1月26日
0.9.4 2022年5月24日
0.9.3 2021年12月20日
0.1.0 2016年2月22日

#35数据结构

Download history 19316/week @ 2024-04-08 22239/week @ 2024-04-15 20492/week @ 2024-04-22 24866/week @ 2024-04-29 26048/week @ 2024-05-06 23574/week @ 2024-05-13 23011/week @ 2024-05-20 20161/week @ 2024-05-27 23902/week @ 2024-06-03 27281/week @ 2024-06-10 22474/week @ 2024-06-17 23187/week @ 2024-06-24 19141/week @ 2024-07-01 24007/week @ 2024-07-08 24407/week @ 2024-07-15 21466/week @ 2024-07-22

90,131 每月下载量
用于 336 个包 (18 个直接)

Apache-2.0/MIT

355KB
8K SLoC

intrusive-collections

Build Status Coverage Status Crates.io

一个用于创建侵入式集合的 Rust 库。目前支持单链表和双链表,以及红黑树。

功能

  • #[no_std] 兼容。
  • 侵入式集合不需要任何动态内存分配,因为它们只跟踪现有对象而不是分配新的对象。
  • 可以在没有任何不安全代码的情况下安全地操作侵入式集合。
  • 单个对象可以同时是多个侵入式集合的成员。
  • 侵入式集合提供了一个基于 Cursor 的接口,允许在迭代时进行安全变异。

有关示例和更多信息,请参阅文档(crates.iomaster)。

使用方法

将以下内容添加到您的 Cargo.toml

[dependencies]
intrusive-collections = "0.9"

此包有两个 Cargo 功能

  • nightly:启用仅限 nightlies 的功能:集合的 const fn 构造函数(Link 构造函数始终是 const fn
  • alloc(默认启用):为 BoxRcArc 实现 IntrusivePointer

许可证

许可协议为以下之一

任选其一。

贡献

除非您明确声明,否则任何有意提交以包含在作品中的贡献,根据 Apache-2.0 许可证定义,应按上述方式双许可,无需任何附加条款或条件。

依赖关系