userver: userver/utils/statistics/recentperiod_detail.hpp Source File
Loading...
Searching...
No Matches
recentperiod_detail.hpp
1#pragma once
2
3USERVER_NAMESPACE_BEGIN
4
5namespace utils::statistics::detail {
6
7// Detect if the result type provides Add(Counter, Duration, Duration) function
8template <typename Result, typename Counter, typename Duration>
9concept ResultWantsAddFunction = requires(Result& r, Counter c, Duration d) { r.Add(c, d, d); };
10
11// Detect if a counter can be added to the result
12template <typename Result, typename Counter>
13concept ResultCanUseAddAssign = requires(Result& r, const Counter& c) { r += c; };
14
15// Detect if a Counter provides a Reset function
16template <typename Counter>
17concept CanReset = requires(Counter& c) { c.Reset(); };
18
19} // namespace utils::statistics::detail
20
21USERVER_NAMESPACE_END