Skip to content

v2.0.0

Latest

Choose a tag to compare

@rtheunissen rtheunissen released this 12 Apr 02:10
· 4 commits to master since this release

Major release: redesign from 11 types + 3 interfaces to 5 types + 1 interface.

New

  • Ds\Seq — ordered sequence (replaces Vector and Deque)
  • Ds\Heap — configurable heap, max-heap by default (replaces PriorityQueue)
  • Ds\Key — interface for custom key equality (replaces Hashable)
  • Functional constructors: \Ds\seq(), \Ds\map(), \Ds\set(), \Ds\heap()
  • Copy-on-write: clone and copy() are O(1), mutation during iteration is safe
  • Ds\Pair is now a readonly class

Changed

  • Ds\Map::values() returns Ds\Seq
  • Ds\Map::pairs() returns Ds\Seq
  • Ds\Map::keys() returns Ds\Set

Removed

  • Ds\Vector, Ds\Deque, Ds\Stack, Ds\Queue, Ds\PriorityQueue
  • Ds\Collection, Ds\Sequence, Ds\Hashable interfaces

Requires PHP >= 8.2.