summaryrefslogtreecommitdiff
path: root/http
diff options
context:
space:
mode:
authorEd Tanous <ed@tanous.net>2024-03-26 23:19:52 +0300
committerEd Tanous <ed@tanous.net>2024-04-29 22:15:32 +0300
commit95c6307a9b2c02f74b5f5c677d6983f996332ee6 (patch)
tree551ad48ec6f6ca607225b123543459dbd10e76f8 /http
parent3ad903a76521547d2372c56a34c9c2e2c30ec98d (diff)
downloadbmcweb-95c6307a9b2c02f74b5f5c677d6983f996332ee6.tar.xz
Break out formatters
In the change made to move to std::format, we defined some custom type formatters in logging.hpp. This had the unintended effect of making all compile units pull in the majority of boost::url, and nlohmann::json as includes. This commit breaks out boost and json formatters into their own separate includes. Tested: Code compiles. Logging changes only. Change-Id: I6a788533169f10e19130a1910cd3be0cc729b020 Signed-off-by: Ed Tanous <ed@tanous.net>
Diffstat (limited to 'http')
-rw-r--r--http/complete_response_fields.hpp1
-rw-r--r--http/logging.hpp91
2 files changed, 1 insertions, 91 deletions
diff --git a/http/complete_response_fields.hpp b/http/complete_response_fields.hpp
index 1ac75ad8c2..bec33fc804 100644
--- a/http/complete_response_fields.hpp
+++ b/http/complete_response_fields.hpp
@@ -1,6 +1,7 @@
#pragma once
#include "authentication.hpp"
+#include "boost_formatters.hpp"
#include "http_request.hpp"
#include "http_response.hpp"
#include "http_utility.hpp"
diff --git a/http/logging.hpp b/http/logging.hpp
index de14d99e8f..9b1a36b143 100644
--- a/http/logging.hpp
+++ b/http/logging.hpp
@@ -2,12 +2,6 @@
#include "bmcweb_config.h"
-#include <boost/system/error_code.hpp>
-#include <boost/url/pct_string_view.hpp>
-#include <boost/url/string_view.hpp>
-#include <boost/url/url_view_base.hpp>
-#include <nlohmann/json.hpp>
-
#include <bit>
#include <format>
#include <iostream>
@@ -15,64 +9,8 @@
#include <string_view>
#include <system_error>
-// Clang-tidy would rather these be static, but using static causes the template
-// specialization to not function. Ignore the warning.
// NOLINTBEGIN(readability-convert-member-functions-to-static, cert-dcl58-cpp)
template <>
-struct std::formatter<boost::system::error_code>
-{
- constexpr auto parse(std::format_parse_context& ctx)
- {
- return ctx.begin();
- }
-
- auto format(const boost::system::error_code& ec, auto& ctx) const
- {
- return std::format_to(ctx.out(), "{}", ec.what());
- }
-};
-
-template <>
-struct std::formatter<boost::urls::pct_string_view>
-{
- constexpr auto parse(std::format_parse_context& ctx)
- {
- return ctx.begin();
- }
- auto format(const boost::urls::pct_string_view& msg, auto& ctx) const
- {
- return std::format_to(ctx.out(), "{}",
- std::string_view(msg.data(), msg.size()));
- }
-};
-
-template <std::derived_from<boost::urls::url_view_base> URL>
-struct std::formatter<URL>
-{
- constexpr auto parse(std::format_parse_context& ctx)
- {
- return ctx.begin();
- }
- auto format(const URL& msg, auto& ctx) const
- {
- return std::format_to(ctx.out(), "{}", std::string_view(msg.buffer()));
- }
-};
-
-template <>
-struct std::formatter<boost::core::string_view>
-{
- constexpr auto parse(std::format_parse_context& ctx)
- {
- return ctx.begin();
- }
- auto format(const boost::core::string_view& msg, auto& ctx) const
- {
- return std::format_to(ctx.out(), "{}", std::string_view(msg));
- }
-};
-
-template <>
struct std::formatter<void*>
{
constexpr auto parse(std::format_parse_context& ctx)
@@ -85,35 +23,6 @@ struct std::formatter<void*>
std::to_string(std::bit_cast<size_t>(ptr)));
}
};
-
-template <>
-struct std::formatter<nlohmann::json::json_pointer>
-{
- constexpr auto parse(std::format_parse_context& ctx)
- {
- return ctx.begin();
- }
- auto format(const nlohmann::json::json_pointer& ptr, auto& ctx) const
- {
- return std::format_to(ctx.out(), "{}", ptr.to_string());
- }
-};
-
-template <>
-struct std::formatter<nlohmann::json>
-{
- static constexpr auto parse(std::format_parse_context& ctx)
- {
- return ctx.begin();
- }
- auto format(const nlohmann::json& json, auto& ctx) const
- {
- return std::format_to(
- ctx.out(), "{}",
- json.dump(-1, ' ', false,
- nlohmann::json::error_handler_t::replace));
- }
-};
// NOLINTEND(readability-convert-member-functions-to-static, cert-dcl58-cpp)
namespace crow