# openCursor method

Stream<CursorWithValue> openCursor ({dynamic key, KeyRange range, String direction, bool autoAdvance })

Creates a stream of cursors over the records in this object store.

See also:

- ObjectStore.openCursor

## Implementation

    Stream<CursorWithValue> openCursor(
        {key, KeyRange range, String direction, bool autoAdvance}) {
      var key_OR_range = null;
      if (key != null) {
        if (range != null) {
          throw new ArgumentError('Cannot specify both key and range.');
        }
        key_OR_range = key;
      } else {
        key_OR_range = range;
      }
      var request;
      if (direction == null) {
        // FIXME: Passing in "next" should be unnecessary.
        request = _openCursor(key_OR_range, "next");
      } else {
        request = _openCursor(key_OR_range, direction);
      }
      return ObjectStore._cursorStreamFromResult(request, autoAdvance);
    }