// ArduinoJson - https://arduinojson.org // Copyright Benoit Blanchon 2014-2021 // MIT License #pragma once namespace ARDUINOJSON_NAMESPACE { template class IteratorReader { TIterator _ptr, _end; public: explicit IteratorReader(TIterator begin, TIterator end) : _ptr(begin), _end(end) {} int read() { if (_ptr < _end) return static_cast(*_ptr++); else return -1; } size_t readBytes(char* buffer, size_t length) { size_t i = 0; while (i < length && _ptr < _end) buffer[i++] = *_ptr++; return i; } }; template struct void_ { typedef void type; }; template struct Reader::type> : IteratorReader { explicit Reader(const TSource& source) : IteratorReader(source.begin(), source.end()) {} }; } // namespace ARDUINOJSON_NAMESPACE