Most methods in Go do not work on nil values, and that is perfectly fine, but I feel like (*T).Equal(*T) should behave more or less like the == operator.
I'm proposing a change that looks like this:
// Current implementation
func (c *Certificate) Equal(other *Certificate) bool {
return bytes.Equal(c.Raw, other.Raw)
}
// New implementation
func (c *Certificate) Equal(other *Certificate) bool {
if c == nil || other == nil {
return c == other
}
return bytes.Equal(c.Raw, other.Raw)
}
This is analogous to how the regex package does it:
func (x *Regexp) Equal(y *Regexp) bool {
if x == nil || y == nil {
return x == y
}
// [...]
Most methods in Go do not work on
nilvalues, and that is perfectly fine, but I feel like(*T).Equal(*T)should behave more or less like the==operator.I'm proposing a change that looks like this:
This is analogous to how the regex package does it: