collections

package
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 25, 2018 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultValueVar = "value"
	DefaultKeyVar   = "key"
)

Variables

View Source
var (
	ErrExhausted         = core.Error(core.ErrInvalidOperation, "iterator has been exhausted")
	ErrResultSetMismatch = core.Error(core.ErrInvalidArgument, "count of values in result set is less that count of variables")
)
View Source
var NoopIterator = &noopIterator{}

Functions

func IsValidSortDirection

func IsValidSortDirection(direction SortDirection) bool

func ValidateDataSet added in v0.4.0

func ValidateDataSet(set DataSet, variables Variables) error

Types

type Collection

type Collection interface {
	Length() values.Int
}

type Comparator

type Comparator func(first DataSet, second DataSet) (int, error)

type DataSet added in v0.4.0

type DataSet map[string]core.Value

func NewDataSet added in v0.4.0

func NewDataSet() DataSet

func ToSlice

func ToSlice(iterator Iterator) ([]DataSet, error)

func (DataSet) Apply added in v0.4.0

func (ds DataSet) Apply(scope *core.Scope, variables Variables) error

func (DataSet) Compare added in v0.4.0

func (ds DataSet) Compare(other DataSet) int

func (DataSet) Get added in v0.4.0

func (ds DataSet) Get(key string) core.Value

func (DataSet) Hash added in v0.4.0

func (ds DataSet) Hash() uint64

func (DataSet) Set added in v0.4.0

func (ds DataSet) Set(key string, value core.Value)

type FilterIterator

type FilterIterator struct {
	// contains filtered or unexported fields
}

func NewFilterIterator

func NewFilterIterator(src Iterator, predicate FilterPredicate) (*FilterIterator, error)

func (*FilterIterator) HasNext

func (iterator *FilterIterator) HasNext() bool

func (*FilterIterator) Next

func (iterator *FilterIterator) Next() (DataSet, error)

type FilterPredicate

type FilterPredicate func(set DataSet) (bool, error)

type HTMLNodeIterator

type HTMLNodeIterator struct {
	// contains filtered or unexported fields
}

func (*HTMLNodeIterator) HasNext

func (iterator *HTMLNodeIterator) HasNext() bool

func (*HTMLNodeIterator) Next

func (iterator *HTMLNodeIterator) Next() (DataSet, error)

type IndexedCollection added in v0.4.0

type IndexedCollection interface {
	Collection
	Get(idx values.Int) core.Value
	Set(idx values.Int, value core.Value) error
}

type IndexedIterator added in v0.4.0

type IndexedIterator struct {
	// contains filtered or unexported fields
}

func (*IndexedIterator) HasNext added in v0.4.0

func (iterator *IndexedIterator) HasNext() bool

func (*IndexedIterator) Next added in v0.4.0

func (iterator *IndexedIterator) Next() (DataSet, error)

type Iterable

type Iterable interface {
	Variables() Variables
	Iterate(ctx context.Context, scope *core.Scope) (Iterator, error)
}

type Iterator

type Iterator interface {
	HasNext() bool
	Next() (DataSet, error)
}

func NewDefaultIndexedIterator added in v0.4.0

func NewDefaultIndexedIterator(
	input IndexedCollection,
) Iterator

func NewDefaultKeyedIterator added in v0.4.0

func NewDefaultKeyedIterator(input KeyedCollection) Iterator

func NewDefaultMapIterator added in v0.4.0

func NewDefaultMapIterator(
	input map[string]core.Value,
) Iterator

func NewDefaultSliceIterator added in v0.4.0

func NewDefaultSliceIterator(input []core.Value) Iterator

func NewHTMLNodeIterator

func NewHTMLNodeIterator(
	valVar,
	keyVar string,
	input values.HTMLNode,
) Iterator

func NewIndexedIterator added in v0.4.0

func NewIndexedIterator(
	valVar,
	keyVar string,
	input IndexedCollection,
) Iterator

func NewKeyedIterator added in v0.4.0

func NewKeyedIterator(
	valVar,
	keyVar string,
	input KeyedCollection,
) Iterator

func NewMapIterator

func NewMapIterator(
	valVar,
	keyVar string,
	input map[string]core.Value,
) Iterator

func NewSliceIterator

func NewSliceIterator(
	valVar,
	keyVar string,
	input []core.Value,
) Iterator

type KeyedCollection added in v0.4.0

type KeyedCollection interface {
	Collection
	Keys() []string
	Get(key values.String) (core.Value, values.Boolean)
	Set(key values.String, value core.Value)
}

type KeyedIterator added in v0.4.0

type KeyedIterator struct {
	// contains filtered or unexported fields
}

func (*KeyedIterator) HasNext added in v0.4.0

func (iterator *KeyedIterator) HasNext() bool

func (*KeyedIterator) Next added in v0.4.0

func (iterator *KeyedIterator) Next() (DataSet, error)

type LimitIterator

type LimitIterator struct {
	// contains filtered or unexported fields
}

func NewLimitIterator

func NewLimitIterator(src Iterator, count, offset int) (*LimitIterator, error)

func (*LimitIterator) HasNext

func (i *LimitIterator) HasNext() bool

func (*LimitIterator) Next

func (i *LimitIterator) Next() (DataSet, error)

type MapIterator

type MapIterator struct {
	// contains filtered or unexported fields
}

func (*MapIterator) HasNext

func (iterator *MapIterator) HasNext() bool

func (*MapIterator) Next

func (iterator *MapIterator) Next() (DataSet, error)

type SliceIterator

type SliceIterator struct {
	// contains filtered or unexported fields
}

func (*SliceIterator) HasNext

func (iterator *SliceIterator) HasNext() bool

func (*SliceIterator) Next

func (iterator *SliceIterator) Next() (DataSet, error)

type SortDirection

type SortDirection int
const (
	SortDirectionAsc  SortDirection = 1
	SortDirectionDesc SortDirection = -1
)

func SortDirectionFromString

func SortDirectionFromString(str string) SortDirection

type SortIterator

type SortIterator struct {
	// contains filtered or unexported fields
}

func NewSortIterator

func NewSortIterator(
	src Iterator,
	comparators ...*Sorter,
) (*SortIterator, error)

func (*SortIterator) HasNext

func (iterator *SortIterator) HasNext() bool

func (*SortIterator) Next

func (iterator *SortIterator) Next() (DataSet, error)

type Sorter

type Sorter struct {
	// contains filtered or unexported fields
}

func NewSorter

func NewSorter(fn Comparator, direction SortDirection) (*Sorter, error)

type UniqueIterator

type UniqueIterator struct {
	// contains filtered or unexported fields
}

func NewUniqueIterator

func NewUniqueIterator(src Iterator, hashKey string) (*UniqueIterator, error)

func (*UniqueIterator) HasNext

func (iterator *UniqueIterator) HasNext() bool

func (*UniqueIterator) Next

func (iterator *UniqueIterator) Next() (DataSet, error)

type Variables added in v0.4.0

type Variables []string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL