userver
C++ Async Framework
Loading...
Searching...
No Matches
nullable_traits.hpp
1
#
pragma
once
2
3
#
include
<
type_traits
>
4
5
#
include
<
userver
/
compiler
/
demangle
.
hpp
>
6
#
include
<
userver
/
storages
/
postgres
/
exceptions
.
hpp
>
7
8
USERVER_NAMESPACE_BEGIN
9
10
namespace
storages
::
postgres
::
io
::
traits
{
11
12
/// @brief Metafunction to detect nullability of a type.
13
template
<
typename
T>
14
struct
IsNullable
: std::false_type {};
15
template
<
typename
T>
16
inline
constexpr
bool
kIsNullable = IsNullable<T>::value;
17
18
template
<
typename
T>
19
struct
GetSetNull
{
20
inline
static
bool
IsNull(
const
T&) {
return
false
; }
21
inline
static
void
SetNull(T&) {
22
// TODO Consider a static_assert here
23
throw
TypeCannotBeNull
(
compiler
::GetTypeName<T>());
24
}
25
inline
static
void
SetDefault(T& value) { value = T{}; }
26
};
27
28
}
// namespace storages::postgres::io::traits
29
30
USERVER_NAMESPACE_END
userver
storages
postgres
io
nullable_traits.hpp
Generated on Wed May 15 2024 22:29:24 for userver by
Doxygen
1.10.0