func fieldSets()

in tools/diff-processor/diff/diff.go [187:222]


func fieldSets(field *schema.Schema, fieldName string) ResourceFieldSets {
	if field == nil {
		return ResourceFieldSets{}
	}
	var conflictsWith, exactlyOneOf, atLeastOneOf, requiredWith map[string]FieldSet
	if len(field.ConflictsWith) > 0 {
		set := sliceToSetRemoveZeroPadding(append(field.ConflictsWith, fieldName))
		conflictsWith = map[string]FieldSet{
			setKey(set): set,
		}
	}
	if len(field.ExactlyOneOf) > 0 {
		set := sliceToSetRemoveZeroPadding(append(field.ExactlyOneOf, fieldName))
		exactlyOneOf = map[string]FieldSet{
			setKey(set): set,
		}
	}
	if len(field.AtLeastOneOf) > 0 {
		set := sliceToSetRemoveZeroPadding(append(field.AtLeastOneOf, fieldName))
		atLeastOneOf = map[string]FieldSet{
			setKey(set): set,
		}
	}
	if len(field.RequiredWith) > 0 {
		set := sliceToSetRemoveZeroPadding(append(field.RequiredWith, fieldName))
		requiredWith = map[string]FieldSet{
			setKey(set): set,
		}
	}
	return ResourceFieldSets{
		ConflictsWith: conflictsWith,
		ExactlyOneOf:  exactlyOneOf,
		AtLeastOneOf:  atLeastOneOf,
		RequiredWith:  requiredWith,
	}
}