24 lines
406 B
Go
24 lines
406 B
Go
// Copyright (c) 2024-2026 Celestino Amoroso (celestino.amoroso@gmail.com).
|
|
// All rights reserved.
|
|
|
|
// equaler.go
|
|
package kern
|
|
|
|
type Equaler interface {
|
|
EqualTo(other Equaler) bool
|
|
}
|
|
|
|
func IsEqualer(v any) (ok bool) {
|
|
_, ok = v.(Equaler)
|
|
return
|
|
}
|
|
|
|
func Equal(a, b any) (equal bool) {
|
|
if IsEqualer(a) && IsEqualer(b) {
|
|
equal = a.(Equaler).EqualTo(b.(Equaler))
|
|
} else {
|
|
equal = a == b
|
|
}
|
|
return
|
|
}
|