Releases: passsy/kt.dart
v0.7.0-dev.3
- Rename
(List|Set|Map).immutable()
extension to.toImmutableList()
to match Dart SDK naming schema. - Remove
int.rangeTo(X)
extension. Please use thedartx
as replacement which offers the same extension - Remove
T.to(X)
extension to create aKtPair
. It's too general and should be offered by the dart SDK not a 3rd party package
0.7.0-dev.2
New .dart
extensions to convert KtDart collections back to dart collections.
// New: Converting dart collections to KtDart collections (mutable views)
final KtMutableList<String> ktList = ["hey"].kt;
final KtMutableSet<String> ktSet = {"hey"}.kt;
final KtMutableMap<String, int> ktMap = {"hey": 1}.kt;
// Converting KtDart collections to dart collections
final List<String> dartList = KtList.of("hey").dart;
final Set<String> dartSet = KtSet.of("hey").dart;
final Map<String, int> dartMap = KtMap.from({"hey": 1}).dart;
Update
dependencies:
kt_dart: ^0.7.0-dev.2
0.7.0-dev.1
KtDart makes full use of darts static extension methods, introduced with Dart 2.6.
The public API stays unchanged and is backwards compatible.
Improved interopt with dart collections
It is now easier then ever to convert dart to ktdart collections and vice versa. Use the .kt
property to convert dart collections to KtDart collections. (Note: .kt
create a view, which allows you to mutate the original dart collection).
// New: Make dart collections immutable
final KtList<String> list = ["hey"].immutable();
final KtSet<String> set = {"hey"}.immutable();
final KtMap<String, int> map = {"hey": 1}.immutable();
// New: Converting dart collections to KtDart collections (mutable views)
final KtMutableList<String> ktList = ["hey"].kt;
final KtMutableSet<String> ktSet = {"hey"}.kt;
final KtMutableMap<String, int> ktMap = {"hey": 1}.kt;
// Converting KtDart collections to dart collections
final List<String> dartList = KtList.of("hey").asList();
final Set<String> dartSet = KtSet.of("hey").asSet();
final Map<String, int> dartMap = KtMap.from({"hey": 1}).asMap();
Tuple improvements
KtPair
s can now created with the T0.to(T1)
extension.
final KtPair<String, int> pair = "foo".to(42);
Also, KtPair
and KtTriple
now have a new toList()
function to convert the values to a KtList
.
New Extensions
KtList?.orEmpty()
returns an empty list when the list isnull
KtSet?.orEmpty()
returns an empty set when the set isnull
KtMap?.orEmpty()
returns an empty map when the map isnull
KtMap.ifEmpty(() -> defaultValue)
returns the default value when the map is emptyKtIterable<KtIterable<T>>.flatten()
flattens the nested collections toKtIterable<T>
KtIterable<KtPair<T, U>>.unzip(): KtPair<KtList<T>, KtList<U>>
unzips list of pairs to list of their first and second valuesKtIterable<Comparable<T>>.min()
returns the smallest element of any comparable iterableKtIterable<Comparable<T>>.max()
returns the largest element of any comparable iterable
Upgrade
dependencies:
kt_dart: ^0.7.0-dev.1
0.6.2
0.6.1
0.6.0
This major update of kt.dart adds 16+ extension methods to KtMap
and makes working with maps even easier.
Behavior Changes
The properties KtList.list: List
,KtSet.set: Set
are now deprecated and KtMap.map: Map
was removed. Those properties where used to convert kt.dart collections to dart collections.
Instead use the new KtList.asList(): List
, KtSet.asSet(): Set
, KtMa.asMap(): Map
methods.
The old properties returned copies of the collections.
The new as
-methods return views of the original collections and reflect changes of the original data.
This breaking change was necessary because the property KtMap.map: Map<K, V>
was conflicting with KtMap.map(MapEntry<K, V> -> R) : KtList<R>
to map the entries to items of a KtList
.
Read about further details here.
If you have used properties to iterate over the collections using a for-loop you should now always use iter
which is available for all kt.dart collections.
for (final element in listOf("a", "b", "c").iter) {
print(element);
}
for (final element in setOf("a", "b", "c").iter) {
print(element);
}
for (final p in mapFrom({1: "Bulbasaur", 2: "Ivysaur"}).iter) {
print("${p.key} -> ${p.value}");
}
Additions
- #86 New:
KtMap.map
Returns a list containing the results of applying the giventransform
function to each entry in the original map. - #86 New:
KtMap.iter
Access to aIterable
to be used in for-loops - #87 New:
KtMap.count
Returns the number of entries matching the given [predicate] or the number of entries whenpredicate = null
. - #89 New:
KtMap.minBy
Returns the first entry yielding the smallest value of the given function ornull
if there are no entries. - #89 New:
KtMap.minWith
Returns the first entry having the smallest value according to the providedcomparator
ornull
if there are no entries. - #89 New:
KtMap.maxBy
Returns the first entry yielding the largest value of the given function ornull
if there are no entries. - #89 New:
KtMap.maxWith
Returns the first entry having the largest value according to the providedcomparator
ornull
if there are no entries. - #90 New:
KtMap.toList
Returns aKtList
containing all key-value pairs. - #78 New:
KtMap.forEach
Performs givenaction
on each key/value pair from this map. thanks @acherkashyn - #80 New:
KtMap.none
Returnstrue
if there is no entries in the map that match the givenpredicate
. thanks @acherkashyn - #80 New:
KtMap.all
Returns true if all entries match the givenpredicate
. thanks @acherkashyn - #80 New:
KtMap.any
Returns true if there is at least one entry that matches the givenpredicate
. thanks @acherkashyn - #84 New:
KtMap.filterKeys
Returns a map containing all key-value pairs with keys matching the givenpredicate
. - #84 New:
KtMap.filterValues
Returns a map containing all key-value pairs with values matching the givenpredicate
. - #79 New:
KtMap.asMap
Returns a read-only dart:coreMap
- #79 New:
KtMutableMap.asMap
Creates aMap
instance that wraps the originalKtMap
. It acts as a view.
- #75 New:
KtIterable.takeWhile
Returns a list containing first elements satisfying the givenpredicate
. - #76 New:
KtIterable.takeLastWhile
Returns a list containing last elements satisfying the givenpredicate
.
- #73 New:
KtList.takeLast
, Returns a list containing lastn
elements. - #79 New:
KtList.asList
Returns a read-only dart:coreList
- #79 New:
KtMutableList.asList
Creates aList
instance that wraps the originalKtList
. It acts as a view.
- #79, #91 New:
KtSet.asSet
Returns a read-only dart:coreSet
- #79 New:
KtMutableSet.asSet
Creates aSet
instance that wraps the originalKtSet
. It acts as a view.
Bugfixes
Documentation
- #68 Document
KtSet
constructors - #70 Fix README typos, thanks @RedBrogdon
Misc.
- #69
KtMutableListIterator
throwsIndexOutOfBoundsException
when callingset
beforenext
was called - #81 Force dartfmt on CI
- #83 Improve .gitignore
Upgrade Instructions
dependencies:
kt_dart: ^0.6.0
0.5.0
This project has been renamed to kt.dart
. If you're using a previous version upgrade like this:
pubspec.yaml
dependencies:
- dart_kollection: ^0.3.0
- kotlin_dart: ^0.4.0
+ kt_dart: ^0.5.0
your_source.dart
- import 'package:dart_kollection/dart_kollection.dart';
- import 'package:kotlin_dart/kotlin.dart';
+ import 'package:kt_dart/kt.dart';
0.4.3
Deprecate package kotlin_dart
and recommend users to migrate to kt_dart
.
0.3.2
Deprecate package dart_kollection
in favour of kt_dart
0.4.2
Shorten pub project description to make pana happy.