summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2020-10-26 16:58:58 +0100
committerEelco Dolstra <edolstra@gmail.com>2020-10-26 17:01:20 +0100
commit9d5e9ef0da89fe4fd02d7053ee28d79df3245325 (patch)
tree2cd78cf64f40b2f110eadcd85fc5b27b0e7352ff
parentdc7d1322efbaa176bff38b1ad15eab6e11c83340 (diff)
Move Explicit
-rw-r--r--src/libexpr/flake/lockfile.cc3
-rw-r--r--src/libexpr/primops/fetchTree.cc5
-rw-r--r--src/libfetchers/attrs.hh12
-rw-r--r--src/libutil/types.hh12
-rw-r--r--src/nix/flake.cc6
5 files changed, 20 insertions, 18 deletions
diff --git a/src/libexpr/flake/lockfile.cc b/src/libexpr/flake/lockfile.cc
index bb46e1bb4..a01a63611 100644
--- a/src/libexpr/flake/lockfile.cc
+++ b/src/libexpr/flake/lockfile.cc
@@ -34,7 +34,8 @@ LockedNode::LockedNode(const nlohmann::json & json)
, isFlake(json.find("flake") != json.end() ? (bool) json["flake"] : true)
{
if (!lockedRef.input.isImmutable())
- throw Error("lockfile contains mutable lock '%s'", attrsToJson(lockedRef.input.toAttrs()));
+ throw Error("lockfile contains mutable lock '%s'",
+ fetchers::attrsToJson(lockedRef.input.toAttrs()));
}
StorePath LockedNode::computeStorePath(Store & store) const
diff --git a/src/libexpr/primops/fetchTree.cc b/src/libexpr/primops/fetchTree.cc
index 7cd4d0fbf..8d7ae4c14 100644
--- a/src/libexpr/primops/fetchTree.cc
+++ b/src/libexpr/primops/fetchTree.cc
@@ -43,7 +43,8 @@ void emitTreeAttrs(
}
if (input.getType() == "git")
- mkBool(*state.allocAttr(v, state.symbols.create("submodules")), maybeGetBoolAttr(input.attrs, "submodules").value_or(false));
+ mkBool(*state.allocAttr(v, state.symbols.create("submodules")),
+ fetchers::maybeGetBoolAttr(input.attrs, "submodules").value_or(false));
if (auto revCount = input.getRevCount())
mkInt(*state.allocAttr(v, state.symbols.create("revCount")), *revCount);
@@ -101,7 +102,7 @@ static void fetchTree(
else if (attr.value->type == tString)
addURI(state, attrs, attr.name, attr.value->string.s);
else if (attr.value->type == tBool)
- attrs.emplace(attr.name, fetchers::Explicit<bool>{attr.value->boolean});
+ attrs.emplace(attr.name, Explicit<bool>{attr.value->boolean});
else if (attr.value->type == tInt)
attrs.emplace(attr.name, attr.value->integer);
else
diff --git a/src/libfetchers/attrs.hh b/src/libfetchers/attrs.hh
index 4b4630c80..56bcdcfc8 100644
--- a/src/libfetchers/attrs.hh
+++ b/src/libfetchers/attrs.hh
@@ -8,18 +8,6 @@
namespace nix::fetchers {
-/* Wrap bools to prevent string literals (i.e. 'char *') from being
- cast to a bool in Attr. */
-template<typename T>
-struct Explicit {
- T t;
-
- bool operator ==(const Explicit<T> & other) const
- {
- return t == other.t;
- }
-};
-
typedef std::variant<std::string, uint64_t, Explicit<bool>> Attr;
typedef std::map<std::string, Attr> Attrs;
diff --git a/src/libutil/types.hh b/src/libutil/types.hh
index 6c4c5ab74..9c85fef62 100644
--- a/src/libutil/types.hh
+++ b/src/libutil/types.hh
@@ -34,4 +34,16 @@ struct OnStartup
OnStartup(T && t) { t(); }
};
+/* Wrap bools to prevent string literals (i.e. 'char *') from being
+ cast to a bool in Attr. */
+template<typename T>
+struct Explicit {
+ T t;
+
+ bool operator ==(const Explicit<T> & other) const
+ {
+ return t == other.t;
+ }
+};
+
}
diff --git a/src/nix/flake.cc b/src/nix/flake.cc
index 43176d887..790e1ce95 100644
--- a/src/nix/flake.cc
+++ b/src/nix/flake.cc
@@ -82,11 +82,11 @@ static nlohmann::json flakeToJson(const Store & store, const Flake & flake)
if (flake.description)
j["description"] = *flake.description;
j["originalUrl"] = flake.originalRef.to_string();
- j["original"] = attrsToJson(flake.originalRef.toAttrs());
+ j["original"] = fetchers::attrsToJson(flake.originalRef.toAttrs());
j["resolvedUrl"] = flake.resolvedRef.to_string();
- j["resolved"] = attrsToJson(flake.resolvedRef.toAttrs());
+ j["resolved"] = fetchers::attrsToJson(flake.resolvedRef.toAttrs());
j["url"] = flake.lockedRef.to_string(); // FIXME: rename to lockedUrl
- j["locked"] = attrsToJson(flake.lockedRef.toAttrs());
+ j["locked"] = fetchers::attrsToJson(flake.lockedRef.toAttrs());
if (auto rev = flake.lockedRef.input.getRev())
j["revision"] = rev->to_string(Base16, false);
if (auto revCount = flake.lockedRef.input.getRevCount())