Documentation ¶
Overview ¶
Package orderedmap is extended version of: https://github.com/iancoleman/orderedmap
Differences: - Additional methods (GetNested, SetNested, ToMap, ...). - Enhanced JSON decoding: nested map is always pointer (*OrderedMap), this avoids problems with nested values modification. - Added support for deepcopy, see HandleDeepCopy method.
Index ¶
- type ByPair
- type MapKeyStep
- type MapStep
- type OrderedMap
- func (o *OrderedMap) Clone() *OrderedMap
- func (o *OrderedMap) Delete(key string)
- func (o *OrderedMap) Get(key string) (any, bool)
- func (o *OrderedMap) GetNested(path string) (value any, found bool, err error)
- func (o *OrderedMap) GetNestedMap(path string) (m *OrderedMap, found bool, err error)
- func (o *OrderedMap) GetNestedOrNil(path string) any
- func (o *OrderedMap) GetNestedPath(path Path) (value any, found bool, err error)
- func (o *OrderedMap) GetNestedPathMap(path Path) (m *OrderedMap, found bool, err error)
- func (o *OrderedMap) GetNestedPathOrNil(path Path) any
- func (o *OrderedMap) GetOrNil(key string) any
- func (o *OrderedMap) HandleDeepCopy(callback deepcopy.TranslateFn, steps deepcopy.Path, ...) (*OrderedMap, deepcopy.CloneFn)
- func (o *OrderedMap) Keys() []string
- func (o *OrderedMap) Len() int
- func (o OrderedMap) MarshalJSON() ([]byte, error)
- func (o *OrderedMap) MarshalYAML() (any, error)
- func (o *OrderedMap) Set(key string, value any)
- func (o *OrderedMap) SetNested(path string, value any) error
- func (o *OrderedMap) SetNestedPath(path Path, value any) error
- func (o *OrderedMap) Sort(lessFunc func(a *Pair, b *Pair) bool)
- func (o *OrderedMap) SortKeys(sortFunc func(keys []string))
- func (o *OrderedMap) ToMap() map[string]any
- func (o *OrderedMap) UnmarshalJSON(b []byte) error
- func (o *OrderedMap) UnmarshalYAML(node *yaml.Node) error
- func (o *OrderedMap) VisitAllRecursive(callback VisitCallback)
- type Pair
- type Path
- type SliceStep
- type Step
- type VisitCallback
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type MapKeyStep ¶
type MapKeyStep string
MapKeyStep represents a map key, used with deepcopy.
func (MapKeyStep) String ¶
func (v MapKeyStep) String() string
type OrderedMap ¶
type OrderedMap struct {
// contains filtered or unexported fields
}
OrderedMap a map that preserves the order of the keys.
func (*OrderedMap) Clone ¶
func (o *OrderedMap) Clone() *OrderedMap
Clone clones ordered map using deepcopy.
func (*OrderedMap) GetNested ¶
func (o *OrderedMap) GetNested(path string) (value any, found bool, err error)
GetNested returns nested value by path as string.
func (*OrderedMap) GetNestedMap ¶
func (o *OrderedMap) GetNestedMap(path string) (m *OrderedMap, found bool, err error)
GetNestedMap returns nested OrderedMap by path as string.
func (*OrderedMap) GetNestedOrNil ¶
func (o *OrderedMap) GetNestedOrNil(path string) any
GetNestedOrNil returns nil if values is not found or an error occurred.
func (*OrderedMap) GetNestedPath ¶
func (o *OrderedMap) GetNestedPath(path Path) (value any, found bool, err error)
GetNestedPath returns nested value by Path.
func (*OrderedMap) GetNestedPathMap ¶
func (o *OrderedMap) GetNestedPathMap(path Path) (m *OrderedMap, found bool, err error)
GetNestedPathMap returns nested OrderedMap by Path.
func (*OrderedMap) GetNestedPathOrNil ¶
func (o *OrderedMap) GetNestedPathOrNil(path Path) any
GetNestedPathOrNil returns nil if values is not found or an error occurred.
func (*OrderedMap) GetOrNil ¶
func (o *OrderedMap) GetOrNil(key string) any
GetOrNil gets key or returns nil if it doesn't exists.
func (*OrderedMap) HandleDeepCopy ¶
func (o *OrderedMap) HandleDeepCopy(callback deepcopy.TranslateFn, steps deepcopy.Path, visited deepcopy.VisitedPtrMap) (*OrderedMap, deepcopy.CloneFn)
HandleDeepCopy implements deepcopy operation.
func (*OrderedMap) Keys ¶
func (o *OrderedMap) Keys() []string
Keys method returns all keys as slice.
func (OrderedMap) MarshalJSON ¶
func (o OrderedMap) MarshalJSON() ([]byte, error)
MarshalJSON implements JSON encoding.
func (*OrderedMap) MarshalYAML ¶ added in v0.5.0
func (o *OrderedMap) MarshalYAML() (any, error)
func (*OrderedMap) SetNested ¶
func (o *OrderedMap) SetNested(path string, value any) error
SetNested value defined by path, eg. "parameters.foo[123]".
func (*OrderedMap) SetNestedPath ¶
func (o *OrderedMap) SetNestedPath(path Path, value any) error
SetNestedPath value defined by key, eg. Key{MapStep("parameters), MapStep("foo"), SliceStep(123)}.
func (*OrderedMap) Sort ¶
func (o *OrderedMap) Sort(lessFunc func(a *Pair, b *Pair) bool)
Sort sorts keys/values using sort func.
func (*OrderedMap) SortKeys ¶
func (o *OrderedMap) SortKeys(sortFunc func(keys []string))
SortKeys sorts keys using sort func.
func (*OrderedMap) ToMap ¶
func (o *OrderedMap) ToMap() map[string]any
ToMap converts OrderedMap to native Go map.
func (*OrderedMap) UnmarshalJSON ¶
func (o *OrderedMap) UnmarshalJSON(b []byte) error
UnmarshalJSON implements JSON decoding.
func (*OrderedMap) UnmarshalYAML ¶ added in v0.5.0
func (o *OrderedMap) UnmarshalYAML(node *yaml.Node) error
func (*OrderedMap) VisitAllRecursive ¶
func (o *OrderedMap) VisitAllRecursive(callback VisitCallback)
VisitAllRecursive calls callback for each nested key in OrderedMap or []any.
type Path ¶
type Path []Step
Path to a nested value in the OrderedMap.
func (Path) WithoutFirst ¶
WithoutFirst returns path without first step or nil.
func (Path) WithoutLast ¶
WithoutLast returns path without last step or nil.
type VisitCallback ¶
VisitCallback callback to visit each nested value in OrderedMap.