code: async def container_load(self, container_type, params=None, container=None):
          
          raw_container = container_is_raw(container_type, params)
          c_len = await load_uvarint(self.iobj)
          elem_ver = await load_uvarint(self.iobj) if not raw_container else 0
  
          # if container and c_len != len(container):
          #     raise ValueError('Size mismatch')
  
          elem_type = x.container_elem_type(container_type, params)
          res = container if container else []
          for i in range(c_len):
              try:
                  self.tracker.push_index(i)
                  fvalue = await self._load_field(elem_type,
                                                  params[1:] if params else None,
                                                  x.eref(res, i) if container else None)
                  self.tracker.pop()
              except Exception as e:
                  raise helpers.ArchiveException(e, tracker=self.tracker) from e
  
              if not container:
                  res.append(fvalue)
          return res
docs: Loads container of elements from the reader. Supports the container ref.
          Returns loaded container.
  
          :param container_type:
          :param params:
          :param container:
          :param field_archiver:
          :return: