#pragma once #include #include "libstore/fs-accessor.hh" namespace nix { /* Return an object that provides access to the contents of a NAR file. */ ref makeNarAccessor(ref nar); /* Create a NAR accessor from a NAR listing (in the format produced by listNar()). The callback getNarBytes(offset, length) is used by the readFile() method of the accessor to get the contents of files inside the NAR. */ typedef std::function GetNarBytes; ref makeLazyNarAccessor(const std::string& listing, GetNarBytes getNarBytes); class JSONPlaceholder; /* Write a JSON representation of the contents of a NAR (except file contents). */ void listNar(JSONPlaceholder& res, const ref& accessor, const Path& path, bool recurse); } // namespace nix