#include "TableTemplateIterator.hpp" TableSingleParamsIter::TableSingleParamsIter(TableTemplate& tmpl) : mTemplate{ &tmpl } , mIter{ tmpl.mName2Parameters.begin() } { } bool TableSingleParamsIter::HasNext() const { return mIter != mTemplate->mName2Parameters.end(); } TableCell& TableSingleParamsIter::Next() { int id = mIter.value(); ++mIter; return mTemplate->mCells[id]; } TableArrayGroupsIter::TableArrayGroupsIter(TableTemplate& tmpl) : mTemplate{ &tmpl } , mIter{ tmpl.mName2ArrayGroups.begin() } { } bool TableArrayGroupsIter::HasNext() const { return mIter != mTemplate->mName2ArrayGroups.end(); } TableArrayGroup& TableArrayGroupsIter::Peek() const { int id = mIter.value(); return mTemplate->mArrayGroups[id]; } std::string_view TableArrayGroupsIter::PeekName() const { return mIter.key_sv(); } const char* TableArrayGroupsIter::PeekNameCStr() const { return mIter.key(); } void TableArrayGroupsIter::Next() { ++mIter; }