commit | 6707f2950b46928b36d525358e7285425e5044ab | [log] [tgz] |
---|---|---|
author | Lasse R.H. Nielsen <lrn@google.com> | Mon Oct 14 14:34:52 2024 +0200 |
committer | Lasse R.H. Nielsen <lrn@google.com> | Mon Oct 14 14:34:52 2024 +0200 |
tree | 58031704d1a54cd336e900739f56472f4e44ec68 | |
parent | 64f820e5b83061d543ff03f7aa9bccc58784deaa [diff] |
v2.0.0 breaking changes Starts using Dart 3.0 class modifiers. This is a breaking change, making some classes be `final` or `interface` which prevents behavior that was previously possible. Removes existing deprecated API, except for `whereNotNull`. Deprecates API that is available in platform libraries (`IterableZip` class). Changes behavior of `UnorderedIterableEquality`, `SetEquality` and `MapEquality` to assume the compared collections' notions of equality agree with the `Equality` object for elements/keys in the `UnorderedIterableEquality`/ `SetEquality`/`MapEquality` object. This should improve performance of the equality comparisons, which currently try to assume nothing, and therefore cannot use `.contains`/`.containsKey`/`[]` on one collection with keys/values from the other collection
Contains utility functions and classes in the style of dart:collection
to make working with collections easier.
The package contains functions that operate on lists.
It contains ways to shuffle a List
, do binary search on a sorted List
, and various sorting algorithms.
The package provides a way to specify the equality of elements and collections.
Collections in Dart have no inherent equality. Two sets are not equal, even if they contain exactly the same objects as elements.
The Equality
interface provides a way to define such an equality. In this case, for example, const SetEquality(IdentityEquality())
is an equality that considers two sets equal exactly if they contain identical elements.
Equalities are provided for Iterable
s, List
s, Set
s, and Map
s, as well as combinations of these, such as:
const MapEquality(IdentityEquality(), ListEquality());
This equality considers maps equal if they have identical keys, and the corresponding values are lists with equal (operator==
) values.
Utilities for “zipping” a list of iterables into an iterable of lists.
An interface and implementation of a priority queue.
The package contains classes that “wrap” a collection.
A wrapper class contains an object of the same type, and it forwards all methods to the wrapped object.
Wrapper classes can be used in various ways, for example to restrict the type of an object to that of a supertype, or to change the behavior of selected functions on an existing object.
Please file feature requests and bugs at the issue tracker.
For information about our publishing automation and release process, see https://github.com/dart-lang/ecosystem/wiki/Publishing-automation.