Android 14.0.0 release 19
Make intrusive-collections available to product and vendor am: d8c900e69a am: 8f98c5711e am: 612426d97d am: d05ec8b1b7

Original change: https://android-review.googlesource.com/c/platform/external/rust/crates/intrusive-collections/+/2475772

Change-Id: I9bb1f311a806e7b36d7130e10d3ccca45f48a4c4
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
tree: 6661fde618cb39349154f39f024a54e7f424928a
  1. .github/
  2. src/
  3. .cargo_vcs_info.json
  4. .gitignore
  5. Android.bp
  6. Cargo.toml
  7. Cargo.toml.orig
  8. cargo2android.json
  9. DESIGN.md
  10. LICENSE-APACHE
  11. LICENSE-MIT
  12. METADATA
  13. MODULE_LICENSE_APACHE2
  14. OWNERS
  15. README.md
  16. TEST_MAPPING
README.md

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.