#include #include #include #include #include #include #include #include #include #include "eval-args.hh" class MyArgs; namespace nix { class EvalState; struct DrvInfo; } // namespace nix /* The fields of a derivation that are printed in json form */ struct Drv { std::string name; std::string system; std::string drvPath; enum class CacheStatus { Cached, Uncached, Unknown } cacheStatus; std::map outputs; std::map> inputDrvs; std::optional meta; Drv(std::string &attrPath, nix::EvalState &state, nix::DrvInfo &drvInfo, MyArgs &args); }; void to_json(nlohmann::json &json, const Drv &drv);