// Copyright (c) 2024 Celestino Amoroso (celestino.amoroso@gmail.com). // All rights reserved. // iter-factory.go package expr func NewIterator(value any) (it Iterator, err error) { if value == nil { return NewArrayIterator([]any{}), nil } switch v := value.(type) { case *ListType: it = NewListIterator(v, nil) case *DictType: it, err = NewDictIterator(v, nil) case []any: it = NewArrayIterator(v) case Iterator: it = v default: it = NewArrayIterator([]any{value}) } return }