Drop the AGPL license in favor of a source-available license. See the blog post [1] for details. [1] https://www.scylladb.com/2024/12/18/why-were-moving-to-a-source-available-license/
33 lines
735 B
C++
33 lines
735 B
C++
/*
|
|
* Copyright (C) 2023-present ScyllaDB
|
|
*/
|
|
|
|
/*
|
|
* SPDX-License-Identifier: LicenseRef-ScyllaDB-Source-Available-1.0
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#pragma GCC diagnostic push
|
|
#pragma GCC diagnostic ignored "-Warray-bounds"
|
|
#include <xxhash.h>
|
|
#pragma GCC diagnostic pop
|
|
|
|
#include "utils/hashing.hh"
|
|
|
|
template<typename H>
|
|
concept SimpleHasher = HasherReturning<H, size_t>;
|
|
|
|
struct simple_xx_hasher : public hasher {
|
|
XXH64_state_t _state;
|
|
simple_xx_hasher(uint64_t seed = 0) noexcept {
|
|
XXH64_reset(&_state, seed);
|
|
}
|
|
void update(const char* ptr, size_t length) noexcept override {
|
|
XXH64_update(&_state, ptr, length);
|
|
}
|
|
size_t finalize() {
|
|
return static_cast<size_t>(XXH64_digest(&_state));
|
|
}
|
|
};
|