aboutsummaryrefslogtreecommitdiff
path: root/src/libexpr/flake/eval-cache.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/libexpr/flake/eval-cache.hh')
-rw-r--r--src/libexpr/flake/eval-cache.hh103
1 files changed, 0 insertions, 103 deletions
diff --git a/src/libexpr/flake/eval-cache.hh b/src/libexpr/flake/eval-cache.hh
deleted file mode 100644
index a2c21b6ea..000000000
--- a/src/libexpr/flake/eval-cache.hh
+++ /dev/null
@@ -1,103 +0,0 @@
-#pragma once
-
-#include "sync.hh"
-#include "hash.hh"
-#include "eval.hh"
-
-#include <variant>
-
-namespace nix::eval_cache {
-
-class AttrDb;
-class AttrCursor;
-
-class EvalCache : public std::enable_shared_from_this<EvalCache>
-{
- friend class AttrCursor;
-
- std::shared_ptr<AttrDb> db;
- EvalState & state;
- typedef std::function<Value *()> RootLoader;
- RootLoader rootLoader;
- RootValue value;
-
- Value * getRootValue();
-
-public:
-
- EvalCache(
- bool useCache,
- const Hash & fingerprint,
- EvalState & state,
- RootLoader rootLoader);
-
- std::shared_ptr<AttrCursor> getRoot();
-};
-
-enum AttrType {
- Placeholder = 0,
- FullAttrs = 1,
- String = 2,
- Missing = 3,
- Misc = 4,
- Failed = 5,
-};
-
-struct placeholder_t {};
-struct missing_t {};
-struct misc_t {};
-struct failed_t {};
-typedef uint64_t AttrId;
-typedef std::pair<AttrId, Symbol> AttrKey;
-typedef std::variant<std::vector<Symbol>, std::string, placeholder_t, missing_t, misc_t, failed_t> AttrValue;
-
-class AttrCursor : public std::enable_shared_from_this<AttrCursor>
-{
- friend class EvalCache;
-
- ref<EvalCache> root;
- typedef std::optional<std::pair<std::shared_ptr<AttrCursor>, Symbol>> Parent;
- Parent parent;
- RootValue _value;
- std::optional<std::pair<AttrId, AttrValue>> cachedValue;
-
- AttrKey getKey();
-
- Value & getValue();
-
-public:
-
- AttrCursor(
- ref<EvalCache> root,
- Parent parent,
- Value * value = nullptr,
- std::optional<std::pair<AttrId, AttrValue>> && cachedValue = {});
-
- std::vector<Symbol> getAttrPath() const;
-
- std::vector<Symbol> getAttrPath(Symbol name) const;
-
- std::string getAttrPathStr() const;
-
- std::string getAttrPathStr(Symbol name) const;
-
- std::shared_ptr<AttrCursor> maybeGetAttr(Symbol name);
-
- std::shared_ptr<AttrCursor> maybeGetAttr(std::string_view name);
-
- std::shared_ptr<AttrCursor> getAttr(Symbol name);
-
- std::shared_ptr<AttrCursor> getAttr(std::string_view name);
-
- std::shared_ptr<AttrCursor> findAlongAttrPath(const std::vector<Symbol> & attrPath);
-
- std::string getString();
-
- std::vector<Symbol> getAttrs();
-
- bool isDerivation();
-
- Value & forceValue();
-};
-
-}