updated build system
All checks were successful
BlockStorage/repertory/pipeline/head This commit looks good

This commit is contained in:
2024-08-04 19:12:42 -05:00
parent fa0f648a0b
commit 60b89c5c08
3 changed files with 62 additions and 7 deletions

View File

@ -66,11 +66,13 @@ template <typename data_t>
template <typename data_t>
[[nodiscard]] inline auto generate_random(std::size_t size) -> data_t;
#endif // defined(PROJECT_ENABLE_LIBSODIUM)
template <typename data_t>
[[nodiscard]] inline auto generate_random_between(data_t begin,
data_t end) -> data_t;
#if defined(PROJECT_ENABLE_LIBSODIUM)
[[nodiscard]] auto generate_random_string(std::size_t length) -> std::string;
[[nodiscard]] auto generate_random_wstring(std::size_t length) -> std::wstring;
@ -121,12 +123,20 @@ inline auto generate_random(std::size_t size) -> data_t {
randombytes_buf(ret.data(), ret.size() * sizeof(typename data_t::value_type));
return ret;
}
#endif // defined(PROJECT_ENABLE_LIBSODIUM)
template <typename data_t>
inline auto generate_random_between(data_t begin, data_t end) -> data_t {
return begin + generate_random<data_t>() % ((end + data_t{1}) - begin);
static_assert(std::is_integral_v<std::remove_cv_t<data_t>>,
"data_t must be an integral type");
if (end <= begin) {
throw std::range_error("end must be greater than begin");
}
static std::mt19937 gen(std::random_device{}());
std::uniform_int_distribution<data_t> dis(begin, end);
return dis(gen);
}
#endif // defined(PROJECT_ENABLE_LIBSODIUM)
} // namespace repertory::utils
#endif // REPERTORY_INCLUDE_UTILS_COMMON_HPP_