aboutsummaryrefslogtreecommitdiff
path: root/core/src/Model/Template/TableTemplateIterator.cpp
blob: 19e30b982327cb01cd06048e1a3eff41305644f3 (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
44
45
46
47
48
49
50
51
52
#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;
}