aboutsummaryrefslogtreecommitdiff
path: root/src/libstore
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2023-07-12 22:22:44 -0400
committerJohn Ericson <John.Ericson@Obsidian.Systems>2023-07-12 23:01:10 -0400
commit2c3fb0eb33d205d1937b7ed801bdb36bb301d1a8 (patch)
treed4840df3fbc1145cd779092d288296f037313eed /src/libstore
parentcafb5e8a1751b2c951347d5d9188b2e0bee357be (diff)
Move `BuiltPath` to its own header/C++ file in libcmd
It is less important, and used less widely, than `DerivedPath`.
Diffstat (limited to 'src/libstore')
-rw-r--r--src/libstore/derived-path.cc56
-rw-r--r--src/libstore/derived-path.hh41
2 files changed, 0 insertions, 97 deletions
diff --git a/src/libstore/derived-path.cc b/src/libstore/derived-path.cc
index 9a2ffda39..52d073f81 100644
--- a/src/libstore/derived-path.cc
+++ b/src/libstore/derived-path.cc
@@ -1,5 +1,4 @@
#include "derived-path.hh"
-#include "derivations.hh"
#include "store-api.hh"
#include <nlohmann/json.hpp>
@@ -30,30 +29,6 @@ nlohmann::json DerivedPath::Built::toJSON(ref<Store> store) const {
return res;
}
-nlohmann::json BuiltPath::Built::toJSON(ref<Store> store) const {
- nlohmann::json res;
- res["drvPath"] = store->printStorePath(drvPath);
- for (const auto& [output, path] : outputs) {
- res["outputs"][output] = store->printStorePath(path);
- }
- return res;
-}
-
-StorePathSet BuiltPath::outPaths() const
-{
- return std::visit(
- overloaded{
- [](const BuiltPath::Opaque & p) { return StorePathSet{p.path}; },
- [](const BuiltPath::Built & b) {
- StorePathSet res;
- for (auto & [_, path] : b.outputs)
- res.insert(path);
- return res;
- },
- }, raw()
- );
-}
-
std::string DerivedPath::Opaque::to_string(const Store & store) const
{
return store.printStorePath(path);
@@ -121,35 +96,4 @@ DerivedPath DerivedPath::parseLegacy(const Store & store, std::string_view s)
return parseWith(store, s, "!");
}
-RealisedPath::Set BuiltPath::toRealisedPaths(Store & store) const
-{
- RealisedPath::Set res;
- std::visit(
- overloaded{
- [&](const BuiltPath::Opaque & p) { res.insert(p.path); },
- [&](const BuiltPath::Built & p) {
- auto drvHashes =
- staticOutputHashes(store, store.readDerivation(p.drvPath));
- for (auto& [outputName, outputPath] : p.outputs) {
- if (experimentalFeatureSettings.isEnabled(
- Xp::CaDerivations)) {
- auto drvOutput = get(drvHashes, outputName);
- if (!drvOutput)
- throw Error(
- "the derivation '%s' has unrealised output '%s' (derived-path.cc/toRealisedPaths)",
- store.printStorePath(p.drvPath), outputName);
- auto thisRealisation = store.queryRealisation(
- DrvOutput{*drvOutput, outputName});
- assert(thisRealisation); // We’ve built it, so we must
- // have the realisation
- res.insert(*thisRealisation);
- } else {
- res.insert(outputPath);
- }
- }
- },
- },
- raw());
- return res;
-}
}
diff --git a/src/libstore/derived-path.hh b/src/libstore/derived-path.hh
index 5f7acbebc..6ea80c92e 100644
--- a/src/libstore/derived-path.hh
+++ b/src/libstore/derived-path.hh
@@ -109,47 +109,6 @@ struct DerivedPath : _DerivedPathRaw {
static DerivedPath parseLegacy(const Store & store, std::string_view);
};
-/**
- * A built derived path with hints in the form of optional concrete output paths.
- *
- * See 'BuiltPath' for more an explanation.
- */
-struct BuiltPathBuilt {
- StorePath drvPath;
- std::map<std::string, StorePath> outputs;
-
- nlohmann::json toJSON(ref<Store> store) const;
- static BuiltPathBuilt parse(const Store & store, std::string_view);
-
- GENERATE_CMP(BuiltPathBuilt, me->drvPath, me->outputs);
-};
-
-using _BuiltPathRaw = std::variant<
- DerivedPath::Opaque,
- BuiltPathBuilt
->;
-
-/**
- * A built path. Similar to a DerivedPath, but enriched with the corresponding
- * output path(s).
- */
-struct BuiltPath : _BuiltPathRaw {
- using Raw = _BuiltPathRaw;
- using Raw::Raw;
-
- using Opaque = DerivedPathOpaque;
- using Built = BuiltPathBuilt;
-
- inline const Raw & raw() const {
- return static_cast<const Raw &>(*this);
- }
-
- StorePathSet outPaths() const;
- RealisedPath::Set toRealisedPaths(Store & store) const;
-
-};
-
typedef std::vector<DerivedPath> DerivedPaths;
-typedef std::vector<BuiltPath> BuiltPaths;
}