mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 13:54:21 +00:00
std.Build.Cache: add HexDigest type
This commit is contained in:
parent
69195d0cd4
commit
26e27f5f64
1 changed files with 15 additions and 14 deletions
|
|
@ -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{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue