Files
MuditaOS/module-apps/apps-common/locks/widgets/LockHash.hpp
Adam Wulkiewicz fe708cdf31 [MOS-670] Change clang-format AlwaysBreakTemplateDeclarations to Yes
Add --all and --fix-all options to style-check-hook
2022-08-26 15:22:39 +02:00

31 lines
742 B
C++

// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
#include <locks/data/LockData.hpp>
#include <cstdint>
#include <vector>
#include <functional>
template <>
struct std::hash<std::vector<unsigned int>>
{
const static unsigned int digit_multiplier = 10;
uint32_t operator()(std::vector<unsigned int> const &input) const noexcept
{
uint32_t value = 0;
for (auto i : input) {
value = digit_multiplier * value + i;
}
return value;
}
};
static inline uint32_t getHash(locks::LockInput input)
{
static std::hash<std::vector<unsigned int>> hashEngine;
return hashEngine(input);
}