fixedbitset
fixedbitset copied to clipboard
A simple bitset container for Rust
fixedbitset
A simple fixed size bitset container for Rust.
Please read the API documentation here
Recent Changes
- 0.5.7
- 0.5.6
- Fixed FixedBitset not implementing Send/Sync due to the stack size shrink.
- 0.5.5 (yanked)
- #116: Add functions for counting the results of a set operation (
union_count,intersection_count,difference_count,symmetric_difference_count) by @james7132. - #118: Shrink the stack size of FixedBitset. There should be zero stack size overhead compared to a Vec.
- #119: Fix builds for wasm32.
- #120: Add more utility functions that were previously missing from the public interface:
contains_any_in_range,contains_all_in_range,minimum,maximum,is_full,count_zeroes, andremove_range. - #121: Add support for SIMD acceleration for AVX builds.
- #116: Add functions for counting the results of a set operation (
- 0.5.4
- #112: Fix undefined behavior in IntoOnes and setup testing with MIRI by @SkiFire13
- 0.5.3 (yanked)
- #109: Fix non-x86(_64) builds by @james7132
- 0.5.2 (yanked)
- #86: Explicit SIMD vectorization for set operations by @james7132.
- 0.5.1
- #102: Added
contains_unchecked,insert_unchecked,put_unchecked,set_unchecked,toggle_unchecked,removed_unchecked,copy_bit_uncheckedunsafe variants of the safe functions, by @james7132 - #103: Added
into_oneswhich returns a owned iterator over the one values from a bitset, by @james7132. - #104: Implemented
DoubleEndedIteratorforUnion,Intersection,Difference, andSymmetricDifference, by @james7132.
- #102: Added
- 0.5.0
- #74: Accelerated set operations (union, intersection, difference, symmetric difference) by using larger blocks internally, by @james7132.
- #88: Added
FixedBitSet::removeby @james7132. - #89: Added
FixedBitSet::zerosand theZerositerator by @james7132. - #92: Added
FixedBitSet::grow_and_insertfunction, a non-panicking version ofinsertthat grows the underlying storage as need, by @shuoli84. - #98:
Onesnow implementsDoubleEndedIterator, by @tikhu. - #99: Breaking change: serde now serializes and deserializes from a little-endian encoded raw byte buffer. Existing stored instances of the serialized bitsets will need to be re-encoded.
- Bumped MSRV to 1.56.
- 0.4.2
- #79: Add
is_clear, clarifyis_emptyandlendocumentation by @nicopap.
- #79: Add
- 0.4.1
- Documentation and formatting fixes.
- 0.4.0
- 0.3.2
- #18: Optimize
onesusingtrailing_zeroesby @vks
- #18: Optimize
- 0.3.1
- Add bit assign operators for references by @flaghacker
- Improve assertion error messages by @lovasoa
- Add documentation examples for
with_capacity_and_blocks
- 0.3.0
- Add
with_capacity_and_blocksby @luizirber - Add
difference_withby @sunshowers - Implement
BinaryandDisplaytraits by @Dolphindalt - Add
toggle_rangeby @wirelyre
- Add
- 0.2.0
- Add assign operators for the bit operations by @jrraymond
- Add
symmetric_difference,union_with,intersection_withby @jrraymond - Add
is_subset,is_superset,is_disjointby @nwn - Add
.toggle(i)method by @ShiroUsagi-san - Add default feature "std" which can be disabled to make the crate not link the std library. By @jonimake and @bluss
- Require Rust 1.31.
- 0.1.9
- Add intersection, union, difference iterators by @jrraymond
- Add intersection:
&and union:|operator implementations by @jrraymond - Add Extend and FromIterator implementations (from sequences of bit indices) by @jrraymond
- 0.1.8
- Add missing
#[inline]on the ones iterator - Fix docs for
insert_range, set_range
- Add missing
- 0.1.7
- Add fast methods
.insert_range,.set_rangeby @kennytm
- Add fast methods
- 0.1.6
- Add iterator
.ones()by @mneumann - Fix bug with
.count_ones()where it would erronously have an out-of-bounds panic for even block endpoints
- Add iterator
- 0.1.5
- Add method
.count_ones(range).
- Add method
- 0.1.4
- Remove an assertion in
.copy_bit(from, to)so that it is in line with the documentation. Thefrombit does not need to be in bounds. - Improve
.grow()to useVec::resizeinternally.
- Remove an assertion in
- 0.1.3
- Add method
.put()to enable a bit and return previous value
- Add method
- 0.1.2
- Add method
.copy_bit()(by fuine) - impl Default
- Add method
- 0.1.1
- Update documentation URL
- 0.1.0
- Add method
.grow()
- Add method
License
Dual-licensed to be compatible with the Rust project.
Licensed under the Apache License, Version 2.0 or the MIT license, at your option. This file may not be copied, modified, or distributed except according to those terms.