Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrConflict = fmt.Errorf("changes are in conflict")
var ErrPreconditionFailed = fmt.Errorf("a precondition failed")
Functions ¶
func IsConflicting ¶
IsConflicting returns true if the provided error indicates a conflict exists between the original changes and the applied changes.
func IsPreconditionFailed ¶
IsPreconditionFailed returns true if the provided error indicates a Delta precondition did not succeed.
Types ¶
type Delta ¶
type Delta struct {
// contains filtered or unexported fields
}
Delta represents a change between two JSON documents.
func NewDelta ¶
NewDelta accepts two JSON or YAML documents and calculates the difference between them. It returns a Delta object which can be used to resolve conflicts against a third version with a common parent, or an error if either document is in error.
func (*Delta) AddPreconditions ¶
func (d *Delta) AddPreconditions(fns ...PreconditionFunc)
AddPreconditions adds precondition checks to a change which must be satisfied before an Apply is considered successful. If a precondition returns false, the Apply is failed with ErrPreconditionFailed.
type PreconditionFunc ¶
type PreconditionFunc func(interface{}) bool
PreconditionFunc is a test to verify that an incompatible change has occurred before an Apply can be successful.
func RequireKeyUnchanged ¶
func RequireKeyUnchanged(key string) PreconditionFunc
RequireKeyUnchanged creates a precondition function that fails if the provided key is present in the diff (indicating its value has changed).