what is the benefit of using empty struct Asn1 here? Moreover, we are using receiver "a" in Encode() and Decode() methods, but never used in those. So what is the use here?
type Asn1 struct {} // empty struct
func (a *Asn1) Encode(message RmrPayload) ([]byte, error) {
buffer := new(bytes.Buffer)
asn1 := gob.NewEncoder(buffer)
if err := asn1.Encode(message); err != nil {
return nil, err
}
return buffer.Bytes(), nil
}
func (a *Asn1) Decode(data []byte) (RmrPayload, error) {
message := new(RmrPayload)
buffer := bytes.NewBuffer(data)
asn1 := gob.NewDecoder(buffer)
if err := asn1.Decode(message); err != nil {
return RmrPayload{}, err
}
return *message, nil
}
making it receiver makes complicated calling Encode() and Decode() method like below
asn1 := new(Asn1)
message, err := asn1.Decode(payload)
why we can not define these two methods without empty struct and call simply as
message, err := Decode(payload)