// Size returns the size in bytes of the wire-format encoding of m. func Size(m Message) int { … } // Marshal returns the wire-format encoding of m. func Marshal(m Message) ([]byte, error) { … } var zeroBytes … func marshalAppend(buf []byte, m Message, deterministic bool) ([]byte, error) { … } // Unmarshal parses a wire-format message in b and places the decoded results in m. // // Unmarshal resets m before starting to unmarshal, so any existing data in m is always // removed. Use UnmarshalMerge to preserve and append to existing data. func Unmarshal(b []byte, m Message) error { … } // UnmarshalMerge parses a wire-format message in b and places the decoded results in m. func UnmarshalMerge(b []byte, m Message) error { … }