I have an interface
:
type encoder interface {
encode() ([]byte, error)
}
Some implementations of encoder
return an error
:
type fooEncoder string
func (e fooEncoder) encode() ([]byte, error) {
if isSomeValidityCheck(e) {
return []byte(e), nil
}
return nil, fmt.Errorf("Invalid type!")
}
But for others, there will never be an error:
type boolEncoder bool
func (e boolEncoder) encode() ([]byte, error) {
if e {
return []byte{0xff}, nil
}
return []byte{0x00}, nil
}
Is it idiomatic/correct to say a method will return an error, even if it will always be nil
, so that it conforms to an interface
? I have boolEncoder.encode
returning an error
only so that it conforms to encoder
and can be used as such.