package cuckoo

// An EqualFunc determines whethers two keys are 'equal'. Keys that are 'equal'
// are teated as the same by the [Table]. A good EqualFunc is pure,
// deterministic, and fast. By default, [New] uses [DefaultEqualFunc].
//
// This function MUST NOT return true if the [Hash] digest of two keys
// are different: the [Table] will not work.
type EqualFunc[K any] = func(a, b K) bool

// DefaultEqualFunc compares two keys by strict equality. Returns true if the
// keys have [equal values].
//
// [equal values]: https://go.dev/ref/spec#Comparison_operators
func DefaultEqualFunc[K comparable](a, b K) bool {
	return a == b
}
