public void Copy(IDataInputView source, IDataOutputView target) { var len = source.ReadUnsignedByte(); target.WriteByte(len); if (len >= HighBit) { var shift = 7; int curr; len = len & 0x7f; while ((curr = source.ReadUnsignedByte()) >= HighBit) { len |= (curr & 0x7f) << shift; shift += 7; target.WriteByte(curr); } len |= curr << shift; target.WriteByte(curr); } for (var i = 0; i < len; i++) { var c = source.ReadUnsignedByte(); target.WriteByte(c); while (c >= HighBit) { c = source.ReadUnsignedByte(); target.WriteByte(c); } } }
public override void Serialize(byte record, IDataOutputView target) => target.WriteByte(record);
public override void Copy(IDataInputView source, IDataOutputView target) => target.WriteByte(source.ReadByte());