1package ctydebug_test
2
3import (
4	"fmt"
5
6	"github.com/zclconf/go-cty-debug/ctydebug"
7	"github.com/zclconf/go-cty/cty"
8)
9
10func ExampleDiffValues() {
11	a := cty.ObjectVal(map[string]cty.Value{
12		"foo": cty.StringVal("a"),
13		"bar": cty.StringVal("b"),
14		"baz": cty.MapVal(map[string]cty.Value{
15			"hello": cty.StringVal("world"),
16		}),
17	})
18	b := cty.ObjectVal(map[string]cty.Value{
19		"bar": cty.EmptyObjectVal,
20		"baz": cty.MapVal(map[string]cty.Value{
21			"hello":   cty.UnknownVal(cty.String),
22			"goodbye": cty.StringVal("moon"),
23		}),
24	})
25
26	fmt.Print(ctydebug.DiffValues(b, a))
27
28	// Output:
29	// {cty.Value}["bar"]
30	//   got:  cty.StringVal("b")
31	//   want: cty.EmptyObjectVal
32	//
33	// {cty.Value}["baz"]["goodbye"]
34	//   got:  (no value)
35	//   want: cty.StringVal("moon")
36	//
37	// {cty.Value}["baz"]["hello"]
38	//   got:  cty.StringVal("world")
39	//   want: cty.UnknownVal(cty.String)
40	//
41	// {cty.Value}["foo"]
42	//   got:  cty.StringVal("a")
43	//   want: (no value)
44
45}
46