Files
yatm/tools/cache.go
Samuel N Cui 852cf8212e feat: job list
2023-08-29 18:02:57 +08:00

16 lines
239 B
Go

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