Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrMissingResponse = errors.New("no data or explicit error was returned for the given key")
Functions ¶
func ErrForAll ¶
func ErrForAll[KEY_TYPE comparable](keys []KEY_TYPE, err error) map[KEY_TYPE]error
reduces boilerplate for getters that want to respond to all keys with a shared error (such as database failure)
func FillEmpty ¶
func FillEmpty[KEY_TYPE comparable, VALUE_TYPE any](keys []KEY_TYPE, current map[KEY_TYPE][]VALUE_TYPE) map[KEY_TYPE][]VALUE_TYPE
reduces boilerplate for getters that return slices, where an empty slice is an expected possibility
Types ¶
type DataLoader ¶
type DataLoader[KEY_TYPE comparable, VALUE_TYPE any] struct { // contains filtered or unexported fields }
func NewDataLoader ¶
func NewDataLoader[KEY_TYPE comparable, VALUE_TYPE any](getter Getter[KEY_TYPE, VALUE_TYPE], maxConcurrentBatches, maxBatchSize int) *DataLoader[KEY_TYPE, VALUE_TYPE]
func (*DataLoader[KEY_TYPE, VALUE_TYPE]) Close ¶
func (dataLoader *DataLoader[KEY_TYPE, VALUE_TYPE]) Close()
func (*DataLoader[KEY_TYPE, VALUE_TYPE]) Load ¶
func (dataLoader *DataLoader[KEY_TYPE, VALUE_TYPE]) Load(key KEY_TYPE) (VALUE_TYPE, error)
func (*DataLoader[KEY_TYPE, VALUE_TYPE]) LoadPromise ¶
func (dataLoader *DataLoader[KEY_TYPE, VALUE_TYPE]) LoadPromise(key KEY_TYPE) *promises.Promise[VALUE_TYPE]
type Getter ¶
type Getter[KEY_TYPE comparable, VALUE_TYPE any] func([]KEY_TYPE) (map[KEY_TYPE]VALUE_TYPE, map[KEY_TYPE]error)
A getter function accepts a list of de-duplicated keys, and returns a pair of maps from keys to values (for successful lookups) and keys to errors (for unsuccessful lookups)
type GetterPanicError ¶
type GetterPanicError struct {
// contains filtered or unexported fields
}
func (GetterPanicError) Error ¶
func (gpe GetterPanicError) Error() string
type QueryBatcher ¶
type QueryBatcher[KEY_TYPE comparable, VALUE_TYPE any] struct { // contains filtered or unexported fields }
func NewQueryBatcher ¶
func NewQueryBatcher[KEY_TYPE comparable, VALUE_TYPE any](getter Getter[KEY_TYPE, VALUE_TYPE], maxConcurrentBatches, maxBatchSize int) *QueryBatcher[KEY_TYPE, VALUE_TYPE]
func (*QueryBatcher[KEY_TYPE, VALUE_TYPE]) Close ¶
func (batcher *QueryBatcher[KEY_TYPE, VALUE_TYPE]) Close()
func (*QueryBatcher[KEY_TYPE, VALUE_TYPE]) Load ¶
func (batcher *QueryBatcher[KEY_TYPE, VALUE_TYPE]) Load(key KEY_TYPE) (VALUE_TYPE, error)
func (*QueryBatcher[KEY_TYPE, VALUE_TYPE]) LoadPromise ¶
func (batcher *QueryBatcher[KEY_TYPE, VALUE_TYPE]) LoadPromise(key KEY_TYPE) *promises.Promise[VALUE_TYPE]
Click to show internal directories.
Click to hide internal directories.