docs: def zscan_iter(self, name, match=None, count=None,
                     score_cast_func=float):
          """
          Make an iterator using the ZSCAN command so that the client doesn't
          need to remember the cursor position.
  
          ``match`` allows for filtering the keys by pattern
  
          ``count`` allows for hint the minimum number of returns
  
          ``score_cast_func`` a callable used to cast the score return value
          """
          if self._pipe is not None:
              raise InvalidOperation('cannot pipeline scan operations')
          cursor = '0'
          while cursor != 0:
              cursor, data = self.zscan(name, cursor=cursor, match=match,
                                        count=count,
                                        score_cast_func=score_cast_func)
              for item in data:
                  yield item