12345678910111213141516171819202122232425262728293031323334 |
- package jet
- import "sync"
- // Cache is the interface Jet uses to store and retrieve parsed templates.
- type Cache interface {
- // Get fetches a template from the cache. If Get returns nil, the same path with a different extension will be tried.
- // If Get() returns nil for all configured extensions, the same path and extensions will be tried on the Set's Loader.
- Get(templatePath string) *Template
- // Put places the result of parsing a template "file"/string in the cache.
- Put(templatePath string, t *Template)
- }
- // cache is the cache used by default in a new Set.
- type cache struct {
- m sync.Map
- }
- // compile-time check that cache implements Cache
- var _ Cache = (*cache)(nil)
- func (c *cache) Get(templatePath string) *Template {
- _t, ok := c.m.Load(templatePath)
- if !ok {
- return nil
- }
- return _t.(*Template)
- }
- func (c *cache) Put(templatePath string, t *Template) {
- c.m.Store(templatePath, t)
- }
|