code: async def load_variant(obj, elem, elem_type=None, params=None, field_archiver=None, wrapped=None):
      
      field_archiver = field_archiver if field_archiver else load_field
      is_wrapped = elem_type.WRAPS_VALUE if wrapped is None else wrapped
  
      if is_wrapped:
          elem = elem_type() if elem is None else elem
  
      fname = list(obj.keys())[0]
      for field in elem_type.f_specs():
          if field[0] != fname:
              continue
  
          fvalue = await field_archiver(obj[fname], field[1], field[2:], elem if not is_wrapped else None)
          if is_wrapped:
              elem.set_variant(field[0], fvalue)
  
          return elem if is_wrapped else fvalue
      raise ValueError('Unknown tag: %s' % fname)
docs: Loads variant from the obj representation
      :param obj:
      :param elem:
      :param elem_type:
      :param params:
      :param field_archiver:
      :param wrapped:
      :return: