| Index: sdk/lib/collection_dev/iterable.dart
|
| diff --git a/sdk/lib/collection_dev/iterable.dart b/sdk/lib/collection_dev/iterable.dart
|
| deleted file mode 100644
|
| index 8fcef18f4371a68577d1d3d152e35d4085a7ce3d..0000000000000000000000000000000000000000
|
| --- a/sdk/lib/collection_dev/iterable.dart
|
| +++ /dev/null
|
| @@ -1,226 +0,0 @@
|
| -// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
|
| -// for details. All rights reserved. Use of this source code is governed by a
|
| -// BSD-style license that can be found in the LICENSE file.
|
| -
|
| -part of dart.collection.dev;
|
| -
|
| -typedef T _Transformation<S, T>(S value);
|
| -
|
| -class MappedIterable<S, T> extends Iterable<T> {
|
| - final Iterable<S> _iterable;
|
| - // TODO(ahe): Restore type when feature is implemented in dart2js
|
| - // checked mode. http://dartbug.com/7733
|
| - final /* _Transformation<S, T> */ _f;
|
| -
|
| - MappedIterable(this._iterable, T this._f(S element));
|
| -
|
| - Iterator<T> get iterator => new MappedIterator<S, T>(_iterable.iterator, _f);
|
| -
|
| - // Length related functions are independent of the mapping.
|
| - int get length => _iterable.length;
|
| - bool get isEmpty => _iterable.isEmpty;
|
| -}
|
| -
|
| -class MappedIterator<S, T> extends Iterator<T> {
|
| - T _current;
|
| - final Iterator<S> _iterator;
|
| - // TODO(ahe): Restore type when feature is implemented in dart2js
|
| - // checked mode. http://dartbug.com/7733
|
| - final /* _Transformation<S, T> */ _f;
|
| -
|
| - MappedIterator(this._iterator, T this._f(S element));
|
| -
|
| - bool moveNext() {
|
| - if (_iterator.moveNext()) {
|
| - _current = _f(_iterator.current);
|
| - return true;
|
| - } else {
|
| - _current = null;
|
| - return false;
|
| - }
|
| - }
|
| -
|
| - T get current => _current;
|
| -}
|
| -
|
| -typedef bool _ElementPredicate<E>(E element);
|
| -
|
| -class WhereIterable<E> extends Iterable<E> {
|
| - final Iterable<E> _iterable;
|
| - // TODO(ahe): Restore type when feature is implemented in dart2js
|
| - // checked mode. http://dartbug.com/7733
|
| - final /* _ElementPredicate */ _f;
|
| -
|
| - WhereIterable(this._iterable, bool this._f(E element));
|
| -
|
| - Iterator<E> get iterator => new WhereIterator<E>(_iterable.iterator, _f);
|
| -}
|
| -
|
| -class WhereIterator<E> extends Iterator<E> {
|
| - final Iterator<E> _iterator;
|
| - // TODO(ahe): Restore type when feature is implemented in dart2js
|
| - // checked mode. http://dartbug.com/7733
|
| - final /* _ElementPredicate */ _f;
|
| -
|
| - WhereIterator(this._iterator, bool this._f(E element));
|
| -
|
| - bool moveNext() {
|
| - while (_iterator.moveNext()) {
|
| - if (_f(_iterator.current)) {
|
| - return true;
|
| - }
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - E get current => _iterator.current;
|
| -}
|
| -
|
| -class TakeIterable<E> extends Iterable<E> {
|
| - final Iterable<E> _iterable;
|
| - final int _takeCount;
|
| -
|
| - TakeIterable(this._iterable, this._takeCount) {
|
| - if (_takeCount is! int || _takeCount < 0) {
|
| - throw new ArgumentError(_takeCount);
|
| - }
|
| - }
|
| -
|
| - Iterator<E> get iterator {
|
| - return new TakeIterator<E>(_iterable.iterator, _takeCount);
|
| - }
|
| -}
|
| -
|
| -class TakeIterator<E> extends Iterator<E> {
|
| - final Iterator<E> _iterator;
|
| - int _remaining;
|
| -
|
| - TakeIterator(this._iterator, this._remaining) {
|
| - assert(_remaining is int && _remaining >= 0);
|
| - }
|
| -
|
| - bool moveNext() {
|
| - _remaining--;
|
| - if (_remaining >= 0) {
|
| - return _iterator.moveNext();
|
| - }
|
| - _remaining = -1;
|
| - return false;
|
| - }
|
| -
|
| - E get current {
|
| - if (_remaining < 0) return null;
|
| - return _iterator.current;
|
| - }
|
| -}
|
| -
|
| -class TakeWhileIterable<E> extends Iterable<E> {
|
| - final Iterable<E> _iterable;
|
| - // TODO(ahe): Restore type when feature is implemented in dart2js
|
| - // checked mode. http://dartbug.com/7733
|
| - final /* _ElementPredicate */ _f;
|
| -
|
| - TakeWhileIterable(this._iterable, bool this._f(E element));
|
| -
|
| - Iterator<E> get iterator {
|
| - return new TakeWhileIterator<E>(_iterable.iterator, _f);
|
| - }
|
| -}
|
| -
|
| -class TakeWhileIterator<E> extends Iterator<E> {
|
| - final Iterator<E> _iterator;
|
| - // TODO(ahe): Restore type when feature is implemented in dart2js
|
| - // checked mode. http://dartbug.com/7733
|
| - final /* _ElementPredicate */ _f;
|
| - bool _isFinished = false;
|
| -
|
| - TakeWhileIterator(this._iterator, bool this._f(E element));
|
| -
|
| - bool moveNext() {
|
| - if (_isFinished) return false;
|
| - if (!_iterator.moveNext() || !_f(_iterator.current)) {
|
| - _isFinished = true;
|
| - return false;
|
| - }
|
| - return true;
|
| - }
|
| -
|
| - E get current {
|
| - if (_isFinished) return null;
|
| - return _iterator.current;
|
| - }
|
| -}
|
| -
|
| -class SkipIterable<E> extends Iterable<E> {
|
| - final Iterable<E> _iterable;
|
| - final int _skipCount;
|
| -
|
| - SkipIterable(this._iterable, this._skipCount) {
|
| - if (_skipCount is! int || _skipCount < 0) {
|
| - throw new ArgumentError(_skipCount);
|
| - }
|
| - }
|
| -
|
| - Iterable<E> skip(int n) {
|
| - if (n is! int || n < 0) {
|
| - throw new ArgumentError(n);
|
| - }
|
| - return new SkipIterable<E>(_iterable, _skipCount + n);
|
| - }
|
| -
|
| - Iterator<E> get iterator {
|
| - return new SkipIterator<E>(_iterable.iterator, _skipCount);
|
| - }
|
| -}
|
| -
|
| -class SkipIterator<E> extends Iterator<E> {
|
| - final Iterator<E> _iterator;
|
| - int _skipCount;
|
| -
|
| - SkipIterator(this._iterator, this._skipCount) {
|
| - assert(_skipCount is int && _skipCount >= 0);
|
| - }
|
| -
|
| - bool moveNext() {
|
| - for (int i = 0; i < _skipCount; i++) _iterator.moveNext();
|
| - _skipCount = 0;
|
| - return _iterator.moveNext();
|
| - }
|
| -
|
| - E get current => _iterator.current;
|
| -}
|
| -
|
| -class SkipWhileIterable<E> extends Iterable<E> {
|
| - final Iterable<E> _iterable;
|
| - // TODO(ahe): Restore type when feature is implemented in dart2js
|
| - // checked mode. http://dartbug.com/7733
|
| - final /* _ElementPredicate */ _f;
|
| -
|
| - SkipWhileIterable(this._iterable, bool this._f(E element));
|
| -
|
| - Iterator<E> get iterator {
|
| - return new SkipWhileIterator<E>(_iterable.iterator, _f);
|
| - }
|
| -}
|
| -
|
| -class SkipWhileIterator<E> extends Iterator<E> {
|
| - final Iterator<E> _iterator;
|
| - // TODO(ahe): Restore type when feature is implemented in dart2js
|
| - // checked mode. http://dartbug.com/7733
|
| - final /* _ElementPredicate */ _f;
|
| - bool _hasSkipped = false;
|
| -
|
| - SkipWhileIterator(this._iterator, bool this._f(E element));
|
| -
|
| - bool moveNext() {
|
| - if (!_hasSkipped) {
|
| - _hasSkipped = true;
|
| - while (_iterator.moveNext()) {
|
| - if (!_f(_iterator.current)) return true;
|
| - }
|
| - }
|
| - return _iterator.moveNext();
|
| - }
|
| -
|
| - E get current => _iterator.current;
|
| -}
|
|
|