github.com/maeglindeveloper/gqlgen@v0.13.1-0.20210413081235-57808b12a0a0/graphql/handler/lru/lru.go (about) 1 package lru 2 3 import ( 4 "context" 5 6 "github.com/99designs/gqlgen/graphql" 7 lru "github.com/hashicorp/golang-lru" 8 ) 9 10 type LRU struct { 11 lru *lru.Cache 12 } 13 14 var _ graphql.Cache = &LRU{} 15 16 func New(size int) *LRU { 17 cache, err := lru.New(size) 18 if err != nil { 19 // An error is only returned for non-positive cache size 20 // and we already checked for that. 21 panic("unexpected error creating cache: " + err.Error()) 22 } 23 return &LRU{cache} 24 } 25 26 func (l LRU) Get(ctx context.Context, key string) (value interface{}, ok bool) { 27 return l.lru.Get(key) 28 } 29 30 func (l LRU) Add(ctx context.Context, key string, value interface{}) { 31 l.lru.Add(key, value) 32 }