diff options
author | Oliver Reiche <oliver.reiche@huawei.com> | 2024-06-27 17:04:57 +0200 |
---|---|---|
committer | Oliver Reiche <oliver.reiche@huawei.com> | 2024-06-28 10:48:05 +0200 |
commit | fcc62ff8845c37e672100ae0de71d278fa4e8d0a (patch) | |
tree | 1c4f0b683af769538514626defd2dc395dac1967 /src/buildtool/serve_api/serve_service/target.cpp | |
parent | dfb361e44d01242eeefa7b554405d37402626766 (diff) | |
download | justbuild-fcc62ff8845c37e672100ae0de71d278fa4e8d0a.tar.gz |
Use (un)expected for parsing dispatch info
Diffstat (limited to 'src/buildtool/serve_api/serve_service/target.cpp')
-rw-r--r-- | src/buildtool/serve_api/serve_service/target.cpp | 20 |
1 files changed, 6 insertions, 14 deletions
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( |