summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_api/local/local_api.hpp
diff options
context:
space:
mode:
authorOliver Reiche <oliver.reiche@huawei.com>2024-06-27 17:17:33 +0200
committerOliver Reiche <oliver.reiche@huawei.com>2024-06-28 11:18:24 +0200
commit956ed669cf71d1ee74dbb573c542a7565c3a90d3 (patch)
treedab6a6b0032232c059daac86470dbbd232c9b535 /src/buildtool/execution_api/local/local_api.hpp
parent2e954a436b7c990e12eb98de9a6a9ba995dd9429 (diff)
downloadjustbuild-956ed669cf71d1ee74dbb573c542a7565c3a90d3.tar.gz
Use (un)expected for CAS utils
Diffstat (limited to 'src/buildtool/execution_api/local/local_api.hpp')
-rw-r--r--src/buildtool/execution_api/local/local_api.hpp26
1 files changed, 11 insertions, 15 deletions
diff --git a/src/buildtool/execution_api/local/local_api.hpp b/src/buildtool/execution_api/local/local_api.hpp
index 85547de1..f9eefb64 100644
--- a/src/buildtool/execution_api/local/local_api.hpp
+++ b/src/buildtool/execution_api/local/local_api.hpp
@@ -341,19 +341,17 @@ class LocalApi final : public IExecutionApi {
Logger::Log(LogLevel::Debug, "SplitBlob({})", blob_digest.hash());
auto split_result = CASUtils::SplitBlobFastCDC(
static_cast<bazel_re::Digest>(blob_digest), *storage_);
- if (std::holds_alternative<grpc::Status>(split_result)) {
- auto* status = std::get_if<grpc::Status>(&split_result);
- Logger::Log(LogLevel::Error, status->error_message());
+ if (not split_result) {
+ Logger::Log(LogLevel::Error, split_result.error().error_message());
return std::nullopt;
}
- auto* chunk_digests =
- std::get_if<std::vector<bazel_re::Digest>>(&split_result);
+ auto const& chunk_digests = *split_result;
Logger::Log(LogLevel::Debug, [&blob_digest, &chunk_digests]() {
std::stringstream ss{};
ss << "Split blob " << blob_digest.hash() << ":"
- << blob_digest.size() << " into " << chunk_digests->size()
+ << blob_digest.size() << " into " << chunk_digests.size()
<< " chunks: [ ";
- for (auto const& chunk_digest : *chunk_digests) {
+ for (auto const& chunk_digest : chunk_digests) {
ss << chunk_digest.hash() << ":" << chunk_digest.size_bytes()
<< " ";
}
@@ -361,10 +359,10 @@ class LocalApi final : public IExecutionApi {
return ss.str();
});
auto artifact_digests = std::vector<ArtifactDigest>{};
- artifact_digests.reserve(chunk_digests->size());
+ artifact_digests.reserve(chunk_digests.size());
std::transform(
- chunk_digests->cbegin(),
- chunk_digests->cend(),
+ chunk_digests.cbegin(),
+ chunk_digests.cend(),
std::back_inserter(artifact_digests),
[](auto const& digest) { return ArtifactDigest{digest}; });
return artifact_digests;
@@ -393,13 +391,11 @@ class LocalApi final : public IExecutionApi {
});
auto splice_result = CASUtils::SpliceBlob(
static_cast<bazel_re::Digest>(blob_digest), digests, *storage_);
- if (std::holds_alternative<grpc::Status>(splice_result)) {
- auto* status = std::get_if<grpc::Status>(&splice_result);
- Logger::Log(LogLevel::Error, status->error_message());
+ if (not splice_result) {
+ Logger::Log(LogLevel::Error, splice_result.error().error_message());
return std::nullopt;
}
- auto* digest = std::get_if<bazel_re::Digest>(&splice_result);
- return ArtifactDigest{*digest};
+ return ArtifactDigest{*std::move(splice_result)};
}
[[nodiscard]] auto BlobSpliceSupport() const noexcept -> bool final {