Update generated

This commit is contained in:
jennybuckley
2019-07-17 14:59:50 -07:00
committed by Jennifer Buckley
parent 229894c730
commit 018a3db25e
11 changed files with 90 additions and 69 deletions

View File

@@ -16,16 +16,42 @@ package fieldpath
// APIVersion describes the version of an object or of a fieldset.
type APIVersion string
type VersionedSet interface {
Set() *Set
APIVersion() APIVersion
Applied() bool
}
// VersionedSet associates a version to a set.
type VersionedSet struct {
*Set
APIVersion APIVersion
Applied bool
type versionedSet struct {
set *Set
apiVersion APIVersion
applied bool
}
func NewVersionedSet(set *Set, apiVersion APIVersion, applied bool) VersionedSet {
return versionedSet{
set: set,
apiVersion: apiVersion,
applied: applied,
}
}
func (v versionedSet) Set() *Set {
return v.set
}
func (v versionedSet) APIVersion() APIVersion {
return v.apiVersion
}
func (v versionedSet) Applied() bool {
return v.applied
}
// ManagedFields is a map from manager to VersionedSet (what they own in
// what version).
type ManagedFields map[string]*VersionedSet
type ManagedFields map[string]VersionedSet
// Difference returns a symmetric difference between two Managers. If a
// given user's entry has version X in lhs and version Y in rhs, then
@@ -37,7 +63,7 @@ func (lhs ManagedFields) Difference(rhs ManagedFields) ManagedFields {
for manager, left := range lhs {
right, ok := rhs[manager]
if !ok {
if !left.Empty() {
if !left.Set().Empty() {
diff[manager] = left
}
continue
@@ -46,17 +72,14 @@ func (lhs ManagedFields) Difference(rhs ManagedFields) ManagedFields {
// If we have sets in both but their version
// differs, we don't even diff and keep the
// entire thing.
if left.APIVersion != right.APIVersion {
if left.APIVersion() != right.APIVersion() {
diff[manager] = right
continue
}
newSet := left.Difference(right.Set).Union(right.Difference(left.Set))
newSet := left.Set().Difference(right.Set()).Union(right.Set().Difference(left.Set()))
if !newSet.Empty() {
diff[manager] = &VersionedSet{
Set: newSet,
APIVersion: right.APIVersion,
}
diff[manager] = NewVersionedSet(newSet, right.APIVersion(), false)
}
}
@@ -65,7 +88,7 @@ func (lhs ManagedFields) Difference(rhs ManagedFields) ManagedFields {
// Already done
continue
}
if !set.Empty() {
if !set.Set().Empty() {
diff[manager] = set
}
}