async def dump_field(obj, elem, elem_type, params=None):
if isinstance(elem, (int, bool)) or issubclass(elem_type, x.UVarintType) or issubclass(elem_type, x.IntType):<EOL><INDENT>return set_elem(obj, elem)<EOL><DEDENT>elif issubclass(elem_type, x.BlobType) or isinstance(obj, bytes) or isinstance(obj, bytearray):<EOL><INDENT>return set_elem(obj, await dump_blob(elem))<EOL><DEDENT>elif issubclass(elem_type, x.UnicodeType) or isinstance(elem, str):<EOL><INDENT>return set_elem(obj, elem)<EOL><DEDENT>elif issubclass(elem_type, x.VariantType):<EOL><INDENT>return set_elem(obj, await dump_variant(None, elem, elem_type, params))<EOL><DEDENT>elif issubclass(elem_type, x.ContainerType):  <EOL><INDENT>return set_elem(obj, await dump_container(None, elem, elem_type, params))<EOL><DEDENT>elif issubclass(elem_type, x.MessageType):<EOL><INDENT>return set_elem(obj, await dump_message(None, elem))<EOL><DEDENT>else:<EOL><INDENT>raise TypeError<EOL><DEDENT>
Dumps generic field to the popo object representation, according to the element specification.
General multiplexer.

:param obj:
:param elem:
:param elem_type:
:param params:
:return: