1.0.0 • Published 5 years ago
@kingjs/reflect.implement-i-enumerable v1.0.0
@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 amoveNext
function.moveNext
should returntrue
if 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-enumerable
Dependencies
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
1.0.0
5 years ago