mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	Add operator<<(std::ostream&, const JsonString&)
				
					
				
			This commit is contained in:
		| @@ -5,6 +5,8 @@ | |||||||
| #include <ArduinoJson.h> | #include <ArduinoJson.h> | ||||||
| #include <catch.hpp> | #include <catch.hpp> | ||||||
|  |  | ||||||
|  | #include <sstream> | ||||||
|  |  | ||||||
| TEST_CASE("JsonString") { | TEST_CASE("JsonString") { | ||||||
|   SECTION("Default constructor creates a null JsonString") { |   SECTION("Default constructor creates a null JsonString") { | ||||||
|     JsonString s; |     JsonString s; | ||||||
| @@ -74,4 +76,10 @@ TEST_CASE("JsonString") { | |||||||
|     CHECK(a == b); |     CHECK(a == b); | ||||||
|     CHECK_FALSE(a != b); |     CHECK_FALSE(a != b); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   SECTION("std::stream") { | ||||||
|  |     std::stringstream ss; | ||||||
|  |     ss << JsonString("hello world!"); | ||||||
|  |     CHECK(ss.str() == "hello world!"); | ||||||
|  |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -6,6 +6,10 @@ | |||||||
|  |  | ||||||
| #include <ArduinoJson/Misc/SafeBoolIdiom.hpp> | #include <ArduinoJson/Misc/SafeBoolIdiom.hpp> | ||||||
|  |  | ||||||
|  | #if ARDUINOJSON_ENABLE_STD_STREAM | ||||||
|  | #  include <ostream> | ||||||
|  | #endif | ||||||
|  |  | ||||||
| namespace ARDUINOJSON_NAMESPACE { | namespace ARDUINOJSON_NAMESPACE { | ||||||
|  |  | ||||||
| class String : public SafeBoolIdom<String> { | class String : public SafeBoolIdom<String> { | ||||||
| @@ -61,6 +65,13 @@ class String : public SafeBoolIdom<String> { | |||||||
|     return strcmp(lhs._data, rhs._data) != 0; |     return strcmp(lhs._data, rhs._data) != 0; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  | #if ARDUINOJSON_ENABLE_STD_STREAM | ||||||
|  |   friend std::ostream& operator<<(std::ostream& lhs, const String& rhs) { | ||||||
|  |     lhs.write(rhs.c_str(), static_cast<std::streamsize>(rhs.size())); | ||||||
|  |     return lhs; | ||||||
|  |   } | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  private: |  private: | ||||||
|   const char* _data; |   const char* _data; | ||||||
|   size_t _size; |   size_t _size; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user