code: func (c *cache) Load(r io.Reader) error {
  	dec := gob.NewDecoder(r)
  	items := map[string]Item{}
  	err := dec.Decode(&items)
  	if err == nil {
  		c.mu.Lock()
  		defer c.mu.Unlock()
  		for k, v := range items {
  			ov, found := c.items[k]
  			if !found || ov.Expired() {
  				c.items[k] = v
  			}
  		}
  	}
  	return err
  }
docs: // Add (Gob-serialized) cache items from an io.Reader, excluding any items with
  // keys that already exist (and haven't expired) in the current cache.
  //
  // NOTE: This method is deprecated in favor of c.Items() and NewFrom() (see the
  // documentation for NewFrom().)