diff options
Diffstat (limited to 'src/buildtool/execution_api/local/local_api.hpp')
-rw-r--r-- | src/buildtool/execution_api/local/local_api.hpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/buildtool/execution_api/local/local_api.hpp b/src/buildtool/execution_api/local/local_api.hpp index 7ee74be9..f1e448a0 100644 --- a/src/buildtool/execution_api/local/local_api.hpp +++ b/src/buildtool/execution_api/local/local_api.hpp @@ -27,6 +27,7 @@ #include <sstream> #include <string> #include <unordered_map> +#include <unordered_set> #include <utility> // std::move #include <vector> @@ -311,12 +312,14 @@ class LocalApi final : public IExecutionApi { return found; } - [[nodiscard]] auto IsAvailable(std::vector<ArtifactDigest> const& digests) - const noexcept -> std::vector<ArtifactDigest> final { - std::vector<ArtifactDigest> result; + [[nodiscard]] auto IsAvailable( + std::unordered_set<ArtifactDigest> const& digests) const noexcept + -> std::unordered_set<ArtifactDigest> final { + std::unordered_set<ArtifactDigest> result; + result.reserve(digests.size()); for (auto const& digest : digests) { if (not IsAvailable(digest)) { - result.push_back(digest); + result.emplace(digest); } } return result; |