code: func newCacheRoundTripper(cacheDir string, rt http.RoundTripper) http.RoundTripper {
  	d := diskv.New(diskv.Options{
  		BasePath: cacheDir,
  		TempDir:  filepath.Join(cacheDir, ".diskv-temp"),
  	})
  	t := httpcache.NewTransport(diskcache.NewWithDiskv(d))
  	t.Transport = rt
  
  	return &cacheRoundTripper{rt: t}
  }
docs: // newCacheRoundTripper creates a roundtripper that reads the ETag on
  // response headers and send the If-None-Match header on subsequent
  // corresponding requests.