queryutils

package
v1.0.6 Latest Latest
Warning

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

Go to latest
Published: Jan 18, 2023 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var BadDataTypeError = errors.New("bad data type")

Functions

func GenericSetinPro added in v1.0.3

func GenericSetinPro[
	Data any,
	Datas ~[]*Data,
	Key comparable,
	Keys ~[]Key,
	SubData any,
	SubDatas ~[]SubData,
	SubDatasMapping ~map[Key]SubDatas,
](
	ctx context.Context,
	datas Datas,
	dataSubKeys func(*Data) Keys,
	subDataFetcher func(ctx context.Context, keys Keys) (SubDatas, error),
	subDataKeys func(SubData) Keys,
	setinHandler func(data *Data, subDatasMapping SubDatasMapping) *Data,
) error

func ReversedSetin

func ReversedSetin[
	Data interface {
	},
	DataPtr interface {
		~*Data
		GetId() Key
	},
	Datas ~[]DataPtr,
	Key comparable,
	Keys ~[]Key,
	SubData any,
	SubDatas ~[]SubData,
	SubDatasMapping ~map[Key]SubDatas,
](
	ctx context.Context,
	datas Datas,
	subDataFetcher func(ctx context.Context, keys Keys) (SubDatas, error),
	subDataKeys func(SubData) Keys,
	setinHandler func(data DataPtr, subDatasMapping SubDatasMapping) *Data,
) error

func ReversedSetinPro added in v1.0.3

func ReversedSetinPro[
	Data any,
	DataPtr ~*Data,
	Datas ~[]DataPtr,
	Key comparable,
	Keys ~[]Key,
	SubData any,
	SubDatas ~[]SubData,
	SubDatasMapping ~map[Key]SubDatas,
](
	ctx context.Context,
	datas Datas,
	dataKey func(DataPtr) Key,
	subDataFetcher func(ctx context.Context, keys Keys) (SubDatas, error),
	subDataKeys func(SubData) Keys,
	setinHandler func(data DataPtr, subDatasMapping SubDatasMapping) *Data,
) error

func ReversedSetinX

func ReversedSetinX[
	Datas ~[]DataPtr,
	Keys ~[]Key,
	SubDatas ~[]SubData,
	Data interface {
	},
	DataPtr interface {
		~*Data
		GetId() Key
	},
	Key comparable,
	SubData any,
	SubDatasMapping ~map[Key]SubDatas,
](
	ctx context.Context,
	datas Datas,
	subDataFetcher func(ctx context.Context, keys Keys) (SubDatas, error),
	subDataKeys func(SubData) Keys,
	setinHandler func(data DataPtr, subDatasMapping SubDatasMapping) *Data,
) error

调整类型参数顺序,方便指定

func Setin

func Setin[
	Data any,
	Datas ~[]*Data,
	Key comparable,
	Keys ~[]Key,
	SubData interface {
		GetId() Key
	},
	SubDatas ~[]SubData,
	SubDataMapping ~map[Key]SubData,
](
	ctx context.Context,
	datas Datas,
	dataSubKeys func(*Data) Keys,
	subDataFetcher func(ctx context.Context, keys Keys) (SubDatas, error),
	setinHandler func(data *Data, subDataMapping SubDataMapping) *Data,
) error

func SetinPro added in v1.0.3

func SetinPro[
	Data any,
	Datas ~[]*Data,
	Key comparable,
	Keys ~[]Key,
	SubData any,
	SubDatas ~[]SubData,
	SubDataMapping ~map[Key]SubData,
](
	ctx context.Context,
	datas Datas,
	dataSubKeys func(*Data) Keys,
	subDataFetcher func(ctx context.Context, keys Keys) (SubDatas, error),
	subDataKey func(SubData) Key,
	setinHandler func(data *Data, subDataMapping SubDataMapping) *Data,
) error

func SetinX

func SetinX[
	Datas ~[]*Data,
	SubDatas ~[]SubData,
	Keys ~[]Key,
	Data any,
	Key comparable,
	SubData interface {
		GetId() Key
	},
	SubDataMapping ~map[Key]SubData,
](
	ctx context.Context,
	datas Datas,
	dataSubKeys func(*Data) Keys,
	subDataFetcher func(ctx context.Context, keys Keys) (SubDatas, error),
	setinHandler func(data *Data, subDataMapping SubDataMapping) *Data,
) error

调整类型参数顺序,方便指定

Types

type ClonableSetinerInterface

type ClonableSetinerInterface interface {
	CommonSetinerInterface
	Clone() ClonableSetinerInterface
}

type CommonSetinerInterface

type CommonSetinerInterface interface {
	WithSetineds(interface{}) (CommonSetinerInterface, error)
	Setin(context.Context, []string) error
}

type SetinAction

type SetinAction[Data any, Datas ~[]*Data, DataInstances ~[]Data] struct {
	*Setiner[Data, Datas, DataInstances]
	// contains filtered or unexported fields
}

A SetinAction is A Setiner with datas, it can Dup, Clone, WithData and finally Setin.

func NewSetinAction

func NewSetinAction[Data any, Datas ~[]*Data, DataInstances ~[]Data](setiner *Setiner[Data, Datas, DataInstances], datas Datas) *SetinAction[Data, Datas, DataInstances]

func (*SetinAction[Data, Datas, DataInstances]) Clone

func (setiner *SetinAction[Data, Datas, DataInstances]) Clone() ClonableSetinerInterface

func (*SetinAction[Data, Datas, DataInstances]) Dup

func (setiner *SetinAction[Data, Datas, DataInstances]) Dup() *SetinAction[Data, Datas, DataInstances]

func (*SetinAction[Data, Datas, DataInstances]) Setin

func (action *SetinAction[Data, Datas, DataInstances]) Setin(ctx context.Context, setins []string) error

func (*SetinAction[Data, Datas, DataInstances]) SetinX

func (action *SetinAction[Data, Datas, DataInstances]) SetinX(ctx context.Context, setins ...string) error

func (*SetinAction[Data, Datas, DataInstances]) WithData

func (action *SetinAction[Data, Datas, DataInstances]) WithData(data *Data) *SetinAction[Data, Datas, DataInstances]

func (*SetinAction[Data, Datas, DataInstances]) WithDataInstances

func (action *SetinAction[Data, Datas, DataInstances]) WithDataInstances(datas DataInstances) *SetinAction[Data, Datas, DataInstances]

func (*SetinAction[Data, Datas, DataInstances]) WithDataX

func (action *SetinAction[Data, Datas, DataInstances]) WithDataX(dataX any) (*SetinAction[Data, Datas, DataInstances], error)

func (*SetinAction[Data, Datas, DataInstances]) WithDatas

func (action *SetinAction[Data, Datas, DataInstances]) WithDatas(datas Datas) *SetinAction[Data, Datas, DataInstances]

func (*SetinAction[Data, Datas, DataInstances]) WithSetineds

func (action *SetinAction[Data, Datas, DataInstances]) WithSetineds(setineds any) (CommonSetinerInterface, error)

type SetinHandler

type SetinHandler[Data any, DataPtr ~*Data, Datas ~[]DataPtr] func(ctx context.Context, datas Datas) error

func NewReversedSetinHandler

func NewReversedSetinHandler[
	Data any,
	DataPtr interface {
		~*Data
		GetId() Key
	},
	Datas ~[]DataPtr,
	Key comparable,
	Keys ~[]Key,
	SubData any,
	SubDatas ~[]SubData,
	SubDatasMapping ~map[Key]SubDatas,
](
	subDataFetcher func(ctx context.Context, keys Keys) (SubDatas, error),
	subDataKeys func(SubData) Keys,
	setinHandler func(data DataPtr, subDatasMapping SubDatasMapping) *Data,
) SetinHandler[Data, DataPtr, Datas]

func NewReversedSetinHandlerPro added in v1.0.3

func NewReversedSetinHandlerPro[
	Data any,
	DataPtr ~*Data,
	Datas ~[]DataPtr,
	Key comparable,
	Keys ~[]Key,
	SubData any,
	SubDatas ~[]SubData,
	SubDatasMapping ~map[Key]SubDatas,
](
	dataKey func(DataPtr) Key,
	subDataFetcher func(ctx context.Context, keys Keys) (SubDatas, error),
	subDataKeys func(SubData) Keys,
	setinHandler func(data DataPtr, subDatasMapping SubDatasMapping) *Data,
) SetinHandler[Data, DataPtr, Datas]

func NewSetinHandler

func NewSetinHandler[
	Data any,
	Datas ~[]*Data,
	Key comparable,
	Keys ~[]Key,
	SubData interface {
		GetId() Key
	},
	SubDatas ~[]SubData,
	SubDataMapping ~map[Key]SubData,
](
	dataSubKeys func(*Data) Keys,
	subDataFetcher func(ctx context.Context, keys Keys) (SubDatas, error),
	setinHandler func(data *Data, subDataMapping SubDataMapping) *Data,
) SetinHandler[Data, *Data, Datas]

func NewSetinHandlerPro added in v1.0.3

func NewSetinHandlerPro[
	Data any,
	Datas ~[]*Data,
	Key comparable,
	Keys ~[]Key,
	SubData any,
	SubDatas ~[]SubData,
	SubDataMapping ~map[Key]SubData,
](
	dataSubKeys func(*Data) Keys,
	subDataFetcher func(ctx context.Context, keys Keys) (SubDatas, error),
	subDataKey func(SubData) Key,
	setinHandler func(data *Data, subDataMapping SubDataMapping) *Data,
) SetinHandler[Data, *Data, Datas]

Create A Setin Handler

type SetinHandlerMapping

type SetinHandlerMapping[Data any, Datas ~[]*Data] map[string]SetinHandler[Data, *Data, Datas]

func NewSetinHandlerMapping

func NewSetinHandlerMapping[Data any, Datas ~[]*Data]() SetinHandlerMapping[Data, Datas]

func (SetinHandlerMapping[Data, Datas]) NewSetiner

func (mapping SetinHandlerMapping[Data, Datas]) NewSetiner() *Setiner[Data, Datas, []Data]

func (SetinHandlerMapping[Data, Datas]) NewTesters added in v1.0.4

func (mapping SetinHandlerMapping[Data, Datas]) NewTesters() SetinTesters[Data, Datas]

func (SetinHandlerMapping[Data, Datas]) Self

func (mapping SetinHandlerMapping[Data, Datas]) Self() SetinHandlerMapping[Data, Datas]

func (SetinHandlerMapping[Data, Datas]) Setin

func (mapping SetinHandlerMapping[Data, Datas]) Setin(ctx context.Context, datas Datas, setins []string) error

func (SetinHandlerMapping[Data, Datas]) SetinOne added in v1.0.4

func (mapping SetinHandlerMapping[Data, Datas]) SetinOne(ctx context.Context, datas Datas, setin string) (bool, error)

func (SetinHandlerMapping[Data, Datas]) WithHandler

func (mapping SetinHandlerMapping[Data, Datas]) WithHandler(name string, handler SetinHandler[Data, *Data, Datas]) SetinHandlerMapping[Data, Datas]

type SetinTester added in v1.0.4

type SetinTester[Data any, DataPtr ~*Data, Datas ~[]DataPtr] func(ctx context.Context, datas Datas, setin string) (bool, error)

type SetinTesters added in v1.0.4

type SetinTesters[Data any, Datas ~[]*Data] []SetinTester[Data, *Data, Datas]

func NewSetinTesters added in v1.0.4

func NewSetinTesters[Data any, Datas ~[]*Data](testers ...SetinTester[Data, *Data, Datas]) SetinTesters[Data, Datas]

func (SetinTesters[Data, Datas]) Append added in v1.0.4

func (testers SetinTesters[Data, Datas]) Append(more ...SetinTester[Data, *Data, Datas]) SetinTesters[Data, Datas]

func (SetinTesters[Data, Datas]) NewSetiner added in v1.0.4

func (testers SetinTesters[Data, Datas]) NewSetiner() *Setiner[Data, Datas, []Data]

func (SetinTesters[Data, Datas]) Setin added in v1.0.4

func (testers SetinTesters[Data, Datas]) Setin(ctx context.Context, datas Datas, setins []string) error

func (SetinTesters[Data, Datas]) SetinOne added in v1.0.4

func (testers SetinTesters[Data, Datas]) SetinOne(ctx context.Context, datas Datas, setin string) error

type Setiner

type Setiner[Data any, Datas ~[]*Data, DataInstances ~[]Data] struct {
	SetinTesters[Data, Datas]
}

func NewSetiner

func NewSetiner[Data any, Datas ~[]*Data, DataInstances ~[]Data](testers SetinTesters[Data, Datas]) *Setiner[Data, Datas, DataInstances]

func (*Setiner[Data, Datas, DataInstances]) Action

func (setiner *Setiner[Data, Datas, DataInstances]) Action() *SetinAction[Data, Datas, DataInstances]

func (*Setiner[Data, Datas, DataInstances]) ActionFor

func (setiner *Setiner[Data, Datas, DataInstances]) ActionFor(datas Datas) *SetinAction[Data, Datas, DataInstances]

func (*Setiner[Data, Datas, DataInstances]) SetinFor

func (setiner *Setiner[Data, Datas, DataInstances]) SetinFor(ctx context.Context, dataX any, setins []string) error

func (*Setiner[Data, Datas, DataInstances]) SetinForData

func (setiner *Setiner[Data, Datas, DataInstances]) SetinForData(ctx context.Context, data *Data, setins []string) error

func (*Setiner[Data, Datas, DataInstances]) SetinForDataInstances

func (setiner *Setiner[Data, Datas, DataInstances]) SetinForDataInstances(ctx context.Context, instances DataInstances, setins []string) error

func (*Setiner[Data, Datas, DataInstances]) SetinForDatas

func (setiner *Setiner[Data, Datas, DataInstances]) SetinForDatas(ctx context.Context, datas Datas, setins []string) error

type UnknownSetinError

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

func NewUnknownSetinError

func NewUnknownSetinError(setin string) UnknownSetinError

func (UnknownSetinError) Error

func (e UnknownSetinError) Error() string

Jump to

Keyboard shortcuts

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