Documentation ¶
Index ¶
- func CleanConfigStringMap(m map[string]any) map[string]any
- func CleanConfigStringMapString(m map[string]string) map[string]string
- func ConvertFloat64WithNoDecimalsToInt(m map[string]any)
- func GetNestedParam(keyStr, separator string, candidates ...Params) (any, error)
- func GetNestedParamFn(keyStr, separator string, lookupFn func(key string) any) (any, string, map[string]any, error)
- func LookupEqualFold[T any | string](m map[string]T, key string) (T, bool)
- func MergeParams(dst, src Params)
- func MergeParamsWithStrategy(strategy string, dst, src Params)
- func MergeShallow(dst, src map[string]any)
- func PrepareParams(m Params)
- func SetParams(dst, src Params)
- func ToSliceStringMap(in any) ([]map[string]any, error)
- func ToStringMap(in any) map[string]any
- func ToStringMapBool(in any) map[string]bool
- func ToStringMapE(in any) (map[string]any, error)
- func ToStringMapString(in any) map[string]string
- func ToStringMapStringE(in any) (map[string]string, error)
- type Cache
- type KeyParams
- type KeyRenamer
- type Params
- type ParamsMergeStrategy
- type Scratch
- func (c *Scratch) Add(key string, newAddend any) (string, error)
- func (c *Scratch) Delete(key string) string
- func (c *Scratch) DeleteInMap(key string, mapKey string) string
- func (c *Scratch) Get(key string) any
- func (c *Scratch) GetSortedMapValues(key string) any
- func (c *Scratch) Set(key string, value any) string
- func (c *Scratch) SetInMap(key string, mapKey string, value any) string
- func (c *Scratch) Values() map[string]any
- type Scratcher
- type SliceCache
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CleanConfigStringMap ¶
CleanConfigStringMap is the same as CleanConfigStringMapString but for map[string]any.
func CleanConfigStringMapString ¶
CleanConfigStringMapString removes any processing instructions from m, m will never be modified.
func ConvertFloat64WithNoDecimalsToInt ¶
ConvertFloat64WithNoDecimalsToInt converts float64 values with no decimals to int recursively.
func GetNestedParam ¶
GetNestedParam gets the first match of the keyStr in the candidates given. It will first try the exact match and then try to find it as a nested map value, using the given separator, e.g. "mymap.name". It assumes that all the maps given have lower cased keys.
func GetNestedParamFn ¶
func LookupEqualFold ¶
LookupEqualFold finds key in m with case insensitive equality checks.
func MergeParams ¶
func MergeParams(dst, src Params)
MergeParams transfers values from src to dst for new keys using the merge encoded in dst. This is done recursively.
func MergeParamsWithStrategy ¶
MergeParamsWithStrategy transfers values from src to dst for new keys using the merge strategy given. This is done recursively.
func MergeShallow ¶
MergeShallow merges src into dst, but only if the key does not already exist in dst. The keys are compared case insensitively.
func PrepareParams ¶
func PrepareParams(m Params)
PrepareParams * makes all the keys in the given map lower cased and will do so * This will modify the map given. * Any nested map[interface{}]interface{}, map[string]interface{},map[string]string will be converted to Params. * Any _merge value will be converted to proper type and value.
func SetParams ¶
func SetParams(dst, src Params)
SetParams overwrites values in dst with values in src for common or new keys. This is done recursively.
func ToSliceStringMap ¶
ToSliceStringMap converts in to []map[string]interface{}.
func ToStringMap ¶
ToStringMap converts in to map[string]interface{}.
func ToStringMapBool ¶
ToStringMapBool converts in to bool.
func ToStringMapE ¶
ToStringMapE converts in to map[string]interface{}.
func ToStringMapString ¶
ToStringMapString converts in to map[string]string.
Types ¶
type Cache ¶
type Cache[K comparable, T any] struct { sync.RWMutex // contains filtered or unexported fields }
Cache is a simple thread safe cache backed by a map.
func (*Cache[K, T]) GetOrCreate ¶
func (c *Cache[K, T]) GetOrCreate(key K, create func() T) T
GetOrCreate gets the value for the given key if it exists, or creates it if not.
type KeyRenamer ¶
type KeyRenamer struct {
// contains filtered or unexported fields
}
KeyRenamer supports renaming of keys in a map.
func NewKeyRenamer ¶
func NewKeyRenamer(patternKeys ...string) (KeyRenamer, error)
NewKeyRenamer creates a new KeyRenamer given a list of pattern and new key value pairs.
func (KeyRenamer) Rename ¶
func (r KeyRenamer) Rename(m map[string]any)
Rename renames the keys in the given map according to the patterns in the current KeyRenamer.
type Params ¶
Params is a map where all keys are lower case.
func MustToParamsAndPrepare ¶
MustToParamsAndPrepare calls ToParamsAndPrepare and panics if it fails.
func ToParamsAndPrepare ¶
ToParamsAndPrepare converts in to Params and prepares it for use. If in is nil, an empty map is returned. See PrepareParams.
func (Params) GetMergeStrategy ¶
func (p Params) GetMergeStrategy() (ParamsMergeStrategy, bool)
For internal use.
func (Params) GetNested ¶
GetNested does a lower case and nested search in this map. It will return nil if none found. Make all of these methods internal somehow.
func (Params) SetMergeStrategy ¶
func (p Params) SetMergeStrategy(s ParamsMergeStrategy)
For internal use.
type ParamsMergeStrategy ¶
type ParamsMergeStrategy string
ParamsMergeStrategy tells what strategy to use in Params.Merge.
const ( // Do not merge. ParamsMergeStrategyNone ParamsMergeStrategy = "none" // Only add new keys. ParamsMergeStrategyShallow ParamsMergeStrategy = "shallow" // Add new keys, merge existing. ParamsMergeStrategyDeep ParamsMergeStrategy = "deep" MergeStrategyKey = "_merge" )
type Scratch ¶
type Scratch struct {
// contains filtered or unexported fields
}
Scratch is a writable context used for stateful operations in Page/Node rendering.
func (*Scratch) Add ¶
Add will, for single values, add (using the + operator) the addend to the existing addend (if found). Supports numeric values and strings.
If the first add for a key is an array or slice, then the next value(s) will be appended.
func (*Scratch) DeleteInMap ¶
DeleteInMap deletes a value to a map with the given key in the Node context.
func (*Scratch) GetSortedMapValues ¶
GetSortedMapValues returns a sorted map previously filled with SetInMap.
func (*Scratch) Set ¶
Set stores a value with the given key in the Node context. This value can later be retrieved with Get.
type Scratcher ¶
type Scratcher interface { // Scratch returns a "scratch pad" that can be used to store state. Scratch() *Scratch }
Scratcher provides a scratching service.
type SliceCache ¶
SliceCache is a simple thread safe cache backed by a map.
func NewSliceCache ¶
func NewSliceCache[T any]() *SliceCache[T]
func (*SliceCache[T]) Append ¶
func (c *SliceCache[T]) Append(key string, values ...T)
func (*SliceCache[T]) Get ¶
func (c *SliceCache[T]) Get(key string) ([]T, bool)
func (*SliceCache[T]) Reset ¶
func (c *SliceCache[T]) Reset()