132 map<string, string> specializedForGenericTypeName;
135 if (! specializedTypeNames.empty())
138 for (
size_t i = 0; i < specializedParts.size(); ++i)
140 ostringstream genericTypeName;
141 genericTypeName <<
"VuoGenericType" << (i + 1);
142 specializedForGenericTypeName[genericTypeName.str()] = specializedParts[i];
146 return specializedForGenericTypeName;
164 vector<string> genericTypeNames;
165 for (
size_t i = 0; i < genericTypeCount; ++i)
167 ostringstream genericTypeName;
168 genericTypeName <<
"VuoGenericType" << (i + 1);
169 genericTypeNames.push_back(genericTypeName.str());
179 const map<string, VuoCompilerType *> &specializedTypes)
181 json_object *specializedDetails = json_object_new_object();
183 string title =
buildDefaultTitle(genericCompoundType, specializedForGenericTypeName, specializedTypes);
184 json_object_object_add(specializedDetails,
"title", json_object_new_string(title.c_str()));
186 json_object_object_add(specializedDetails,
"genericModule", json_object_new_string(genericCompoundType->
getBase()->
getModuleKey().c_str()));
188 json_object *specializedTypesObj = json_object_new_object();
189 json_object_object_add(specializedDetails,
"specializedTypes", specializedTypesObj);
190 for (
auto i : specializedForGenericTypeName)
191 json_object_object_add(specializedTypesObj, i.first.c_str(), json_object_new_string(i.second.c_str()));
193 return specializedDetails;
202 VuoCompilerType *genericCompoundType = parseGenericCompoundType(specializedCompoundTypeName, getVuoType);
205 map<string, VuoCompilerType *> specializedTypes;
206 for (
auto i : specializedForGenericTypeName)
207 specializedTypes[i.second] = getVuoType(i.second);
209 return buildDefaultTitle(genericCompoundType, specializedForGenericTypeName, specializedTypes);