Function final [src]

Prototype

pub fn final(self: *Wyhash) u64

Parameters

self: *Wyhash

Source

pub fn final(self: *Wyhash) u64 { var input: []const u8 = self.buf[0..self.buf_len]; var newSelf = self.shallowCopy(); // ensure idempotency if (self.total_len <= 16) { newSelf.smallKey(input); } else { var offset: usize = 0; if (self.buf_len < 16) { var scratch: [16]u8 = undefined; const rem = 16 - self.buf_len; @memcpy(scratch[0..rem], self.buf[self.buf.len - rem ..][0..rem]); @memcpy(scratch[rem..][0..self.buf_len], self.buf[0..self.buf_len]); // Same as input but with additional bytes preceding start in case of a short buffer input = &scratch; offset = rem; } newSelf.final0(); newSelf.final1(input, offset); } return newSelf.final2(); }