20 lines
494 B
Go
20 lines
494 B
Go
// Copyright (c) 2024 Celestino Amoroso (celestino.amoroso@gmail.com).
|
|
// All rights reserved.
|
|
|
|
// iterator.go
|
|
package expr
|
|
|
|
import "fmt"
|
|
|
|
type Iterator interface {
|
|
Next() (item any, err error) // must return io.EOF after the last item
|
|
Current() (item any, err error)
|
|
Index() int
|
|
HasOperation(name string) bool
|
|
CallOperation(name string, args []any) (value any, err error)
|
|
}
|
|
|
|
func errNoOperation(name string) error {
|
|
return fmt.Errorf("no %q function defined in the data-source", name)
|
|
}
|