async def field(self, elem=None, elem_type=None, params=None):
elem_type = elem_type if elem_type else elem.__class__<EOL>fvalue = None<EOL>src = elem<EOL>if issubclass(elem_type, x.UVarintType):<EOL><INDENT>fvalue = await self.uvarint(x.get_elem(src))<EOL><DEDENT>elif issubclass(elem_type, x.IntType):<EOL><INDENT>fvalue = await self.uint(elem=x.get_elem(src), elem_type=elem_type, params=params)<EOL><DEDENT>elif issubclass(elem_type, x.BlobType):<EOL><INDENT>fvalue = await self.blob(elem=x.get_elem(src), elem_type=elem_type, params=params)<EOL><DEDENT>elif issubclass(elem_type, x.UnicodeType):<EOL><INDENT>fvalue = await self.unicode_type(x.get_elem(src))<EOL><DEDENT>elif issubclass(elem_type, x.VariantType):<EOL><INDENT>fvalue = await self.variant(elem=x.get_elem(src), elem_type=elem_type, params=params)<EOL><DEDENT>elif issubclass(elem_type, x.ContainerType):  <EOL><INDENT>fvalue = await self.container(container=x.get_elem(src), container_type=elem_type, params=params)<EOL><DEDENT>elif issubclass(elem_type, x.TupleType):  <EOL><INDENT>fvalue = await self.tuple(elem=x.get_elem(src), elem_type=elem_type, params=params)<EOL><DEDENT>elif issubclass(elem_type, x.MessageType):<EOL><INDENT>fvalue = await self.message(x.get_elem(src), msg_type=elem_type)<EOL><DEDENT>else:<EOL><INDENT>raise TypeError<EOL><DEDENT>return fvalue if self.writing else x.set_elem(elem, fvalue)<EOL>
Archive field
:param elem:
:param elem_type:
:param params:
:return: