Releases: benbjohnson/immutable
v0.4.3
What's Changed
- Sets & maps append-multi. Also docs and a fix for SortedSets by @laher in #35
- Ensure immutability of sets, maps & lists by @BarrensZeppelin in #39
- Retract v0.4.2 by @benbjohnson in #41
- Widen key constraint to 'any' for maps and sets by @BarrensZeppelin in #38
Full Changelog: v0.4.2...v0.4.3
v0.4.2
v0.4.1
What's Changed
- Remove references to []byte keys in README by @banks in #24
- Allow lists to contain non-comparable elements by @BarrensZeppelin in #28
- generics: widen map key constraint to 'comparable' by @laher in #29
- readme updates for latest changes by @laher in #30
New Contributors
- @banks made their first contribution in #24
- @BarrensZeppelin made their first contribution in #28
Full Changelog: v0.4.0...v0.4.1
v0.4.0
This release changes the API to use Go generics. Thanks to @laher for the pull request for that!
Refactor builders
There was a bug in previous versions where changes to builders would leak if they used existing collections. The API has been changed so that builders can only be used with new collections and are marked as invalid after fetching the underlying collection.
Built-in hashers & comparers
This release adds built-in Hasher
& Comparer
types for all int
& uint
types (e.g. int
, int8
, int16, etc) as well as
stringand
[]byte`.
It also includes reflection-based hasher & comparers for int
, uint
, and string
types that have been aliased . For example, reflection based hashers will be used for a type declared like this:
type ID int
Thanks to @adrianboyko for the reflection-based hashers! 🎉
Efficient Builders
The primary improvement in v0.2.0
is the addition of the ListBuilder
, MapBuilder
, and SortedMapBuilder
. These allow multiple mutations to occur on a List
, Map
, and SortedMap
, respectively, while minimizing allocations. Overall performance can improve by more than 10x depending on how many operations are combined. YMMV.
This release also includes some minor docs changes.
v0.1.1
- Fix
SortedMapIterator
initialization bug. - Documentation improvements.
Initial release
v0.1.0 v0.1.0