diff options
Diffstat (limited to 'src/buildtool/execution_api/execution_service/cas_utils.cpp')
-rw-r--r-- | src/buildtool/execution_api/execution_service/cas_utils.cpp | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/src/buildtool/execution_api/execution_service/cas_utils.cpp b/src/buildtool/execution_api/execution_service/cas_utils.cpp index 7dee7dc7..592cd6ce 100644 --- a/src/buildtool/execution_api/execution_service/cas_utils.cpp +++ b/src/buildtool/execution_api/execution_service/cas_utils.cpp @@ -47,16 +47,16 @@ auto CASUtils::EnsureTreeInvariant(bazel_re::Digest const& digest, auto CASUtils::SplitBlobIdentity(bazel_re::Digest const& blob_digest, Storage const& storage) noexcept - -> std::variant<std::vector<bazel_re::Digest>, grpc::Status> { + -> expected<std::vector<bazel_re::Digest>, grpc::Status> { // Check blob existence. auto path = NativeSupport::IsTree(blob_digest.hash()) ? storage.CAS().TreePath(blob_digest) : storage.CAS().BlobPath(blob_digest, false); if (not path) { - return grpc::Status{ - grpc::StatusCode::NOT_FOUND, - fmt::format("blob not found {}", blob_digest.hash())}; + return unexpected{ + grpc::Status{grpc::StatusCode::NOT_FOUND, + fmt::format("blob not found {}", blob_digest.hash())}}; } // The split protocol states that each chunk that is returned by the @@ -67,15 +67,16 @@ auto CASUtils::SplitBlobIdentity(bazel_re::Digest const& blob_digest, if (NativeSupport::IsTree(blob_digest.hash())) { auto tree_data = FileSystemManager::ReadFile(*path); if (not tree_data) { - return grpc::Status{ + return unexpected{grpc::Status{ grpc::StatusCode::INTERNAL, - fmt::format("could read tree data {}", blob_digest.hash())}; + fmt::format("could read tree data {}", blob_digest.hash())}}; } auto digest = storage.CAS().StoreBlob(*tree_data, false); if (not digest) { - return grpc::Status{grpc::StatusCode::INTERNAL, - fmt::format("could not store tree as blob {}", - blob_digest.hash())}; + return unexpected{ + grpc::Status{grpc::StatusCode::INTERNAL, + fmt::format("could not store tree as blob {}", + blob_digest.hash())}}; } chunk_digests.emplace_back(*digest); return chunk_digests; @@ -86,7 +87,7 @@ auto CASUtils::SplitBlobIdentity(bazel_re::Digest const& blob_digest, auto CASUtils::SplitBlobFastCDC(bazel_re::Digest const& blob_digest, Storage const& storage) noexcept - -> std::variant<std::vector<bazel_re::Digest>, grpc::Status> { + -> expected<std::vector<bazel_re::Digest>, grpc::Status> { // Split blob into chunks: auto split = NativeSupport::IsTree(blob_digest.hash()) ? storage.CAS().SplitTree(blob_digest) @@ -97,13 +98,13 @@ auto CASUtils::SplitBlobFastCDC(bazel_re::Digest const& blob_digest, return *std::move(split); } // Process errors - return ToGrpc(std::move(split).error()); + return unexpected{ToGrpc(std::move(split).error())}; } auto CASUtils::SpliceBlob(bazel_re::Digest const& blob_digest, std::vector<bazel_re::Digest> const& chunk_digests, Storage const& storage) noexcept - -> std::variant<bazel_re::Digest, grpc::Status> { + -> expected<bazel_re::Digest, grpc::Status> { // Splice blob from chunks: auto splice = NativeSupport::IsTree(blob_digest.hash()) @@ -114,5 +115,5 @@ auto CASUtils::SpliceBlob(bazel_re::Digest const& blob_digest, if (splice) { return *std::move(splice); } - return ToGrpc(std::move(splice).error()); + return unexpected{ToGrpc(std::move(splice).error())}; } |