0
Fork 0
mirror of https://github.com/willnorris/imageproxy.git synced 2024-12-16 21:56:43 -05:00
imageproxy/cache/memory.go
Will Norris 95fdd8b79f add basic caching support
includes two implementations, a no-op NopCache and an in-memory
MemoryCache.
2013-12-04 02:55:56 -08:00

27 lines
528 B
Go

package cache
import "github.com/willnorris/go-imageproxy/data"
// MemoryCache provides an in-memory Cache implementation.
type MemoryCache struct {
images map[string]*data.Image
}
func NewMemoryCache() *MemoryCache {
return &MemoryCache{
make(map[string]*data.Image),
}
}
func (c MemoryCache) Get(u string) (*data.Image, bool) {
image, ok := c.images[u]
return image, ok
}
func (c MemoryCache) Save(image *data.Image) {
c.images[image.URL] = image
}
func (c MemoryCache) Delete(u string) {
delete(c.images, u)
}