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