#pragma once #include "path.hh" namespace nix { struct StorePathWithOutputs { StorePath path; std::set outputs; std::string to_string(const Store & store) const; }; std::pair parsePathWithOutputs(std::string_view s); class Store; /* Split a string specifying a derivation and a set of outputs (/nix/store/hash-foo!out1,out2,...) into the derivation path and the outputs. */ StorePathWithOutputs parsePathWithOutputs(const Store & store, std::string_view pathWithOutputs); StorePathWithOutputs followLinksToStorePathWithOutputs(const Store & store, std::string_view pathWithOutputs); }