code: func ComputeCrc(m *Message, compression Compression) uint32 {
  	var buf bytes.Buffer
  	enc := NewEncoder(&buf)
  	enc.EncodeInt8(0) // magic byte is always 0
  	enc.EncodeInt8(int8(compression))
  	enc.EncodeBytes(m.Key)
  	enc.EncodeBytes(m.Value)
  	return crc32.ChecksumIEEE(buf.Bytes())
  }
docs: // ComputeCrc returns crc32 hash for given message content.