mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	Added a deprecation warning for is<char>() and is<char*>()
This commit is contained in:
		| @@ -31,6 +31,16 @@ TEST_CASE("Deprecated features") { | |||||||
|     REQUIRE(v.as<char>() == '*'); |     REQUIRE(v.as<char>() == '*'); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   SECTION("JsonVariant::is<char*>()") { | ||||||
|  |     JsonVariant v = doc["s"]; | ||||||
|  |     REQUIRE(v.is<char*>() == true); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("JsonVariant::is<char>()") { | ||||||
|  |     JsonVariant v = doc["c"]; | ||||||
|  |     REQUIRE(v.is<char>() == true); | ||||||
|  |   } | ||||||
|  |  | ||||||
|   SECTION("JsonVariant::set(char)") { |   SECTION("JsonVariant::set(char)") { | ||||||
|     JsonVariant v = doc.to<JsonVariant>(); |     JsonVariant v = doc.to<JsonVariant>(); | ||||||
|     v.set('*'); |     v.set('*'); | ||||||
| @@ -47,6 +57,16 @@ TEST_CASE("Deprecated features") { | |||||||
|     REQUIRE(v.as<char>() == '*'); |     REQUIRE(v.as<char>() == '*'); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   SECTION("JsonVariantConst::is<char*>()") { | ||||||
|  |     JsonVariantConst v = doc["s"]; | ||||||
|  |     REQUIRE(v.is<char*>() == true); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("JsonVariantConst::is<char>()") { | ||||||
|  |     JsonVariantConst v = doc["c"]; | ||||||
|  |     REQUIRE(v.is<char>() == true); | ||||||
|  |   } | ||||||
|  |  | ||||||
|   SECTION("MemberProxy::as<char*>()") { |   SECTION("MemberProxy::as<char*>()") { | ||||||
|     REQUIRE(doc["s"].as<char*>() == s); |     REQUIRE(doc["s"].as<char*>() == s); | ||||||
|   } |   } | ||||||
| @@ -60,6 +80,16 @@ TEST_CASE("Deprecated features") { | |||||||
|     REQUIRE(doc["x"] == 42); |     REQUIRE(doc["x"] == 42); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   SECTION("MemberProxy::is<char*>()") { | ||||||
|  |     REQUIRE(doc["s"].is<char*>() == true); | ||||||
|  |     REQUIRE(doc["c"].is<char*>() == false); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("MemberProxy::is<char>()") { | ||||||
|  |     REQUIRE(doc["c"].is<char>() == true); | ||||||
|  |     REQUIRE(doc["s"].is<char>() == false); | ||||||
|  |   } | ||||||
|  |  | ||||||
|   SECTION("ElementProxy::as<char*>()") { |   SECTION("ElementProxy::as<char*>()") { | ||||||
|     REQUIRE(doc["a"][0].as<char*>() == s); |     REQUIRE(doc["a"][0].as<char*>() == s); | ||||||
|   } |   } | ||||||
| @@ -72,4 +102,14 @@ TEST_CASE("Deprecated features") { | |||||||
|     doc["a"][0].set('*'); |     doc["a"][0].set('*'); | ||||||
|     REQUIRE(doc["a"][0] == 42); |     REQUIRE(doc["a"][0] == 42); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   SECTION("ElementProxy::is<char*>()") { | ||||||
|  |     REQUIRE(doc["a"][0].is<char*>() == true); | ||||||
|  |     REQUIRE(doc["a"][1].is<char*>() == false); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("ElementProxy::is<char>()") { | ||||||
|  |     REQUIRE(doc["a"][1].is<char>() == true); | ||||||
|  |     REQUIRE(doc["a"][0].is<char>() == false); | ||||||
|  |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -123,10 +123,28 @@ class VariantRef : public VariantRefBase<VariantData>, | |||||||
|   } |   } | ||||||
|  |  | ||||||
|   template <typename T> |   template <typename T> | ||||||
|   FORCE_INLINE bool is() const { |   FORCE_INLINE | ||||||
|  |       typename enable_if<!is_same<T, char *>::value && !is_same<T, char>::value, | ||||||
|  |                          bool>::type | ||||||
|  |       is() const { | ||||||
|     return Converter<T>::checkJson(*this); |     return Converter<T>::checkJson(*this); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   template <typename T> | ||||||
|  |   FORCE_INLINE typename enable_if<is_same<T, char *>::value, bool>::type | ||||||
|  |   ARDUINOJSON_DEPRECATED("Replace is<char*>() with is<const char*>()") | ||||||
|  |       is() const { | ||||||
|  |     return is<const char *>(); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   template <typename T> | ||||||
|  |   FORCE_INLINE typename enable_if<is_same<T, char>::value, bool>::type | ||||||
|  |   ARDUINOJSON_DEPRECATED( | ||||||
|  |       "Support for char is deprecated, use int8_t or uint8_t instead") | ||||||
|  |       is() const { | ||||||
|  |     return is<signed char>(); | ||||||
|  |   } | ||||||
|  |  | ||||||
|   template <typename T> |   template <typename T> | ||||||
|   FORCE_INLINE operator T() const { |   FORCE_INLINE operator T() const { | ||||||
|     return as<T>(); |     return as<T>(); | ||||||
| @@ -251,10 +269,28 @@ class VariantConstRef : public VariantRefBase<const VariantData>, | |||||||
|   } |   } | ||||||
|  |  | ||||||
|   template <typename T> |   template <typename T> | ||||||
|   FORCE_INLINE bool is() const { |   FORCE_INLINE | ||||||
|  |       typename enable_if<!is_same<T, char *>::value && !is_same<T, char>::value, | ||||||
|  |                          bool>::type | ||||||
|  |       is() const { | ||||||
|     return Converter<T>::checkJson(*this); |     return Converter<T>::checkJson(*this); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   template <typename T> | ||||||
|  |   FORCE_INLINE typename enable_if<is_same<T, char *>::value, bool>::type | ||||||
|  |   ARDUINOJSON_DEPRECATED("Replace is<char*>() with is<const char*>()") | ||||||
|  |       is() const { | ||||||
|  |     return is<const char *>(); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   template <typename T> | ||||||
|  |   FORCE_INLINE typename enable_if<is_same<T, char>::value, bool>::type | ||||||
|  |   ARDUINOJSON_DEPRECATED( | ||||||
|  |       "Support for char is deprecated, use int8_t or uint8_t instead") | ||||||
|  |       is() const { | ||||||
|  |     return is<signed char>(); | ||||||
|  |   } | ||||||
|  |  | ||||||
|   template <typename T> |   template <typename T> | ||||||
|   FORCE_INLINE operator T() const { |   FORCE_INLINE operator T() const { | ||||||
|     return as<T>(); |     return as<T>(); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user