1package yaml_test
2
3import (
4	"fmt"
5	"log"
6
7	"gopkg.in/yaml.v2"
8)
9
10// An example showing how to unmarshal embedded
11// structs from YAML.
12
13type StructA struct {
14	A string `yaml:"a"`
15}
16
17type StructB struct {
18	// Embedded structs are not treated as embedded in YAML by default. To do that,
19	// add the ",inline" annotation below
20	StructA `yaml:",inline"`
21	B       string `yaml:"b"`
22}
23
24var data = `
25a: a string from struct A
26b: a string from struct B
27`
28
29func ExampleUnmarshal_embedded() {
30	var b StructB
31
32	err := yaml.Unmarshal([]byte(data), &b)
33	if err != nil {
34		log.Fatalf("cannot unmarshal data: %v", err)
35	}
36	fmt.Println(b.A)
37	fmt.Println(b.B)
38	// Output:
39	// a string from struct A
40	// a string from struct B
41}
42