message.go
func (id MessageID) WriteTo(w io.Writer) (int64, error) {
	a := [16]byte{}
	b := strconv.AppendUint(a[:0], uint64(id), 16)
	n := len(a) - len(b)
	copy(a[n:], b)

	for i := 0; i != n; i++ {
		a[i] = '0'
	}

	c, e := w.Write(a[:])
	return int64(c), e
}
func (id MessageID) WriteTo(w io.Writer) (int64, error) {
	a := [16]byte{}
	b := strconv.AppendUint(a[:0], uint64(id), 16)
	n := len(a) - len(b)
	copy(a[n:], b)

	for i := 0; i != n; i++ {
		a[i] = '0'
	}

	c, e := w.Write(a[:])
	return int64(c), e
}
// WriteTo writes the message ID to w.
//
// This method satisfies the io.WriterTo interface.