userver: userver/formats/serialize/boost_optional.hpp Source File
⚠️ This is the documentation for an old userver version. Click here to switch to the latest version.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
boost_optional.hpp
Go to the documentation of this file.
1#pragma once
2
3/// @file userver/formats/serialize/boost_optional.hpp
4/// @brief Serializers for boost::optional
5/// @ingroup userver_universal userver_formats_serialize
6
7#include <boost/optional.hpp>
8
9#include <userver/formats/common/type.hpp>
10#include <userver/formats/serialize/to.hpp>
11
12USERVER_NAMESPACE_BEGIN
13
14/// Common serializers
15namespace formats::serialize {
16
17template <typename T, typename Value>
18Value Serialize(const boost::optional<T>& value, To<Value>) {
19 if (!value) return {};
20
21 return typename Value::Builder(*value).ExtractValue();
22}
23
24} // namespace formats::serialize
25
26USERVER_NAMESPACE_END