// Copyright 2021 The Go Authors. All rights reserved. | |
// Use of this source code is governed by a BSD-style | |
// license that can be found in the LICENSE file. | |
package a | |
import "sync" | |
type Loader[K comparable, R any] struct { | |
batch *LoaderBatch[K, R] | |
} | |
func (l *Loader[K, R]) Load() error { | |
l.batch.f() | |
return nil | |
} | |
type LoaderBatch[K comparable, R any] struct { | |
once *sync.Once | |
} | |
func (b *LoaderBatch[K, R]) f() { | |
b.once.Do(func() {}) | |
} |