From c0bebe35f17713f85232ce5ffee857f1f7e57c65 Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Tue, 27 Aug 2024 10:15:43 +0200 Subject: [PATCH] Improve message when user forgets third arg of `serializeJson()` et al. See #1449, #1491, #1543, #1665, and #2122 --- CHANGELOG.md | 1 + src/ArduinoJson/Json/JsonSerializer.hpp | 3 ++- src/ArduinoJson/Json/PrettyJsonSerializer.hpp | 3 ++- src/ArduinoJson/MsgPack/MsgPackSerializer.hpp | 3 ++- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d6d45847..3654430e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ HEAD * Store object members with two slots: one for the key and one for the value * Store 64-bit numbers (`double` and `long long`) in an additional slot * Reduce the slot size (see table below) +* Improve message when user forgets third arg of `serializeJson()` et al. | Architecture | before | after | |--------------|----------|----------| diff --git a/src/ArduinoJson/Json/JsonSerializer.hpp b/src/ArduinoJson/Json/JsonSerializer.hpp index 476142e4..f8cf70c0 100644 --- a/src/ArduinoJson/Json/JsonSerializer.hpp +++ b/src/ArduinoJson/Json/JsonSerializer.hpp @@ -129,7 +129,8 @@ ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE // Produces a minified JSON document. // https://arduinojson.org/v7/api/json/serializejson/ template -size_t serializeJson(JsonVariantConst source, TDestination& destination) { +detail::enable_if_t::value, size_t> +serializeJson(JsonVariantConst source, TDestination& destination) { using namespace detail; return serialize(source, destination); } diff --git a/src/ArduinoJson/Json/PrettyJsonSerializer.hpp b/src/ArduinoJson/Json/PrettyJsonSerializer.hpp index b5e9e0f7..9ae03673 100644 --- a/src/ArduinoJson/Json/PrettyJsonSerializer.hpp +++ b/src/ArduinoJson/Json/PrettyJsonSerializer.hpp @@ -84,7 +84,8 @@ ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE // Produces JsonDocument to create a prettified JSON document. // https://arduinojson.org/v7/api/json/serializejsonpretty/ template -size_t serializeJsonPretty(JsonVariantConst source, TDestination& destination) { +detail::enable_if_t::value, size_t> +serializeJsonPretty(JsonVariantConst source, TDestination& destination) { using namespace ArduinoJson::detail; return serialize(source, destination); } diff --git a/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp b/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp index b8374c4f..3058ad89 100644 --- a/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp +++ b/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp @@ -219,7 +219,8 @@ ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE // Produces a MessagePack document. // https://arduinojson.org/v7/api/msgpack/serializemsgpack/ template -inline size_t serializeMsgPack(JsonVariantConst source, TDestination& output) { +detail::enable_if_t::value, size_t> +serializeMsgPack(JsonVariantConst source, TDestination& output) { using namespace ArduinoJson::detail; return serialize(source, output); }