type SetFn … // SetScalar returns a SetFn to set a scalar value func SetScalar(value string) SetFn { … } // SetEntry returns a SetFn to set a field or a map entry to a value. // It can be used with an empty name to set both a value and a tag on a scalar node. // When setting only a value on a scalar node, use SetScalar instead. func SetEntry(name, value, tag string) SetFn { … } type TrackableSetter … // WithMutationTracker registers a callback which will be invoked each time a field is mutated func (s *TrackableSetter) WithMutationTracker(callback func(key, value, tag string, node *yaml.RNode)) *TrackableSetter { … } // SetScalar returns a SetFn to set a scalar value. // if a mutation tracker has been registered, the tracker will be invoked each // time a scalar is set func (s TrackableSetter) SetScalar(value string) SetFn { … } // SetScalarIfEmpty returns a SetFn to set a scalar value only if it isn't already set. // If a mutation tracker has been registered, the tracker will be invoked each // time a scalar is actually set. func (s TrackableSetter) SetScalarIfEmpty(value string) SetFn { … } // SetEntry returns a SetFn to set a field or a map entry to a value. // It can be used with an empty name to set both a value and a tag on a scalar node. // When setting only a value on a scalar node, use SetScalar instead. // If a mutation tracker has been registered, the tracker will be invoked each // time an entry is set. func (s TrackableSetter) SetEntry(name, value, tag string) SetFn { … } // SetEntryIfEmpty returns a SetFn to set a field or a map entry to a value only if it isn't already set. // It can be used with an empty name to set both a value and a tag on a scalar node. // When setting only a value on a scalar node, use SetScalar instead. // If a mutation tracker has been registered, the tracker will be invoked each // time an entry is actually set. func (s TrackableSetter) SetEntryIfEmpty(key, value, tag string) SetFn { … } func hasExistingValue(node *yaml.RNode, key string) bool { … }