userver
C++ Async Framework
Loading...
Searching...
No Matches
validator.hpp
1
#
pragma
once
2
3
#
include
<
utility
>
4
5
USERVER_NAMESPACE_BEGIN
6
7
namespace
formats
::
json
::
parser
{
8
9
template
<
typename
T>
10
class
BaseValidator
{
11
public
:
12
virtual
void
operator()(
const
T& t)
const
= 0;
13
};
14
15
template
<
typename
T,
typename
F>
16
class
Validator
final
:
public
BaseValidator
<T> {
17
public
:
18
explicit
Validator(F f)
19
: f_(std::move(f))
20
{}
21
22
void
operator()(
const
T& t)
const
override
{ f_(t); }
23
24
private
:
25
F f_;
26
};
27
28
template
<
typename
T>
29
class
EmptyValidator
final
:
public
BaseValidator
<T> {
30
public
:
31
void
operator()(
const
T&)
const
override
{}
32
};
33
34
template
<
typename
T,
typename
F>
35
auto
MakeValidator(F f) {
36
return
Validator<T, F>(std::move(f));
37
}
38
39
template
<
typename
T>
40
inline
constexpr
EmptyValidator<T> kEmptyValidator;
41
42
}
// namespace formats::json::parser
43
44
USERVER_NAMESPACE_END
userver
formats
json
parser
validator.hpp
Generated on Fri Dec 5 2025 12:23:54 for userver by
Doxygen
1.13.2