# contains method

Future<bool> contains (Object needle)

Returns whether `needle` occurs in the elements provided by this stream.

Compares each element of this stream to `needle` using Object.==. If an equal element is found, the returned future is completed with `true`. If the stream ends without finding a match, the future is completed with `false`.

If the stream contains an error, or the call to `Object.==` throws, the returned future is completed with that error, and processing stops.

## Implementation

    Future<bool> contains(Object needle) {
      _Future<bool> future = new _Future<bool>();
      StreamSubscription subscription;
      subscription = this.listen(
          (T element) {
            _runUserCode(() => (element == needle), (bool isMatch) {
              if (isMatch) {
                _cancelAndValue(subscription, future, true);
              }
            }, _cancelAndErrorClosure(subscription, future));
          },
          onError: future._completeError,
          onDone: () {
            future._complete(false);
          },
          cancelOnError: true);
      return future;
    }