aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/realisation.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstore/realisation.hh')
-rw-r--r--src/libstore/realisation.hh34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/libstore/realisation.hh b/src/libstore/realisation.hh
new file mode 100644
index 000000000..c573e1bb4
--- /dev/null
+++ b/src/libstore/realisation.hh
@@ -0,0 +1,34 @@
+#pragma once
+
+#include "path.hh"
+
+namespace nix {
+
+struct DrvOutput {
+ StorePath drvPath;
+ std::string outputName;
+
+ std::string to_string() const;
+
+ static DrvOutput parse(const std::string &);
+
+ bool operator<(const DrvOutput& other) const { return to_pair() < other.to_pair(); }
+ bool operator==(const DrvOutput& other) const { return to_pair() == other.to_pair(); }
+
+private:
+ // Just to make comparison operators easier to write
+ std::pair<StorePath, std::string> to_pair() const
+ { return std::make_pair(drvPath, outputName); }
+};
+
+struct Realisation {
+ DrvOutput id;
+ StorePath outPath;
+
+ std::string to_string() const;
+ static Realisation parse(const std::string & s, const std::string & whence);
+};
+
+typedef std::map<DrvOutput, Realisation> DrvOutputs;
+
+}