4个版本
0.2.6 | 2020年6月28日 |
---|---|
0.2.5 | 2020年6月27日 |
0.1.0 | 2020年6月24日 |
在数据结构中排名874
每月下载量366
在3个crate中使用了(通过annonars)
54KB
1.5K SLoC
此crate提供了BoolVec
结构。这基本上是一个围绕Vec<u8>
的包装,其中每个字节都被解释为8个bool
。
快速提示:对这段代码做你想做的,我实际上并不在乎 :)
示例
// Create a new `BoolVec`
use boolvec::BoolVec;
let mut vec = BoolVec::new();
// You can push data onto it
vec.push(true);
vec.push(false);
// ... retreve it
assert_eq!(vec.get(0), Some(true));
assert_eq!(vec.get(3), None);
// ... update it
vec.set(0, false);
assert_eq!(vec.get(0), Some(false));
// You can get a reference to an unaligned boolean.
let mut boolean = vec.get_mut(1).unwrap();
assert_eq!(boolean.get(), false);
boolean.set(true);
assert_eq!(vec.get(1), Some(true));
// You can also iterate over this data (mutably or not).
let mut iter = vec.iter_mut();
iter.next().unwrap().set(true);
iter.next().unwrap().set(false);
let mut iter = vec.iter();
assert_eq!(iter.next(), Some(true));
assert_eq!(iter.next(), Some(false));
assert_eq!(iter.next(), None);