github.com/raphaelreyna/latte@v0.11.2-0.20220317193248-98e2fcef4eef/internal/job/templateCache.go (about)

     1  package job
     2  
     3  import (
     4  	"sync"
     5  	lru "github.com/hashicorp/golang-lru"
     6  )
     7  
     8  type TemplateCache struct {
     9  	sync.Mutex
    10  	cache *lru.Cache
    11  }
    12  
    13  func NewTemplateCache(n int) (*TemplateCache, error) {
    14  	var err error
    15  	tc := &TemplateCache{}
    16  	if tc.cache, err = lru.New(n); err != nil {
    17  		return nil, err
    18  	}
    19  
    20  	return tc, nil
    21  }
    22  
    23  func (tc *TemplateCache) Get(key string) (interface{}, bool) {
    24  	return tc.cache.Get(key)
    25  }
    26  
    27  func (tc *TemplateCache) Add(key string, val interface{}) bool {
    28  	return tc.cache.Add(key, val)
    29  }