protected async Task <DBCHeader> ReadDBCHeader([NotNull] ISerializerService serializer)
        {
            if (serializer == null)
            {
                throw new ArgumentNullException(nameof(serializer));
            }

            byte[] bytes = new byte[DBCHeader.HeaderSize];

            await ReadBytesIntoArrayFromStream(bytes);

            //Read the header, it contains some information needed to read the whole DBC
            return(serializer.Read <DBCHeader>(new Span <byte>(bytes), 0));
        }
 public static T Read <T>([NotNull] this ISerializerService serializer, Span <byte> buffer, int offset)
     where T : ITypeSerializerReadingStrategy <T>
 {
     return(serializer.Read <T>(buffer, ref offset));
 }
 public static T Deserialize <T>([NotNull] this ISerializerService serializer, byte[] bytes)
     where T : ITypeSerializerReadingStrategy <T>
 {
     return(serializer.Read <T>(new Span <byte>(bytes), 0));
 }