36 lines
548 B
JavaScript
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)
|
|
}
|