18 releases
0.6.3 | Mar 19, 2023 |
---|---|
0.6.2 | Jan 23, 2022 |
0.6.1 | Apr 8, 2021 |
0.6.0 | Jan 4, 2021 |
0.1.3 | Sep 13, 2017 |
#16 in Data structures
497,552 downloads per month
Used in 306 crates
(119 directly)
99KB
1.5K
SLoC
bimap-rs
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.
- Quick start
- Feature flags
- Documentation
- Contributing
- Semantic versioning
- Minimum supported Rust version
- License
Quick start
To use the latest version of bimap-rs
with the default features, add this to
your project's Cargo.toml
file:
[dependencies]
bimap = "0.6.3"
You can now run the bimap-rs
Hello World!
fn main() {
// A bijective map between letters of the English alphabet and their positions.
let mut alphabet = bimap::BiMap::<char, u8>::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.
[dependencies]
# I just want to use `bimap-rs`.
bimap = "0.6.3"
# I want to use `bimap-rs` without the Rust standard library.
bimap = { version = "0.6.3", default-features = false }
# I want to use `bimap-rs` with Serde support.
bimap = { version = "0.6.3", 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.
Minimum supported Rust version
bimap |
MSRV |
---|---|
v0.6.3 | 1.56.1 |
v0.6.2 | 1.56.1 |
v0.6.1 | 1.42.0 |
v0.6.0 | 1.38.0 |
v0.5.3 | 1.38.0 |
v0.5.2 | 1.38.0 |
v0.5.1 | 1.38.0 |
v0.5.0 | 1.38.0 |
v0.4.0 | 1.38.0 |
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.
Dependencies
~165KB