private void WriteBinaryHeaderAndLength(uint length, IMsgPackWriter writer) { if (length <= byte.MaxValue) { writer.Write(DataTypes.Bin8); NumberConverter.WriteByteValue((byte)length, writer); } else if (length <= ushort.MaxValue) { writer.Write(DataTypes.Bin16); NumberConverter.WriteUShortValue((ushort)length, writer); } else { writer.Write(DataTypes.Bin32); NumberConverter.WriteUIntValue(length, writer); } }
private void WriteStringHeaderAndLength(IMsgPackWriter writer, int length) { if (length <= 31) { writer.Write((byte)(((byte)DataTypes.FixStr + length) % 256)); return; } if (length <= byte.MaxValue) { writer.Write(DataTypes.Str8); NumberConverter.WriteByteValue((byte)length, writer); } else if (length <= ushort.MaxValue) { writer.Write(DataTypes.Str16); NumberConverter.WriteUShortValue((ushort)length, writer); } else { writer.Write(DataTypes.Str32); NumberConverter.WriteUIntValue((uint)length, writer); } }