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;