common/maps: Add Scratch.Values

Fixes #7335
This commit is contained in:
Bjørn Erik Pedersen
2020-05-29 18:50:12 +02:00
parent 432885c499
commit 2919a6a503
3 changed files with 18 additions and 1 deletions

View File

@@ -107,6 +107,15 @@ func (c *Scratch) Get(key string) interface{} {
return val
}
// Values returns the raw backing map. Note that you should just use
// this method on the locally scoped Scratch instances you obtain via newScratch, not
// .Page.Scratch etc., as that will lead to concurrency issues.
func (c *Scratch) Values() map[string]interface{} {
c.mu.RLock()
defer c.mu.RUnlock()
return c.values
}
// SetInMap stores a value to a map with the given key in the Node context.
// This map can later be retrieved with GetSortedMapValues.
func (c *Scratch) SetInMap(key string, mapKey string, value interface{}) string {
@@ -147,7 +156,7 @@ func (c *Scratch) GetSortedMapValues(key string) interface{} {
return sortedArray
}
// NewScratch returns a new instance Scratch.
// NewScratch returns a new instance of Scratch.
func NewScratch() *Scratch {
return &Scratch{values: make(map[string]interface{})}
}