bool ParseLanes(string lanesString, vector<SingleLaneInfo> & lanes) { if (lanesString.empty()) return false; lanes.clear(); strings::AsciiToLower(lanesString); base::EraseIf(lanesString, [](char c) { return isspace(c); }); vector<string> SplitLanesStrings; SingleLaneInfo lane; SplitLanes(lanesString, '|', SplitLanesStrings); for (string const & s : SplitLanesStrings) { if (!ParseSingleLane(s, ';', lane.m_lane)) { lanes.clear(); return false; } lanes.push_back(lane); } return true; }
bool ParseLanes(string lanesString, vector<SingleLaneInfo> & lanes) { if (lanesString.empty()) return false; lanes.clear(); transform(lanesString.begin(), lanesString.end(), lanesString.begin(), tolower); lanesString.erase(remove_if(lanesString.begin(), lanesString.end(), isspace), lanesString.end()); vector<string> SplitLanesStrings; SingleLaneInfo lane; SplitLanes(lanesString, '|', SplitLanesStrings); for (string const & s : SplitLanesStrings) { if (!ParseSingleLane(s, ';', lane.m_lane)) { lanes.clear(); return false; } lanes.push_back(lane); } return true; }