mirror of
https://github.com/arendst/Tasmota.git
synced 2025-04-25 07:17:16 +00:00
47 lines
1.1 KiB
C++
47 lines
1.1 KiB
C++
// 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 <typename T>
|
|
class RawJsonString {
|
|
public:
|
|
explicit RawJsonString(T str) : _str(str) {}
|
|
operator T() const {
|
|
return _str;
|
|
}
|
|
|
|
private:
|
|
T _str;
|
|
};
|
|
|
|
template <typename String>
|
|
struct StringTraits<RawJsonString<String>, void> {
|
|
static bool is_null(RawJsonString<String> source) {
|
|
return StringTraits<String>::is_null(static_cast<String>(source));
|
|
}
|
|
|
|
typedef RawJsonString<const char*> duplicate_t;
|
|
|
|
template <typename Buffer>
|
|
static duplicate_t duplicate(RawJsonString<String> source, Buffer* buffer) {
|
|
return duplicate_t(StringTraits<String>::duplicate(source, buffer));
|
|
}
|
|
|
|
static const bool has_append = false;
|
|
static const bool has_equals = false;
|
|
static const bool should_duplicate = StringTraits<String>::should_duplicate;
|
|
};
|
|
}
|
|
|
|
template <typename T>
|
|
inline Internals::RawJsonString<T> RawJson(T str) {
|
|
return Internals::RawJsonString<T>(str);
|
|
}
|
|
}
|