tiny.cook.Key
Defined in tiny.cook.
API (4)
Actions
Public operations.
Fields and members
Public fields and members.
Source
Source: lib/cook/src/cache.zig:20
zig
pub const Key = struct { digest: [32]u8, pub fn fromCodeFile(io: std.Io, deriver: []const u8, code_file: std.Io.File, input: []const u8) !Key { return init(deriver, try digestFile(io, code_file), input); } pub fn parseHex(hex_bytes: []const u8) !Key { if (hex_bytes.len != 64) return error.InvalidKey; var digest: [32]u8 = undefined; _ = std.fmt.hexToBytes(&digest, hex_bytes) catch return error.InvalidKey; if (!std.mem.eql(u8, hex_bytes, &std.fmt.bytesToHex(digest, .lower))) return error.InvalidKey; return .{ .digest = digest }; } fn init(deriver: []const u8, code: [32]u8, input: []const u8) Key { var hasher = Sha256.init(.{}); hasher.update("tiny-cook-key-v1"); hashFramed(&hasher, deriver); hashFramed(&hasher, &code); hashFramed(&hasher, input); var digest: [32]u8 = undefined; hasher.final(&digest); return .{ .digest = digest }; } pub fn hex(key: Key) [64]u8 { return std.fmt.bytesToHex(key.digest, .lower); }};Source: lib/cook/src/root.zig:4
zig
pub const Key = cache.Key;Audit
| Definitions | 4 |
|---|---|
| Public names | 4 |
| Members | 1 |
| Version | 26.7.0 |
| Revision | daab053ee433 |