mirror of
				https://github.com/bblanchon/ArduinoJson.git
				synced 2025-11-04 00:21:36 +01:00 
			
		
		
		
	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