userver: /data/code/userver/libraries/proto-structs/src/proto-structs/duration.cpp Source File
Loading...
Searching...
No Matches
duration.cpp
1#include <userver/proto-structs/duration.hpp>
2
3#include <fmt/format.h>
4
5#include <userver/proto-structs/exceptions.hpp>
6#include <userver/utils/impl/internal_tag.hpp>
7
8USERVER_NAMESPACE_BEGIN
9
10namespace proto_structs {
11
12Duration::Duration(utils::impl::InternalTag, std::int64_t seconds, std::int32_t nanos)
13 : Duration(std::chrono::seconds{seconds}, std::chrono::nanoseconds{nanos}) {}
14
15void Duration::ThrowError(const std::chrono::seconds& seconds, const std::chrono::nanoseconds& nanos) {
16 throw ValueError(fmt::format("Duration '{}s.{}ns' is invalid or out of range", seconds.count(), nanos.count()));
17}
18
19void Duration::ThrowError(const char* reason) { throw ValueError(reason); }
20
21} // namespace proto_structs
22
23USERVER_NAMESPACE_END