Skip to content

Releases: bodil/sized-chunks

0.7.0

29 Apr 16:08
Compare
Choose a tag to compare

CHANGED

  • Switched to const generics instead of the typenum crate. Rust 1.51 or later is required.

0.6.5

16 Apr 15:39
v0.6.5
9d4c7f1
Compare
Choose a tag to compare

FIXED

  • When InlineArray cannot hold any values because of misalignment, report it as capacity 0 instead of panicking at runtime. (#22)

0.6.4

17 Feb 20:11
v0.6.4
aa0e3a1
Compare
Choose a tag to compare

FIXED

  • InlineArray can be used in recursive types again.

CHANGED

  • InlineArray::new() now panics when it can't store elements with large alignment (this was UB prior to 0.6.3). Alignments of usize and smaller are always supported. Larger alignments are supported if the capacity-providing type has sufficient alignment.

0.6.3

14 Feb 10:42
v0.6.3
9f66983
Compare
Choose a tag to compare

FIXED

  • Multiple soundness fixes: InlineArray handles large alignment, panic safety in Chunk's clone and from_iter, capacity checks in unit(), pair() and from().
  • InlineArray can now handle zero sized values. This relies on conditionals in const functions, a feature which was introduced in Rust 1.46.0, which means this is now the minimum Rust version this crate will work on.

0.6.2

15 May 19:24
v0.6.2
ebd64cc
Compare
Choose a tag to compare

FIXED

  • This release exists for no other purpose than to bump the refpool optional dependency.

0.6.1

26 Mar 13:20
v0.6.1
ef60cb5
Compare
Choose a tag to compare

ADDED

  • The crate now has a std feature flag, which is on by default, and will make the crate no_std if disabled.

FIXED

  • Fixed a compilation error if you had the arbitrary feature flag enabled without the ringbuffer flag.

0.6.0

24 Mar 17:04
Compare
Choose a tag to compare

CHANGED

  • RingBuffer and its accompanying slice types Slice and SliceMut now implement Array and ArrayMut from array-ops, giving them most of the methods that would be available on primitive slice types and cutting down on code duplication in the implementation, but at the price of having to pull Array et al into scope when you need them. Because this means adding a dependency to array-ops, RingBuffer has now been moved behind the ringbuffer feature flag. Chunk and InlineArray don't and won't implement Array, because they are both able to implement Deref<[A]>, which provides the same functionality more efficiently.

ADDED

  • The insert_from and insert_ordered methods recently added to Chunk have now also been added to RingBuffer.
  • RingBuffer's Slice and SliceMut now also have the three binary_search methods regular slices have.
  • SparseChunk, RingBuffer, Slice and SliceMut now have unsafe get_unchecked and get_unchecked_mut methods.
  • PartialEq implementations allowing you to compare RingBuffers, Slices and SliceMuts interchangeably have been added.

FIXED

  • Fixed an aliasing issue in RingBuffer's mutable iterator, as uncovered by Miri. Behind the scenes, the full non-fuzzing unit test suite is now able to run on Miri without crashing it (after migrating the last Proptest tests away from the test suite into the fuzz targets), and this has been included in its CI build. (#6)

0.5.3

24 Mar 17:02
v0.5.3
2351a80
Compare
Choose a tag to compare

FIXED

  • Debug only assertions made it into the previous release by accident, and this change has been reverted. (#7)

0.5.2

24 Mar 17:02
v0.5.2
52ba865
Compare
Choose a tag to compare

ADDED

  • Chunk now has an insert_from method for inserting multiple values at an index in one go.
  • Chunk now also has an insert_ordered method for inserting values into a sorted chunk.
  • SparseChunk now has the methods option_iter(), option_iter_mut() and option_drain() with their corresponding iterators to iterate over a chunk as if it were an array of Options.
  • Arbitrary implementations for all data types have been added behind the arbitrary feature flag.

0.5.1

12 Dec 17:45
v0.5.1
f6306c5
Compare
Choose a tag to compare

ADDED

  • PoolDefault and PoolClone implementations, from the refpool crate, are available for Chunk, SparseChunk and RingBuffer, behind the refpool feature flag.