in lib/src/utils.dart [13:29]
int binarySearch(List list, bool Function(dynamic) matches) {
if (list.isEmpty) return -1;
if (matches(list.first)) return 0;
if (!matches(list.last)) return list.length;
var min = 0;
var max = list.length - 1;
while (min < max) {
var half = min + ((max - min) ~/ 2);
if (matches(list[half])) {
max = half;
} else {
min = half + 1;
}
}
return max;
}