<commit_before>Quiver
======

Quiver is a set of utility libraries for Dart that makes using many Dart
libraries easier and more convenient, or adds additional functionality.

[![Build Status](https://drone.io/github.com/google/quiver-dart/status.png)](https://drone.io/github.com/google/quiver-dart/latest)

## Documentation

API Docs can be found here: http://google.github.io/quiver-dart/docs/

## Installation

Add Quiver to your project's pubspec.yaml file and run `pub get`.
We reccomend the following version constraint:

    dependencies:
      quiver: '>=0.13.0<0.14.0'

# Main Libraries

## [quiver.async][]

Utilities for working with Futures, Streams and async computations.

`FutureGroup` is collection of Futures that signals when all its child futures
have completed. Allows adding new Futures as long as it hasn't completed yet.
Useful when async tasks can spwn new async tasks and you need to wait for all of
them to complete.

`StreamRouter` splits a Stream into mulltiple streams based on a set of
predicates.

`CountdownTimer` is a simple countdown timer that fires events in regular
increments.

`doWhileAsync`, `reduceAsync` and `forEachAsync` perform async computations on
the elements of on Iterables, waiting for the computation to complete before
processing the next element.

`CreateTimer` and `CreateTimerPeriodic` are typedefs that are useful for
passing Timer factories to classes and functions, increasing the testability of
code that depends on Timer.

`enumerate` is a Stream version of the method of the same name from 
[quiver.iterables].

[quiver.async]: http://google.github.io/quiver-dart/docs/quiver.async.html

## [quiver.cache][]

`Cache` is a semi-persistent, asynchronously accessed, mapping of keys to
values. Caches are similar to Maps, except that the cache implementation might
store values in a remote system, so all operations are asynchronous, and caches
might have eviction policies.

`MapCache` is a Cache implementation backed by a Map.

[quiver.cache]: http://google.github.io/quiver-dart/docs/quiver.cache.html

## [quiver.collection][]

`listsEqual` and `mapsEqual` check collections for equality.

`Multimap` is an associative collection that maps keys to collections of<commit_msg>Remove enumerate docs from quiver.async in README<commit_after>Quiver
======

Quiver is a set of utility libraries for Dart that makes using many Dart
libraries easier and more convenient, or adds additional functionality.

[![Build Status](https://drone.io/github.com/google/quiver-dart/status.png)](https://drone.io/github.com/google/quiver-dart/latest)

## Documentation

API Docs can be found here: http://google.github.io/quiver-dart/docs/

## Installation

Add Quiver to your project's pubspec.yaml file and run `pub get`.
We reccomend the following version constraint:

    dependencies:
      quiver: '>=0.13.0<0.14.0'

# Main Libraries

## [quiver.async][]

Utilities for working with Futures, Streams and async computations.

`FutureGroup` is collection of Futures that signals when all its child futures
have completed. Allows adding new Futures as long as it hasn't completed yet.
Useful when async tasks can spwn new async tasks and you need to wait for all of
them to complete.

`StreamRouter` splits a Stream into mulltiple streams based on a set of
predicates.

`CountdownTimer` is a simple countdown timer that fires events in regular
increments.

`doWhileAsync`, `reduceAsync` and `forEachAsync` perform async computations on
the elements of on Iterables, waiting for the computation to complete before
processing the next element.

`CreateTimer` and `CreateTimerPeriodic` are typedefs that are useful for
passing Timer factories to classes and functions, increasing the testability of
code that depends on Timer.

[quiver.async]: http://google.github.io/quiver-dart/docs/quiver.async.html

## [quiver.cache][]

`Cache` is a semi-persistent, asynchronously accessed, mapping of keys to
values. Caches are similar to Maps, except that the cache implementation might
store values in a remote system, so all operations are asynchronous, and caches
might have eviction policies.

`MapCache` is a Cache implementation backed by a Map.

[quiver.cache]: http://google.github.io/quiver-dart/docs/quiver.cache.html

## [quiver.collection][]

`listsEqual` and `mapsEqual` check collections for equality.

`Multimap` is an associative collection that maps keys to collections of
{'fraction_non_alphanumeric': 0.07979204339963834, 'fraction_numerical': 0.003616636528028933, 'mean_word_length': 4.791884816753926, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2156735', 'n_tokens_mistral': 1279, 'n_tokens_neox': 1225, 'n_words': 535}