// ArduinoJson - https://arduinojson.org // Copyright © 2014-2024, Benoit BLANCHON // MIT License #pragma once ARDUINOJSON_BEGIN_PRIVATE_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()) {} }; ARDUINOJSON_END_PRIVATE_NAMESPACE