mirror of
https://github.com/bblanchon/ArduinoJson.git
synced 2025-07-17 04:22:18 +02: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