maps

package
v0.109.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 3, 2023 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetNestedParam

func GetNestedParam(keyStr, separator string, candidates ...Params) (any, error)

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 GetNestedParamFn(keyStr, separator string, lookupFn func(key string) any) (any, string, map[string]any, error)

func LookupEqualFold added in v0.20.0

func LookupEqualFold[T any | string](m map[string]T, key string) (T, bool)

LookupEqualFold finds key in m with case insensitive equality checks.

func PrepareParams added in v0.9.0

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 ToSliceStringMap

func ToSliceStringMap(in any) ([]map[string]any, error)

ToSliceStringMap converts in to []map[string]interface{}.

func ToStringMap

func ToStringMap(in any) map[string]any

ToStringMap converts in to map[string]interface{}.

func ToStringMapBool added in v0.9.0

func ToStringMapBool(in any) map[string]bool

ToStringMapBool converts in to bool.

func ToStringMapE

func ToStringMapE(in any) (map[string]any, error)

ToStringMapE converts in to map[string]interface{}.

func ToStringMapString added in v0.9.0

func ToStringMapString(in any) map[string]string

ToStringMapString converts in to map[string]string.

func ToStringMapStringE added in v0.9.0

func ToStringMapStringE(in any) (map[string]string, error)

ToStringMapStringE converts in to map[string]string.

Types

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

type Params map[string]any

Params is a map where all keys are lower case.

func MustToParamsAndPrepare added in v0.9.0

func MustToParamsAndPrepare(in any) Params

MustToParamsAndPrepare calls ToParamsAndPrepare and panics if it fails.

func ToParamsAndPrepare added in v0.9.0

func ToParamsAndPrepare(in any) (Params, bool)

ToParamsAndPrepare converts in to Params and prepares it for use. If in is nil, an empty map is returned. See PrepareParams.

func (Params) DeleteMergeStrategy added in v0.9.0

func (p Params) DeleteMergeStrategy() bool

func (Params) Get

func (p Params) Get(indices ...string) any

Get does a lower case and nested search in this map. It will return nil if none found.

func (Params) GetMergeStrategy added in v0.9.0

func (p Params) GetMergeStrategy() (ParamsMergeStrategy, bool)

func (Params) IsZero added in v0.9.0

func (p Params) IsZero() bool

IsZero returns true if p is considered empty.

func (Params) Merge added in v0.9.0

func (p Params) Merge(pp Params)

Merge transfers values from pp to p for new keys. This is done recursively.

func (Params) MergeRoot added in v0.10.0

func (p Params) MergeRoot(pp Params)

MergeRoot transfers values from pp to p for new keys where p is the root of the tree. This is done recursively.

func (Params) Set added in v0.9.0

func (p Params) Set(pp Params)

Set overwrites values in p with values in pp for common or new keys. This is done recursively.

func (Params) SetDefaultMergeStrategy added in v0.9.0

func (p Params) SetDefaultMergeStrategy(s ParamsMergeStrategy)

type ParamsMergeStrategy added in v0.9.0

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"
)

type Scratch

type Scratch struct {
	// contains filtered or unexported fields
}

Scratch is a writable context used for stateful operations in Page/Node rendering.

func NewScratch

func NewScratch() *Scratch

NewScratch returns a new instance of Scratch.

func (*Scratch) Add

func (c *Scratch) Add(key string, newAddend any) (string, error)

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) Delete

func (c *Scratch) Delete(key string) string

Delete deletes the given key.

func (*Scratch) DeleteInMap added in v0.9.0

func (c *Scratch) DeleteInMap(key string, mapKey string) string

DeleteInMap deletes a value to a map with the given key in the Node context.

func (*Scratch) Get

func (c *Scratch) Get(key string) any

Get returns a value previously set by Add or Set.

func (*Scratch) GetSortedMapValues

func (c *Scratch) GetSortedMapValues(key string) any

GetSortedMapValues returns a sorted map previously filled with SetInMap.

func (*Scratch) Set

func (c *Scratch) Set(key string, value any) string

Set stores a value with the given key in the Node context. This value can later be retrieved with Get.

func (*Scratch) SetInMap

func (c *Scratch) SetInMap(key string, mapKey string, value any) string

SetInMap stores a value to a map with the given key in the Node context. This map can later be retrieved with GetSortedMapValues.

func (*Scratch) Values

func (c *Scratch) Values() map[string]any

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.

type Scratcher

type Scratcher interface {
	Scratch() *Scratch
}

Scratcher provides a scratching service.

func NewScratcher

func NewScratcher() Scratcher

NewScratcher creates a new Scratcher.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL