public void VisitValue(DateTime?value, VisitArgs args) { if (args.Index > 0) { BinaryZPacker.Pack(_writeBuffer, args.Index); } if (value == null) { _writeBuffer.WriteByte(BinaryZPacker.Null); return; } if (value.Value.Kind != DateTimeKind.Utc) { value = value.Value.ToUniversalTime(); } var length = BinaryPV64Packer.GetSLength(value.Value.Ticks); _writeBuffer.WriteByte(length); var offset = _writeBuffer.Advance(length); BinaryPV64Packer.PackS(_writeBuffer.Buffer, offset, value.Value.Ticks, length); }
private static void AssertPackDS(Int64 value, byte expectedLength) { var actualLength = BinaryPV64Packer.GetSLength(value); Assert.Equal(expectedLength, actualLength); using (var stream = new MemoryStream()) { BinaryPV64Packer.PackS(stream, value, actualLength); stream.Seek(0, SeekOrigin.Begin); var actual = BinaryPV64Packer.UnpackS(stream, actualLength); Assert.Equal(value, actual); } }
public void VisitValue(short?value, VisitArgs args) { if (args.Index > 0) { BinaryZPacker.Pack(_writeBuffer, args.Index); } if (value == null) { _writeBuffer.WriteByte(BinaryZPacker.Null); return; } var length = BinaryPV64Packer.GetSLength(value.Value); _writeBuffer.WriteByte(length); var offset = _writeBuffer.Advance(length); BinaryPV64Packer.PackS(_writeBuffer.Buffer, offset, value.Value, length); }