mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	Added JsonVariant::is<JsonVariant/JsonVariantConst>() (issue #1412)
This commit is contained in:
		| @@ -9,7 +9,7 @@ HEAD | ||||
| * `deserializeMsgPack()` inserts `null` instead of returning `NotSupported` | ||||
| * Removed `DeserializationError::NotSupported` | ||||
| * Added `JsonVariant::is<JsonArrayConst/JsonObjectConst>()` (issue #1412) | ||||
| * Added `JsonVariant::is<JsonVariant>()` (issue #1412) | ||||
| * Added `JsonVariant::is<JsonVariant/JsonVariantConst>()` (issue #1412) | ||||
|  | ||||
| > ### BREAKING CHANGES | ||||
| > | ||||
|   | ||||
| @@ -17,6 +17,7 @@ TEST_CASE("JsonVariant::is<T>()") { | ||||
|     CHECK(variant.is<JsonObject>() == false); | ||||
|     CHECK(variant.is<JsonArray>() == false); | ||||
|     CHECK(variant.is<JsonVariant>() == false); | ||||
|     CHECK(variant.is<JsonVariantConst>() == false); | ||||
|     CHECK(variant.is<bool>() == false); | ||||
|     CHECK(variant.is<char *>() == false); | ||||
|     CHECK(variant.is<int>() == false); | ||||
| @@ -27,6 +28,7 @@ TEST_CASE("JsonVariant::is<T>()") { | ||||
|  | ||||
|   SECTION("null") { | ||||
|     CHECK(variant.is<JsonVariant>() == true); | ||||
|     CHECK(variant.is<JsonVariantConst>() == true); | ||||
|     CHECK(variant.is<JsonObject>() == false); | ||||
|     CHECK(variant.is<JsonArray>() == false); | ||||
|     CHECK(variant.is<bool>() == false); | ||||
| @@ -42,6 +44,7 @@ TEST_CASE("JsonVariant::is<T>()") { | ||||
|  | ||||
|     CHECK(variant.is<bool>() == true); | ||||
|     CHECK(variant.is<JsonVariant>() == true); | ||||
|     CHECK(variant.is<JsonVariantConst>() == true); | ||||
|     CHECK(variant.is<JsonObject>() == false); | ||||
|     CHECK(variant.is<JsonArray>() == false); | ||||
|     CHECK(variant.is<char *>() == false); | ||||
| @@ -56,6 +59,7 @@ TEST_CASE("JsonVariant::is<T>()") { | ||||
|  | ||||
|     CHECK(variant.is<bool>() == true); | ||||
|     CHECK(variant.is<JsonVariant>() == true); | ||||
|     CHECK(variant.is<JsonVariantConst>() == true); | ||||
|     CHECK(variant.is<JsonObject>() == false); | ||||
|     CHECK(variant.is<JsonArray>() == false); | ||||
|     CHECK(variant.is<char *>() == false); | ||||
| @@ -75,6 +79,7 @@ TEST_CASE("JsonVariant::is<T>()") { | ||||
|     CHECK(variant.is<float>() == true); | ||||
|     CHECK(variant.is<MYENUM2>() == true); | ||||
|     CHECK(variant.is<JsonVariant>() == true); | ||||
|     CHECK(variant.is<JsonVariantConst>() == true); | ||||
|     CHECK(variant.is<bool>() == false); | ||||
|     CHECK(variant.is<JsonObject>() == false); | ||||
|     CHECK(variant.is<JsonArray>() == false); | ||||
| @@ -88,6 +93,7 @@ TEST_CASE("JsonVariant::is<T>()") { | ||||
|     CHECK(variant.is<double>() == true); | ||||
|     CHECK(variant.is<float>() == true); | ||||
|     CHECK(variant.is<JsonVariant>() == true); | ||||
|     CHECK(variant.is<JsonVariantConst>() == true); | ||||
|     CHECK(variant.is<bool>() == false); | ||||
|     CHECK(variant.is<JsonObject>() == false); | ||||
|     CHECK(variant.is<JsonArray>() == false); | ||||
| @@ -104,6 +110,7 @@ TEST_CASE("JsonVariant::is<T>()") { | ||||
|     CHECK(variant.is<const char *>() == true); | ||||
|     CHECK(variant.is<std::string>() == true); | ||||
|     CHECK(variant.is<JsonVariant>() == true); | ||||
|     CHECK(variant.is<JsonVariantConst>() == true); | ||||
|     CHECK(variant.is<double>() == false); | ||||
|     CHECK(variant.is<float>() == false); | ||||
|     CHECK(variant.is<bool>() == false); | ||||
| @@ -119,6 +126,7 @@ TEST_CASE("JsonVariant::is<T>()") { | ||||
|     CHECK(variant.is<JsonArray>() == true); | ||||
|     CHECK(variant.is<JsonArrayConst>() == true); | ||||
|     CHECK(variant.is<JsonVariant>() == true); | ||||
|     CHECK(variant.is<JsonVariantConst>() == true); | ||||
|     CHECK(variant.is<JsonObject>() == false); | ||||
|     CHECK(variant.is<JsonObjectConst>() == false); | ||||
|     CHECK(variant.is<int>() == false); | ||||
| @@ -134,6 +142,7 @@ TEST_CASE("JsonVariant::is<T>()") { | ||||
|     CHECK(variant.is<JsonObject>() == true); | ||||
|     CHECK(variant.is<JsonObjectConst>() == true); | ||||
|     CHECK(variant.is<JsonVariant>() == true); | ||||
|     CHECK(variant.is<JsonVariantConst>() == true); | ||||
|     CHECK(variant.is<JsonArray>() == false); | ||||
|     CHECK(variant.is<JsonArrayConst>() == false); | ||||
|     CHECK(variant.is<int>() == false); | ||||
| @@ -142,6 +151,7 @@ TEST_CASE("JsonVariant::is<T>()") { | ||||
|     CHECK(variant.is<char *>() == false); | ||||
|     CHECK(variant.is<MYENUM2>() == false); | ||||
|     CHECK(variant.is<JsonVariant>() == true); | ||||
|     CHECK(variant.is<JsonVariantConst>() == true); | ||||
|   } | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -121,6 +121,16 @@ class VariantRefBase : public VariantTag { | ||||
|   is() const { | ||||
|     return !!_data; | ||||
|   } | ||||
|   // | ||||
|   // bool is<VariantConstRef> const; | ||||
|   // bool is<const VariantConstRef> const; | ||||
|   template <typename T> | ||||
|   FORCE_INLINE typename enable_if< | ||||
|       is_same<typename remove_const<T>::type, VariantConstRef>::value, | ||||
|       bool>::type | ||||
|   is() const { | ||||
|     return !!_data; | ||||
|   } | ||||
| #if ARDUINOJSON_HAS_NULLPTR | ||||
|   // | ||||
|   // bool is<nullptr_t> const; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user