#pragma once namespace radio_controller { template class iterator { public: virtual bool next() = 0; virtual bool has_next() const = 0; virtual const T &value() const = 0; }; struct sample { uint16_t period_us; uint16_t pulse_us; }; //template class decoder { public: virtual void decode(iterator *it) = 0; }; } // namespace radio_controller