Skip to content

Version 0.4.0

Compare
Choose a tag to compare
@Caellian Caellian released this 18 Sep 00:11
990c336

Added

  • Add unsafe functions for turning entry references into pointers.
    • Add ContiguousMemoryStorage::forget.
  • Add source to LockingError::WouldBlock
  • Add ContiguousMemoryStorage::forget utility method.
  • Add ContiguousMemoryStorage::can_push variants:
    • can_push_value
    • can_push_layout
  • Add persisted variants for push methods which ensures values aren't overwritten when using default and concurrent implementations.

Changed

  • Rename ContiguousMemoryStorage::store to push so it's more in line with std containers.
    • Update examples
  • Rename ContiguousMemoryRef to ContiguousEntryRef so naming is more in line with the purpose of the struct.
  • Clean up ByteRange::aligned implementation
  • Fix how AllocationTracker provides available ByteRanges so they're properly aligned.
  • Fix bugs on resizing
    • Edge case where initial capacity is 0 would cause an infinite loop, now automatic resizing is smarter about how it chooses the new size.
  • Clean up return types of most methods.
  • Remove argument from ContiguousMemoryStorage::can_push to be closer to Layout constructor.
  • Rename ContiguousMemoryStorage::new_from_layout to ContiguousMemoryStorage::new_for_layout.

Removed

  • Remove StoreData trait as it wasn't supposed to be used.
  • Remove ContiguousMemoryStorage trait as it only complicated implementation.
  • Remove deprecated re-exports.
  • Remove std feature.
    • See #fd4767d commit message for reasoning.
  • Remove prelude module, use contiguous_mem::* as a drop in replacement.

Management

  • Add semver checking workflow
  • Add clippy workflow
  • Simplify CI workflow
  • Add resizing test to ensure correctness is maintained across versions
  • Improve documentation