7#include <userver/utils/span.hpp>
11namespace utils::statistics {
16namespace utils::statistics::impl::histogram {
27 constexpr Bucket()
noexcept =
default;
29 Bucket(
const Bucket& other)
noexcept;
30 Bucket& operator=(
const Bucket& other)
noexcept;
32 BoundOrSize upper_bound{0.0};
33 std::atomic<std::uint64_t> counter{0};
36void CopyBounds(Bucket* bucket_array, utils::span<
const double> upper_bounds);
38void CopyBoundsAndValues(Bucket* destination_array, HistogramView source);
40void Account(Bucket* bucket_array,
double value, std::uint64_t count)
noexcept;
42void Add(Bucket* bucket_array, HistogramView other);
44void ResetMetric(Bucket* bucket_array)
noexcept;
46HistogramView MakeView(
const Bucket* bucket_array)
noexcept;