code: func CreateTwoWayMergePatch(original, modified []byte, dataStruct interface{}, fns ...mergepatch.PreconditionFunc) ([]byte, error) {
  	schema, err := NewPatchMetaFromStruct(dataStruct)
  	if err != nil {
  		return nil, err
  	}
  
  	return CreateTwoWayMergePatchUsingLookupPatchMeta(original, modified, schema, fns...)
  }
docs: // The following code is adapted from github.com/openshift/origin/pkg/util/jsonmerge.
  // Instead of defining a Delta that holds an original, a patch and a set of preconditions,
  // the reconcile method accepts a set of preconditions as an argument.
  // CreateTwoWayMergePatch creates a patch that can be passed to StrategicMergePatch from an original
  // document and a modified document, which are passed to the method as json encoded content. It will
  // return a patch that yields the modified document when applied to the original document, or an error
  // if either of the two documents is invalid.