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_;