Bug: 175140903

Clone this repo:
  1. 3366050 Upgrade intrusive-collections to 0.9.6 am: 5c2ecf697c by Jeff Vander Stoep · 3 months ago main master
  2. 5c2ecf6 Upgrade intrusive-collections to 0.9.6 by Jeff Vander Stoep · 3 months ago
  3. 870b5e7 Migrate to cargo_embargo. am: ee1fe42507 am: 4e52c4838c am: 0b2bd245ae by Andrew Walbran · 6 months ago
  4. fc7718e Migrate to cargo_embargo. am: ee1fe42507 am: bb33b74641 am: 7921c2ec8a by Andrew Walbran · 6 months ago
  5. 0b2bd24 Migrate to cargo_embargo. am: ee1fe42507 am: 4e52c4838c by Andrew Walbran · 6 months ago

intrusive-collections

Build Status Coverage Status Crates.io

A Rust library for creating intrusive collections. Currently supports singly-linked and doubly-linked lists, as well as red-black trees.

Features

  • Compatible with #[no_std].
  • Intrusive collections don't require any dynamic memory allocation since they simply keep track of existing objects rather than allocating new ones.
  • You can safely manipulate intrusive collections without any unsafe code.
  • A single object can be a member of multiple intrusive collections simultaneously.
  • Intrusive collections provide a Cursor-based interface, which allows safe mutation while iterating.

For examples and more information, see the documentation (crates.io, master).

Usage

Add this to your Cargo.toml:

[dependencies]
intrusive-collections = "0.9"

This crate has two Cargo features:

  • nightly: Enables nightly-only features: const fn constructors for collections (Link constructors are always const fn)
  • alloc (enabled by default): Implements IntrusivePointer for Box, Rc and Arc.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.