- Update dependencies.
- Add
from_elem_with_storage_type
as a dual ofnew_with_storage_type
.
- Implement
std::ops::{BitOrAssign, BitOr, BitAndAssign, BitAnd, BitXorAssign, BitXor}
. Note that, as withVob
's other bit-wise operations, these will panic if the twoVob
s in question are not of equal length.
-
Vob::from_elem(value: bool, len: usize)
now takes the value first and the number of repetitions of that value second to mirror the most common way this function is defined elsewhere. -
The
vob!
macro's repetition form now mirrorsvec!
, sovob![val; len]
is equivalent toVec::from_elem(val, len)
.
- Add
get_storage
to theunsafe_internals
portion of the API. - Clearly document the invariants users must maintain when using the
unsafe
parts of the API.
- Use rustfmt stable.
- Remove unnecessary
fn main
wrappers in doctest examples. - Clean up two remaining
#[macro use] extern crate vob;
lines from examples.
- License as dual Apache-2.0/MIT (instead of a more complex, and little understood, triple license of Apache-2.0/MIT/UPL-1.0).
- Port to Rust 2018.
- Remove local copy of
Bounds
since it is now part of stable Rust. - On rustc-1.37 and later, automatically use
reverse_bits
(this automatically includes the current nightly version of rustc).
- Further speed up
iter_\[set|unset\]_bits
for cases where set/unset bits are fairly randomly distributed (by approximately 10%).
- Substantially speed up
iter_\[set|unset\]_bits
for the common case where all bits are set/unset (respectively). This leads to a 3x improvement in such cases, with no measurable slowdown in the general case.
- Change
set
so that if passed an out of bounds index it panics (previously it returned None, but since one doesn't generally check the return value ofset
, this led to errors being overlooked).
- Improve performance of the
xor
,and
, andor
functions. - Add
fast_reverse
feature: on nightly, we automatically try to use thefast_reverse
function to improve performance.
- Don't overallocate memory in
new_with_storage_type
.
- Add
extend_from_vob
function. - Add
unsafe_internals
feature, which allows external crates unsafe access to Vob's internal (useful for speed, but bad for forwards compatibility!). - Various performance improvements.
- Use
rustfmt
.
- Add
from_bytes
function.
- Add
serde
feature to enable Serde support.
First stable release.