var ErrInvalidFormat = errors.New("invalid format")
var ErrInvalidYaml = errors.New("invalid yaml")
var ErrNotFound = errors.New("not found")
func Marshal(m *Map) ([]byte, error)
type Map struct { *yaml.Node }
func MapValue() *Map
func NullValue() *Map
func StringValue(value string) *Map
func Unmarshal(data []byte) (*Map, error)
func (m *Map) AddEntry(key string, value *Map)
func (m *Map) Empty() bool
func (m *Map) FindEntry(key string) (*Map, error)
func (m *Map) IsModified() bool
Traverse map using BFS to searach for any nodes that have been modified.
func (m *Map) Keys() []string
func (m *Map) RemoveEntry(key string) error
func (m *Map) SetEntry(key string, value *Map)
func (m *Map) SetModified()
Note: This is a hack to introduce the concept of modified/unmodified on top of gopkg.in/yaml.v3. This works by setting the Value property of a MappingNode to a specific value and then later checking if the node's Value property is that specific value. When a MappingNode gets output as a string the Value property is not used, thus changing it has no impact for our purposes.
func (m *Map) SetUnmodified()
Traverse map using BFS to set all nodes as unmodified.
func (m *Map) String() string