Documentation
¶
Overview ¶
Example ¶
loader := dataloader.New( func(ctx context.Context, keys []int) []dataloader.Result[string] { results := make([]dataloader.Result[string], len(keys)) for i, key := range keys { results[i] = dataloader.Wrap(fmt.Sprintf("Result for %d", key), nil) } return results }, dataloader.WithCache(100, time.Minute), dataloader.WithBatchSize(50), dataloader.WithWait(5*time.Millisecond), ) ctx := context.Background() // Load data, err := loader.Load(ctx, 1).Unwrap() if err == nil { fmt.Printf("Result: %s\n", data) } // LoadMany results := loader.LoadMany(ctx, []int{3, 4, 5}) for _, result := range results { data, err := result.Unwrap() if err == nil { fmt.Printf("Result: %s\n", data) } } // LoadMap keys := []int{6, 7, 8} resultsMap := loader.LoadMap(ctx, keys) for _, key := range keys { data, err := resultsMap[key].Unwrap() if err == nil { fmt.Printf("Result: %s\n", data) } } // Prime loader.Prime(ctx, 8, "Prime result") data, err = loader.Load(ctx, 8).Unwrap() if err == nil { fmt.Printf("Result: %s\n", data) } // Clear loader.Clear(7) data, err = loader.Load(ctx, 7).Unwrap() if err == nil { fmt.Printf("Result: %s\n", data) } // ClearAll loader.ClearAll() data, err = loader.Load(ctx, 8).Unwrap() if err == nil { fmt.Printf("Result: %s\n", data) }
Output: Result: Result for 1 Result: Result for 3 Result: Result for 4 Result: Result for 5 Result: Result for 6 Result: Result for 7 Result: Result for 8 Result: Prime result Result: Result for 7 Result: Result for 8
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Interface ¶
type Interface[K comparable, V any] interface { // Load loads a single key Load(context.Context, K) Result[V] // LoadMany loads multiple keys LoadMany(context.Context, []K) []Result[V] // LoadMap loads multiple keys and returns a map of results LoadMap(context.Context, []K) map[K]Result[V] // Clear removes an item from the cache Clear(K) Interface[K, V] // ClearAll clears the entire cache ClearAll() Interface[K, V] // Prime primes the cache with a key and value Prime(ctx context.Context, key K, value V) Interface[K, V] }
Interface defines a public API for loading data from a particular data source
type Loader ¶
type Loader[K comparable, V any] func(context.Context, []K) []Result[V]
Loader is the function type for loading data
type Option ¶
type Option func(*config)
Option is a function type for configuring DataLoader
func WithBatchSize ¶
WithBatchSize sets the batch size for the DataLoader
func WithTracerProvider ¶
func WithTracerProvider(tp trace.TracerProvider) Option
WithTracerProvider sets the tracer for the DataLoader
Click to show internal directories.
Click to hide internal directories.