async def blob_dump(self, elem, elem_type, params=None):
elem_is_blob = isinstance(elem, x.BlobType)<EOL>elem_params = elem if elem_is_blob or elem_type is None else elem_type<EOL>data = getattr(elem, x.BlobType.DATA_ATTR) if elem_is_blob else elem<EOL>if len(data) != elem_params.SIZE:<EOL><INDENT>raise ValueError('<STR_LIT>' % (elem_params.SIZE, self.tracker))<EOL><DEDENT>await dump_uvarint(self.iobj, len(elem))<EOL>await self.iobj.awrite(data)<EOL>
Dumps blob message to the writer.
Supports both blob and raw value.

:param writer:
:param elem:
:param elem_type:
:param params:
:return: