/// <summary>
        /// Convenience method for reading a <see cref="FudgeMsg"/> from a <see cref="IFudgeStreamReader"/>.
        /// </summary>
        /// <param name="reader">Reader providing the data for the message.</param>
        /// <returns>New message containing data from the reader.</returns>
        public static FudgeMsg ReadMsg(this IFudgeStreamReader reader)
        {
            var writer = new FudgeMsgStreamWriter();
            var pipe = new FudgeStreamPipe(reader, writer);
            pipe.ProcessOne();

            return writer.DequeueMessage();
        }
 /// <summary>
 /// Convenience method for writing a <see cref="FudgeMsg"/> to a <see cref="IFudgeStreamWriter"/>.
 /// </summary>
 /// <param name="writer">Writer to write the data.</param>
 /// <param name="msg">Message to write.</param>
 public static void WriteMsg(this IFudgeStreamWriter writer, FudgeMsg msg)
 {
     var reader = new FudgeMsgStreamReader(msg.Context, msg);
     var pipe = new FudgeStreamPipe(reader, writer);
     pipe.ProcessOne();
 }