All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
is_full()no longer panics with full bitmaps of size 32 or multiples thereof. (#19, #27)
Bitmapnow implementsTryFrom<&[u8]>andAsRef<[u8]>, and anas_bytes()method was added, to facilitate conversion to and from byte arrays.- The iterator is now bidirectional, and
next_index,prev_indexandlast_indexmethods, with correspondingfalse_indexvariants, have been added. (#14)
- The methods
first_false_index()andis_full()have been added toBitmap. (#12)
- The previous version broke the
no_stdfeature; it has now been restored. (#11)
- This crate now uses const generics, rather than the
typenumcrate, to encode numerical values in types. This means you can now use plain integers in theBitmaptype, eg.Bitmap<32>, rather than the oldBitmap<typenum::U32>. (#8, #9)
Bitmapnow implementsHash,Eq,PartialOrdandOrd. (#7)- The
as_value()method has been added toBitmap, to get a reference to the underlying value. (#7) bitmaps::Iternow implementsCloneandDebug. (#4)
- There is now a
stdfeature flag, on by default, which you can disable to get ano_stdcrate.
Bitsnow does a lot less work, which is now being done instead by theBitOpstrait on its storage type. This turns out to improve compilation time quite considerably. If you were using methods onBitsdirectly, they will have moved toBitOps.Debugnow prints a single hex value for the entire bitmap, rather than deferring to the storage type.Iternow takes a reference instead of a copy, which is more sensible for larger bitmaps.
Bitmapnow implementsBitAnd,BitOr,BitXor, their equivalent assignation traits, andNot, meaning you can now use bitwise operators on them, even the very big array-of-u128 ones.- A
Bitmap::mask()constructor has been added, to construct bitmasks more efficiently, now that there are bitwise operators to use them with.
Initial release.