authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-07-04 14:15:15-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-07-04 17:12:45-07:00
log7ed2fbd7559ceb69ab03a8985fd7e5b591e22ab7
tree25b2025afaf7c384dc87d3dbbe335f62b2d9bdd1
parent29512f0edd9134ffe1f645ad69b5c4a3e1a7c7c3

std.Build.Cache: add binToHex function

reduces need for API users to rely on formatted printing, even though that's how it is currently implemented.

1 files changed, 14 insertions(+), 28 deletions(-)

lib/std/Build/Cache.zig+14-28
...@@ -250,14 +250,7 @@ pub const HashHelper = struct {...@@ -250,14 +250,7 @@ pub const HashHelper = struct {
250 pub fn final(hh: *HashHelper) HexDigest {250 pub fn final(hh: *HashHelper) HexDigest {
251 var bin_digest: BinDigest = undefined;251 var bin_digest: BinDigest = undefined;
252 hh.hasher.final(&bin_digest);252 hh.hasher.final(&bin_digest);
253253 return binToHex(bin_digest);
254 var out_digest: HexDigest = undefined;
255 _ = fmt.bufPrint(
256 &out_digest,
257 "{s}",
258 .{fmt.fmtSliceHexLower(&bin_digest)},
259 ) catch unreachable;
260 return out_digest;
261 }254 }
262255
263 pub fn oneShot(bytes: []const u8) [hex_digest_len]u8 {256 pub fn oneShot(bytes: []const u8) [hex_digest_len]u8 {
...@@ -265,16 +258,20 @@ pub const HashHelper = struct {...@@ -265,16 +258,20 @@ pub const HashHelper = struct {
265 hasher.update(bytes);258 hasher.update(bytes);
266 var bin_digest: BinDigest = undefined;259 var bin_digest: BinDigest = undefined;
267 hasher.final(&bin_digest);260 hasher.final(&bin_digest);
268 var out_digest: [hex_digest_len]u8 = undefined;261 return binToHex(bin_digest);
269 _ = fmt.bufPrint(
270 &out_digest,
271 "{s}",
272 .{fmt.fmtSliceHexLower(&bin_digest)},
273 ) catch unreachable;
274 return out_digest;
275 }262 }
276};263};
277264
265pub fn binToHex(bin_digest: BinDigest) HexDigest {
266 var out_digest: HexDigest = undefined;
267 _ = fmt.bufPrint(
268 &out_digest,
269 "{s}",
270 .{fmt.fmtSliceHexLower(&bin_digest)},
271 ) catch unreachable;
272 return out_digest;
273}
274
278pub const Lock = struct {275pub const Lock = struct {
279 manifest_file: fs.File,276 manifest_file: fs.File,
280277
...@@ -426,11 +423,7 @@ pub const Manifest = struct {...@@ -426,11 +423,7 @@ pub const Manifest = struct {
426 var bin_digest: BinDigest = undefined;423 var bin_digest: BinDigest = undefined;
427 self.hash.hasher.final(&bin_digest);424 self.hash.hasher.final(&bin_digest);
428425
429 _ = fmt.bufPrint(426 self.hex_digest = binToHex(bin_digest);
430 &self.hex_digest,
431 "{s}",
432 .{fmt.fmtSliceHexLower(&bin_digest)},
433 ) catch unreachable;
434427
435 self.hash.hasher = hasher_init;428 self.hash.hasher = hasher_init;
436 self.hash.hasher.update(&bin_digest);429 self.hash.hasher.update(&bin_digest);
...@@ -899,14 +892,7 @@ pub const Manifest = struct {...@@ -899,14 +892,7 @@ pub const Manifest = struct {
899 var bin_digest: BinDigest = undefined;892 var bin_digest: BinDigest = undefined;
900 self.hash.hasher.final(&bin_digest);893 self.hash.hasher.final(&bin_digest);
901894
902 var out_digest: HexDigest = undefined;895 return binToHex(bin_digest);
903 _ = fmt.bufPrint(
904 &out_digest,
905 "{s}",
906 .{fmt.fmtSliceHexLower(&bin_digest)},
907 ) catch unreachable;
908
909 return out_digest;
910 }896 }
911897
912 /// If `want_shared_lock` is true, this function automatically downgrades the898 /// If `want_shared_lock` is true, this function automatically downgrades the