// Equal returns true if this position is equal to another.
430039
func (rp Position) Equal(other Position) bool {
	if rp.GTIDSet == nil {
		return other.GTIDSet == nil
	}
	return rp.GTIDSet.Equal(other.GTIDSet)
}
715201
func (o *IndexNameOption) Equal(o2 *IndexNameOption) bool {
	if o2 == nil {
		return o.value == ""
	}
	return o.value == o2.value
}
1281072
func (a Array) Equal(another Array) bool {
	if another == nil {
		return false
	}
	if len(a) != len(another) {
		return false
	}
	for i, v1 := range a {
		v2 := another[i]
		if !Equal(v1, v2) {
			return false
		}
	}
	return true
}
207261
func (o *TypeOption) Equal(o2 *TypeOption) bool {
	if o2 == nil {
		return o.value == ""
	}
	return o.value == o2.value
}
429541
func (o *GetRankingInfoOption) Equal(o2 *GetRankingInfoOption) bool {
	if o2 == nil {
		return o.value == false
	}
	return o.value == o2.value
}
551318
func (v *Values) Equal(other *Values) bool {
	v.lock.RLock()
	defer v.lock.RUnlock()
	other.lock.RLock()
	defer other.lock.RUnlock()

	return v.root.equal(other.root)
}
1013747
func (t *Target) Equal(other *Target) bool {
	switch {
	case t == other:
		return true
	case t == nil || other == nil:
		return false
	default:
		equal := t.Method == other.Method &&
			t.URL == other.URL &&
			bytes.Equal(t.Body, other.Body) &&
			len(t.Header) == len(other.Header)

		if !equal {
			return false
		}

		for k := range t.Header {
			left, right := t.Header[k], other.Header[k]
			if len(left) != len(right) {
				return false
			}
			for i := range left {
				if left[i] != right[i] {
					return false
				}
			}
		}

		return true
	}
}
457292
func (o *ClearExistingRulesOption) Equal(o2 *ClearExistingRulesOption) bool {
	if o2 == nil {
		return o.value == false
	}
	return o.value == o2.value
}
608214
func (vs *ValueMap) Equal(other *ValueMap) bool {
	if vs == nil {
		return other == nil || other.Len() == 0
	}
	if other == nil {
		return vs == nil || vs.Len() == 0
	}
	return vs.hashMap.Equal(other.hashMap)
}
1197292
func (o *MinProximityOption) Equal(o2 *MinProximityOption) bool {
	if o2 == nil {
		return o.value == 1
	}
	return o.value == o2.value
}
1345990
func Equal(p1, p2 Implementation) bool {
	return bytes.Equal(p1.Bytes(), p2.Bytes())
}
1182447
func (m *Container) Equal(other interface{}) bool {
	if container, ok := other.(*Container); ok == true {
		if len(m.Accessories) != len(container.Accessories) {
			return false
		}

		for i, a := range m.Accessories {
			if a.Equal(container.Accessories[i]) == false {
				return false
			}
		}
		return true
	}

	return false
}
488907
func (o *SortFacetValuesByOption) Equal(o2 *SortFacetValuesByOption) bool {
	if o2 == nil {
		return o.value == "count"
	}
	return o.value == o2.value
}
773850
func (o *AdvancedSyntaxOption) Equal(o2 *AdvancedSyntaxOption) bool {
	if o2 == nil {
		return o.value == false
	}
	return o.value == o2.value
}
135309
func (o *PageOption) Equal(o2 *PageOption) bool {
	if o2 == nil {
		return o.value == 0
	}
	return o.value == o2.value
}
494811
func (o *MinWordSizefor2TyposOption) Equal(o2 *MinWordSizefor2TyposOption) bool {
	if o2 == nil {
		return o.value == 8
	}
	return o.value == o2.value
}
433721
func (o *AroundRadiusOption) Equal(o2 *AroundRadiusOption) bool {
	if o2 == nil {
		return !o.isAll && o.meters == 0
	}
	return reflect.DeepEqual(o, o2)
}