summaryrefslogtreecommitdiffstats
path: root/src/hash.c
blob: cfdafc30ee6202ce36ec378a6d912d665556f95f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "hash.h"
#include <assert.h>

uint64_t vgltf_hash_fnv_1a(const char *bytes, size_t nbytes) {
  assert(bytes);
  static const uint64_t FNV_OFFSET_BASIS = 14695981039346656037u;
  static const uint64_t FNV_PRIME = 1099511628211u;
  uint64_t hash = FNV_OFFSET_BASIS;
  for (size_t i = 0; i < nbytes; i++) {
    hash = hash ^ bytes[i];
    hash = hash * FNV_PRIME;
  }

  return hash;
}
Go back to lisible.xyz