An open API service indexing awesome lists of open source software.

https://github.com/pcsm/handlebox

A map-like collection that reuses unused keys
https://github.com/pcsm/handlebox

rust rust-library

Last synced: about 1 month ago
JSON representation

A map-like collection that reuses unused keys

Awesome Lists containing this project

README

          

Handlebox [![Docs](https://docs.rs/handlebox/badge.svg)](https://docs.rs/handlebox/) [![Crates.io](https://img.shields.io/crates/v/handlebox.svg)](https://crates.io/crates/handlebox)
==================================================================

Handlebox is a simple map-like collection that reuses unused keys. Right now it's hard-coded to use `u32` keys.

To install, add this line to your Cargo.toml:

```toml
[dependencies]
handlebox = "0.3.0"
```

Note that Handlebox has not yet reached version 1.0, so the API may change drastically between releases.

## Example

```rust
use handlebox::*;

// Creating
let mut c = HandleBox::new();

// Adding values
let h1 = c.add(888);

// Accessing values
assert_eq!(c.get(&h1).unwrap(), &888);

// Removing values
c.remove(&h1);

// You can access the internal BTreeMap with the .map field
assert_eq!(c.map.values().len(), 0);
```