Skip to main content

Class CollectionExtensions

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

Methods

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

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

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

WriteArray<T>(NetworkWriter, T[])

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

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

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

ReadBytesAndSize(NetworkReader)

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

ReadBytesAndSizeSegment(NetworkReader)

Declaration
public static ArraySegment<byte> ReadBytesAndSizeSegment(this NetworkReader reader)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
Returns
TypeDescription
System.ArraySegment<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>

ReadArray<T>(NetworkReader)

Declaration
public static T[] ReadArray<T>(this NetworkReader reader)
Parameters
TypeNameDescription
Mirage.Serialization.NetworkReaderreader
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>

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>

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>outList
System.BooleanwasNulltrue if the list was null on the wire

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

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

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