staticbitset 0.5.2

A container like std::collections::BitSet but static storage + Copy trait
Documentation
  • Coverage
  • 50%
    10 out of 20 items documented2 out of 17 items with examples
  • Size
  • Source code size: 14.63 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 2.13 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Links
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • androm3da
# #![feature(variant_count)]
# use std::error::Error;
#
# extern crate staticbitset;
# fn main() -> Result<(), Box<Error>> {
use staticbitset::StaticBitSet;
#[repr(usize)]
enum Hats {
    Cap,
    Top,
    Bowler,
    Beret,
    Fez,
}
use Hats::*;
use core::mem;

type HatBitSet = StaticBitSet::<{mem::variant_count::<Hats>()}>;
assert_eq!(4, mem::size_of::<HatBitSet>());

assert_eq!(8, mem::size_of::< StaticBitSet::<64> >());
assert_eq!(4, mem::size_of::< StaticBitSet::<32> >());
assert_eq!(4, mem::size_of::< StaticBitSet::<31> >());

let mut x = StaticBitSet::<64>::default();
assert!(!x.contains(Fez as usize));

x.insert(Fez as usize);
assert!(x.contains(Fez as usize));

x.clear();
assert!(!x.contains(Fez as usize));

x.set(Fez as usize, true);
assert!(x.contains(Fez as usize));

x.set(Fez as usize, false);
assert!(!x.contains(Fez as usize));
assert!(!x.contains(Bowler as usize));

for hat in x.ones().into_iter() {
   println!("Hat index: {}", hat);
}
#     Ok(())
# }