Releases: pointfreeco/swift-identified-collections
0.4.0
- Added:
IdentifiedArray.append(contentsOf:)
, which appends elements to an array iff they are not already present (thanks @jeffersonsetiawan). - Updated:
swift-collections
dependency has been updated to 1.0.2 (thanks @KaiOelfke). - Updated: Identified Collections platform requirements have been relaxed.
0.3.2
0.3.1
- Fixed: Identified arrays that specify a key path should no longer fail equatable checks when elements are equal (thanks @sroche27r).
0.3.0
- Changed: Swift Identified Collections now depends on Swift Collections 1.0.0.
0.2.0
- Added:
IdentifiedArray.elements
, an array view of the identified array (thanks @p4checo). - Changed:
IdentifiedArray.move(fromOffsets:toOffset:)
andIdentifiedArray.remove(atOffsets:)
no longer requires SwiftUI (thanks @gonzalolarralde). - Improved:
IdentifiedArray.move(fromOffsets:toOffset:)
andIdentifiedArray.remove(atOffsets:)
are now much more performant. - Fixed:
IdentifiedArray.partition
now partitioning keys along with their values by calling down to the correct underlying implementation (thanks @tgt). - Fixed: stopped using a few APIs from Swift Collections that have been deprecated (thanks @diederich).
0.1.1
0.1.0
- Initial release!
What are the main differences between this library and the IdentifiedArray
that shipped in swift-composable-architecture 0.20.0?
-
It is now a wrapper around
OrderedDictionary
from Swift Collections.This means we can lean on the performance and correctness of Apple's library and avoid many of the bugs discovered in the original implementation.
-
It no longer conforms to
MutableCollection
andRangeReplaceableCollection
.We take the same position Swift Collections takes with
OrderedSet
andOrderedDictionary
. All elements in an identified array should have unique identity, operations such asMutableCollection
's subscript setter orRangeReplaceableCollection
'sreplaceSubrange
assume the ability to insert/replace arbitrary elements in the collection, but allowing that could lead to duplicate values. Methods have been deprecated or made unavailable with suggested migration paths.