private HubMessage CreateHubStreamItemMessage(ReadOnlySpan <byte> protobufMessage, object[] arguments)
        {
            var protobufStreamItemMessage = new StreamItemMessageProtobuf();

            protobufStreamItemMessage.MergeFrom(protobufMessage.ToArray());

            return(new StreamItemMessage(protobufStreamItemMessage.InvocationId, arguments.FirstOrDefault())
            {
                Headers = protobufStreamItemMessage.Headers
            });
        }
        private void WriteItemMessage(StreamItemMessage streamItemMessage, IBufferWriter <byte> output)
        {
            var protobufStreamItemMessage = new StreamItemMessageProtobuf
            {
                InvocationId = streamItemMessage.InvocationId
            };

            if (streamItemMessage.Headers != null)
            {
                protobufStreamItemMessage.Headers.Add(streamItemMessage.Headers);
            }

            var item = _argumentSerializer.SerializeArgument(streamItemMessage.Item);

            var packedMessage = MessageDescriptor.PackMessage(HubProtocolConstants.StreamItemMessageType, protobufStreamItemMessage.ToByteArray(), new List <ArgumentDescriptor> {
                item
            });

            output.Write(packedMessage);
        }