// MinProximityEqual 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.
337791
func MinProximityEqual(o1, o2 *MinProximityOption) bool {
	if o1 != nil {
		return o1.Equal(o2)
	}
	if o2 != nil {
		return o2.Equal(o1)
	}
	return true
}
931984
func (v Version) LesserEqual(o *Version) bool {
	if o == nil {
		return v.Equals(o)
	}

	if v.Scalar == o.Scalar {
		return v.PID <= o.PID
	}
	return v.Scalar < o.Scalar
}
1285198
func OffsetEqual(o1, o2 *OffsetOption) bool {
	if o1 != nil {
		return o1.Equal(o2)
	}
	if o2 != nil {
		return o2.Equal(o1)
	}
	return true
}
636682
func (o *EnablePersonalizationOption) Equal(o2 *EnablePersonalizationOption) bool {
	if o2 == nil {
		return o.value == false
	}
	return o.value == o2.value
}
1035206
func (s *SkipList) GetGreaterOrEqual(min interface{}) (actualKey, value interface{}, ok bool) {
	candidate := s.getPath(s.header, nil, min)

	if candidate != nil {
		return candidate.key, candidate.value, true
	}
	return nil, nil, false
}
112252
func MinWordSizefor2TyposEqual(o1, o2 *MinWordSizefor2TyposOption) bool {
	if o1 != nil {
		return o1.Equal(o2)
	}
	if o2 != nil {
		return o2.Equal(o1)
	}
	return true
}
80816
func (o *MinimumAroundRadiusOption) Equal(o2 *MinimumAroundRadiusOption) bool {
	if o2 == nil {
		return o.value == 0
	}
	return o.value == o2.value
}
249416
func (e *ExponentialStrategy) IsEqual(o *ExponentialStrategy) bool {
	if e.opts.first != o.opts.first {
		return false
	}
	if e.opts.max != o.opts.max {
		return false
	}
	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
}
944717
func FacetsEqual(o1, o2 *FacetsOption) bool {
	if o1 != nil {
		return o1.Equal(o2)
	}
	if o2 != nil {
		return o2.Equal(o1)
	}
	return true
}
998835
func AutoGenerateObjectIDIfNotExistEqual(o1, o2 *AutoGenerateObjectIDIfNotExistOption) bool {
	if o1 != nil {
		return o1.Equal(o2)
	}
	if o2 != nil {
		return o2.Equal(o1)
	}
	return true
}
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)
}
175432
func (opt Option) Equal(b Option) bool {
	if bytes.Equal(opt.Name, b.Name) {
		return opt.Parameters.Equal(b.Parameters)
	}
	return false
}
1040911
func AroundPrecisionEqual(o1, o2 *AroundPrecisionOption) bool {
	if o1 != nil {
		return o1.Equal(o2)
	}
	if o2 != nil {
		return o2.Equal(o1)
	}
	return true
}
1271910
func NumericAttributesForFilteringEqual(o1, o2 *NumericAttributesForFilteringOption) bool {
	if o1 != nil {
		return o1.Equal(o2)
	}
	if o2 != nil {
		return o2.Equal(o1)
	}
	return true
}
122237
func MinimumAroundRadiusEqual(o1, o2 *MinimumAroundRadiusOption) bool {
	if o1 != nil {
		return o1.Equal(o2)
	}
	if o2 != nil {
		return o2.Equal(o1)
	}
	return true
}