Documentation
¶
Index ¶
- func Fold[T, U any](iter SeIterator[T], reducer func(accumulator U, next T) U, inital U) U
- type Chainer
- type ChanIter
- type DeIterator
- type EnumerateEnt
- type Enumerator
- type Excluder
- type Iterator
- func (iter Iterator[T]) Chain(z SeIterator[T]) Iterator[T]
- func (iter Iterator[T]) Collect() []T
- func (iter Iterator[T]) Exclude(excluder func(T) bool) Iterator[T]
- func (iter Iterator[T]) Find(predicate func(T) bool) (v T, found bool)
- func (iter Iterator[T]) ForEach(each func(T))
- func (iter Iterator[T]) Map(mapper func(T) T) Iterator[T]
- func (iter Iterator[T]) MustNext() T
- func (iter Iterator[T]) MustReverse() (rev Iterator[T])
- func (iter Iterator[T]) Reduce(reducer func(accumulator T, next T) T) T
- func (iter Iterator[T]) Reverse() (rev Iterator[T], ok bool)
- func (iter Iterator[T]) Select(selector func(T) bool) Iterator[T]
- func (iter Iterator[T]) SizeHint() int
- func (iter Iterator[T]) SkipN(n int) Iterator[T]
- func (iter Iterator[T]) SkipWhile(skipIf func(T) bool) Iterator[T]
- func (iter Iterator[T]) TakeN(n int) Iterator[T]
- func (iter Iterator[T]) TakeWhile(takeIf func(T) bool) Iterator[T]
- func (iter Iterator[T]) Unwrap() SeIterator[T]
- type ListIterDe
- type ListIterSe
- type Mapper
- type NSkipper
- type NTaker
- type NextBacker
- type Nexter
- type Range
- type ReversedDeIter
- type Reverser
- type SameTyMapper
- type SeIterator
- type Selector
- type SizeHinter
- type SliceIterDe
- type TwoEleTuple
- type Unwrapper
- type WhileSkipper
- type WhileTaker
- type Zipper
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Fold ¶ added in v0.0.9
func Fold[T, U any](iter SeIterator[T], reducer func(accumulator U, next T) U, inital U) U
Types ¶
type Chainer ¶ added in v0.0.8
type Chainer[T any] struct { // contains filtered or unexported fields }
func NewChainer ¶ added in v0.0.8
func NewChainer[T any](former SeIterator[T], latter SeIterator[T]) *Chainer[T]
func (*Chainer[T]) Reverse ¶ added in v0.0.9
func (c *Chainer[T]) Reverse() (rev SeIterator[T], ok bool)
Reverse implements Reverser.
type ChanIter ¶
type ChanIter[T any] struct { // contains filtered or unexported fields }
func FromChannel ¶
FromChannel makes ChanIter associated with given channel. To signal end of iterator, close passed channel.
*ChanIter[T] only implements SeIterator[T].
func (*ChanIter[T]) Next ¶
Next earns next element from this iterator. Next blocks until internal channel receives.
func (*ChanIter[T]) ToIterator ¶ added in v0.0.9
type DeIterator ¶
type DeIterator[T any] interface { Nexter[T] NextBacker[T] }
Doubly ended iterator.
type EnumerateEnt ¶ added in v0.0.9
type Enumerator ¶ added in v0.0.9
type Enumerator[T any] struct { // contains filtered or unexported fields }
func Enumerate ¶ added in v0.0.9
func Enumerate[T any](iter SeIterator[T]) *Enumerator[T]
func (*Enumerator[T]) Next ¶ added in v0.0.9
func (e *Enumerator[T]) Next() (next EnumerateEnt[T], ok bool)
func (Enumerator[T]) SizeHint ¶ added in v0.0.9
func (iter Enumerator[T]) SizeHint() int
type Excluder ¶
type Excluder[T any] struct { // contains filtered or unexported fields }
func NewExcluder ¶
func NewExcluder[T any](iter SeIterator[T], excluder func(T) bool) Excluder[T]
func (Excluder[T]) Reverse ¶ added in v0.0.9
func (iter Excluder[T]) Reverse() (rev SeIterator[T], ok bool)
func (Excluder[T]) ReverseRaw ¶ added in v0.0.9
type Iterator ¶
type Iterator[T any] struct { SeIterator[T] }
func (Iterator[T]) Chain ¶ added in v0.0.8
func (iter Iterator[T]) Chain(z SeIterator[T]) Iterator[T]
func (Iterator[T]) MustReverse ¶ added in v0.0.9
func (Iterator[T]) Reduce ¶ added in v0.0.9
func (iter Iterator[T]) Reduce(reducer func(accumulator T, next T) T) T
func (Iterator[T]) Unwrap ¶ added in v0.0.9
func (iter Iterator[T]) Unwrap() SeIterator[T]
type ListIterDe ¶ added in v0.0.9
type ListIterDe[T any] struct { // contains filtered or unexported fields }
Doubly ended iterator made from List.
func FromFixedList ¶ added in v0.0.9
func FromFixedList[T any](list *listparam.List[T]) *ListIterDe[T]
FromFixedList makes *ListIterDe[T] from list.List[T]. Range is fixed at the time FromFixedList returns. Mutating passed list outside this iterator may cause undefined behavior.
func (*ListIterDe[T]) Next ¶ added in v0.0.9
func (li *ListIterDe[T]) Next() (next T, ok bool)
func (*ListIterDe[T]) NextBack ¶ added in v0.0.9
func (li *ListIterDe[T]) NextBack() (next T, ok bool)
func (*ListIterDe[T]) SizeHint ¶ added in v0.0.9
func (li *ListIterDe[T]) SizeHint() int
SizeHint hints size of remaining elements. Size would be incorrect if and only if new element is inserted into between head and tail of the iterator.
func (*ListIterDe[T]) ToIterator ¶ added in v0.0.9
func (li *ListIterDe[T]) ToIterator() Iterator[T]
type ListIterSe ¶ added in v0.0.9
type ListIterSe[T any] struct { // contains filtered or unexported fields }
ListIterSe is monotonic list iterator. It only advances to tail. ListIterSe is not fused, its Next might return ok=true after it returns ok=false. This happens when passed list grows its tail afterwards.
func (*ListIterSe[T]) Next ¶ added in v0.0.9
func (li *ListIterSe[T]) Next() (next T, ok bool)
func (*ListIterSe[T]) ToIterator ¶ added in v0.0.9
func (li *ListIterSe[T]) ToIterator() Iterator[T]
type Mapper ¶
type Mapper[T, U any] struct { // contains filtered or unexported fields }
Mapper applies mapper function.
func Map ¶
func Map[T, U any](iter SeIterator[T], mapper func(T) U) Mapper[T, U]
func (Mapper[T, U]) Reverse ¶ added in v0.0.9
func (iter Mapper[T, U]) Reverse() (rev SeIterator[U], ok bool)
func (Mapper[T, U]) ReverseRaw ¶ added in v0.0.9
func (Mapper[T, U]) ToIterator ¶ added in v0.0.9
type NSkipper ¶
type NSkipper[T any] struct { // contains filtered or unexported fields }
func NewNSkipper ¶
func NewNSkipper[T any](iter SeIterator[T], n int) *NSkipper[T]
func (NSkipper[T]) Reverse ¶ added in v0.0.9
func (iter NSkipper[T]) Reverse() (rev SeIterator[T], ok bool)
func (NSkipper[T]) ReverseRaw ¶ added in v0.0.9
type NTaker ¶
type NTaker[T any] struct { // contains filtered or unexported fields }
func (NTaker[T]) Reverse ¶ added in v0.0.9
func (iter NTaker[T]) Reverse() (rev SeIterator[T], ok bool)
func (NTaker[T]) ReverseRaw ¶ added in v0.0.9
type NextBacker ¶
type Range ¶ added in v0.0.9
type Range struct {
// contains filtered or unexported fields
}
Range is numeric range iterator which iterates over contiguous number in range of [start, end).
Each Next call advances iterator 1 ahead to its tail. If you need to skip some number, use with Exclude or Map.
func (*Range) ToIterator ¶ added in v0.0.9
type ReversedDeIter ¶ added in v0.0.9
type ReversedDeIter[T any] struct { DeIterator[T] }
func (ReversedDeIter[T]) Next ¶ added in v0.0.9
func (rev ReversedDeIter[T]) Next() (next T, ok bool)
func (ReversedDeIter[T]) NextBack ¶ added in v0.0.9
func (rev ReversedDeIter[T]) NextBack() (next T, ok bool)
func (ReversedDeIter[T]) Reverse ¶ added in v0.0.9
func (iter ReversedDeIter[T]) Reverse() (rev SeIterator[T], ok bool)
Reverse implements Reverser[T]. This simply unwrap iterator.
func (ReversedDeIter[T]) SizeHint ¶ added in v0.0.9
func (iter ReversedDeIter[T]) SizeHint() int
type Reverser ¶
type Reverser[T any] interface { Reverse() (rev SeIterator[T], ok bool) }
type SameTyMapper ¶ added in v0.0.9
type SameTyMapper[T any] struct { // contains filtered or unexported fields }
SameTyMapper applies mapper function that returns value of same type to input.
func NewSameTyMapper ¶ added in v0.0.9
func NewSameTyMapper[T any](iter SeIterator[T], mapper func(T) T) SameTyMapper[T]
func (SameTyMapper[T]) Next ¶ added in v0.0.9
func (m SameTyMapper[T]) Next() (next T, ok bool)
func (SameTyMapper[T]) Reverse ¶ added in v0.0.9
func (iter SameTyMapper[T]) Reverse() (rev SeIterator[T], ok bool)
func (SameTyMapper[T]) ReverseRaw ¶ added in v0.0.9
func (iter SameTyMapper[T]) ReverseRaw() (rev *SameTyMapper[T], ok bool)
func (SameTyMapper[T]) SizeHint ¶ added in v0.0.9
func (iter SameTyMapper[T]) SizeHint() int
type SeIterator ¶ added in v0.0.9
Singly ended iterator.
func MustReverse ¶ added in v0.0.9
func MustReverse[T any](iter SeIterator[T]) (rev SeIterator[T])
func Reverse ¶ added in v0.0.9
func Reverse[T any](iter SeIterator[T]) (rev SeIterator[T], ok bool)
type Selector ¶
type Selector[T any] struct { // contains filtered or unexported fields }
func NewSelector ¶
func NewSelector[T any](iter SeIterator[T], selector func(T) bool) Selector[T]
func (Selector[T]) Reverse ¶ added in v0.0.9
func (iter Selector[T]) Reverse() (rev SeIterator[T], ok bool)
func (Selector[T]) ReverseRaw ¶ added in v0.0.9
type SizeHinter ¶ added in v0.0.9
type SizeHinter interface {
SizeHint() int
}
type SliceIterDe ¶ added in v0.0.9
type SliceIterDe[T any] struct { // contains filtered or unexported fields }
SliceIterDe is doubly ended iterator, which is made of slice.
func FromSlice ¶
func FromSlice[T any](sl []T) *SliceIterDe[T]
FromSlice makes SliceIterDe[T] from []T.
func (*SliceIterDe[T]) Next ¶ added in v0.0.9
func (si *SliceIterDe[T]) Next() (next T, ok bool)
func (*SliceIterDe[T]) NextBack ¶ added in v0.0.9
func (si *SliceIterDe[T]) NextBack() (next T, ok bool)
func (*SliceIterDe[T]) SizeHint ¶ added in v0.0.9
func (si *SliceIterDe[T]) SizeHint() int
SizeHint returns size of remaining elements.
func (*SliceIterDe[T]) ToIterator ¶ added in v0.0.9
func (si *SliceIterDe[T]) ToIterator() Iterator[T]
type TwoEleTuple ¶ added in v0.0.9
type Unwrapper ¶ added in v0.0.9
type Unwrapper[T any] interface { Unwrap() SeIterator[T] }
type WhileSkipper ¶
type WhileSkipper[T any] struct { // contains filtered or unexported fields }
func NewWhileSkipper ¶
func NewWhileSkipper[T any](iter SeIterator[T], skipIf func(T) bool) *WhileSkipper[T]
func (*WhileSkipper[T]) Next ¶
func (s *WhileSkipper[T]) Next() (next T, ok bool)
func (WhileSkipper[T]) Reverse ¶ added in v0.0.9
func (iter WhileSkipper[T]) Reverse() (rev SeIterator[T], ok bool)
func (WhileSkipper[T]) ReverseRaw ¶ added in v0.0.9
func (iter WhileSkipper[T]) ReverseRaw() (rev *WhileSkipper[T], ok bool)
func (WhileSkipper[T]) SizeHint ¶ added in v0.0.9
func (s WhileSkipper[T]) SizeHint() int
SizeHint implements SizeHinter.
type WhileTaker ¶
type WhileTaker[T any] struct { // contains filtered or unexported fields }
func NewWhileTaker ¶
func NewWhileTaker[T any](iter SeIterator[T], takeIf func(T) bool) *WhileTaker[T]
func (*WhileTaker[T]) Next ¶
func (s *WhileTaker[T]) Next() (next T, ok bool)
func (WhileTaker[T]) Reverse ¶ added in v0.0.9
func (iter WhileTaker[T]) Reverse() (rev SeIterator[T], ok bool)
func (WhileTaker[T]) ReverseRaw ¶ added in v0.0.9
func (iter WhileTaker[T]) ReverseRaw() (rev *WhileTaker[T], ok bool)
func (WhileTaker[T]) SizeHint ¶ added in v0.0.9
func (t WhileTaker[T]) SizeHint() int
type Zipper ¶ added in v0.0.7
func Zip ¶ added in v0.0.9
func Zip[T any, U any](iterFormer SeIterator[T], iterLatter SeIterator[U]) Zipper[T, U]
func (Zipper[T, U]) Next ¶ added in v0.0.7
func (z Zipper[T, U]) Next() (next TwoEleTuple[T, U], ok bool)
func (Zipper[T, U]) Reverse ¶ added in v0.0.9
func (z Zipper[T, U]) Reverse() (rev SeIterator[TwoEleTuple[T, U]], ok bool)
Reverse implements Reverser. Reverse succeeds only when both are reversible and same size.