/// <summary> /// Implements compressed unsigned integer encoding as defined by ECMA-335-II chapter 23.2: Blobs and signatures. /// </summary> /// <remarks> /// If the value lies between 0 (0x00) and 127 (0x7F), inclusive, /// encode as a one-byte integer (bit 7 is clear, value held in bits 6 through 0). /// /// If the value lies between 28 (0x80) and 214 – 1 (0x3FFF), inclusive, /// encode as a 2-byte integer with bit 15 set, bit 14 clear(value held in bits 13 through 0). /// /// Otherwise, encode as a 4-byte integer, with bit 31 set, bit 30 set, bit 29 clear (value held in bits 28 through 0). /// </remarks> /// <exception cref="ArgumentOutOfRangeException"><paramref name="value"/> can't be represented as a compressed unsigned integer.</exception> public void WriteCompressedInteger(int value) { BlobWriterImpl.WriteCompressedInteger(ref this, unchecked ((uint)value)); }
/// <summary> /// Writes a constant value (see ECMA-335 Partition II section 22.9) at the current position. /// </summary> /// <exception cref="ArgumentException"><paramref name="value"/> is not of a constant type.</exception> public void WriteConstant(object value) { BlobWriterImpl.WriteConstant(ref this, value); }
/// <summary> /// Implements compressed signed integer encoding as defined by ECMA-335-II chapter 23.2: Blobs and signatures. /// </summary> /// <remarks> /// If the value lies between -64 (0xFFFFFFC0) and 63 (0x3F), inclusive, encode as a one-byte integer: /// bit 7 clear, value bits 5 through 0 held in bits 6 through 1, sign bit (value bit 31) in bit 0. /// /// If the value lies between -8192 (0xFFFFE000) and 8191 (0x1FFF), inclusive, encode as a two-byte integer: /// 15 set, bit 14 clear, value bits 12 through 0 held in bits 13 through 1, sign bit(value bit 31) in bit 0. /// /// If the value lies between -268435456 (0xF000000) and 268435455 (0x0FFFFFFF), inclusive, encode as a four-byte integer: /// 31 set, 30 set, bit 29 clear, value bits 27 through 0 held in bits 28 through 1, sign bit(value bit 31) in bit 0. /// </remarks> /// <exception cref="ArgumentOutOfRangeException"><paramref name="value"/> can't be represented as a compressed signed integer.</exception> public void WriteCompressedSignedInteger(int value) { BlobWriterImpl.WriteCompressedSignedInteger(ref this, value); }