// ArduinoJson - arduinojson.org // Copyright Benoit Blanchon 2014-2018 // MIT License #pragma once namespace ArduinoJson { namespace Internals { // A special type of data that can be used to insert pregenerated JSON portions. template class RawJsonString { public: explicit RawJsonString(T str) : _str(str) {} operator T() const { return _str; } private: T _str; }; template struct StringTraits, void> { static bool is_null(RawJsonString source) { return StringTraits::is_null(static_cast(source)); } typedef RawJsonString duplicate_t; template static duplicate_t duplicate(RawJsonString source, Buffer* buffer) { return duplicate_t(StringTraits::duplicate(source, buffer)); } static const bool has_append = false; static const bool has_equals = false; static const bool should_duplicate = StringTraits::should_duplicate; }; } template inline Internals::RawJsonString RawJson(T str) { return Internals::RawJsonString(str); } }