package
0.2.0
Repository: https://github.com/k0sproject/dig.git
Documentation: pkg.go.dev

# README

package main

import ( "fmt"

"github.com/k0sproject/dig"
"gopkg.in/yaml.v2"

)

var yamlDoc = []byte(--- i18n: hello: se: Hejsan fi: Morjens world: se: Värld fi: Maailma )

func main() { m := dig.Mapping{} if err := yaml.Unmarshal(yamlDoc, &m); err != nil { panic(err) }

// You can use DigMapping to access a deeply nested map and set values.
// Any missing Mapping level in between will be created.
m.DigMapping("i18n", "hello")["es"] = "Hola"
m.DigMapping("i18n", "world")["es"] = "Mundo"

langs := []string{"fi", "se", "es"}
for _, l := range langs {
	// You can use Dig to access a deeply nested value
	greeting := m.Dig("i18n", "hello", l).(string)
	// ..or DigString to avoid having to cast it to string.
	target := m.DigString("i18n", "world", l)

	fmt.Printf("%s, %s!\n", greeting, target)
}

}