the FlatArrayIterator has been moved to the new file iter-list.go
This commit is contained in:
parent
ebb2811ed3
commit
7941c2dfec
42
iter-list.go
Normal file
42
iter-list.go
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
// Copyright (c) 2024 Celestino Amoroso (celestino.amoroso@gmail.com).
|
||||||
|
// All rights reserved.
|
||||||
|
|
||||||
|
// iter-list.go
|
||||||
|
package expr
|
||||||
|
|
||||||
|
import "io"
|
||||||
|
|
||||||
|
type FlatArrayIterator struct {
|
||||||
|
a []any
|
||||||
|
index int
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewFlatArrayIterator(array []any) *FlatArrayIterator {
|
||||||
|
return &FlatArrayIterator{a: array, index: 0}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (it *FlatArrayIterator) Current() (item any, err error) {
|
||||||
|
if it.index >= 0 && it.index < len(it.a) {
|
||||||
|
item = it.a[it.index]
|
||||||
|
} else {
|
||||||
|
err = io.EOF
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (it *FlatArrayIterator) Next() (item any, err error) {
|
||||||
|
if item, err = it.Current(); err != io.EOF {
|
||||||
|
it.index++
|
||||||
|
}
|
||||||
|
// if it.index < len(it.a) {
|
||||||
|
// item = it.a[it.index]
|
||||||
|
// it.index++
|
||||||
|
// } else {
|
||||||
|
// err = io.EOF
|
||||||
|
// }
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (it *FlatArrayIterator) Index() int {
|
||||||
|
return it.index - 1
|
||||||
|
}
|
31
iterator.go
31
iterator.go
@ -4,37 +4,8 @@
|
|||||||
// iterator.go
|
// iterator.go
|
||||||
package expr
|
package expr
|
||||||
|
|
||||||
import "io"
|
|
||||||
|
|
||||||
type Iterator interface {
|
type Iterator interface {
|
||||||
Reset()
|
|
||||||
Next() (item any, err error) // must return io.EOF after the last item
|
Next() (item any, err error) // must return io.EOF after the last item
|
||||||
|
Current() (item any, err error)
|
||||||
Index() int
|
Index() int
|
||||||
}
|
}
|
||||||
|
|
||||||
type FlatArrayIterator struct {
|
|
||||||
a []any
|
|
||||||
index int
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewFlatArrayIterator(array []any) *FlatArrayIterator {
|
|
||||||
return &FlatArrayIterator{a: array, index: 0}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (it *FlatArrayIterator) Reset() {
|
|
||||||
it.index = 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (it *FlatArrayIterator) Next() (item any, err error) {
|
|
||||||
if it.index < len(it.a) {
|
|
||||||
item = it.a[it.index]
|
|
||||||
it.index++
|
|
||||||
} else {
|
|
||||||
err = io.EOF
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func (it *FlatArrayIterator) Index() int {
|
|
||||||
return it.index - 1
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user