// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef UTIL_HASHING_H_ #define UTIL_HASHING_H_ #include <utility> #include <vector> namespace openscreen { // This value is taken from absl::Hash implementation. constexpr uint64_t kDefaultSeed = …0xc3a5c85c97cb3127); // Computes the aggregate hash of the provided hashable objects. // Seed must initially use a large prime between 2^63 and 2^64 as a starting // value, or the result of a previous call to this function. template <typename... T> uint64_t ComputeAggregateHash(uint64_t original_seed, const T&... objs) { … } template <typename... T> uint64_t ComputeAggregateHash(const T&... objs) { … } struct PairHash { … }; } // namespace openscreen #endif // UTIL_HASHING_H_