Improved test printers

This commit is contained in:
Benoit Blanchon
2014-11-04 13:06:47 +01:00
parent 4a17e8c34b
commit 289b5333d6
3 changed files with 26 additions and 11 deletions

View File

@ -5,14 +5,31 @@
// https://github.com/bblanchon/ArduinoJson
#include "Printers.hpp"
#include <ArduinoJson/JsonArray.hpp>
class StreamPrintAdapter : public Print {
public:
StreamPrintAdapter(std::ostream& os) : _os(os) {}
virtual size_t write(uint8_t c) {
_os << (char)c;
return 1;
}
private:
std::ostream& _os;
};
std::ostream& ArduinoJson::operator<<(std::ostream& os,
const ArduinoJson::JsonVariant& v) {
if (v.is<long>())
os << v.as<long>();
else if (v.is<double>())
os << v.as<double>();
else
os << "JsonVariant"; // TODO
StreamPrintAdapter adapter(os);
v.printTo(adapter);
return os;
}
std::ostream& ArduinoJson::operator<<(std::ostream& os,
const ArduinoJson::JsonArray& v) {
StreamPrintAdapter adapter(os);
v.printTo(adapter);
return os;
}