#pragma once #include #include "hash.hh" #include "path.hh" #include "ref.hh" #include "types.hh" namespace nix { class Store; struct SourceAccessor; } namespace nix::fetchers { struct Settings; struct DownloadFileResult { StorePath storePath; std::string etag; std::string effectiveUrl; std::optional immutableUrl; }; DownloadFileResult downloadFile( ref store, const std::string & url, const std::string & name, const Headers & headers = {}); struct DownloadTarballResult { Hash treeHash; time_t lastModified; std::optional immutableUrl; ref accessor; }; /** * Download and import a tarball into the Git cache. The result is the * Git tree hash of the root directory. */ ref downloadTarball( ref store, const Settings & settings, const std::string & url); }