Back to godoc.org

Package merge

v1.4.0
Latest Go to latest

The latest major version is .

Published: Nov 20, 2019 | License: MIT | Module: go.uber.org/config

Index

func IsMapping

func IsMapping(i interface{}) bool

IsMapping reports whether a type is a mapping in YAML, represented as a map[interface{}]interface{}.

func IsScalar

func IsScalar(i interface{}) bool

IsScalar reports whether a type is a scalar value in YAML.

func IsSequence

func IsSequence(i interface{}) bool

IsSequence reports whether a type is a sequence in YAML, represented as an []interface{}.

func YAML

func YAML(sources [][]byte, strict bool) (*bytes.Buffer, error)

YAML deep-merges any number of YAML sources, with later sources taking priority over earlier ones.

Maps are deep-merged. For example,

{"one": 1, "two": 2} + {"one": 42, "three": 3}
== {"one": 42, "two": 2, "three": 3}

Sequences are replaced. For example,

{"foo": [1, 2, 3]} + {"foo": [4, 5, 6]}
== {"foo": [4, 5, 6]}

In non-strict mode, duplicate map keys are allowed within a single source, with later values overwriting previous ones. Attempting to merge mismatched types (e.g., merging a sequence into a map) replaces the old value with the new.

Enabling strict mode returns errors in both of the above cases.

Documentation was rendered with GOOS=linux and GOARCH=amd64.

Jump to identifier

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to identifier