aboutsummaryrefslogtreecommitdiff
path: root/src/libfetchers/fetchers.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/libfetchers/fetchers.hh')
-rw-r--r--src/libfetchers/fetchers.hh18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/libfetchers/fetchers.hh b/src/libfetchers/fetchers.hh
index e8ae59143..a72cfafa4 100644
--- a/src/libfetchers/fetchers.hh
+++ b/src/libfetchers/fetchers.hh
@@ -21,6 +21,14 @@ struct Tree
struct InputScheme;
+/* The Input object is generated by a specific fetcher, based on the
+ * user-supplied input attribute in the flake.nix file, and contains
+ * the information that the specific fetcher needs to perform the
+ * actual fetch. The Input object is most commonly created via the
+ * "fromURL()" or "fromAttrs()" static functions which are provided
+ * the url or attrset specified in the flake file.
+ */
+
struct Input
{
friend struct InputScheme;
@@ -84,6 +92,16 @@ public:
std::optional<time_t> getLastModified() const;
};
+
+/* The InputScheme represents a type of fetcher. Each fetcher
+ * registers with nix at startup time. When processing an input for a
+ * flake, each scheme is given an opportunity to "recognize" that
+ * input from the url or attributes in the flake file's specification
+ * and return an Input object to represent the input if it is
+ * recognized. The Input object contains the information the fetcher
+ * needs to actually perform the "fetch()" when called.
+ */
+
struct InputScheme
{
virtual ~InputScheme()