firstWhere method
Implementation
(Entity, A, B, C)? firstWhere(Query3UntilCallback<A, B, C> predicate) {
final driver = Query.chooseDriver(_driverCandidates);
final driverIsA = identical(driver, _a);
final driverIsB = identical(driver, _b);
final driverIsC = identical(driver, _c);
_world.beginQuery(this);
try {
for (var i = 0; i < driver.length; i++) {
final entityIndex = driver.entityIndexAt(i);
final aDense = driverIsA ? i : _a.denseIndexOf(entityIndex);
if (aDense < 0) continue;
final bDense = driverIsB ? i : _b.denseIndexOf(entityIndex);
if (bDense < 0) continue;
final cDense = driverIsC ? i : _c.denseIndexOf(entityIndex);
if (cDense < 0) continue;
if (!Query.passesFilters(entityIndex, _withStores, _withoutStores)) {
continue;
}
final entity = _world.entities.resolve(entityIndex);
final a = _a.valueAt(aDense);
final b = _b.valueAt(bDense);
final c = _c.valueAt(cDense);
if (predicate(entity, a, b, c)) return (entity, a, b, c);
}
return null;
} finally {
_world.endQuery();
}
}