mirror of
https://github.com/NixOS/nix.git
synced 2025-11-21 09:49:36 +01:00
Use std::variant to enforce BuildResult invariants
There is now a clean separation between successful and failing build results.
This commit is contained in:
parent
43550e8edb
commit
e731c43eae
29 changed files with 568 additions and 397 deletions
|
|
@ -241,12 +241,13 @@ void LegacySSHStore::buildPaths(
|
|||
|
||||
conn->to.flush();
|
||||
|
||||
BuildResult result;
|
||||
result.status = (BuildResult::Status) readInt(conn->from);
|
||||
|
||||
if (!result.success()) {
|
||||
conn->from >> result.errorMsg;
|
||||
throw Error(result.status, result.errorMsg);
|
||||
auto status = readInt(conn->from);
|
||||
if (!BuildResult::Success::statusIs(status)) {
|
||||
BuildResult::Failure failure{
|
||||
.status = (BuildResult::Failure::Status) status,
|
||||
};
|
||||
conn->from >> failure.errorMsg;
|
||||
throw Error(failure.status, std::move(failure.errorMsg));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue