resembled

package
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: Jan 10, 2021 License: MIT Imports: 1 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// AlwaysPrefixEnumCheckTrue always returns true and empty error.
	AlwaysPrefixEnumCheckTrue = EnumFromPrefixChecker(
		AlwaysPrefixCheckTrue)
	// AlwaysPrefixEnumCheckFalse always returns false and empty error.
	AlwaysPrefixEnumCheckFalse = EnumFromPrefixChecker(
		AlwaysPrefixCheckFalse)
)
View Source
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.

View Source
var PrefixDoEnumNothing = PrefixEnumHandle(func(_ int, _ Type) error { return nil })

PrefixDoEnumNothing does nothing.

View Source
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) Err

func (it ConvertingPrefixIterator) Err() error

func (*ConvertingPrefixIterator) HasNext

func (it *ConvertingPrefixIterator) HasNext() bool

HasNext checks if there is the next item in the iterator. HasNext is idempotent.

func (*ConvertingPrefixIterator) Next

func (it *ConvertingPrefixIterator) Next() Type

type DoingUntilPrefixIterator

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

DoingUntilPrefixIterator does iteration until previously set checker is passed.

func (DoingUntilPrefixIterator) Err

func (it DoingUntilPrefixIterator) Err() error

func (*DoingUntilPrefixIterator) HasNext

func (it *DoingUntilPrefixIterator) HasNext() bool

HasNext checks if there is the next item in the iterator. HasNext is idempotent.

func (*DoingUntilPrefixIterator) Next

func (it *DoingUntilPrefixIterator) Next() Type

type EnumConvertingPrefixIterator

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

EnumConvertingPrefixIterator does iteration with converting by previously set converter.

func (EnumConvertingPrefixIterator) Err

func (it EnumConvertingPrefixIterator) Err() error

func (*EnumConvertingPrefixIterator) HasNext

func (it *EnumConvertingPrefixIterator) HasNext() bool

HasNext checks if there is the next item in the iterator. HasNext is idempotent.

func (*EnumConvertingPrefixIterator) Next

func (it *EnumConvertingPrefixIterator) Next() Type

type EnumDoingUntilPrefixIterator

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

EnumDoingUntilPrefixIterator does iteration until previously set checker is passed.

func (EnumDoingUntilPrefixIterator) Err

func (it EnumDoingUntilPrefixIterator) Err() error

func (*EnumDoingUntilPrefixIterator) HasNext

func (it *EnumDoingUntilPrefixIterator) HasNext() bool

HasNext checks if there is the next item in the iterator. HasNext is idempotent.

func (*EnumDoingUntilPrefixIterator) Next

func (it *EnumDoingUntilPrefixIterator) Next() Type

type EnumFilteringPrefixIterator

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

EnumFilteringPrefixIterator does iteration with filtering by previously set checker.

func (EnumFilteringPrefixIterator) Err

func (it EnumFilteringPrefixIterator) Err() error

func (*EnumFilteringPrefixIterator) HasNext

func (it *EnumFilteringPrefixIterator) HasNext() bool

HasNext checks if there is the next item in the iterator. HasNext is idempotent.

func (*EnumFilteringPrefixIterator) Next

func (it *EnumFilteringPrefixIterator) Next() Type

type EnumHandlingPrefixIterator

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

EnumHandlingPrefixIterator does iteration with handling by previously set handler.

func (EnumHandlingPrefixIterator) Err

func (it EnumHandlingPrefixIterator) Err() error

func (*EnumHandlingPrefixIterator) HasNext

func (it *EnumHandlingPrefixIterator) HasNext() bool

HasNext checks if there is the next item in the iterator. HasNext is idempotent.

func (*EnumHandlingPrefixIterator) Next

func (it *EnumHandlingPrefixIterator) Next() Type

type FilteringPrefixIterator

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

FilteringPrefixIterator does iteration with filtering by previously set checker.

func (FilteringPrefixIterator) Err

func (it FilteringPrefixIterator) Err() error

func (*FilteringPrefixIterator) HasNext

func (it *FilteringPrefixIterator) HasNext() bool

HasNext checks if there is the next item in the iterator. HasNext is idempotent.

func (*FilteringPrefixIterator) Next

func (it *FilteringPrefixIterator) Next() Type

type HandlingPrefixIterator

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

HandlingPrefixIterator does iteration with handling by previously set handler.

func (HandlingPrefixIterator) Err

func (it HandlingPrefixIterator) Err() error

func (*HandlingPrefixIterator) HasNext

func (it *HandlingPrefixIterator) HasNext() bool

HasNext checks if there is the next item in the iterator. HasNext is idempotent.

func (*HandlingPrefixIterator) Next

func (it *HandlingPrefixIterator) Next() Type

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

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

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

type PrefixCheck func(Type) (bool, error)

PrefixCheck is a shortcut implementation of PrefixChecker based on a function.

func (PrefixCheck) Check

func (ch PrefixCheck) Check(item Type) (bool, error)

Check checks an item type of Type for some condition. It returns EndOfPrefixIterator to stop iteration.

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

type PrefixCompare func(lhs, rhs Type) bool

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

type PrefixConvert func(Type) (Type, error)

PrefixConvert is a shortcut implementation of PrefixConverter based on a function.

func (PrefixConvert) Convert

func (c PrefixConvert) Convert(item Type) (Type, error)

Convert converts an item type of Type into another item of Type. It is suggested to return EndOfPrefixIterator to stop iteration.

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

type PrefixEnumCheck func(int, Type) (bool, error)

PrefixEnumCheck is a shortcut implementation of PrefixEnumChecker based on a function.

func (PrefixEnumCheck) Check

func (ch PrefixEnumCheck) Check(n int, item Type) (bool, error)

Check checks an item type of Type and its ordering number for some condition. It returns EndOfPrefixIterator to stop iteration.

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

type PrefixEnumCompare func(nLHS int, lhs Type, nRHS int, rhs Type) bool

PrefixEnumCompare is a shortcut implementation of PrefixEnumComparer based on a function.

func (PrefixEnumCompare) IsLess added in v0.0.3

func (c PrefixEnumCompare) IsLess(nLHS int, lhs Type, nRHS int, rhs Type) bool

IsLess is true if lhs is less than rhs.

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

type PrefixEnumConvert func(int, Type) (Type, error)

PrefixEnumConvert is a shortcut implementation of PrefixEnumConverter based on a function.

func (PrefixEnumConvert) Convert

func (c PrefixEnumConvert) Convert(n int, item Type) (Type, error)

Convert converts an item type of Type into another item of Type. It is suggested to return EndOfPrefixIterator to stop iteration.

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

type PrefixEnumHandle func(int, Type) error

PrefixEnumHandle is a shortcut implementation of PrefixEnumHandler based on a function.

func (PrefixEnumHandle) Handle

func (h PrefixEnumHandle) Handle(n int, item Type) error

Handle does something with item of Type and its ordered number. It is suggested to return EndOfPrefixIterator to stop iteration.

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

type PrefixHandle func(Type) error

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.

type Type

type Type interface{}

Type_for testing.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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