mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	Remove IsWriteableString
				
					
				
			This commit is contained in:
		| @@ -32,6 +32,11 @@ class String { | |||||||
|     return _str == s; |     return _str == s; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   String& operator=(const char* s) { | ||||||
|  |     _str.assign(s); | ||||||
|  |     return *this; | ||||||
|  |   } | ||||||
|  |  | ||||||
|   friend std::ostream& operator<<(std::ostream& lhs, const ::String& rhs) { |   friend std::ostream& operator<<(std::ostream& lhs, const ::String& rhs) { | ||||||
|     lhs << rhs._str; |     lhs << rhs._str; | ||||||
|     return lhs; |     return lhs; | ||||||
|   | |||||||
| @@ -135,20 +135,6 @@ TEST_CASE("Writer<custom_string>") { | |||||||
|   REQUIRE("ABCD" == output); |   REQUIRE("ABCD" == output); | ||||||
| } | } | ||||||
|  |  | ||||||
| TEST_CASE("IsWriteableString") { |  | ||||||
|   SECTION("std::string") { |  | ||||||
|     REQUIRE(IsWriteableString<std::string>::value == true); |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   SECTION("custom_string") { |  | ||||||
|     REQUIRE(IsWriteableString<custom_string>::value == true); |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   SECTION("basic_string<wchar_t>") { |  | ||||||
|     REQUIRE(IsWriteableString<std::basic_string<wchar_t> >::value == false); |  | ||||||
|   } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| TEST_CASE("serializeJson(doc, String)") { | TEST_CASE("serializeJson(doc, String)") { | ||||||
|   StaticJsonDocument<1024> doc; |   StaticJsonDocument<1024> doc; | ||||||
|   doc["hello"] = "world"; |   doc["hello"] = "world"; | ||||||
|   | |||||||
| @@ -1,37 +0,0 @@ | |||||||
| // ArduinoJson - https://arduinojson.org |  | ||||||
| // Copyright Benoit Blanchon 2014-2021 |  | ||||||
| // MIT License |  | ||||||
|  |  | ||||||
| #pragma once |  | ||||||
|  |  | ||||||
| #include <ArduinoJson/Configuration.hpp> |  | ||||||
| #include <ArduinoJson/Polyfills/type_traits.hpp> |  | ||||||
|  |  | ||||||
| #if ARDUINOJSON_ENABLE_ARDUINO_STRING |  | ||||||
| #  include <Arduino.h> |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #if ARDUINOJSON_ENABLE_STD_STRING |  | ||||||
| #  include <string> |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| namespace ARDUINOJSON_NAMESPACE { |  | ||||||
|  |  | ||||||
| template <typename> |  | ||||||
| struct IsWriteableString : false_type {}; |  | ||||||
|  |  | ||||||
| #if ARDUINOJSON_ENABLE_ARDUINO_STRING |  | ||||||
|  |  | ||||||
| template <> |  | ||||||
| struct IsWriteableString< ::String> : true_type {}; |  | ||||||
|  |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| #if ARDUINOJSON_ENABLE_STD_STRING |  | ||||||
|  |  | ||||||
| template <typename TCharTraits, typename TAllocator> |  | ||||||
| struct IsWriteableString<std::basic_string<char, TCharTraits, TAllocator> > |  | ||||||
|     : true_type {}; |  | ||||||
|  |  | ||||||
| #endif |  | ||||||
| }  // namespace ARDUINOJSON_NAMESPACE |  | ||||||
| @@ -4,7 +4,7 @@ | |||||||
|  |  | ||||||
| #pragma once | #pragma once | ||||||
|  |  | ||||||
| #include <ArduinoJson/Strings/IsWriteableString.hpp> | #include <ArduinoJson/Json/JsonSerializer.hpp> | ||||||
| #include <ArduinoJson/Variant/VariantFunctions.hpp> | #include <ArduinoJson/Variant/VariantFunctions.hpp> | ||||||
| #include <ArduinoJson/Variant/VariantRef.hpp> | #include <ArduinoJson/Variant/VariantRef.hpp> | ||||||
|  |  | ||||||
| @@ -154,24 +154,6 @@ inline typename enable_if<IsString<T>::value, bool>::type convertToJson( | |||||||
|   return variantSetString(data, adaptString(src), pool); |   return variantSetString(data, adaptString(src), pool); | ||||||
| } | } | ||||||
|  |  | ||||||
| template <typename T> |  | ||||||
| inline typename enable_if<IsWriteableString<T>::value>::type convertFromJson( |  | ||||||
|     VariantConstRef src, T& dst) { |  | ||||||
|   const VariantData* data = getData(src); |  | ||||||
|   String str = data != 0 ? data->asString() : 0; |  | ||||||
|   if (str) |  | ||||||
|     dst = str.c_str(); |  | ||||||
|   else |  | ||||||
|     serializeJson(src, dst); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| template <typename T> |  | ||||||
| inline typename enable_if<IsWriteableString<T>::value, bool>::type |  | ||||||
| canConvertFromJson(VariantConstRef src, const T&) { |  | ||||||
|   const VariantData* data = getData(src); |  | ||||||
|   return data && data->isString(); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| template <> | template <> | ||||||
| struct Converter<SerializedValue<const char*> > { | struct Converter<SerializedValue<const char*> > { | ||||||
|   static void toJson(SerializedValue<const char*> src, VariantRef dst) { |   static void toJson(SerializedValue<const char*> src, VariantRef dst) { | ||||||
| @@ -273,6 +255,42 @@ inline void convertToJson(const ::Printable& src, VariantRef dst) { | |||||||
|  |  | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | #if ARDUINOJSON_ENABLE_ARDUINO_STRING | ||||||
|  |  | ||||||
|  | inline void convertFromJson(VariantConstRef src, ::String& dst) { | ||||||
|  |   const VariantData* data = getData(src); | ||||||
|  |   String str = data != 0 ? data->asString() : String(); | ||||||
|  |   if (str) | ||||||
|  |     dst = str.c_str(); | ||||||
|  |   else | ||||||
|  |     serializeJson(src, dst); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | inline bool canConvertFromJson(VariantConstRef src, const ::String&) { | ||||||
|  |   const VariantData* data = getData(src); | ||||||
|  |   return data && data->isString(); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #if ARDUINOJSON_ENABLE_STD_STRING | ||||||
|  |  | ||||||
|  | inline void convertFromJson(VariantConstRef src, std::string& dst) { | ||||||
|  |   const VariantData* data = getData(src); | ||||||
|  |   String str = data != 0 ? data->asString() : String(); | ||||||
|  |   if (str) | ||||||
|  |     dst.assign(str.c_str()); | ||||||
|  |   else | ||||||
|  |     serializeJson(src, dst); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | inline bool canConvertFromJson(VariantConstRef src, const std::string&) { | ||||||
|  |   const VariantData* data = getData(src); | ||||||
|  |   return data && data->isString(); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #endif | ||||||
|  |  | ||||||
| #if ARDUINOJSON_ENABLE_STRING_VIEW | #if ARDUINOJSON_ENABLE_STRING_VIEW | ||||||
|  |  | ||||||
| inline void convertFromJson(VariantConstRef src, std::string_view& dst) { | inline void convertFromJson(VariantConstRef src, std::string_view& dst) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user