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