Some checks are pending
Docs Deploy / build_and_deploy (push) Waiting to run
Generate Docs / cli (push) Waiting to run
Generate Config Doc / cli (push) Waiting to run
Go formatting / go-formatting (push) Waiting to run
Check links / markdown-link-check (push) Waiting to run
Integration / pre-test (push) Waiting to run
Integration / test on (push) Blocked by required conditions
Integration / status (push) Blocked by required conditions
Lint / Lint Go code (push) Waiting to run
Test / test (ubuntu-latest) (push) Waiting to run
27 lines
454 B
Go
27 lines
454 B
Go
package protoanalysis
|
|
|
|
import "sync"
|
|
|
|
type Cache struct {
|
|
mu sync.RWMutex
|
|
pkgs map[string]Packages // proto dir path-proto packages pair.
|
|
}
|
|
|
|
func NewCache() *Cache {
|
|
return &Cache{
|
|
pkgs: make(map[string]Packages),
|
|
}
|
|
}
|
|
|
|
func (c *Cache) Get(key string) (Packages, bool) {
|
|
c.mu.RLock()
|
|
pkgs, ok := c.pkgs[key]
|
|
c.mu.RUnlock()
|
|
return pkgs, ok
|
|
}
|
|
|
|
func (c *Cache) Add(key string, value Packages) {
|
|
c.mu.Lock()
|
|
c.pkgs[key] = value
|
|
c.mu.Unlock()
|
|
}
|