Add a stub for add()

This commit is contained in:
Benoit Blanchon
2023-08-09 15:27:16 +02:00
parent 53d54ba9d7
commit 11373af344
6 changed files with 60 additions and 0 deletions

View File

@ -15,6 +15,7 @@ if(MSVC)
endif() endif()
add_executable(DeprecatedTests add_executable(DeprecatedTests
add.cpp
BasicJsonDocument.cpp BasicJsonDocument.cpp
DynamicJsonDocument.cpp DynamicJsonDocument.cpp
memoryUsage.cpp memoryUsage.cpp

View File

@ -0,0 +1,38 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2023, Benoit BLANCHON
// MIT License
#include <ArduinoJson.h>
#include <catch.hpp>
TEST_CASE("JsonArray::add()") {
JsonDocument doc;
JsonArray array = doc.to<JsonArray>();
array.add().set(42);
REQUIRE(doc.as<std::string>() == "[42]");
}
TEST_CASE("JsonDocument::add()") {
JsonDocument doc;
doc.add().set(42);
REQUIRE(doc.as<std::string>() == "[42]");
}
TEST_CASE("ElementProxy::add()") {
JsonDocument doc;
doc[0].add().set(42);
REQUIRE(doc.as<std::string>() == "[[42]]");
}
TEST_CASE("MemberProxy::add()") {
JsonDocument doc;
doc["x"].add().set(42);
REQUIRE(doc.as<std::string>() == "{\"x\":[42]}");
}
TEST_CASE("JsonVariant::add()") {
JsonDocument doc;
JsonVariant v = doc.add();
v.add().set(42);
REQUIRE(doc.as<std::string>() == "[[42]]");
}

View File

@ -158,6 +158,12 @@ class JsonArray : public detail::VariantOperators<JsonArray> {
return data_ ? data_->size(resources_) : 0; return data_ ? data_->size(resources_) : 0;
} }
// DEPRECATED: use add<JsonVariant>() instead
ARDUINOJSON_DEPRECATED("use add<JsonVariant>() instead")
JsonVariant add() const {
return add<JsonVariant>();
}
// DEPRECATED: always returns zero // DEPRECATED: always returns zero
ARDUINOJSON_DEPRECATED("always returns zero") ARDUINOJSON_DEPRECATED("always returns zero")
size_t memoryUsage() const { size_t memoryUsage() const {

View File

@ -291,6 +291,12 @@ class JsonDocument : public detail::VariantOperators<const JsonDocument&> {
swap_(a.data_, b.data_); swap_(a.data_, b.data_);
} }
// DEPRECATED: use add<JsonVariant>() instead
ARDUINOJSON_DEPRECATED("use add<JsonVariant>() instead")
JsonVariant add() {
return add<JsonVariant>();
}
// DEPRECATED: always returns zero // DEPRECATED: always returns zero
ARDUINOJSON_DEPRECATED("always returns zero") ARDUINOJSON_DEPRECATED("always returns zero")
size_t memoryUsage() const { size_t memoryUsage() const {

View File

@ -221,6 +221,10 @@ class VariantRefBase : public VariantTag {
MemberProxy<TDerived, TChar*>>::type MemberProxy<TDerived, TChar*>>::type
operator[](TChar* key) const; operator[](TChar* key) const;
// DEPRECATED: use add<JsonVariant>() instead
ARDUINOJSON_DEPRECATED("use add<JsonVariant>() instead")
JsonVariant add() const;
// DEPRECATED: always returns zero // DEPRECATED: always returns zero
ARDUINOJSON_DEPRECATED("always returns zero") ARDUINOJSON_DEPRECATED("always returns zero")
size_t memoryUsage() const { size_t memoryUsage() const {

View File

@ -10,6 +10,11 @@
ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE
template <typename TDerived>
inline JsonVariant VariantRefBase<TDerived>::add() const {
return add<JsonVariant>();
}
template <typename TDerived> template <typename TDerived>
inline void convertToJson(const VariantRefBase<TDerived>& src, inline void convertToJson(const VariantRefBase<TDerived>& src,
JsonVariant dst) { JsonVariant dst) {