userver: userver/formats/serialize/boost_optional.hpp Source File
Loading...
Searching...
No Matches
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) {
20 return {};
21 }
22
23 return typename Value::Builder(*value).ExtractValue();
24}
25
26} // namespace formats::serialize
27
28USERVER_NAMESPACE_END