impl/serialize.hpp

100.0% Lines (88/88) 100.0% List of functions (11/11)
f(x) Functions (11)
Function Calls Lines Branches Blocks
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::json::serialize<bool>(bool const&, boost::json::serialize_options const&) :27 6x 100.0% 73.0% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::json::serialize<decltype(nullptr)>(decltype(nullptr) const&, boost::json::serialize_options const&) :27 6x 100.0% 73.0% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::json::serialize<double>(double const&, boost::json::serialize_options const&) :27 3x 100.0% 73.0% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::json::serialize<long>(long const&, boost::json::serialize_options const&) :27 3x 100.0% 73.0% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::json::serialize<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::json::serialize_options const&) :27 3x 100.0% 73.0% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::json::serialize<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > const&, boost::json::serialize_options const&) :27 3x 100.0% 73.0% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::json::serialize<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<int, std::allocator<int> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<int, std::allocator<int> > > > > >(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<int, std::allocator<int> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<int, std::allocator<int> > > > > const&, boost::json::serialize_options const&) :27 1x 100.0% 73.0% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::json::serialize<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, bool> >(std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, bool> const&, boost::json::serialize_options const&) :27 3x 100.0% 73.0% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::json::serialize<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<int, bool> > >(std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<int, bool> > const&, boost::json::serialize_options const&) :27 3x 100.0% 73.0% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::json::serialize<std::vector<int, std::allocator<int> > >(std::vector<int, std::allocator<int> > const&, boost::json::serialize_options const&) :27 3x 100.0% 73.0% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::json::serialize<unsigned long>(unsigned long const&, boost::json::serialize_options const&) :27 6x 100.0% 73.0%
Line TLA Hits Source Code
1 //
2 // Copyright (c) 2023 Dmitry Arkhipov (grisumbras@yandex.ru)
3 //
4 // Distributed under the Boost Software License, Version 1.0. (See accompanying
5 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 //
7 // Official repository: https://github.com/boostorg/json
8 //
9
10 #ifndef BOOST_JSON_IMPL_SERIALIZE_HPP
11 #define BOOST_JSON_IMPL_SERIALIZE_HPP
12
13 #include <boost/json/serializer.hpp>
14
15 namespace boost {
16 namespace json {
17 namespace detail {
18
19 BOOST_JSON_DECL
20 void
21 serialize_impl(std::string& s, serializer& sr);
22
23 } // namespace detail
24
25 template<class T>
26 std::string
27 40x serialize(T const& t, serialize_options const& opts)
28 {
29 unsigned char buf[256];
30 40x serializer sr(
31 80x storage_ptr(),
32 buf,
33 sizeof(buf),
34 opts);
35 40x std::string s;
36 40x sr.reset(&t);
37 40x detail::serialize_impl(s, sr);
38 80x return s;
39 40x }
40
41 } // namespace json
42 } // namespace boost
43
44 #endif // BOOST_JSON_IMPL_SERIALIZE_HPP
45