PackageTrack
Sign in Get early access

bv

Bit-vectors and bit-slices

0.11.1 16M downloads/mo #2392 most downloaded on crates.io tov/bv-rs

What this package is like to depend on

Last release 6 years ago

no release in 18 months

Release timing varies

gaps range from 2 weeks to 1.2 years

Most releases are documented

notes for 27 of 31 stable releases

Nothing withdrawn

no release was ever pulled

8 years old

31 releases · first in 2018

0 releases in the last 12 months

see the full history below

Release timeline

31 releases · Mar 2018 to Mar 2020
2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 31
  1. 0.11.1 19 Mar 2020
    Release notes

    (cargo-release) version 0.11.1

    Open source →
    Release notes

    Fixed

    • Checks invariants after deserialization. (Thanks, @Mrmaxmeier!)

    Changed

    • Oldest supported rustc version is now 1.31.0.
    Open source →
  2. 0.11.0 16 Jan 2019
    Release notes

    (cargo-release) version 0.11.0

    Open source →
    Release notes

    Fixed

    • BitVec::get takes &self, not &mut self.

    Changed

    • Oldest supported rustc version is now 1.24.0.
    Open source →
  3. 0.10.0 20 Jun 2018
    Release notes

    (cargo-release) version 0.10.0

    Open source →
    Release notes

    Added

    • BitsMutExt extension trait with methods bit_assign, bit_zip_assign, bit_and_assign, bit_or_assign, and bit_xor_assign.
    • BitSliceableMut helper trait with one method, bit_slice_mut. This trait is automatically implemented for all BitSliceable types that slice to a BitsMut type. Calling bit_slice_mut forces auto-ref to choose such a type.
    • Bits::get_raw_block method, which may return spurious bits in the last block of a bit vector. This enables some fast paths where we don't mind the spurious bits.
    • From<Box<[Block]>> and From<Vec<Block>> impls for BitVec<Block>.

    Changed

    • Bits is now a super trait of BitSliceable<R>, and the block type of the slice matches the block type of Self.
    • The function passed to BitsExt::bit_zip no longer takes a third, usize argument.

    Removed

    • BlockType::last_block_bits in favor of BlockType::block_bits.
    • Alias of trait BitsExt is moved in the adapter module. (Deprecated in 0.8.1.)
    Open source →
  4. 0.9.0 18 Jun 2018
    Release notes

    (cargo-release) version 0.9.0

    Open source →
    Release notes

    Added

    • Impls of Bits and BitsMut for Vec<Block>. The impls for [Block] already caught most causes because of autoderef, but this is helpful when you want to pass a Vec to a generic method.

    Changed

    • BitSlice::from_raw_parts and BitSliceMut::from_raw_parts now take an offset of type u64 rather than u8, and the offset doesn't have to be less than the block size.
    • Removed 12 BitSliceable impls for array slices with two blanket impls. I don't believe this is a breaking change.

    Improved

    • Single-bit BitVec operations are significantly faster now.

    Fixed

    • Bit-slicing &[bool] and &mut [bool] using BitSliceable now requires u64 ranges rather than usize ranges. Now all BitSliceable instances use u64 ranges.
    Open source →
  5. 0.8.2 15 Jun 2018
    Release notes

    (cargo-release) version 0.8.2

    Open source →
    Release notes

    Fixed

    • Empty BitVec does not allocate.
    Open source →
  6. 0.8.1 15 Jun 2018
    Release notes

    (cargo-release) version 0.8.1

    Open source →
    Release notes

    Added

    • BitsExt::bit_zip method generalizes bit_and, bit_or, etc.
    • BlockType::block_bits static method, for finding out the number of bits in the block at the given position.

    Changed

    • Trait BitsExt is moved from the adapter module to the root. (There's still a pub use for it in adapter, but that alias is deprecated and will be removed in 0.10.0.)

    Fixed

    • Performance problem with BitVec::block_reserve, which was growing way too much.
    Open source →
  7. 0.8.0 14 Jun 2018
    Release notes

    (cargo-release) version 0.8.0

    Open source →
    Release notes

    Added

    • adapter module, including:
      • BitsExt trait, for adapter operations over types that implement Bits. Methods include:
        • bit-wise logic: bit_not, bit_and, bit_or, and bit_xor;
        • bit_concat and bit_pad.
      • constant adapter BitFill;
      • BoolAdapter for adapting unpacked Vec<bool> or &[bool]; and
      • slicing adapter BitSliceAdapter. (Note that BitSliceAdapter does not replace the more specialized BitSlice.)
    • Bits::to_bit_vec method, which copies the bits of a Bits into a new BitVec.
    • bit_vec! macro allows trailing comma.
    • BitVec::get and BitVec::set methods, aliasing Bits::get_bit and BitsMut::set_bit, respectively.
    • From impls for converting array slices to BitSlice, mutable array slices to BitSliceMut, and BitSliceMut to BitSlice.
    • Bits, BitsMut, and BitSliceable impls for sized arrays from sizes 0 to 31.

    Changed

    • BitSliceMut::as_immut renamed to BitSliceMut::as_bit_slice.

    Removed

    • Bits::bit_offset method. Blocks returned from a Bits instance are now assumed to be aligned. This makes BitSlice more complicated but significantly simplifies everything else and removes some infelicities.
    • BitSliceBlockIter struct and methods for creating it. I'm rethinking how iteration over bit vectors and bit-vector-likes should work.
    Open source →
  8. 0.7.4 30 May 2018
    Release notes

    (cargo-release) version 0.7.4

    Open source →
  9. 0.7.3 30 May 2018
    Release notes

    (cargo-release) version 0.7.3

    Open source →
  10. 0.7.2 16 May 2018
    Release notes

    (cargo-release) version 0.7.2

    Open source →
    Release notes

    Added

    • A good number of doc examples.
    • html_doc_root for cross-linking of docs.
    Open source →
  11. 0.7.1 13 May 2018
    Release notes

    Fixed

    • Documentation, in many places.
    Open source →
  12. 0.7.0 13 May 2018
    Release notes

    Changed

    • Renamed about half the types in the library. Doing this while it has no users! Changes are:
      • structures BitVec{,Mut,Push} -> Bits{,Mut,Push}
      • structure Bv -> BitVec
      • module bv -> bit_vec
      • macro bv! -> bit_vec!
    Open source →
  13. 0.6.6 12 May 2018
    Release notes

    Added

    • Support for inclusive ranges.
    Open source →
  14. 0.6.5 12 May 2018

    Nothing published for this version

  15. 0.6.4 12 May 2018
    Release notes

    Added

    • Optional serde support, via Cargo feature "serde".

    Removed

    • Cargo feature "u128", as u128 support is now detected.
    Open source →
  16. 0.6.3 12 May 2018

    Nothing published for this version

  17. 0.6.2 12 May 2018

    Nothing published for this version

  18. 0.6.1 11 May 2018

    Nothing published for this version

  19. 0.6.0 11 May 2018
    Release notes

    Changed

    • Support for u128 is now detected.
    • No longer depends on num-traits crate.
    Open source →
  20. 0.5.0 11 May 2018
    Release notes

    Added

    • Support for u128, enabled by Cargo feature "u128".
    • Version support statement: rustc 1.20.0.
    Open source →
  21. 0.4.4 11 May 2018
    Release notes

    Fixed

    • Documentation URL.
    • Version number in example toml.
    Open source →
  22. 0.4.3 01 Apr 2018
    Release notes

    Added

    • Impl of Default for BV.
    • Methods BitSlice::is_empty and BitSliceMut::is_empty.
    Open source →
  23. 0.4.2 31 Mar 2018
    Release notes

    Added

    • Lots of tests.

    Fixed

    • Added a necessary lifetime parameter.
    Open source →
  24. 0.4.1 30 Mar 2018
    Release notes

    Fixed

    • BV::align_block and BV::resize.
    Open source →
  25. 0.4.0 30 Mar 2018
    Release notes

    Added

    • Impl BitSliceable for [bool] and Vec<bool>.

    Changed

    • Renamed method BitSliceable::slice to BitSliceable::bit_slice.
    Open source →
  26. 0.3.1 30 Mar 2018
    Release notes

    Added

    • More tests.

    Fixed

    • Bug in block_len method.
    Open source →
  27. 0.3.0 28 Mar 2018
    Release notes

    Added

    • bv! macro.
    • BitSlice::len and BitSliceMut::len methods.
    • BV::resize method.
    Open source →
  28. 0.2.0 28 Mar 2018
    Release notes

    Added

    • impl BitVec and BitVecMut for [bool].

    Fixed

    • Documentation.
    Open source →
  29. 0.1.2 28 Mar 2018
    Release notes

    Added

    • Better crate summary in README.
    • Documentation on bit slice representation.
    Open source →
  30. 0.1.1 28 Mar 2018
    Release notes

    Fixed

    • Crate metadata.
    Open source →
  31. 0.1.0 28 Mar 2018
    Release notes

    Initial release.

    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive