hashing.zig 445 B

1234567891011121314151617181920212223242526
  1. const std = @import("std");
  2. pub fn hashKey(k: []const u8) u32 {
  3. return djb2(k);
  4. }
  5. pub fn xoramasrosas(k: []const u8) u32 {
  6. var hash: u32 = 17 * 22;
  7. const x = "xoramasrosas";
  8. for (k, 0..) |char, i| {
  9. hash = hash +% (char ^ x[i % 12]) << 12;
  10. }
  11. return hash;
  12. }
  13. pub fn djb2(key: []const u8) u32 {
  14. var hash: u32 = 5381;
  15. for (key) |c| {
  16. hash = ((hash << 5) +% hash) +% c;
  17. }
  18. return hash;
  19. }