9#include <userver/utils/span.hpp>
10#include <userver/utils/statistics/fwd.hpp>
11#include <userver/utils/statistics/histogram_view.hpp>
13USERVER_NAMESPACE_BEGIN
15namespace utils::statistics {
17namespace impl::histogram {
63class Histogram
final {
67 explicit Histogram(utils::span<
const double> upper_bounds);
72 Histogram(Histogram&&)
noexcept;
73 Histogram(
const Histogram&);
74 Histogram& operator=(Histogram&&)
noexcept;
75 Histogram& operator=(
const Histogram&);
79 void Account(
double value, std::uint64_t count = 1)
noexcept;
89 HistogramView GetView() &&
noexcept =
delete;
95 std::unique_ptr<impl::histogram::Bucket[]> buckets_;
97 std::unique_ptr<impl::histogram::BoundsBlock[]> bounds_;
99 std::size_t bucket_count_;