Loads blob from reader to the element. Returns the loaded blob.

        :param reader:
        :param elem_type:
        :param params:
        :param elem:
        :return:

async def blob_load(self, elem_type, params=None, elem=None):
        """
        Loads blob from reader to the element. Returns the loaded blob.

        :param reader:
        :param elem_type:
        :param params:
        :param elem:
        :return:
        """
        ivalue = await load_uvarint(self.iobj)
        fvalue = bytearray(ivalue)
        await self.iobj.areadinto(fvalue)

        if elem is None:
            return fvalue  # array by default

        elif isinstance(elem, x.BlobType):
            setattr(elem, elem_type.DATA_ATTR, fvalue)
            return elem

        else:
            elem.extend(fvalue)

        return elem