Documentation
¶
Index ¶
- Variables
- func PrefixDiscard(items PrefixIterator) error
- func PrefixEnum(items PrefixIterator, handlers ...PrefixEnumHandler) error
- func PrefixEnumSkipUntil(items PrefixIterator, untilList ...PrefixEnumChecker) error
- func PrefixRange(items PrefixIterator, handlers ...PrefixHandler) error
- func PrefixSkipUntil(items PrefixIterator, untilList ...PrefixChecker) error
- type ConvertingPrefixIterator
- type DoingUntilPrefixIterator
- type EnumConvertingPrefixIterator
- type EnumDoingUntilPrefixIterator
- type EnumFilteringPrefixIterator
- type EnumHandlingPrefixIterator
- type FilteringPrefixIterator
- type HandlingPrefixIterator
- type InvertingPrefixSlice
- type InvertingPrefixSliceIterator
- type MakePrefixIter
- type PrefixCheck
- type PrefixChecker
- type PrefixCompare
- type PrefixComparer
- type PrefixConvert
- type PrefixConverter
- type PrefixEnumCheck
- type PrefixEnumChecker
- type PrefixEnumCompare
- type PrefixEnumComparer
- type PrefixEnumConvert
- type PrefixEnumConverter
- type PrefixEnumHandle
- type PrefixEnumHandler
- type PrefixEnumIterator
- type PrefixHandle
- type PrefixHandler
- type PrefixIterMaker
- type PrefixIterator
- func PrefixConverting(items PrefixIterator, converters ...PrefixConverter) PrefixIterator
- func PrefixDoingUntil(items PrefixIterator, untilList ...PrefixChecker) PrefixIterator
- func PrefixEnumConverting(items PrefixIterator, converters ...PrefixEnumConverter) PrefixIterator
- func PrefixEnumDoingUntil(items PrefixIterator, untilList ...PrefixEnumChecker) PrefixIterator
- func PrefixEnumFiltering(items PrefixIterator, filters ...PrefixEnumChecker) PrefixIterator
- func PrefixEnumHandling(items PrefixIterator, handlers ...PrefixEnumHandler) PrefixIterator
- func PrefixFiltering(items PrefixIterator, filters ...PrefixChecker) PrefixIterator
- func PrefixGettingBatch(items PrefixIterator, batchSize int) PrefixIterator
- func PrefixHandling(items PrefixIterator, handlers ...PrefixHandler) PrefixIterator
- func PrefixInvert(items PrefixIterator) PrefixIterator
- func PriorPrefixEnumIterator(comparer PrefixEnumComparer, itemList ...PrefixIterator) PrefixIterator
- func PriorPrefixIterator(comparer PrefixComparer, itemList ...PrefixIterator) PrefixIterator
- func SuperPrefixIterator(itemList ...PrefixIterator) PrefixIterator
- type PrefixRangeIterator
- type PrefixSlice
- type PrefixSliceIterator
- type Type
Constants ¶
This section is empty.
Variables ¶
var ( // AlwaysPrefixEnumCheckTrue always returns true and empty error. AlwaysPrefixEnumCheckTrue = EnumFromPrefixChecker( AlwaysPrefixCheckTrue) // AlwaysPrefixEnumCheckFalse always returns false and empty error. AlwaysPrefixEnumCheckFalse = EnumFromPrefixChecker( AlwaysPrefixCheckFalse) )
var EndOfPrefixIterator = errors.New("end of Type iterator")
EndOfPrefixIterator is an error to stop iterating over an iterator. It is used in some method of the package.
var PrefixDoEnumNothing = PrefixEnumHandle(func(_ int, _ Type) error { return nil })
PrefixDoEnumNothing does nothing.
var Zero = Type(nil)
Zero is a zero value of Type.
Functions ¶
func PrefixDiscard ¶
func PrefixDiscard(items PrefixIterator) error
PrefixDiscard just range over all items and do nothing with each of them.
func PrefixEnum ¶
func PrefixEnum(items PrefixIterator, handlers ...PrefixEnumHandler) error
PrefixEnum iterates over items and their ordering numbers and use handlers to each one.
func PrefixEnumSkipUntil ¶
func PrefixEnumSkipUntil(items PrefixIterator, untilList ...PrefixEnumChecker) error
PrefixEnumSkipUntil sets until conditions to skip few items.
func PrefixRange ¶
func PrefixRange(items PrefixIterator, handlers ...PrefixHandler) error
PrefixRange iterates over items and use handlers to each one.
func PrefixSkipUntil ¶
func PrefixSkipUntil(items PrefixIterator, untilList ...PrefixChecker) error
PrefixSkipUntil sets until conditions to skip few items.
Types ¶
type ConvertingPrefixIterator ¶
type ConvertingPrefixIterator struct {
// contains filtered or unexported fields
}
ConvertingPrefixIterator does iteration with converting by previously set converter.
func (*ConvertingPrefixIterator) HasNext ¶
func (it *ConvertingPrefixIterator) HasNext() bool
HasNext checks if there is the next item in the iterator. HasNext is idempotent.
type DoingUntilPrefixIterator ¶
type DoingUntilPrefixIterator struct {
// contains filtered or unexported fields
}
DoingUntilPrefixIterator does iteration until previously set checker is passed.
func (*DoingUntilPrefixIterator) HasNext ¶
func (it *DoingUntilPrefixIterator) HasNext() bool
HasNext checks if there is the next item in the iterator. HasNext is idempotent.
type EnumConvertingPrefixIterator ¶
type EnumConvertingPrefixIterator struct {
// contains filtered or unexported fields
}
EnumConvertingPrefixIterator does iteration with converting by previously set converter.
func (*EnumConvertingPrefixIterator) HasNext ¶
func (it *EnumConvertingPrefixIterator) HasNext() bool
HasNext checks if there is the next item in the iterator. HasNext is idempotent.
type EnumDoingUntilPrefixIterator ¶
type EnumDoingUntilPrefixIterator struct {
// contains filtered or unexported fields
}
EnumDoingUntilPrefixIterator does iteration until previously set checker is passed.
func (*EnumDoingUntilPrefixIterator) HasNext ¶
func (it *EnumDoingUntilPrefixIterator) HasNext() bool
HasNext checks if there is the next item in the iterator. HasNext is idempotent.
type EnumFilteringPrefixIterator ¶
type EnumFilteringPrefixIterator struct {
// contains filtered or unexported fields
}
EnumFilteringPrefixIterator does iteration with filtering by previously set checker.
func (*EnumFilteringPrefixIterator) HasNext ¶
func (it *EnumFilteringPrefixIterator) HasNext() bool
HasNext checks if there is the next item in the iterator. HasNext is idempotent.
type EnumHandlingPrefixIterator ¶
type EnumHandlingPrefixIterator struct {
// contains filtered or unexported fields
}
EnumHandlingPrefixIterator does iteration with handling by previously set handler.
func (*EnumHandlingPrefixIterator) HasNext ¶
func (it *EnumHandlingPrefixIterator) HasNext() bool
HasNext checks if there is the next item in the iterator. HasNext is idempotent.
type FilteringPrefixIterator ¶
type FilteringPrefixIterator struct {
// contains filtered or unexported fields
}
FilteringPrefixIterator does iteration with filtering by previously set checker.
func (*FilteringPrefixIterator) HasNext ¶
func (it *FilteringPrefixIterator) HasNext() bool
HasNext checks if there is the next item in the iterator. HasNext is idempotent.
type HandlingPrefixIterator ¶
type HandlingPrefixIterator struct {
// contains filtered or unexported fields
}
HandlingPrefixIterator does iteration with handling by previously set handler.
func (*HandlingPrefixIterator) HasNext ¶
func (it *HandlingPrefixIterator) HasNext() bool
HasNext checks if there is the next item in the iterator. HasNext is idempotent.
type InvertingPrefixSlice ¶
type InvertingPrefixSlice []Type
PrefixSlice is a slice of Type which can make inverting iterator.
func (InvertingPrefixSlice) MakeIter ¶
func (s InvertingPrefixSlice) MakeIter() PrefixIterator
MakeIter returns a new instance of PrefixIterator to iterate over it. It returns EmptyPrefixIterator if the error is not nil.
type InvertingPrefixSliceIterator ¶
type InvertingPrefixSliceIterator struct {
// contains filtered or unexported fields
}
PrefixSliceIterator is an iterator based on a slice of Type and doing iteration in back direction.
func NewInvertingPrefixSliceIterator ¶ added in v0.0.2
func NewInvertingPrefixSliceIterator(slice []Type) *InvertingPrefixSliceIterator
NewInvertingPrefixSliceIterator returns a new instance of InvertingPrefixSliceIterator. Note: any changes in slice will affect correspond items in the iterator. Use InvertingPrefixSlice(PrefixUnroll(slice)).MakeIter() instead of to iterate over copies of item in the items.
func (InvertingPrefixSliceIterator) Err ¶
func (InvertingPrefixSliceIterator) Err() error
Err contains first met error while Next.
func (InvertingPrefixSliceIterator) HasNext ¶
func (it InvertingPrefixSliceIterator) HasNext() bool
HasNext checks if there is the next item in the iterator. HasNext is idempotent.
func (*InvertingPrefixSliceIterator) Next ¶
func (it *InvertingPrefixSliceIterator) Next() Type
Next returns next item in the iterator. It should be invoked after check HasNext.
type MakePrefixIter ¶
type MakePrefixIter func() PrefixIterator
MakePrefixIter is a shortcut implementation of PrefixIterator based on a function.
func (MakePrefixIter) MakeIter ¶
func (m MakePrefixIter) MakeIter() PrefixIterator
MakeIter returns a new instance of PrefixIterator to iterate over it.
type PrefixCheck ¶
PrefixCheck is a shortcut implementation of PrefixChecker based on a function.
type PrefixChecker ¶
type PrefixChecker interface { // Check should check an item type of Type for some condition. // It is suggested to return EndOfPrefixIterator to stop iteration. Check(Type) (bool, error) }
PrefixChecker is an object checking an item type of Type for some condition.
var ( // AlwaysPrefixCheckTrue always returns true and empty error. AlwaysPrefixCheckTrue PrefixChecker = PrefixCheck( func(item Type) (bool, error) { return true, nil }) // AlwaysPrefixCheckFalse always returns false and empty error. AlwaysPrefixCheckFalse PrefixChecker = PrefixCheck( func(item Type) (bool, error) { return false, nil }) )
func AllPrefix ¶
func AllPrefix(checkers ...PrefixChecker) PrefixChecker
AllPrefix combines all the given checkers to one checking if all checkers return true. It returns true checker if the list of checkers is empty.
func AnyPrefix ¶
func AnyPrefix(checkers ...PrefixChecker) PrefixChecker
AnyPrefix combines all the given checkers to one. checking if any checker return true. It returns false if the list of checkers is empty.
func NotPrefix ¶
func NotPrefix(checker PrefixChecker) PrefixChecker
NotPrefix do an inversion for checker result. It is returns AlwaysPrefixCheckTrue if checker is nil.
type PrefixCompare ¶
PrefixCompare is a shortcut implementation of PrefixEnumComparer based on a function.
func (PrefixCompare) IsLess ¶
func (c PrefixCompare) IsLess(lhs, rhs Type) bool
IsLess is true if lhs is less than rhs.
type PrefixComparer ¶
type PrefixComparer interface { // IsLess should be true if lhs is less than rhs. IsLess(lhs, rhs Type) bool }
PrefixEnumComparer is a strategy to compare two types.
var PrefixAlwaysLess PrefixComparer = PrefixCompare(func(_, _ Type) bool { return true })
EnumPrefixAlwaysLess is an implementation of PrefixEnumComparer returning always true.
type PrefixConvert ¶
PrefixConvert is a shortcut implementation of PrefixConverter based on a function.
type PrefixConverter ¶
type PrefixConverter interface { // Convert should convert an item type of Type into another item of Type. // It is suggested to return EndOfPrefixIterator to stop iteration. Convert(Type) (Type, error) }
PrefixConverter is an object converting an item type of Type.
var NoPrefixConvert PrefixConverter = PrefixConvert( func(item Type) (Type, error) { return item, nil })
NoPrefixConvert does nothing with item, just returns it as is.
func PrefixConverterSeries ¶
func PrefixConverterSeries(converters ...PrefixConverter) PrefixConverter
PrefixConverterSeries combines all the given converters to sequenced one It returns no converter if the list of converters is empty.
type PrefixEnumCheck ¶
PrefixEnumCheck is a shortcut implementation of PrefixEnumChecker based on a function.
type PrefixEnumChecker ¶
type PrefixEnumChecker interface { // Check checks an item type of Type and its ordering number for some condition. // It is suggested to return EndOfPrefixIterator to stop iteration. Check(int, Type) (bool, error) }
PrefixEnumChecker is an object checking an item type of Type and its ordering number in for some condition.
func EnumAllPrefix ¶
func EnumAllPrefix(checkers ...PrefixEnumChecker) PrefixEnumChecker
EnumAllPrefix combines all the given checkers to one checking if all checkers return true. It returns true if the list of checkers is empty.
func EnumAnyPrefix ¶
func EnumAnyPrefix(checkers ...PrefixEnumChecker) PrefixEnumChecker
EnumAnyPrefix combines all the given checkers to one. checking if any checker return true. It returns false if the list of checkers is empty.
func EnumFromPrefixChecker ¶
func EnumFromPrefixChecker(checker PrefixChecker) PrefixEnumChecker
EnumFromPrefixChecker adapts checker type of PrefixChecker to the interface PrefixEnumChecker. If checker is nil it is return based on AlwaysPrefixCheckFalse enum checker.
func EnumNotPrefix ¶
func EnumNotPrefix(checker PrefixEnumChecker) PrefixEnumChecker
EnumNotPrefix do an inversion for checker result. It is returns AlwaysPrefixEnumCheckTrue if checker is nil.
type PrefixEnumCompare ¶ added in v0.0.3
PrefixEnumCompare is a shortcut implementation of PrefixEnumComparer based on a function.
type PrefixEnumComparer ¶ added in v0.0.3
type PrefixEnumComparer interface { // IsLess should be true if lhs is less than rhs. IsLess(nLHS int, lhs Type, nRHS int, rhs Type) bool }
PrefixEnumComparer is a strategy to compare two types and their order numbers.
var EnumPrefixAlwaysLess PrefixEnumComparer = PrefixEnumCompare( func(_ int, _ Type, _ int, _ Type) bool { return true })
EnumPrefixAlwaysLess is an implementation of PrefixEnumComparer returning always true.
type PrefixEnumConvert ¶
PrefixEnumConvert is a shortcut implementation of PrefixEnumConverter based on a function.
type PrefixEnumConverter ¶
type PrefixEnumConverter interface { // Convert should convert an item type of Type into another item of Type. // It is suggested to return EndOfPrefixIterator to stop iteration. Convert(n int, val Type) (Type, error) }
PrefixEnumConverter is an object converting an item type of Type and its ordering number.
var NoPrefixEnumConvert PrefixEnumConverter = PrefixEnumConvert( func(_ int, item Type) (Type, error) { return item, nil })
NoPrefixEnumConvert does nothing with item, just returns it as is.
func EnumFromPrefixConverter ¶
func EnumFromPrefixConverter(converter PrefixConverter) PrefixEnumConverter
EnumFromPrefixConverter adapts checker type of PrefixConverter to the interface PrefixEnumConverter. If converter is nil it is return based on NoPrefixConvert enum checker.
func EnumPrefixConverterSeries ¶
func EnumPrefixConverterSeries(converters ...PrefixEnumConverter) PrefixEnumConverter
EnumPrefixConverterSeries combines all the given converters to sequenced one It returns no converter if the list of converters is empty.
type PrefixEnumHandle ¶
PrefixEnumHandle is a shortcut implementation of PrefixEnumHandler based on a function.
type PrefixEnumHandler ¶
type PrefixEnumHandler interface { // Handle should do something with item of Type and its ordered number. // It is suggested to return EndOfPrefixIterator to stop iteration. Handle(int, Type) error }
PrefixEnumHandler is an object handling an item type of Type and its ordered number.
func PrefixEnumHandlerSeries ¶
func PrefixEnumHandlerSeries(handlers ...PrefixEnumHandler) PrefixEnumHandler
PrefixEnumHandlerSeries combines all the given handlers to sequenced one It returns do nothing handler if the list of handlers is empty.
type PrefixEnumIterator ¶
type PrefixEnumIterator interface { // Enum should iterate over items and their ordering numbers. Enum(...PrefixEnumHandler) error }
PrefixEnumIterator is an iterator over items and their ordering numbers.
func MakePrefixEnumIterator ¶
func MakePrefixEnumIterator(maker PrefixIterMaker) PrefixEnumIterator
MakePrefixEnumIterator constructs an instance implementing PrefixEnumIterator based on PrefixIterMaker.
func ToPrefixEnumIterator ¶
func ToPrefixEnumIterator(iter PrefixIterator) PrefixEnumIterator
ToPrefixEnumIterator constructs an instance implementing PrefixEnumIterator based on PrefixIterator.
type PrefixHandle ¶
PrefixHandle is a shortcut implementation of PrefixHandler based on a function.
func (PrefixHandle) Handle ¶
func (h PrefixHandle) Handle(item Type) error
Handle does something with item of Type. It is suggested to return EndOfPrefixIterator to stop iteration.
type PrefixHandler ¶
type PrefixHandler interface { // Handle should do something with item of Type. // It is suggested to return EndOfPrefixIterator to stop iteration. Handle(Type) error }
PrefixHandler is an object handling an item type of Type.
var PrefixDoNothing PrefixHandler = PrefixHandle(func(_ Type) error { return nil })
PrefixDoNothing does nothing.
func PrefixHandlerSeries ¶
func PrefixHandlerSeries(handlers ...PrefixHandler) PrefixHandler
PrefixHandlerSeries combines all the given handlers to sequenced one It returns do nothing handler if the list of handlers is empty.
type PrefixIterMaker ¶
type PrefixIterMaker interface { // MakeIter should return a new instance of PrefixIterator to iterate over it. MakeIter() PrefixIterator }
PrefixIterMaker is a maker of PrefixIterator.
var MakeNoPrefixIter PrefixIterMaker = MakePrefixIter( func() PrefixIterator { return EmptyPrefixIterator })
MakeNoPrefixIter is a zero value for PrefixIterMaker. It always returns EmptyPrefixIterator and an empty error.
type PrefixIterator ¶
type PrefixIterator interface { // HasNext checks if there is the next item // in the iterator. HasNext should be idempotent. HasNext() bool // Next should return next item in the iterator. // It should be invoked after check HasNext. Next() Type // Err contains first met error while Next. Err() error }
PrefixIterator is an iterator over items type of Type.
var EmptyPrefixIterator PrefixIterator = emptyPrefixIterator{}
EmptyPrefixIterator is a zero value for PrefixIterator. It is not contains any item to iterate over it.
func PrefixConverting ¶
func PrefixConverting(items PrefixIterator, converters ...PrefixConverter) PrefixIterator
PrefixConverting sets converter while iterating over items. If converters is empty, so all items will not be affected.
func PrefixDoingUntil ¶
func PrefixDoingUntil(items PrefixIterator, untilList ...PrefixChecker) PrefixIterator
PrefixDoingUntil sets until checker while iterating over items. If untilList is empty, so all items returned as is.
func PrefixEnumConverting ¶
func PrefixEnumConverting(items PrefixIterator, converters ...PrefixEnumConverter) PrefixIterator
PrefixEnumConverting sets converter while iterating over items and their ordering numbers. If converters is empty, so all items will not be affected.
func PrefixEnumDoingUntil ¶
func PrefixEnumDoingUntil(items PrefixIterator, untilList ...PrefixEnumChecker) PrefixIterator
PrefixEnumDoingUntil sets until checker while iterating over items. If untilList is empty, so all items returned as is.
func PrefixEnumFiltering ¶
func PrefixEnumFiltering(items PrefixIterator, filters ...PrefixEnumChecker) PrefixIterator
PrefixEnumFiltering sets filter while iterating over items and their serial numbers. If filters is empty, so all items will return.
func PrefixEnumHandling ¶
func PrefixEnumHandling(items PrefixIterator, handlers ...PrefixEnumHandler) PrefixIterator
PrefixEnumHandling sets handler while iterating over items with their serial number. If handlers is empty, so it will do nothing.
func PrefixFiltering ¶
func PrefixFiltering(items PrefixIterator, filters ...PrefixChecker) PrefixIterator
PrefixFiltering sets filter while iterating over items. If filters is empty, so all items will return.
func PrefixGettingBatch ¶
func PrefixGettingBatch(items PrefixIterator, batchSize int) PrefixIterator
PrefixGettingBatch returns the next batch from items.
func PrefixHandling ¶
func PrefixHandling(items PrefixIterator, handlers ...PrefixHandler) PrefixIterator
PrefixHandling sets handler while iterating over items. If handlers is empty, so it will do nothing.
func PrefixInvert ¶
func PrefixInvert(items PrefixIterator) PrefixIterator
PrefixInvert unrolls items and make inverting iterator based on them.
func PriorPrefixEnumIterator ¶ added in v0.0.3
func PriorPrefixEnumIterator(comparer PrefixEnumComparer, itemList ...PrefixIterator) PrefixIterator
PriorPrefixEnumIterator compare one by one items and their ordering numbers fetched from all iterators and choose smallest from them to return as next. If comparer is nil so more left iterator is considered had smallest item. It is recommended to use the iterator to order already ordered iterators.
func PriorPrefixIterator ¶
func PriorPrefixIterator(comparer PrefixComparer, itemList ...PrefixIterator) PrefixIterator
PriorPrefixIterator compare one by one items fetched from all iterators and choose smallest from them to return as next. If comparer is nil so more left iterator is considered had smallest item. It is recommended to use the iterator to order already ordered iterators.
func SuperPrefixIterator ¶
func SuperPrefixIterator(itemList ...PrefixIterator) PrefixIterator
SuperPrefixIterator combines all iterators to one.
type PrefixRangeIterator ¶
type PrefixRangeIterator interface { // Range should iterate over items. Range(...PrefixHandler) error }
PrefixRangeIterator is an iterator over items.
func MakePrefixRangeIterator ¶
func MakePrefixRangeIterator(maker PrefixIterMaker) PrefixRangeIterator
MakePrefixRangeIterator constructs an instance implementing PrefixRangeIterator based on PrefixIterMaker.
func ToPrefixRangeIterator ¶
func ToPrefixRangeIterator(iter PrefixIterator) PrefixRangeIterator
ToPrefixRangeIterator constructs an instance implementing PrefixRangeIterator based on PrefixIterator.
type PrefixSlice ¶
type PrefixSlice []Type
PrefixSlice is a slice of Type.
func PrefixUnroll ¶
func PrefixUnroll(items PrefixIterator) PrefixSlice
PrefixUnroll unrolls items to slice of Type.
func (PrefixSlice) MakeIter ¶
func (s PrefixSlice) MakeIter() PrefixIterator
MakeIter returns a new instance of PrefixIterator to iterate over it. It returns EmptyPrefixIterator if the error is not nil.
type PrefixSliceIterator ¶
type PrefixSliceIterator struct {
// contains filtered or unexported fields
}
PrefixSliceIterator is an iterator based on a slice of Type.
func NewPrefixSliceIterator ¶ added in v0.0.2
func NewPrefixSliceIterator(slice []Type) *PrefixSliceIterator
NewPrefixSliceIterator returns a new instance of PrefixSliceIterator. Note: any changes in slice will affect correspond items in the iterator. Use PrefixUnroll(slice).MakeIter() instead of to iterate over copies of item in the items.
func (PrefixSliceIterator) Err ¶
func (PrefixSliceIterator) Err() error
Err contains first met error while Next.
func (PrefixSliceIterator) HasNext ¶
func (it PrefixSliceIterator) HasNext() bool
HasNext checks if there is the next item in the iterator. HasNext is idempotent.
func (*PrefixSliceIterator) Next ¶
func (it *PrefixSliceIterator) Next() Type
Next returns next item in the iterator. It should be invoked after check HasNext.