diff options
author | Daniel Friesel <daniel.friesel@uos.de> | 2020-09-07 12:57:04 +0200 |
---|---|---|
committer | Daniel Friesel <daniel.friesel@uos.de> | 2020-09-07 12:57:04 +0200 |
commit | 0558244645611f314f47e0fa427f7323ce253eaf (patch) | |
tree | 824bcd55ec8577703345106d0a08e167407500a7 /include/lib/ArduinoJson/Serialization/JsonPrintable.hpp | |
parent | 0248c6352f2117e50fac71dd632a79d8fa4f8737 (diff) |
remove external libraries from main branch
Diffstat (limited to 'include/lib/ArduinoJson/Serialization/JsonPrintable.hpp')
-rw-r--r-- | include/lib/ArduinoJson/Serialization/JsonPrintable.hpp | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/include/lib/ArduinoJson/Serialization/JsonPrintable.hpp b/include/lib/ArduinoJson/Serialization/JsonPrintable.hpp deleted file mode 100644 index e73f8fb..0000000 --- a/include/lib/ArduinoJson/Serialization/JsonPrintable.hpp +++ /dev/null @@ -1,117 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "../Configuration.hpp" -#include "../TypeTraits/EnableIf.hpp" -#include "DummyPrint.hpp" -#include "DynamicStringBuilder.hpp" -#include "IndentedPrint.hpp" -#include "JsonSerializer.hpp" -#include "JsonWriter.hpp" -#include "Prettyfier.hpp" -#include "StaticStringBuilder.hpp" - -#if ARDUINOJSON_ENABLE_STD_STREAM -#include "StreamPrintAdapter.hpp" -#endif - -namespace ArduinoJson { -namespace Internals { - -// Implements all the overloads of printTo() and prettyPrintTo() -// Caution: this class use a template parameter to avoid virtual methods. -// This is a bit curious but allows to reduce the size of JsonVariant, JsonArray -// and JsonObject. -template <typename T> -class JsonPrintable { - public: - template <typename Print> - typename EnableIf<!StringTraits<Print>::has_append, size_t>::type printTo( - Print &print) const { - JsonWriter<Print> writer(print); - JsonSerializer<JsonWriter<Print> >::serialize(downcast(), writer); - return writer.bytesWritten(); - } - -#if ARDUINOJSON_ENABLE_STD_STREAM - std::ostream &printTo(std::ostream &os) const { - StreamPrintAdapter adapter(os); - printTo(adapter); - return os; - } -#endif - - size_t printTo(char *buffer, size_t bufferSize) const { - StaticStringBuilder sb(buffer, bufferSize); - return printTo(sb); - } - - template <size_t TN> - size_t printTo(char (&buffer)[TN]) const { - return printTo(buffer, TN); - } - - template <typename TString> - typename EnableIf<StringTraits<TString>::has_append, size_t>::type printTo( - TString &str) const { - DynamicStringBuilder<TString> sb(str); - return printTo(sb); - } - - template <typename Print> - size_t prettyPrintTo(IndentedPrint<Print> &print) const { - Prettyfier<Print> p(print); - return printTo(p); - } - - size_t prettyPrintTo(char *buffer, size_t bufferSize) const { - StaticStringBuilder sb(buffer, bufferSize); - return prettyPrintTo(sb); - } - - template <size_t TN> - size_t prettyPrintTo(char (&buffer)[TN]) const { - return prettyPrintTo(buffer, TN); - } - - template <typename Print> - typename EnableIf<!StringTraits<Print>::has_append, size_t>::type - prettyPrintTo(Print &print) const { - IndentedPrint<Print> indentedPrint(print); - return prettyPrintTo(indentedPrint); - } - - template <typename TString> - typename EnableIf<StringTraits<TString>::has_append, size_t>::type - prettyPrintTo(TString &str) const { - DynamicStringBuilder<TString> sb(str); - return prettyPrintTo(sb); - } - - size_t measureLength() const { - DummyPrint dp; - return printTo(dp); - } - - size_t measurePrettyLength() const { - DummyPrint dp; - return prettyPrintTo(dp); - } - - private: - const T &downcast() const { - return *static_cast<const T *>(this); - } -}; - -#if ARDUINOJSON_ENABLE_STD_STREAM -template <typename T> -inline std::ostream &operator<<(std::ostream &os, const JsonPrintable<T> &v) { - return v.printTo(os); -} -#endif -} -} |