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
resizer
IMemoryResizerbuffer
Memory<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
offset
int
SizeOf(TypeId)
public static int SizeOf(TypeId value)
Parameters
value
TypeId
Returns
SizeOf(ReadOnlySpan<byte>)
public static int SizeOf(ReadOnlySpan<byte> value)
Parameters
value
ReadOnlySpan<byte>
Returns
SizeOf(string)
public static int SizeOf(string value)
Parameters
value
string
Returns
SizeOf<T>(T)
public static int SizeOf<T>(T value) where T : unmanaged
Parameters
value
T
Returns
Type Parameters
T
Skip(int)
Moves the offset forward.
public void Skip(int length)
Parameters
length
intThe number of bytes to move forward.
TryRead(out TypeId)
public bool TryRead(out TypeId value)
Parameters
value
TypeId
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
value
string
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
destination
Span<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
value
T
Returns
Type Parameters
T
Write(TypeId)
public void Write(TypeId value)
Parameters
value
TypeId
Write(string)
public void Write(string value)
Parameters
value
string
WriteAt<T>(int, T)
Overwrites an existing field in the buffer.
public void WriteAt<T>(int offset, T value) where T : unmanaged
Parameters
offset
intThe preexisting offset to write at.
value
TThe value to write.
Type Parameters
T
The 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
value
ReadOnlySpan<T>
Type Parameters
T
Write<T>(ReadOnlySpan<T>)
public void Write<T>(ReadOnlySpan<T> value) where T : unmanaged
Parameters
value
ReadOnlySpan<T>
Type Parameters
T
Write<T>(Span<T>)
public void Write<T>(Span<T> value) where T : unmanaged
Parameters
value
Span<T>
Type Parameters
T
Write<T>(T)
public void Write<T>(T value) where T : unmanaged
Parameters
value
T
Type Parameters
T