array-iterator.go: changed 'list' name component with 'array'
This commit is contained in:
+17
-17
@@ -14,7 +14,7 @@ import (
|
||||
"git.portale-stac.it/go-pkg/expr/types/array"
|
||||
)
|
||||
|
||||
type ListIterator struct {
|
||||
type ArrayIterator struct {
|
||||
a *array.ArrayType
|
||||
count int64
|
||||
index int64
|
||||
@@ -23,13 +23,13 @@ type ListIterator struct {
|
||||
step int64
|
||||
}
|
||||
|
||||
func NewListIterator(list *array.ArrayType, args []any) (it *ListIterator) {
|
||||
func NewArrayIteratorFromArray(a *array.ArrayType, args []any) (it *ArrayIterator) {
|
||||
var argc int = 0
|
||||
listLen := int64(len(([]any)(*list)))
|
||||
listLen := int64(len(([]any)(*a)))
|
||||
if args != nil {
|
||||
argc = len(args)
|
||||
}
|
||||
it = &ListIterator{a: list, count: 0, index: -1, start: 0, stop: listLen - 1, step: 1}
|
||||
it = &ArrayIterator{a: a, count: 0, index: -1, start: 0, stop: listLen - 1, step: 1}
|
||||
if argc >= 1 {
|
||||
if i, err := types.ToGoInt64(args[0], "start index"); err == nil {
|
||||
if i < 0 {
|
||||
@@ -62,12 +62,12 @@ func NewListIterator(list *array.ArrayType, args []any) (it *ListIterator) {
|
||||
return
|
||||
}
|
||||
|
||||
func NewArrayIterator(a []any) (it *ListIterator) {
|
||||
it = &ListIterator{a: (*array.ArrayType)(&a), count: 0, index: -1, start: 0, stop: int64(len(a)) - 1, step: 1}
|
||||
func NewArrayIterator(a []any) (it *ArrayIterator) {
|
||||
it = &ArrayIterator{a: (*array.ArrayType)(&a), count: 0, index: -1, start: 0, stop: int64(len(a)) - 1, step: 1}
|
||||
return
|
||||
}
|
||||
|
||||
func (it *ListIterator) String() string {
|
||||
func (it *ArrayIterator) String() string {
|
||||
var l = int64(0)
|
||||
if it.a != nil {
|
||||
l = int64(len(*it.a))
|
||||
@@ -75,17 +75,17 @@ func (it *ListIterator) String() string {
|
||||
return fmt.Sprintf("$([#%d])", l)
|
||||
}
|
||||
|
||||
func (it *ListIterator) TypeName() string {
|
||||
return "ListIterator"
|
||||
func (it *ArrayIterator) TypeName() string {
|
||||
return "ArrayIterator"
|
||||
}
|
||||
|
||||
func (it *ListIterator) HasOperation(name string) bool {
|
||||
func (it *ArrayIterator) HasOperation(name string) bool {
|
||||
//yes := name == expr.NextName || name == expr.ResetName || name == expr.IndexName || name == expr.CountName || name == expr.CurrentName
|
||||
yes := slices.Contains([]string{kern.NextName, kern.ResetName, kern.IndexName, kern.CountName, kern.CurrentName}, name)
|
||||
return yes
|
||||
}
|
||||
|
||||
func (it *ListIterator) CallOperation(name string, args map[string]any) (v any, err error) {
|
||||
func (it *ArrayIterator) CallOperation(name string, args map[string]any) (v any, err error) {
|
||||
switch name {
|
||||
case kern.NextName:
|
||||
v, err = it.Next()
|
||||
@@ -105,7 +105,7 @@ func (it *ListIterator) CallOperation(name string, args map[string]any) (v any,
|
||||
return
|
||||
}
|
||||
|
||||
func (it *ListIterator) Current() (item any, err error) {
|
||||
func (it *ArrayIterator) Current() (item any, err error) {
|
||||
a := *(it.a)
|
||||
if it.start <= it.stop {
|
||||
if it.stop < int64(len(a)) && it.index >= it.start && it.index <= it.stop {
|
||||
@@ -124,7 +124,7 @@ func (it *ListIterator) Current() (item any, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func (it *ListIterator) Next() (item any, err error) {
|
||||
func (it *ArrayIterator) Next() (item any, err error) {
|
||||
it.index += it.step
|
||||
if item, err = it.Current(); err != io.EOF {
|
||||
it.count++
|
||||
@@ -132,20 +132,20 @@ func (it *ListIterator) Next() (item any, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func (it *ListIterator) Index() int64 {
|
||||
func (it *ArrayIterator) Index() int64 {
|
||||
return it.index
|
||||
}
|
||||
|
||||
func (it *ListIterator) Count() int64 {
|
||||
func (it *ArrayIterator) Count() int64 {
|
||||
return it.count
|
||||
}
|
||||
|
||||
func (it *ListIterator) Reset() error {
|
||||
func (it *ArrayIterator) Reset() error {
|
||||
it.index = it.start - it.step
|
||||
it.count = 0
|
||||
return nil
|
||||
}
|
||||
|
||||
func (it *ListIterator) Clean() error {
|
||||
func (it *ArrayIterator) Clean() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user