code: async def xrange(self, name: str, start='-', end='+', count=None) -> list:
          
  
          pieces = [start, end]
          if count is not None:
              if not isinstance(count, int) or count < 1:
                  raise RedisError("XRANGE count must be a positive integer")
              pieces.append("COUNT")
              pieces.append(str(count))
          return await self.execute_command('XRANGE', name, *pieces)
docs: Read stream values within an interval.
  
          Available since 5.0.0.
          Time complexity: O(log(N)+M) with N being the number of elements in the stream and M the number
          of elements being returned. If M is constant (e.g. always asking for the first 10 elements with COUNT),
          you can consider it O(log(N)).
  
          :param name: name of the stream.
          :param start: first stream ID. defaults to '-',
                 meaning the earliest available.
          :param end: last stream ID. defaults to '+',
                  meaning the latest available.
          :param count: if set, only return this many items, beginning with the
                 earliest available.
          :return list of (stream_id, entry(k-v pair))