Commit 26e27f5f64

Loris Cro <kappaloris@gmail.com>
2023-12-11 23:08:03
std.Build.Cache: add HexDigest type
1 parent 69195d0
Changed files (1)
lib
std
Build
lib/std/Build/Cache.zig
@@ -179,6 +179,7 @@ fn getPrefixSubpath(allocator: Allocator, prefix: []const u8, path: []u8) ![]u8
 pub const bin_digest_len = 16;
 pub const hex_digest_len = bin_digest_len * 2;
 pub const BinDigest = [bin_digest_len]u8;
+pub const HexDigest = [hex_digest_len]u8;
 
 /// This is currently just an arbitrary non-empty string that can't match another manifest line.
 const manifest_header = "0";
@@ -300,11 +301,11 @@ pub const HashHelper = struct {
     }
 
     /// Returns a hex encoded hash of the inputs, mutating the state of the hasher.
-    pub fn final(hh: *HashHelper) [hex_digest_len]u8 {
+    pub fn final(hh: *HashHelper) HexDigest {
         var bin_digest: BinDigest = undefined;
         hh.hasher.final(&bin_digest);
 
-        var out_digest: [hex_digest_len]u8 = undefined;
+        var out_digest: HexDigest = undefined;
         _ = fmt.bufPrint(
             &out_digest,
             "{s}",
@@ -346,7 +347,7 @@ pub const Manifest = struct {
     // will then use the same timestamp, to avoid unnecessary filesystem writes.
     want_refresh_timestamp: bool = true,
     files: std.ArrayListUnmanaged(File) = .{},
-    hex_digest: [hex_digest_len]u8,
+    hex_digest: HexDigest,
     /// Populated when hit() returns an error because of one
     /// of the files listed in the manifest.
     failed_file_index: ?usize = null,
@@ -829,7 +830,7 @@ pub const Manifest = struct {
     }
 
     /// Returns a hex encoded hash of the inputs.
-    pub fn final(self: *Manifest) [hex_digest_len]u8 {
+    pub fn final(self: *Manifest) HexDigest {
         assert(self.manifest_file != null);
 
         // We don't close the manifest file yet, because we want to
@@ -841,7 +842,7 @@ pub const Manifest = struct {
         var bin_digest: BinDigest = undefined;
         self.hash.hasher.final(&bin_digest);
 
-        var out_digest: [hex_digest_len]u8 = undefined;
+        var out_digest: HexDigest = undefined;
         _ = fmt.bufPrint(
             &out_digest,
             "{s}",
@@ -1021,8 +1022,8 @@ test "cache file and then recall it" {
         std.time.sleep(1);
     }
 
-    var digest1: [hex_digest_len]u8 = undefined;
-    var digest2: [hex_digest_len]u8 = undefined;
+    var digest1: HexDigest = undefined;
+    var digest2: HexDigest = undefined;
 
     {
         var cache = Cache{
@@ -1089,8 +1090,8 @@ test "check that changing a file makes cache fail" {
         std.time.sleep(1);
     }
 
-    var digest1: [hex_digest_len]u8 = undefined;
-    var digest2: [hex_digest_len]u8 = undefined;
+    var digest1: HexDigest = undefined;
+    var digest2: HexDigest = undefined;
 
     {
         var cache = Cache{
@@ -1152,8 +1153,8 @@ test "no file inputs" {
 
     const temp_manifest_dir = "no_file_inputs_manifest_dir";
 
-    var digest1: [hex_digest_len]u8 = undefined;
-    var digest2: [hex_digest_len]u8 = undefined;
+    var digest1: HexDigest = undefined;
+    var digest2: HexDigest = undefined;
 
     var cache = Cache{
         .gpa = testing.allocator,
@@ -1211,9 +1212,9 @@ test "Manifest with files added after initial hash work" {
         std.time.sleep(1);
     }
 
-    var digest1: [hex_digest_len]u8 = undefined;
-    var digest2: [hex_digest_len]u8 = undefined;
-    var digest3: [hex_digest_len]u8 = undefined;
+    var digest1: HexDigest = undefined;
+    var digest2: HexDigest = undefined;
+    var digest3: HexDigest = undefined;
 
     {
         var cache = Cache{