Function addFilePostFetch [src]

Add a file as a dependency of process being cached, after the initial hash has been calculated. This is useful for processes that don't know all the files that are depended on ahead of time. For example, a source file that can import other files will need to be recompiled if the imported file is changed.

Prototype

pub fn addFilePostFetch(self: *Manifest, file_path: []const u8, max_file_size: usize) ![]const u8

Parameters

self: *Manifestfile_path: []const u8max_file_size: usize

Source

pub fn addFilePostFetch(self: *Manifest, file_path: []const u8, max_file_size: usize) ![]const u8 { assert(self.manifest_file != null); const gpa = self.cache.gpa; const prefixed_path = try self.cache.findPrefix(file_path); errdefer gpa.free(prefixed_path.sub_path); const gop = try self.files.getOrPutAdapted(gpa, prefixed_path, FilesAdapter{}); errdefer _ = self.files.pop(); if (gop.found_existing) { gpa.free(prefixed_path.sub_path); return gop.key_ptr.contents.?; } gop.key_ptr.* = .{ .prefixed_path = prefixed_path, .max_file_size = max_file_size, .stat = undefined, .bin_digest = undefined, .contents = null, }; self.files.lockPointers(); defer self.files.unlockPointers(); try self.populateFileHash(gop.key_ptr); return gop.key_ptr.contents.?; }