mirror of
https://github.com/NixOS/nix
synced 2025-06-27 00:11:17 +02:00
Use BuildableReq
for buildPaths
and ensurePath
This avoids an ambiguity where the `StorePathWithOutputs { drvPath, {} }` could mean "build `brvPath`" or "substitute `drvPath`" depending on context. It also brings the internals closer in line to the new CLI, by generalizing the `Buildable` type is used there and makes that distinction already. In doing so, relegate `StorePathWithOutputs` to being a type just for backwards compatibility (CLI and RPC).
This commit is contained in:
parent
32f4454b9f
commit
255d145ba7
31 changed files with 364 additions and 126 deletions
|
@ -1,6 +1,9 @@
|
|||
#pragma once
|
||||
|
||||
#include <variant>
|
||||
|
||||
#include "path.hh"
|
||||
#include "buildable.hh"
|
||||
|
||||
namespace nix {
|
||||
|
||||
|
@ -10,8 +13,14 @@ struct StorePathWithOutputs
|
|||
std::set<std::string> outputs;
|
||||
|
||||
std::string to_string(const Store & store) const;
|
||||
|
||||
BuildableReq toBuildableReq() const;
|
||||
|
||||
static std::variant<StorePathWithOutputs, StorePath> tryFromBuildableReq(const BuildableReq &);
|
||||
};
|
||||
|
||||
std::vector<BuildableReq> toBuildableReqs(const std::vector<StorePathWithOutputs>);
|
||||
|
||||
std::pair<std::string_view, StringSet> parsePathWithOutputs(std::string_view s);
|
||||
|
||||
class Store;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue