Skip to content
This repository was archived by the owner on May 3, 2026. It is now read-only.

Releases: bodil/sized-chunks

0.7.0

Choose a tag to compare

@bodil bodil released this 29 Apr 16:08

CHANGED

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

0.6.5

Choose a tag to compare

@bodil bodil released this 16 Apr 15:39
v0.6.5
9d4c7f1

FIXED

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

0.6.4

Choose a tag to compare

@bodil bodil released this 17 Feb 20:11
v0.6.4
aa0e3a1

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

Choose a tag to compare

@bodil bodil released this 14 Feb 10:42
v0.6.3
9f66983

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

Choose a tag to compare

@bodil bodil released this 15 May 19:24
v0.6.2
ebd64cc

FIXED

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

0.6.1

Choose a tag to compare

@bodil bodil released this 26 Mar 13:20
v0.6.1
ef60cb5

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

Choose a tag to compare

@bodil bodil released this 24 Mar 17:04

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

Choose a tag to compare

@bodil bodil released this 24 Mar 17:02
v0.5.3
2351a80

FIXED

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

0.5.2

Choose a tag to compare

@bodil bodil released this 24 Mar 17:02
v0.5.2
52ba865

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

Choose a tag to compare

@bodil bodil released this 12 Dec 17:45
v0.5.1
f6306c5

ADDED

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