private static void WriteColumn(ProtoWriter writer, ProtoBufDataColumn column)
        {
            ProtoWriter.WriteFieldHeader(FieldHeaders.Column, WireType.StartGroup, writer);

            var columnToken = ProtoWriter.StartSubItem(column, writer);

            ProtoWriter.WriteFieldHeader(FieldHeaders.ColumnName, WireType.String, writer);
            ProtoWriter.WriteString(column.Name, writer);
            ProtoWriter.WriteFieldHeader(FieldHeaders.ColumnType, WireType.Variant, writer);
            ProtoWriter.WriteInt32((int)column.ProtoBufDataType, writer);

            ProtoWriter.EndSubItem(columnToken, writer);
        }
        private void ReadColumn(int ordinal)
        {
            var columnToken = ProtoReader.StartSubItem(this.protoReader);

            var name             = this.ReadColumnName();
            var protoBufDataType = this.ReadColumnType();

            var column = new ProtoBufDataColumn(name: name, ordinal: ordinal, dataType: TypeHelper.GetType(protoBufDataType), protoBufDataType: protoBufDataType);

            this.columns.Add(column);

            this.protoReader.ReadFieldHeader();

            ProtoReader.EndSubItem(columnToken, this.protoReader);
        }