From fcc62ff8845c37e672100ae0de71d278fa4e8d0a Mon Sep 17 00:00:00 2001 From: Oliver Reiche Date: Thu, 27 Jun 2024 17:04:57 +0200 Subject: Use (un)expected for parsing dispatch info --- src/buildtool/serve_api/serve_service/target.cpp | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 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 d7e48402..341b326e 100644 --- a/src/buildtool/serve_api/serve_service/target.cpp +++ b/src/buildtool/serve_api/serve_service/target.cpp @@ -67,21 +67,13 @@ auto TargetService::GetDispatchList( dispatch_info.ToString())}; } // parse content - try { - auto parsed = ParseDispatch(*dispatch_str); - if (parsed.index() == 0) { - // pass the parsing error forward - return ::grpc::Status{::grpc::StatusCode::FAILED_PRECONDITION, - std::get<0>(parsed)}; - } - return std::get<1>(parsed); - } catch (std::exception const& e) { - return ::grpc::Status{::grpc::StatusCode::INTERNAL, - fmt::format("Parsing dispatch blob {} " - "unexpectedly failed with:\n{}", - dispatch_digest.hash(), - e.what())}; + auto parsed = ParseDispatch(*dispatch_str); + if (not parsed) { + // pass the parsing error forward + return ::grpc::Status{::grpc::StatusCode::FAILED_PRECONDITION, + std::move(parsed).error()}; } + return *std::move(parsed); } auto TargetService::HandleFailureLog( -- cgit v1.2.3