bimap-rs

version documentation license

bimap-rs is a pure Rust library for dealing with bijective maps, aiming to feel like an extension of the standard library's data structures whenever possible. There are no external dependencies by default but [Serde] and [no_std] compatibility are available through feature flags.

  1. Quick start
  2. Feature flags
  3. Documentation
  4. Contributing
  5. Semantic versioning
  6. License

Quick start

To use the latest version of bimap-rs with the default features, add this to your project's Cargo.toml file:

toml [dependencies] bimap = "0.6.1"

You can now run the bimap-rs Hello World!

```rust fn main() { // A bijective map between letters of the English alphabet and their positions. let mut alphabet = bimap::BiMap::::new();

alphabet.insert('A', 1);
// ...
alphabet.insert('Z', 26);

println!("A is at position {}", alphabet.get_by_left(&'A').unwrap());
println!("{} is at position 26", alphabet.get_by_right(&26).unwrap());

} ```

Feature flags

| Flag name | Description | Enabled by default? | | --- | --- | --- | | std | Standard library usage (HashMap) | yes | | serde | (De)serialization using [Serde] | no |

This Cargo.toml shows how these features can be enabled and disabled.

```toml [dependencies]

I just want to use bimap-rs.

bimap = "0.6.1"

I want to use bimap-rs without the Rust standard library.

bimap = { version = "0.6.1", default-features = false }

I want to use bimap-rs with Serde support.

bimap = { version = "0.6.1", features = ["serde"] } ```

Documentation

Documentation for the latest version of bimap-rs is available on [docs.rs].

Contributing

Thank you for your interest in improving bimap-rs! Please read the [code of conduct] and the [contributing guidelines] before submitting an issue or opening a pull request.

Semantic versioning

bimap-rs adheres to the de-facto Rust variety of Semantic Versioning.

License

bimap-rs is dual-licensed under the [Apache License] and the [MIT License]. As a library user, this means that you are free to choose either license when using bimap-rs. As a library contributor, this means that any work you contribute to bimap-rs will be similarly dual-licensed.