Crates.io | bit-set-omnitool |
lib.rs | bit-set-omnitool |
version | 0.6.0 |
source | src |
created_at | 2024-07-07 11:42:53.107887 |
updated_at | 2024-07-07 11:42:53.107887 |
description | A set of bits |
homepage | https://github.com/contain-rs/bit-set |
repository | https://github.com/contain-rs/bit-set |
max_upload_size | |
id | 1294790 |
size | 62,680 |
Add this to your Cargo.toml:
[dependencies]
bit-set = "0.5"
Since Rust 2018, extern crate
is no longer mandatory. If your edition is old (Rust 2015),
add this to your crate root:
extern crate bit_set;
If you want to use bit-set in a program that has #![no_std]
, just drop default features:
[dependencies]
bit-set = { version = "0.5", default-features = false }
An implementation of a set using a bit vector as an underlying representation for holding unsigned numerical elements.
It should also be noted that the amount of storage necessary for holding a
set of objects is proportional to the maximum of the objects when viewed
as a usize
.
use bit_set::BitSet;
// It's a regular set
let mut s = BitSet::new();
s.insert(0);
s.insert(3);
s.insert(7);
s.remove(7);
if !s.contains(7) {
println!("There is no 7");
}
// Can initialize from a `BitVec`
let other = BitSet::from_bytes(&[0b11010000]);
s.union_with(&other);
// Print 0, 1, 3 in some order
for x in s.iter() {
println!("{}", x);
}
// Can convert back to a `BitVec`
let bv = s.into_bit_vec();
assert!(bv[3]);
Dual-licensed for compatibility with the Rust project.
Licensed under the Apache License Version 2.0: http://www.apache.org/licenses/LICENSE-2.0, or the MIT license: http://opensource.org/licenses/MIT, at your option.