31 auto it = defineReaders.find(*nameIt);
32 if (it != defineReaders.end())
35 std::shared_ptr<RDefineReader> readerToReturn;
37 if (*nameIt ==
"nominal") {
38 readerToReturn = std::make_shared<RDefineReader>(slot, *define);
40 auto *variedDefine = &define->GetVariedDefine(std::string(variationName));
41 if (variedDefine == define) {
43 if (
auto nominalReaderIt = defineReaders.find(
"nominal"); nominalReaderIt != defineReaders.end()) {
44 readerToReturn = nominalReaderIt->second;
47 readerToReturn = std::make_shared<RDefineReader>(slot, *define);
49 defineReaders.insert({*nominalNameIt, readerToReturn});
52 readerToReturn = std::make_shared<RDefineReader>(slot, *variedDefine);
56 defineReaders.insert({*nameIt, readerToReturn});
58 return *readerToReturn;