aboutsummaryrefslogtreecommitdiff
path: root/lib/std/Build/Cache.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2024-07-04 23:13:22 -0400
committerGitHub <noreply@github.com>2024-07-04 23:13:22 -0400
commit0f8561d099e4d08be0a6e547dd88f21026504490 (patch)
tree69bdcb7800608daed4a8908406623f3bab38f0e4 /lib/std/Build/Cache.zig
parent790b8428a26457e7ed9ea20485b9d3085011b989 (diff)
parent74346b0f79ca4bf67d61008030c7cc3565bff3f9 (diff)
downloadzig-0f8561d099e4d08be0a6e547dd88f21026504490.tar.gz
zig-0f8561d099e4d08be0a6e547dd88f21026504490.zip
Merge pull request #20487 from ziglang/incremental-serialization
Zcu: extract serializable state from File
Diffstat (limited to 'lib/std/Build/Cache.zig')
-rw-r--r--lib/std/Build/Cache.zig42
1 files changed, 14 insertions, 28 deletions
diff --git a/lib/std/Build/Cache.zig b/lib/std/Build/Cache.zig
index 2977801cb5..6d43361ae4 100644
--- a/lib/std/Build/Cache.zig
+++ b/lib/std/Build/Cache.zig
@@ -250,14 +250,7 @@ pub const HashHelper = struct {
pub fn final(hh: *HashHelper) HexDigest {
var bin_digest: BinDigest = undefined;
hh.hasher.final(&bin_digest);
-
- var out_digest: HexDigest = undefined;
- _ = fmt.bufPrint(
- &out_digest,
- "{s}",
- .{fmt.fmtSliceHexLower(&bin_digest)},
- ) catch unreachable;
- return out_digest;
+ return binToHex(bin_digest);
}
pub fn oneShot(bytes: []const u8) [hex_digest_len]u8 {
@@ -265,16 +258,20 @@ pub const HashHelper = struct {
hasher.update(bytes);
var bin_digest: BinDigest = undefined;
hasher.final(&bin_digest);
- var out_digest: [hex_digest_len]u8 = undefined;
- _ = fmt.bufPrint(
- &out_digest,
- "{s}",
- .{fmt.fmtSliceHexLower(&bin_digest)},
- ) catch unreachable;
- return out_digest;
+ return binToHex(bin_digest);
}
};
+pub fn binToHex(bin_digest: BinDigest) HexDigest {
+ var out_digest: HexDigest = undefined;
+ _ = fmt.bufPrint(
+ &out_digest,
+ "{s}",
+ .{fmt.fmtSliceHexLower(&bin_digest)},
+ ) catch unreachable;
+ return out_digest;
+}
+
pub const Lock = struct {
manifest_file: fs.File,
@@ -426,11 +423,7 @@ pub const Manifest = struct {
var bin_digest: BinDigest = undefined;
self.hash.hasher.final(&bin_digest);
- _ = fmt.bufPrint(
- &self.hex_digest,
- "{s}",
- .{fmt.fmtSliceHexLower(&bin_digest)},
- ) catch unreachable;
+ self.hex_digest = binToHex(bin_digest);
self.hash.hasher = hasher_init;
self.hash.hasher.update(&bin_digest);
@@ -899,14 +892,7 @@ pub const Manifest = struct {
var bin_digest: BinDigest = undefined;
self.hash.hasher.final(&bin_digest);
- var out_digest: HexDigest = undefined;
- _ = fmt.bufPrint(
- &out_digest,
- "{s}",
- .{fmt.fmtSliceHexLower(&bin_digest)},
- ) catch unreachable;
-
- return out_digest;
+ return binToHex(bin_digest);
}
/// If `want_shared_lock` is true, this function automatically downgrades the