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 }