forked from bblanchon/ArduinoJson
Replace JsonString::Ownership with bool
This commit is contained in:
@@ -55,7 +55,7 @@ class StringBuffer {
|
||||
JsonString str() const {
|
||||
ARDUINOJSON_ASSERT(node_ != nullptr);
|
||||
|
||||
return JsonString(node_->data, node_->length, JsonString::Copied);
|
||||
return JsonString(node_->data, node_->length);
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -68,7 +68,7 @@ class StringBuilder {
|
||||
JsonString str() const {
|
||||
ARDUINOJSON_ASSERT(node_ != nullptr);
|
||||
node_->data[size_] = 0;
|
||||
return JsonString(node_->data, size_, JsonString::Copied);
|
||||
return JsonString(node_->data, size_);
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <ArduinoJson/Polyfills/type_traits.hpp>
|
||||
#include <ArduinoJson/Strings/Adapters/RamString.hpp>
|
||||
|
||||
#if ARDUINOJSON_ENABLE_STD_STREAM
|
||||
@@ -18,15 +19,16 @@ class JsonString {
|
||||
friend struct detail::StringAdapter<JsonString>;
|
||||
|
||||
public:
|
||||
enum Ownership { Copied, Linked };
|
||||
|
||||
JsonString() : str_(nullptr, 0, true) {}
|
||||
|
||||
JsonString(const char* data, Ownership ownership = Copied)
|
||||
: str_(data, data ? ::strlen(data) : 0, ownership == Linked) {}
|
||||
JsonString(const char* data, bool isStatic = false)
|
||||
: str_(data, data ? ::strlen(data) : 0, isStatic) {}
|
||||
|
||||
JsonString(const char* data, size_t sz, Ownership ownership = Copied)
|
||||
: str_(data, sz, ownership == Linked) {}
|
||||
template <typename TSize, typename = detail::enable_if_t<
|
||||
detail::is_integral<TSize>::value &&
|
||||
!detail::is_same<TSize, bool>::value>>
|
||||
JsonString(const char* data, TSize sz, bool isStatic = false)
|
||||
: str_(data, size_t(sz), isStatic) {}
|
||||
|
||||
// Returns a pointer to the characters.
|
||||
const char* c_str() const {
|
||||
|
||||
@@ -64,13 +64,11 @@ class VariantData {
|
||||
return visit.visit(content_.asObject);
|
||||
|
||||
case VariantType::LinkedString:
|
||||
return visit.visit(
|
||||
JsonString(content_.asLinkedString, JsonString::Linked));
|
||||
return visit.visit(JsonString(content_.asLinkedString, true));
|
||||
|
||||
case VariantType::OwnedString:
|
||||
return visit.visit(JsonString(content_.asOwnedString->data,
|
||||
content_.asOwnedString->length,
|
||||
JsonString::Copied));
|
||||
content_.asOwnedString->length));
|
||||
|
||||
case VariantType::RawString:
|
||||
return visit.visit(RawString(content_.asOwnedString->data,
|
||||
@@ -262,7 +260,7 @@ class VariantData {
|
||||
switch (type_) {
|
||||
case VariantType::RawString:
|
||||
return JsonString(content_.asOwnedString->data,
|
||||
content_.asOwnedString->length, JsonString::Copied);
|
||||
content_.asOwnedString->length);
|
||||
default:
|
||||
return JsonString();
|
||||
}
|
||||
@@ -271,10 +269,10 @@ class VariantData {
|
||||
JsonString asString() const {
|
||||
switch (type_) {
|
||||
case VariantType::LinkedString:
|
||||
return JsonString(content_.asLinkedString, JsonString::Linked);
|
||||
return JsonString(content_.asLinkedString, true);
|
||||
case VariantType::OwnedString:
|
||||
return JsonString(content_.asOwnedString->data,
|
||||
content_.asOwnedString->length, JsonString::Copied);
|
||||
content_.asOwnedString->length);
|
||||
default:
|
||||
return JsonString();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user