public void WriteVInt64(long value) { var len = PackUnpack.LengthVInt(value); if ((uint)_buf.Length < (uint)len) { Resize(len); } PackUnpack.UnsafePackVInt(ref PackUnpack.UnsafeGetAndAdvance(ref _buf, len), value, len); }
public void WriteVInt64(long value) { var len = PackUnpack.LengthVInt(value); if ((uint)Buf.Length < len) { if (!Resize(len)) { Span <byte> buf = stackalloc byte[(int)len]; ref var bufRef = ref MemoryMarshal.GetReference(buf); PackUnpack.UnsafePackVInt(ref bufRef, value, len); WriteBlock(ref bufRef, len); return; } }
public void WriteVInt64(long value) { var len = PackUnpack.LengthVInt(value); if (Pos + len > End) { FlushBuffer(); if (Pos + len > End) { Span <byte> buf = stackalloc byte[len]; PackUnpack.UnsafePackVInt(ref MemoryMarshal.GetReference(buf), value, len); WriteBlock(buf); return; } } PackUnpack.UnsafePackVInt(ref Unsafe.AddByteOffset(ref MemoryMarshal.GetReference(Buf.AsSpan()), (IntPtr)Pos), value, len); Pos += len; }