import { Enumerable } from "https://deno.land/x/proc@0.20.35/tools/deps/proc.ts";
Enumerable wrapper for AsyncIterable
.
Use the factory function enumerate to create new instances.
Constructors
Construct a new enumerable wrapper.
Properties
Take the head of the enumeration.
This operation is equivalent to take(1)
and consumes the enumeration.
Methods
Drop the first n
items, return the rest.
Map the sequence from one type to another, concurrently.
Results are returned in order.
Map the sequence from one type to another, concurrently.
Items are iterated out of order. This allows maximum concurrency at all times, but the output order cannot be assumed to be the same as the input order.
Count the number of items; optionally with a filter.
Drop the first n
items, return the rest.
Filter the sequence to contain just the items that pass a test.
Filter the sequence to exclude the items that pass a test. This returns the inverse of filter.
Flatten the iterable.
Perform an operation for each item in the sequence.
Map the iterator from one type to another.
Reduce a sequence to a single value.
Run a process.
Take the first n
items.
Split into 2 or more identical iterators.
Transform the iterable from one type to another with an opportunity to catch and handle errors.
Unzip a collection of [A, B]
into Enumerable<A>
and Enumerable<B>
.
Note that this operations uses tee, so it will use memory during the iteration.
Example
const [a, b] = enumerate([[1, "A"], [2, "B"], [3, "C"]]).unzip();
// a is number[] -> [1, 2, 3]
// b is string[] -> ["A", "B", "C"]
Write all data to the writer.
Example
Write some numbers to stdout
.
range({to: 99})
.map(n => n.toString())
.transform(toBytes)
.writeTo(Deno.stdout.writable, {noclose: true});
Zip two Enumerables together. If collections are unequal length, the longer collection is truncated.
Example
const a = range({ from: 1, until: 3 });
const b = enumerate(["A", "B", "C"]);
const result = a.zip(b);
// [[1, "A"], [2, "B"], [3, "C"]]
Implement AsyncIterable<T>
.