// ExtraHeadersEqual returns true if the two options are equal.
// In case of one option being nil, the value of the other must be nil as well
// or be set to the default value of this option.
169384
func ExtraHeadersEqual(o1, o2 *ExtraHeadersOption) bool {
	if o1 != nil {
		return o1.Equal(o2)
	}
	if o2 != nil {
		return o2.Equal(o1)
	}
	return true
}
177161
func (result *Result) Equal(other *Result) bool {
	// Check for nil cases
	if result == nil {
		return other == nil
	}
	if other == nil {
		return false
	}

	// Compare Fields, RowsAffected, InsertID, Rows, Extras.
	return FieldsEqual(result.Fields, other.Fields) &&
		result.RowsAffected == other.RowsAffected &&
		result.InsertID == other.InsertID &&
		reflect.DeepEqual(result.Rows, other.Rows) &&
		proto.Equal(result.Extras, other.Extras)
}
1089901
func (o *ReplaceExistingSynonymsOption) Equal(o2 *ReplaceExistingSynonymsOption) bool {
	if o2 == nil {
		return o.value == false
	}
	return o.value == o2.value
}
827915
func ReferersEqual(o1, o2 *ReferersOption) bool {
	if o1 != nil {
		return o1.Equal(o2)
	}
	if o2 != nil {
		return o2.Equal(o1)
	}
	return true
}
674322
func ExplainEqual(o1, o2 *ExplainOption) bool {
	if o1 != nil {
		return o1.Equal(o2)
	}
	if o2 != nil {
		return o2.Equal(o1)
	}
	return true
}
1041790
func (o *FacetingAfterDistinctOption) Equal(o2 *FacetingAfterDistinctOption) bool {
	if o2 == nil {
		return o.value == false
	}
	return o.value == o2.value
}
588351
func SearchableAttributesEqual(o1, o2 *SearchableAttributesOption) bool {
	if o1 != nil {
		return o1.Equal(o2)
	}
	if o2 != nil {
		return o2.Equal(o1)
	}
	return true
}
624931
func LimitEqual(o1, o2 *LimitOption) bool {
	if o1 != nil {
		return o1.Equal(o2)
	}
	if o2 != nil {
		return o2.Equal(o1)
	}
	return true
}
191733
func ShouldDeepEqual(actual interface{}, expected ...interface{}) string {
	res := convey.ShouldResemble(actual, expected...)
	if res == "" {
		return ""
	}

	const msg0 = "Expected: '%v'\nActual:   '%v'\n(Should deep equal)!"
	const msg1 = "Expected: '%v'\nActual:   '%v'\n(Should deep equal: %v)!"

	diff := deep.Equal(expected[0], actual)
	format := "Not match %d items: %v"
	if len(diff) == 0 {
		return fmt.Sprintf(msg0, spew.Sdump(expected[0]), spew.Sdump(actual)) + "\n" + res
	}
	if len(diff) == 1 {
		format = "Not match %d item: %v"
	}
	return fmt.Sprintf(msg1, spew.Sdump(expected[0]), spew.Sdump(actual),
		fmt.Sprintf(format, len(diff), spew.Sdump(diff)),
	)
}
1144767
func CamelCaseAttributesEqual(o1, o2 *CamelCaseAttributesOption) bool {
	if o1 != nil {
		return o1.Equal(o2)
	}
	if o2 != nil {
		return o2.Equal(o1)
	}
	return true
}
1089851
func DistinctEqual(o1, o2 *DistinctOption) bool {
	if o1 != nil {
		return o1.Equal(o2)
	}
	if o2 != nil {
		return o2.Equal(o1)
	}
	return true
}
427338
func NameEquals(a, b xml.Name) bool {
	return a.Local == b.Local && a.Space == b.Space
}
944717
func FacetsEqual(o1, o2 *FacetsOption) bool {
	if o1 != nil {
		return o1.Equal(o2)
	}
	if o2 != nil {
		return o2.Equal(o1)
	}
	return true
}
924559
func DisableExactOnAttributesEqual(o1, o2 *DisableExactOnAttributesOption) bool {
	if o1 != nil {
		return o1.Equal(o2)
	}
	if o2 != nil {
		return o2.Equal(o1)
	}
	return true
}
824157
func (p *PublicKey) IsEqual(otherPubKey *PublicKey) bool {
	return p.X.Cmp(otherPubKey.X) == 0 &&
		p.Y.Cmp(otherPubKey.Y) == 0
}
1058213
func AreEqual(first, second api.Toleration) bool {
	if first.Key == second.Key &&
		first.Operator == second.Operator &&
		first.Value == second.Value &&
		first.Effect == second.Effect &&
		AreTolerationSecondsEqual(first.TolerationSeconds, second.TolerationSeconds) {
		return true
	}
	return false
}
150488
func (h *PortRuleHTTP) Equal(o PortRuleHTTP) bool {
	if h.Path != o.Path ||
		h.Method != o.Method ||
		h.Host != o.Host ||
		len(h.Headers) != len(o.Headers) {
		return false
	}

	for i, value := range h.Headers {
		if o.Headers[i] != value {
			return false
		}
	}
	return true
}