Files
iterables-js/src/iterators/Forward.js

36 lines
548 B
JavaScript

import { satisfiesConcept } from "../utils/concept"
export class ForwardIterator {
move(rhs) {
return this.copy(rhs)
}
get value() {
return this.deref().value
}
set value(value) {
return this.deref().value = value
}
neq(rhs) {
return !this.eq(rhs)
}
}
ForwardIterator.is = function (obj, ...args) {
const pure_virtual = [
'clone',
'copy',
'deref',
'inc',
'eq'
]
const virtual = [
'move',
'value',
'neq',
]
return satisfiesConcept(obj, pure_virtual, virtual, ...args)
}