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  }