From 948c12af73f357e9ed84d009b48a2ca6e6112b32 Mon Sep 17 00:00:00 2001 From: Paul Cristian Sarbu Date: Wed, 31 Jan 2024 10:36:25 +0100 Subject: dispatch file parsing: Improve std::variant usage --- src/buildtool/serve_api/serve_service/target.cpp | 28 ++++++++++-------------- 1 file changed, 11 insertions(+), 17 deletions(-) (limited to 'src/buildtool/serve_api/serve_service/target.cpp') diff --git a/src/buildtool/serve_api/serve_service/target.cpp b/src/buildtool/serve_api/serve_service/target.cpp index 70373e05..04db8162 100644 --- a/src/buildtool/serve_api/serve_service/target.cpp +++ b/src/buildtool/serve_api/serve_service/target.cpp @@ -38,39 +38,33 @@ auto TargetService::GetDispatchList(ArtifactDigest const& dispatch_digest) -> std::variant<::grpc::Status, dispatch_t> { - using result_t = std::variant<::grpc::Status, dispatch_t>; // get blob from remote cas auto const& dispatch_info = Artifact::ObjectInfo{.digest = dispatch_digest, .type = ObjectType::File}; if (!local_api_->IsAvailable(dispatch_digest) and !remote_api_->RetrieveToCas({dispatch_info}, &*local_api_)) { - return result_t( - std::in_place_index<0>, - ::grpc::Status{::grpc::StatusCode::FAILED_PRECONDITION, - fmt::format("Could not retrieve from " - "remote-execution end point blob {}", - dispatch_info.ToString())}); + return ::grpc::Status{::grpc::StatusCode::FAILED_PRECONDITION, + fmt::format("Could not retrieve from " + "remote-execution endpoint blob {}", + dispatch_info.ToString())}; } // get blob content auto const& dispatch_str = local_api_->RetrieveToMemory(dispatch_info); if (not dispatch_str) { // this should not fail unless something really broke... - return result_t( - std::in_place_index<0>, - ::grpc::Status{ - ::grpc::StatusCode::INTERNAL, - fmt::format("Unexpected failure in retrieving blob {} from CAS", - dispatch_info.ToString())}); + return ::grpc::Status{ + ::grpc::StatusCode::INTERNAL, + fmt::format("Unexpected failure in retrieving blob {} from CAS", + dispatch_info.ToString())}; } // parse content auto parsed = ParseDispatch(*dispatch_str); if (parsed.index() == 0) { // pass the parsing error forward - return result_t(std::in_place_index<0>, - ::grpc::Status{::grpc::StatusCode::FAILED_PRECONDITION, - std::get<0>(parsed)}); + return ::grpc::Status{::grpc::StatusCode::FAILED_PRECONDITION, + std::get<0>(parsed)}; } - return result_t(std::in_place_index<1>, std::get<1>(parsed)); + return std::get<1>(parsed); } auto TargetService::ServeTarget( -- cgit v1.2.3