mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 00:32:37 +01:00 
			
		
		
		
	Add is<JsonString>()
				
					
				
			This commit is contained in:
		| @@ -8,7 +8,7 @@ HEAD | ||||
|   Dependent settings (like `ARDUINOJSON_DEFAULT_NESTING_LIMIT`) must be set individually. | ||||
| * Change the default of `ARDUINOJSON_USE_DOUBLE` to `1` | ||||
| * Change the default of `ARDUINOJSON_USE_LONG_LONG` to `1` on 32-bit platforms | ||||
| * Add `as<JsonString>()` | ||||
| * Add `as<JsonString>()` and `is<JsonString>()` | ||||
|  | ||||
| v6.18.5 (2021-09-28) | ||||
| ------- | ||||
|   | ||||
| @@ -22,8 +22,10 @@ TEST_CASE("JsonVariant::is<T>()") { | ||||
|     CHECK(variant.is<const char *>() == false); | ||||
|     CHECK(variant.is<int>() == false); | ||||
|     CHECK(variant.is<std::string>() == false); | ||||
|     CHECK(variant.is<JsonString>() == false); | ||||
|     CHECK(variant.is<float>() == false); | ||||
|     CHECK(variant.is<MYENUM2>() == false); | ||||
|     CHECK(variant.is<JsonString>() == false); | ||||
|   } | ||||
|  | ||||
|   SECTION("null") { | ||||
| @@ -35,6 +37,7 @@ TEST_CASE("JsonVariant::is<T>()") { | ||||
|     CHECK(variant.is<const char *>() == false); | ||||
|     CHECK(variant.is<int>() == false); | ||||
|     CHECK(variant.is<std::string>() == false); | ||||
|     CHECK(variant.is<JsonString>() == false); | ||||
|     CHECK(variant.is<float>() == false); | ||||
|     CHECK(variant.is<MYENUM2>() == false); | ||||
|   } | ||||
| @@ -50,6 +53,7 @@ TEST_CASE("JsonVariant::is<T>()") { | ||||
|     CHECK(variant.is<const char *>() == false); | ||||
|     CHECK(variant.is<int>() == false); | ||||
|     CHECK(variant.is<std::string>() == false); | ||||
|     CHECK(variant.is<JsonString>() == false); | ||||
|     CHECK(variant.is<float>() == false); | ||||
|     CHECK(variant.is<MYENUM2>() == false); | ||||
|   } | ||||
| @@ -65,6 +69,7 @@ TEST_CASE("JsonVariant::is<T>()") { | ||||
|     CHECK(variant.is<const char *>() == false); | ||||
|     CHECK(variant.is<int>() == false); | ||||
|     CHECK(variant.is<std::string>() == false); | ||||
|     CHECK(variant.is<JsonString>() == false); | ||||
|     CHECK(variant.is<float>() == false); | ||||
|     CHECK(variant.is<MYENUM2>() == false); | ||||
|   } | ||||
| @@ -85,6 +90,7 @@ TEST_CASE("JsonVariant::is<T>()") { | ||||
|     CHECK(variant.is<JsonArray>() == false); | ||||
|     CHECK(variant.is<const char *>() == false); | ||||
|     CHECK(variant.is<std::string>() == false); | ||||
|     CHECK(variant.is<JsonString>() == false); | ||||
|   } | ||||
|  | ||||
|   SECTION("double") { | ||||
| @@ -100,6 +106,7 @@ TEST_CASE("JsonVariant::is<T>()") { | ||||
|     CHECK(variant.is<const char *>() == false); | ||||
|     CHECK(variant.is<int>() == false); | ||||
|     CHECK(variant.is<std::string>() == false); | ||||
|     CHECK(variant.is<JsonString>() == false); | ||||
|     CHECK(variant.is<MYENUM2>() == false); | ||||
|   } | ||||
|  | ||||
| @@ -109,6 +116,7 @@ TEST_CASE("JsonVariant::is<T>()") { | ||||
|     CHECK(variant.is<const char *>() == true); | ||||
|     CHECK(variant.is<const char *>() == true); | ||||
|     CHECK(variant.is<std::string>() == true); | ||||
|     CHECK(variant.is<JsonString>() == true); | ||||
|     CHECK(variant.is<JsonVariant>() == true); | ||||
|     CHECK(variant.is<JsonVariantConst>() == true); | ||||
|     CHECK(variant.is<double>() == false); | ||||
| @@ -173,6 +181,7 @@ TEST_CASE("JsonVariantConst::is<T>()") { | ||||
|     CHECK(cvariant.is<const char *>() == false); | ||||
|     CHECK(cvariant.is<int>() == false); | ||||
|     CHECK(cvariant.is<std::string>() == false); | ||||
|     CHECK(cvariant.is<JsonString>() == false); | ||||
|     CHECK(cvariant.is<float>() == false); | ||||
|     CHECK(cvariant.is<MYENUM2>() == false); | ||||
|   } | ||||
| @@ -186,6 +195,7 @@ TEST_CASE("JsonVariantConst::is<T>()") { | ||||
|     CHECK(cvariant.is<const char *>() == false); | ||||
|     CHECK(cvariant.is<int>() == false); | ||||
|     CHECK(cvariant.is<std::string>() == false); | ||||
|     CHECK(cvariant.is<JsonString>() == false); | ||||
|     CHECK(cvariant.is<float>() == false); | ||||
|     CHECK(cvariant.is<MYENUM2>() == false); | ||||
|   } | ||||
| @@ -201,6 +211,7 @@ TEST_CASE("JsonVariantConst::is<T>()") { | ||||
|     CHECK(cvariant.is<const char *>() == false); | ||||
|     CHECK(cvariant.is<int>() == false); | ||||
|     CHECK(cvariant.is<std::string>() == false); | ||||
|     CHECK(cvariant.is<JsonString>() == false); | ||||
|     CHECK(cvariant.is<float>() == false); | ||||
|     CHECK(cvariant.is<MYENUM2>() == false); | ||||
|   } | ||||
| @@ -216,6 +227,7 @@ TEST_CASE("JsonVariantConst::is<T>()") { | ||||
|     CHECK(cvariant.is<const char *>() == false); | ||||
|     CHECK(cvariant.is<int>() == false); | ||||
|     CHECK(cvariant.is<std::string>() == false); | ||||
|     CHECK(cvariant.is<JsonString>() == false); | ||||
|     CHECK(cvariant.is<float>() == false); | ||||
|     CHECK(cvariant.is<MYENUM2>() == false); | ||||
|   } | ||||
| @@ -236,6 +248,7 @@ TEST_CASE("JsonVariantConst::is<T>()") { | ||||
|     CHECK(cvariant.is<JsonVariant>() == false); | ||||
|     CHECK(cvariant.is<const char *>() == false); | ||||
|     CHECK(cvariant.is<std::string>() == false); | ||||
|     CHECK(cvariant.is<JsonString>() == false); | ||||
|   } | ||||
|  | ||||
|   SECTION("double") { | ||||
| @@ -251,6 +264,7 @@ TEST_CASE("JsonVariantConst::is<T>()") { | ||||
|     CHECK(cvariant.is<const char *>() == false); | ||||
|     CHECK(cvariant.is<int>() == false); | ||||
|     CHECK(cvariant.is<std::string>() == false); | ||||
|     CHECK(cvariant.is<JsonString>() == false); | ||||
|     CHECK(cvariant.is<MYENUM2>() == false); | ||||
|   } | ||||
|  | ||||
| @@ -260,6 +274,7 @@ TEST_CASE("JsonVariantConst::is<T>()") { | ||||
|     CHECK(cvariant.is<const char *>() == true); | ||||
|     CHECK(cvariant.is<const char *>() == true); | ||||
|     CHECK(cvariant.is<std::string>() == true); | ||||
|     CHECK(cvariant.is<JsonString>() == true); | ||||
|     CHECK(cvariant.is<double>() == false); | ||||
|     CHECK(cvariant.is<float>() == false); | ||||
|     CHECK(cvariant.is<bool>() == false); | ||||
|   | ||||
| @@ -139,6 +139,11 @@ struct Converter<String> { | ||||
|     const VariantData* data = getData(src); | ||||
|     return data ? String(data->asString(), false) : 0; | ||||
|   } | ||||
|  | ||||
|   static bool checkJson(VariantConstRef src) { | ||||
|     const VariantData* data = getData(src); | ||||
|     return data && data->isString(); | ||||
|   } | ||||
| }; | ||||
|  | ||||
| template <typename T> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user