Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(124)

Unified Diff: packages/quiver/lib/collection.dart

Issue 2989763002: Update charted to 0.4.8 and roll (Closed)
Patch Set: Removed Cutch from list of reviewers Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « packages/quiver/lib/check.dart ('k') | packages/quiver/lib/core.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: packages/quiver/lib/collection.dart
diff --git a/packages/quiver/lib/collection.dart b/packages/quiver/lib/collection.dart
index 269aaac27304ea5bcd1bb85efdf9515c52408b22..4e8f3102fa1181f5e67898622316d912c9fcdb94 100644
--- a/packages/quiver/lib/collection.dart
+++ b/packages/quiver/lib/collection.dart
@@ -12,9 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-/**
- * Collection classes and related utilities.
- */
+/// Collection classes and related utilities.
library quiver.collection;
import 'dart:collection';
@@ -33,13 +31,11 @@ part 'src/collection/delegates/map.dart';
part 'src/collection/delegates/queue.dart';
part 'src/collection/delegates/set.dart';
-/**
- * Checks [List]s [a] and [b] for equality.
- *
- * Returns `true` if [a] and [b] are both null, or they are the same length and
- * every element of [a] is equal to the corresponding element at the same index
- * in [b].
- */
+/// Checks [List]s [a] and [b] for equality.
+///
+/// Returns `true` if [a] and [b] are both null, or they are the same length
+/// and every element of [a] is equal to the corresponding element at the same
+/// index in [b].
bool listsEqual(List a, List b) {
if (a == b) return true;
if (a == null || b == null) return false;
@@ -52,12 +48,10 @@ bool listsEqual(List a, List b) {
return true;
}
-/**
- * Checks [Map]s [a] and [b] for equality.
- *
- * Returns `true` if [a] and [b] are both null, or they are the same length and
- * every key `k` in [a] exists in [b] and the values `a[k] == b[k]`.
- */
+/// Checks [Map]s [a] and [b] for equality.
+///
+/// Returns `true` if [a] and [b] are both null, or they are the same length
+/// and every key `k` in [a] exists in [b] and the values `a[k] == b[k]`.
bool mapsEqual(Map a, Map b) {
if (a == b) return true;
if (a == null || b == null) return false;
@@ -72,12 +66,10 @@ bool mapsEqual(Map a, Map b) {
return true;
}
-/**
- * Checks [Set]s [a] and [b] for equality.
- *
- * Returns `true` if [a] and [b] are both null, or they are the same length and
- * every element in [b] exists in [a].
- */
+/// Checks [Set]s [a] and [b] for equality.
+///
+/// Returns `true` if [a] and [b] are both null, or they are the same length and
+/// every element in [b] exists in [a].
bool setsEqual(Set a, Set b) {
if (a == b) return true;
if (a == null || b == null) return false;
@@ -85,3 +77,23 @@ bool setsEqual(Set a, Set b) {
return a.containsAll(b);
}
+
+/// Returns the index of the first item in [elements] where [predicate]
+/// evaluates to true.
+///
+/// Returns -1 if there are no items where [predicate] evaluates to true.
+int indexOf<T>(Iterable<T> elements, bool predicate(T element)) {
+ if (elements is List<T>) {
+ for (int i = 0; i < elements.length; i++) {
+ if (predicate(elements[i])) return i;
+ }
+ return -1;
+ }
+
+ int i = 0;
+ for (T element in elements) {
+ if (predicate(element)) return i;
+ i++;
+ }
+ return -1;
+}
« no previous file with comments | « packages/quiver/lib/check.dart ('k') | packages/quiver/lib/core.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698