Use std::ranges::find_if for finding external builders

Co-authored-by: Sergei Zimmerman <sergei@zimmerman.foo>
This commit is contained in:
John Ericson
2025-10-10 17:27:41 -04:00
parent b56dd21c31
commit 2ff59ec3e0

View File

@@ -18,10 +18,12 @@ struct ExternalDerivationBuilder : DerivationBuilderImpl
static std::unique_ptr<ExternalDerivationBuilder> newIfSupported(
LocalStore & store, std::unique_ptr<DerivationBuilderCallbacks> & miscMethods, DerivationBuilderParams & params)
{
for (auto & handler : settings.externalBuilders.get()) {
if (handler.systems.contains(params.drv.platform))
return std::make_unique<ExternalDerivationBuilder>(
store, std::move(miscMethods), std::move(params), handler);
if (auto it = std::ranges::find_if(
settings.externalBuilders.get(),
[&](const auto & handler) { return handler.systems.contains(params.drv.platform); });
it != settings.externalBuilders.get().end()) {
return std::make_unique<ExternalDerivationBuilder>(
store, std::move(miscMethods), std::move(params), *it);
}
return {};
}