From e94397a97d5f89e533c768ebb8de3ee306e18be4 Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Wed, 20 Oct 2021 11:18:13 -0700 Subject: [PATCH] [wpiutil] Move json_serializer.h to public headers (#3646) This makes it possible to do "manual" JSON-compliant serialization more efficiently (e.g. without needing to construct a full json object). --- wpiutil/src/main/native/cpp/json_serializer.cpp | 2 +- wpiutil/src/main/native/include/wpi/json.h | 3 ++- .../src/main/native/{cpp => include/wpi}/json_serializer.h | 6 +++--- 3 files changed, 6 insertions(+), 5 deletions(-) rename wpiutil/src/main/native/{cpp => include/wpi}/json_serializer.h (97%) diff --git a/wpiutil/src/main/native/cpp/json_serializer.cpp b/wpiutil/src/main/native/cpp/json_serializer.cpp index 4f71bc817e..1101f66122 100644 --- a/wpiutil/src/main/native/cpp/json_serializer.cpp +++ b/wpiutil/src/main/native/cpp/json_serializer.cpp @@ -38,7 +38,7 @@ SOFTWARE. #include "wpi/SmallString.h" #include "wpi/raw_os_ostream.h" -#include "json_serializer.h" +#include "wpi/json_serializer.h" namespace wpi { diff --git a/wpiutil/src/main/native/include/wpi/json.h b/wpiutil/src/main/native/include/wpi/json.h index 0197cd61a3..1a4e410f41 100644 --- a/wpiutil/src/main/native/include/wpi/json.h +++ b/wpiutil/src/main/native/include/wpi/json.h @@ -2678,9 +2678,10 @@ class json class binary_writer; class lexer; class parser; - class serializer; public: + class serializer; + using value_t = detail::value_t; /// @copydoc wpi::json_pointer using json_pointer = ::wpi::json_pointer; diff --git a/wpiutil/src/main/native/cpp/json_serializer.h b/wpiutil/src/main/native/include/wpi/json_serializer.h similarity index 97% rename from wpiutil/src/main/native/cpp/json_serializer.h rename to wpiutil/src/main/native/include/wpi/json_serializer.h index 35907a24a9..195982e7dd 100644 --- a/wpiutil/src/main/native/cpp/json_serializer.h +++ b/wpiutil/src/main/native/include/wpi/json_serializer.h @@ -75,6 +75,7 @@ class json::serializer @param[in] val value to serialize @param[in] pretty_print whether the output shall be pretty-printed + @param[in] ensure_ascii whether the output shall only use ASCII chars @param[in] indent_step the indent level @param[in] current_indent the current indent level (only used internally) */ @@ -83,7 +84,6 @@ class json::serializer const unsigned int indent_step, const unsigned int current_indent = 0); - private: /*! @brief dump escaped string @@ -94,9 +94,9 @@ class json::serializer @param[in] s the string to escape @param[in] ensure_ascii whether to escape non-ASCII characters with - \uXXXX sequences + "\uXXXX" sequences - @complexity Linear in the length of string @a s. + Complexity: Linear in the length of string @a s. */ void dump_escaped(std::string_view s, const bool ensure_ascii);