28class SIMO_PUBLIC Count :
public Statistic {
30 BOOST_TYPE_INDEX_REGISTER_RUNTIME_CLASS(Statistic)
31 constexpr Count(
const std::string& name,
const int64_t initial_value)
32 : Statistic(name), val(initial_value) {}
34 constexpr Count(
const Count& other) : Count(other.name_, other.val) {}
36 explicit constexpr Count(
const std::string& name) : Count(name, 0) {}
38 constexpr Count() : Count(
"") {}
40 Count& operator=(
const Count& other);
42 Count& operator+=(
const int64_t& delta);
44 Count& operator-=(
const int64_t& delta);
48 Count operator++(
int);
52 Count operator--(
int);
54 Count operator-(
const Count& other)
const;
55 Count operator+(
const int64_t& delta)
const;
57 const Statistic& other)
const override;
58 void assign_from(
const Statistic& other)
override;
60 int64_t operator()()
const;
62 [[nodiscard]] int64_t value()
const;
66 [[nodiscard]] std::unique_ptr<Statistic>
clone()
const override {
67 return std::make_unique<Count>(*
this);
70 [[nodiscard]] glz::generic_u64 dump_representation()
const override;