MCPcopy Create free account
hub / github.com/LadybugDB/ladybug / parseStructFields

Function parseStructFields

src/common/types/types.cpp:1319–1348  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1317}
1318
1319std::vector<std::string> parseStructFields(const std::string& structTypeStr) {
1320 std::vector<std::string> structFieldsStr;
1321 auto startPos = 0u;
1322 auto curPos = 0u;
1323 auto numOpenBrackets = 0u;
1324 while (curPos < structTypeStr.length()) {
1325 switch (structTypeStr[curPos]) {
1326 case '(': {
1327 numOpenBrackets++;
1328 } break;
1329 case ')': {
1330 numOpenBrackets--;
1331 } break;
1332 case ',': {
1333 if (numOpenBrackets == 0) {
1334 structFieldsStr.push_back(
1335 StringUtils::ltrim(structTypeStr.substr(startPos, curPos - startPos)));
1336 startPos = curPos + 1;
1337 }
1338 } break;
1339 default: {
1340 // Normal character, continue.
1341 }
1342 }
1343 curPos++;
1344 }
1345 structFieldsStr.push_back(
1346 StringUtils::ltrim(structTypeStr.substr(startPos, curPos - startPos)));
1347 return structFieldsStr;
1348}
1349
1350LogicalType parseListType(const std::string& trimmedStr, main::ClientContext* context) {
1351 return LogicalType::LIST(

Callers 1

parseStructTypeInfoFunction · 0.85

Calls 3

ltrimFunction · 0.85
lengthMethod · 0.80
push_backMethod · 0.45

Tested by

no test coverage detected