public abstract TMessageType DeserializeMessage(ref SequenceReader <byte> reader, int protocolVersion, NetworkPeerContext peerContext);
        public override void Serialize(TMessageType message, int protocolVersion, NetworkPeerContext peerContext, IBufferWriter <byte> output)
        {
            SerializeMessage(message, protocolVersion, peerContext, output);

            _tlvStreamSerializer.SerializeTlvStream(message.Extension, output);
        }
 public abstract void SerializeMessage(TMessageType message, int protocolVersion, NetworkPeerContext peerContext, IBufferWriter <byte> output);
        public override TMessageType Deserialize(ref SequenceReader <byte> reader, int protocolVersion, NetworkPeerContext peerContext)
        {
            TMessageType message = DeserializeMessage(ref reader, protocolVersion, peerContext);

            message.Extension = _tlvStreamSerializer.DeserializeTlvStream(ref reader);

            return(message);
        }