unhit
Reset self.hash.hasher to the state it should be in after hit returns false.
The hasher contains the original input digest, and all original input file digests (i.e.
not including post files).
Assumes that bin_digest is populated for all files up to input_file_count. As such,
this is not necessarily safe to call within hit.
Function parameters
Parameters
- self:*Manifest
- input_file_count:usize
Type definitions in this namespace
Types
Functions in this namespace
Functions
- obtain
- Be sure to call `Manifest.deinit` after successful initialization.
- readSmallFile
- On operating systems that support symlinks, does a readlink.
- writeSmallFile
- On operating systems that support symlinks, does a symlink.
This is 128 bits - Even with 2^54 cache entries, the probably of a collision would be under 10^-6
Values
- bin_digest_len
- This is 128 bits - Even with 2^54 cache entries, the probably of a collision would be under 10^-6
- hex_digest_len
- = bin_digest_len * 2
- hasher_init
- Initial state with random bytes, that can be copied.
Source
Implementation
pub fn unhit(self: *Manifest, bin_digest: BinDigest, input_file_count: usize) void {
// Reset the hash.
self.hash.hasher = hasher_init;
self.hash.hasher.update(&bin_digest);
// Remove files not in the initial hash.
while (self.files.count() != input_file_count) {
var file = self.files.pop().?;
file.key.deinit(self.cache.gpa);
}
for (self.files.keys()) |file| {
self.hash.hasher.update(&file.bin_digest);
}
}