Files
acp/cache.go
2023-09-28 01:38:14 +08:00

16 lines
237 B
Go

package acp
func Cache[K comparable, V any](f func(in K) V) func(in K) V {
cache := make(map[K]V, 0)
return func(in K) V {
cached, has := cache[in]
if has {
return cached
}
out := f(in)
cache[in] = out
return out
}
}