/cache

A simple tiny generic cache

Primary LanguageGo

cache

A simple tiny generic cache, which caches something.

func main() {
	cc := cache.BuildCache[string, int](cache.WithGetter(func(ctx context.Context, key string) (int, error) {
		if resp, err := http.Get(key); err != nil {
			return 0, err
		} else {
			return resp.StatusCode, nil
		}
	}))()
	ctx := context.Background()
	url := "https://www.github.com"
	if status, err := cc.Get(ctx, url); err != nil {
		fmt.Fprintf(os.Stderr, "url: %s, error: %#v\n", url, err)
	} else {
		fmt.Fprintf(os.Stdout, "url: %s, status: %d\n", url, status)
	}
}