Skip to main content

Class CollectionExtensions

Inheritance
System.Object
Inherited Members
Show
Syntax
public static class CollectionExtensions

Methods

WriteSpanAndSize(NetworkWriter, Span<Byte>)

Write method for weaver to use

Declaration
public static void WriteSpanAndSize(this NetworkWriter writer, Span<byte> span)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkWriterwriter
Span<System.Byte>span

WriteSpanAndSize(NetworkWriter, Span<Byte>, Int32)

Declaration
public static void WriteSpanAndSize(this NetworkWriter writer, Span<byte> span, int maxLength)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkWriterwriter
Span<System.Byte>span
System.Int32maxLength

WriteSpanAndSize(NetworkWriter, ReadOnlySpan<Byte>)

Write method for weaver to use

Declaration
public static void WriteSpanAndSize(this NetworkWriter writer, ReadOnlySpan<byte> span)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkWriterwriter
ReadOnlySpan<System.Byte>span

WriteSpanAndSize(NetworkWriter, ReadOnlySpan<Byte>, Int32)

Declaration
public static void WriteSpanAndSize(this NetworkWriter writer, ReadOnlySpan<byte> span, int maxLength)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkWriterwriter
ReadOnlySpan<System.Byte>span
System.Int32maxLength

WriteBytesAndSize(NetworkWriter, Byte[], Int32, Int32)

For byte arrays with dynamic size, where the reader doesn't know how many will come

Declaration
public static void WriteBytesAndSize(this NetworkWriter writer, byte[] buffer, int offset, int count)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkWriterwriter
System.Byte[]bufferarray or null
System.Int32offset
System.Int32count

WriteBytesAndSize(NetworkWriter, Byte[])

Write method for weaver to use

Declaration
public static void WriteBytesAndSize(this NetworkWriter writer, byte[] buffer)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkWriterwriter
System.Byte[]bufferarray or null

WriteBytesAndSize(NetworkWriter, Byte[], Int32)

Declaration
public static void WriteBytesAndSize(this NetworkWriter writer, byte[] buffer, int maxLength)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkWriterwriter
System.Byte[]buffer
System.Int32maxLength

WriteBytesAndSizeSegment(NetworkWriter, ArraySegment<Byte>)

Declaration
public static void WriteBytesAndSizeSegment(this NetworkWriter writer, ArraySegment<byte> buffer)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkWriterwriter
System.ArraySegment<System.Byte>buffer

WriteBytesAndSizeSegment(NetworkWriter, ArraySegment<Byte>, Int32)

Declaration
public static void WriteBytesAndSizeSegment(this NetworkWriter writer, ArraySegment<byte> buffer, int maxLength)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkWriterwriter
System.ArraySegment<System.Byte>buffer
System.Int32maxLength

WriteList<T>(NetworkWriter, List<T>)

Declaration
[WeaverSerializeCollection]
public static void WriteList<T>(this NetworkWriter writer, List<T> list)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkWriterwriter
System.Collections.Generic.List<T>list

WriteList<T>(NetworkWriter, List<T>, Int32)

Declaration
[WeaverSerializeCollection]
public static void WriteList<T>(this NetworkWriter writer, List<T> list, int maxLength)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkWriterwriter
System.Collections.Generic.List<T>list
System.Int32maxLength

WriteArray<T>(NetworkWriter, T[])

Declaration
public static void WriteArray<T>(this NetworkWriter writer, T[] array)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkWriterwriter
{T}[]array

WriteArray<T>(NetworkWriter, T[], Int32)

Declaration
public static void WriteArray<T>(this NetworkWriter writer, T[] array, int maxLength)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkWriterwriter
{T}[]array
System.Int32maxLength

WriteArraySegment<T>(NetworkWriter, ArraySegment<T>)

Declaration
[WeaverSerializeCollection]
public static void WriteArraySegment<T>(this NetworkWriter writer, ArraySegment<T> segment)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkWriterwriter
System.ArraySegment<T>segment

WriteArraySegment<T>(NetworkWriter, ArraySegment<T>, Int32)

Declaration
[WeaverSerializeCollection]
public static void WriteArraySegment<T>(this NetworkWriter writer, ArraySegment<T> segment, int maxLength)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkWriterwriter
System.ArraySegment<T>segment
System.Int32maxLength

WriteDictionary<TKey, TValue>(NetworkWriter, Dictionary<TKey, TValue>)

Declaration
[WeaverSerializeCollection]
public static void WriteDictionary<TKey, TValue>(this NetworkWriter writer, Dictionary<TKey, TValue> dictionary)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkWriterwriter
System.Collections.Generic.Dictionary<TKey, TValue>dictionary

WriteDictionary<TKey, TValue>(NetworkWriter, Dictionary<TKey, TValue>, Int32)

Declaration
[WeaverSerializeCollection]
public static void WriteDictionary<TKey, TValue>(this NetworkWriter writer, Dictionary<TKey, TValue> dictionary, int maxLength)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkWriterwriter
System.Collections.Generic.Dictionary<TKey, TValue>dictionary
System.Int32maxLength

WriteSpan<T>(NetworkWriter, Span<T>)

Declaration
[WeaverSerializeCollection]
public static void WriteSpan<T>(this NetworkWriter writer, Span<T> span)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkWriterwriter
Span<T>span

WriteSpan<T>(NetworkWriter, Span<T>, Int32)

Declaration
[WeaverSerializeCollection]
public static void WriteSpan<T>(this NetworkWriter writer, Span<T> span, int maxLength)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkWriterwriter
Span<T>span
System.Int32maxLength

WriteReadOnlySpan<T>(NetworkWriter, ReadOnlySpan<T>)

Declaration
[WeaverSerializeCollection]
public static void WriteReadOnlySpan<T>(this NetworkWriter writer, ReadOnlySpan<T> span)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkWriterwriter
ReadOnlySpan<T>span

WriteReadOnlySpan<T>(NetworkWriter, ReadOnlySpan<T>, Int32)

Declaration
[WeaverSerializeCollection]
public static void WriteReadOnlySpan<T>(this NetworkWriter writer, ReadOnlySpan<T> span, int maxLength)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkWriterwriter
ReadOnlySpan<T>span
System.Int32maxLength

ReadBytesAndSize(NetworkReader)

Declaration
public static byte[] ReadBytesAndSize(this NetworkReader reader)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
Returns
TypeDescription
System.Byte[]array or null

ReadBytesAndSize(NetworkReader, Int32)

Declaration
public static byte[] ReadBytesAndSize(this NetworkReader reader, int maxLength)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
System.Int32maxLength
Returns
TypeDescription
System.Byte[]

ReadBytesAndSizeSegment(NetworkReader)

Declaration
public static ArraySegment<byte> ReadBytesAndSizeSegment(this NetworkReader reader)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
Returns
TypeDescription
System.ArraySegment<System.Byte>

ReadBytesAndSizeSegment(NetworkReader, Int32)

Declaration
public static ArraySegment<byte> ReadBytesAndSizeSegment(this NetworkReader reader, int maxLength)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
System.Int32maxLength
Returns
TypeDescription
System.ArraySegment<System.Byte>

ReadSpanAndSize(NetworkReader)

Read method for weaver to use

Declaration
public static Span<byte> ReadSpanAndSize(this NetworkReader reader)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
Returns
TypeDescription
Span<System.Byte>

ReadSpanAndSize(NetworkReader, Int32)

Declaration
public static Span<byte> ReadSpanAndSize(this NetworkReader reader, int maxLength)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
System.Int32maxLength
Returns
TypeDescription
Span<System.Byte>

ReadReadOnlySpanAndSize(NetworkReader)

Read method for weaver to use

Declaration
public static ReadOnlySpan<byte> ReadReadOnlySpanAndSize(this NetworkReader reader)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
Returns
TypeDescription
ReadOnlySpan<System.Byte>

ReadReadOnlySpanAndSize(NetworkReader, Int32)

Declaration
public static ReadOnlySpan<byte> ReadReadOnlySpanAndSize(this NetworkReader reader, int maxLength)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
System.Int32maxLength
Returns
TypeDescription
ReadOnlySpan<System.Byte>

ReadBytes(NetworkReader, Int32)

Declaration
public static byte[] ReadBytes(this NetworkReader reader, int count)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
System.Int32count
Returns
TypeDescription
System.Byte[]

ReadList<T>(NetworkReader)

Declaration
[WeaverSerializeCollection]
public static List<T> ReadList<T>(this NetworkReader reader)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
Returns
TypeDescription
System.Collections.Generic.List<T>

ReadList<T>(NetworkReader, Int32)

Declaration
[WeaverSerializeCollection]
public static List<T> ReadList<T>(this NetworkReader reader, int maxLength)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
System.Int32maxLength
Returns
TypeDescription
System.Collections.Generic.List<T>

ReadArray<T>(NetworkReader)

Declaration
public static T[] ReadArray<T>(this NetworkReader reader)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
Returns
TypeDescription
{T}[]

ReadArray<T>(NetworkReader, Int32)

Declaration
public static T[] ReadArray<T>(this NetworkReader reader, int maxLength)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
System.Int32maxLength
Returns
TypeDescription
{T}[]

ReadArraySegment<T>(NetworkReader)

Declaration
[WeaverSerializeCollection]
public static ArraySegment<T> ReadArraySegment<T>(this NetworkReader reader)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
Returns
TypeDescription
System.ArraySegment<T>

ReadArraySegment<T>(NetworkReader, Int32)

Declaration
[WeaverSerializeCollection]
public static ArraySegment<T> ReadArraySegment<T>(this NetworkReader reader, int maxLength)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
System.Int32maxLength
Returns
TypeDescription
System.ArraySegment<T>

ReadDictionary<TKey, TValue>(NetworkReader)

Declaration
[WeaverSerializeCollection]
public static Dictionary<TKey, TValue> ReadDictionary<TKey, TValue>(this NetworkReader reader)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
Returns
TypeDescription
System.Collections.Generic.Dictionary<TKey, TValue>

ReadDictionary<TKey, TValue>(NetworkReader, Int32)

Declaration
[WeaverSerializeCollection]
public static Dictionary<TKey, TValue> ReadDictionary<TKey, TValue>(this NetworkReader reader, int maxLength)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
System.Int32maxLength
Returns
TypeDescription
System.Collections.Generic.Dictionary<TKey, TValue>

ReadSpan<T>(NetworkReader)

Reads a span from the reader. NOTE: this method allocates a new array internally to hold the data.

Declaration
[WeaverSerializeCollection]
public static Span<T> ReadSpan<T>(this NetworkReader reader)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
Returns
TypeDescription
Span<T>A span pointing to a new array with the read data.

ReadSpan<T>(NetworkReader, Int32)

Declaration
[WeaverSerializeCollection]
public static Span<T> ReadSpan<T>(this NetworkReader reader, int maxLength)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
System.Int32maxLength
Returns
TypeDescription
Span<T>

ReadReadOnlySpan<T>(NetworkReader)

Declaration
[WeaverSerializeCollection]
public static ReadOnlySpan<T> ReadReadOnlySpan<T>(this NetworkReader reader)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
Returns
TypeDescription
ReadOnlySpan<T>

ReadReadOnlySpan<T>(NetworkReader, Int32)

Declaration
[WeaverSerializeCollection]
public static ReadOnlySpan<T> ReadReadOnlySpan<T>(this NetworkReader reader, int maxLength)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
System.Int32maxLength
Returns
TypeDescription
ReadOnlySpan<T>

ReadListNonAlloc<T>(NetworkReader, List<T>, out Boolean)

Reads a list from the reader into a provided list so that no new list is allocated. This will clear the list before adding the new items.

Declaration
public static void ReadListNonAlloc<T>(this NetworkReader reader, List<T> outList, out bool wasNull)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
System.Collections.Generic.List<T>outListList to be populated with data. Can not be null.
System.BooleanwasNulltrue if the list was null on the wire

ReadListNonAlloc<T>(NetworkReader, List<T>, out Boolean, Int32)

Declaration
public static void ReadListNonAlloc<T>(this NetworkReader reader, List<T> outList, out bool wasNull, int maxLength)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
System.Collections.Generic.List<T>outList
System.BooleanwasNull
System.Int32maxLength

ReadDictionaryNonAlloc<TKey, TValue>(NetworkReader, Dictionary<TKey, TValue>, out Boolean)

Reads a dictionary from the reader into a provided dictionary so that no new dictionary is allocated. This will clear the dictionary before adding the new items.

Declaration
public static void ReadDictionaryNonAlloc<TKey, TValue>(this NetworkReader reader, Dictionary<TKey, TValue> outDictionary, out bool wasNull)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
System.Collections.Generic.Dictionary<TKey, TValue>outDictionary
System.BooleanwasNull

ReadDictionaryNonAlloc<TKey, TValue>(NetworkReader, Dictionary<TKey, TValue>, out Boolean, Int32)

Declaration
public static void ReadDictionaryNonAlloc<TKey, TValue>(this NetworkReader reader, Dictionary<TKey, TValue> outDictionary, out bool wasNull, int maxLength)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
System.Collections.Generic.Dictionary<TKey, TValue>outDictionary
System.BooleanwasNull
System.Int32maxLength

ReadArrayNonAlloc<T>(NetworkReader, T[])

Reads an array from the reader into a provided array so that no new array is allocated.

Declaration
public static int? ReadArrayNonAlloc<T>(this NetworkReader reader, T[] outArray)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
{T}[]outArrayArray to be populated with data. Must be large enough to hold all elements.
Returns
TypeDescription
System.Nullable<System.Int32>The number of elements read, or null if the array was null when sent

ReadArrayNonAlloc<T>(NetworkReader, T[], Int32)

Declaration
public static int? ReadArrayNonAlloc<T>(this NetworkReader reader, T[] outArray, int maxLength)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
{T}[]outArray
System.Int32maxLength
Returns
TypeDescription
System.Nullable<System.Int32>

ReadSpanNonAlloc<T>(NetworkReader, Span<T>)

Reads a span from the reader into a provided span so that no new array is allocated.

Declaration
public static int ReadSpanNonAlloc<T>(this NetworkReader reader, Span<T> outSpan)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
Span<T>outSpanSpan to be populated with data. Must be large enough to hold all elements.
Returns
TypeDescription
System.Int32The number of elements read.

ReadSpanNonAlloc<T>(NetworkReader, Span<T>, Int32)

Declaration
public static int ReadSpanNonAlloc<T>(this NetworkReader reader, Span<T> outSpan, int maxLength)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
Span<T>outSpan
System.Int32maxLength
Returns
TypeDescription
System.Int32

WriteCountPlusOne(NetworkWriter, Nullable<Int32>)

Writes null as 0, and all over values as +1

Declaration
public static void WriteCountPlusOne(NetworkWriter writer, int? count)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkWriterwriter
System.Nullable<System.Int32>countThe real count or null if collection is is null

ReadCountPlusOne(NetworkReader, out Int32)

Reads 0 as null, and all over values as -1

Declaration
public static bool ReadCountPlusOne(NetworkReader reader, out int count)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
System.Int32countThe real count of the
Returns
TypeDescription
System.Booleantrue if collection has value, false if collection is null

ValidateSize(NetworkReader, Int32)

Use to check max size in reader before allocating array/list Assumes each element is only 1 bit, so max size allocated will be MTU*8 if attacks tries to attack

Declaration
public static void ValidateSize(NetworkReader reader, int lengthInBits)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
System.Int32lengthInBits