aboutsummaryrefslogtreecommitdiff
path: root/app/source/Cplt/Model/Template/TableTemplateIterator.cpp
blob: 3a8e8c23d6a8a6849ffd7f7356e0ac712c4d2085 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#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;
}