Table of Contents

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 IMemoryResizer
buffer Memory<byte>

Properties

Buffer

The current serialized content.

public readonly ReadOnlyMemory<byte> Buffer { get; }

Property Value

ReadOnlyMemory<byte>

Capacity

The remaining unused portion of the current buffer allocation.

public readonly int Capacity { get; }

Property Value

int

Length

The length of the written portion of the buffer.

public readonly int Length { get; }

Property Value

int

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

int

SizeOf(ReadOnlySpan<byte>)

public static int SizeOf(ReadOnlySpan<byte> value)

Parameters

value ReadOnlySpan<byte>

Returns

int

SizeOf(string)

public static int SizeOf(string value)

Parameters

value string

Returns

int

SizeOf<T>(T)

public static int SizeOf<T>(T value) where T : unmanaged

Parameters

value T

Returns

int

Type Parameters

T

Skip(int)

Moves the offset forward.

public void Skip(int length)

Parameters

length int

The number of bytes to move forward.

TryRead(out TypeId)

public bool TryRead(out TypeId value)

Parameters

value TypeId

Returns

bool

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

destination Span<byte>

Where bytes should be written.

written int

The number of bytes written.

Returns

bool

True if successful, false otherwise.

Remarks

If destination is not large enough then returns , but sets written to the size required.

If no length can be read from the RowBuffer then returns , but sets written to -1.

TryRead(out string)

public bool TryRead(out string value)

Parameters

value string

Returns

bool

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

bool

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 int

The preexisting offset to write at.

value T

The 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