Struct RowBuffer
- Namespace
- MarymoorStudios.Core.Serialization.System
- Assembly
- MarymoorStudios.Core.Serialization.dll
public struct RowBuffer
- Inherited Members
Constructors
RowBuffer(IMemoryResizer, Memory<byte>)
public RowBuffer(IMemoryResizer resizer, Memory<byte> buffer = default)
Parameters
resizerIMemoryResizerbufferMemory<byte>
Properties
Buffer
The current serialized content.
public readonly ReadOnlyMemory<byte> Buffer { get; }
Property Value
Capacity
The remaining unused portion of the current buffer allocation.
public readonly int Capacity { get; }
Property Value
Length
The length of the written portion of the buffer.
public readonly int Length { get; }
Property Value
Methods
Reset(int)
Resets the current read offset to 0.
public void Reset(int offset = 0)
Parameters
offsetint
SizeOf(TypeId)
public static int SizeOf(TypeId value)
Parameters
valueTypeId
Returns
SizeOf(ReadOnlySpan<byte>)
public static int SizeOf(ReadOnlySpan<byte> value)
Parameters
valueReadOnlySpan<byte>
Returns
SizeOf(string)
public static int SizeOf(string value)
Parameters
valuestring
Returns
SizeOf<T>(T)
public static int SizeOf<T>(T value) where T : unmanaged
Parameters
valueT
Returns
Type Parameters
T
Skip(int)
Moves the offset forward.
public void Skip(int length)
Parameters
lengthintThe number of bytes to move forward.
TryRead(out TypeId)
public bool TryRead(out TypeId value)
Parameters
valueTypeId
Returns
TryRead(Span<byte>, out int)
Tries to read a byte array into the provided destination.
public bool TryRead(Span<byte> destination, out int written)
Parameters
Returns
- bool
True if successful, false otherwise.
Remarks
If destination is not large enough then returns written to the size required.
If no length can be read from the RowBuffer then returns written to -1.
TryRead(out string)
public bool TryRead(out string value)
Parameters
valuestring
Returns
TryRead<T>(Span<T>)
Tries to read a fixed sized byte array into the provided destination.
public bool TryRead<T>(Span<T> destination) where T : unmanaged
Parameters
destinationSpan<T>Where bytes should be written.
Returns
- bool
True if successful, false otherwise.
Type Parameters
T
TryRead<T>(out T)
public bool TryRead<T>(out T value) where T : unmanaged
Parameters
valueT
Returns
Type Parameters
T
Write(TypeId)
public void Write(TypeId value)
Parameters
valueTypeId
Write(string)
public void Write(string value)
Parameters
valuestring
WriteAt<T>(int, T)
Overwrites an existing field in the buffer.
public void WriteAt<T>(int offset, T value) where T : unmanaged
Parameters
offsetintThe preexisting offset to write at.
valueTThe value to write.
Type Parameters
TThe type of the value to write.
Remarks
REQUIRES: The offset MUST be within the bounds of previously written fields.
WriteRaw<T>(ReadOnlySpan<T>)
public void WriteRaw<T>(ReadOnlySpan<T> value) where T : unmanaged
Parameters
valueReadOnlySpan<T>
Type Parameters
T
Write<T>(ReadOnlySpan<T>)
public void Write<T>(ReadOnlySpan<T> value) where T : unmanaged
Parameters
valueReadOnlySpan<T>
Type Parameters
T
Write<T>(Span<T>)
public void Write<T>(Span<T> value) where T : unmanaged
Parameters
valueSpan<T>
Type Parameters
T
Write<T>(T)
public void Write<T>(T value) where T : unmanaged
Parameters
valueT
Type Parameters
T