pub const Fingerprint = packed struct(u64)
pub const Fingerprint = packed struct(u64) { id: u32, checksum: u32, pub fn generate(rng: std.Random, name: []const u8) Fingerprint { return .{ .id = rng.intRangeLessThan(u32, 1, 0xffffffff), .checksum = std.hash.Crc32.hash(name), }; } pub fn validate(n: Fingerprint, name: []const u8) bool { switch (n.id) { 0x00000000, 0xffffffff => return false, else => return std.hash.Crc32.hash(name) == n.checksum, } } pub fn int(n: Fingerprint) u64 { return @bitCast(n); } }