@kingjs/reflect.implement-i-enumerable
v1.0.0
Published
Implements `IEnumerable` given a factory that, given the container, returns a `moveNext` function.
Downloads
7
Readme
@kingjs/reflect.implement-i-enumerable
Implements IEnumerable given a factory that, given the container, returns a moveNext function.
Usage
var assert = require('assert');
var IEnumerable = require('@kingjs/i-enumerable');
var IEnumerator = require('@kingjs/i-enumerator');
var implementIEnumerable = require('@kingjs/reflect.implement-i-enumerable');
var target = implementIEnumerable(
[ 0 ],
function moveNextFactory(instance) {
var i = -1;
return function moveNext() {
if (i + 1 == instance.length)
return false;
this.current_ = instance[++i]
return true;
}
}
)
var enumerator = target[IEnumerable.getEnumerator]();
assert(enumerator[IEnumerator.moveNext]());
assert(enumerator[IEnumerator.current] == 0);
assert(!enumerator[IEnumerator.moveNext]());API
implementIEnumerable(target, createMoveNext(this, instance))Parameters
target: The instance on which to implementIEnumerable.createMoveNext: A factory that, given the container, returns amoveNextfunction.moveNextshould returntrueif more elements remain; otherwisefalse.this: The enumerator. When a new value is generate it should be stored inthis.current_.instance: The instance to enumerate.
Returns
target
Install
With npm installed, run
$ npm install @kingjs/reflect.implement-i-enumerableDependencies
|Package|Version|
|---|---|
|@kingjs/i-enumerable|^1.0.6|
|@kingjs/i-enumerator|^1.0.7|
|@kingjs/reflect.implement-interface|^1.0.1|
Source
https://repository.kingjs.net/reflect/implement-i-enumerable
License
MIT
