Skip to content

Commit 17faf36

Browse files
committed
redefine trim functions to use more efficient methods
1 parent 0d4dcb3 commit 17faf36

File tree

1 file changed

+10
-15
lines changed

1 file changed

+10
-15
lines changed

loader/src/utils/string.cpp

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -144,21 +144,21 @@ size_t utils::string::count(std::string const& str, char countC) {
144144
return res;
145145
}
146146

147-
147+
constexpr char WHITESPACE[] = " \f\n\r\t\v";
148148
std::string& utils::string::trimLeftIP(std::string& str, std::string const& chars) {
149149
str.erase(0, str.find_first_not_of(chars));
150150
return str;
151151
}
152152
std::string& utils::string::trimLeftIP(std::string& str) {
153-
return utils::string::trimLeftIP(str, " \f\n\r\t\v");
153+
return utils::string::trimLeftIP(str, WHITESPACE);
154154
}
155155

156156
std::string& utils::string::trimRightIP(std::string& str, std::string const& chars) {
157157
str.erase(str.find_last_not_of(chars) + 1);
158158
return str;
159159
}
160160
std::string& utils::string::trimRightIP(std::string& str) {
161-
return utils::string::trimRightIP(str, " \f\n\r\t\v");
161+
return utils::string::trimRightIP(str, WHITESPACE);
162162
}
163163

164164
std::string& utils::string::trimIP(std::string& str, std::string const& chars) {
@@ -169,30 +169,25 @@ std::string& utils::string::trimIP(std::string& str) {
169169
}
170170

171171
std::string utils::string::trimLeft(std::string const& str, std::string const& chars) {
172-
auto s2 = str;
173-
return utils::string::trimLeftIP(s2, chars);
172+
return str.substr(str.find_first_not_of(chars));
174173
}
175174
std::string utils::string::trimLeft(std::string const& str) {
176-
auto s2 = str;
177-
return utils::string::trimLeftIP(s2);
175+
return utils::string::trimLeft(str, WHITESPACE);
178176
}
179177

180178
std::string utils::string::trimRight(std::string const& str, std::string const& chars) {
181-
auto ret = str;
182-
return utils::string::trimRightIP(ret, chars);
179+
return str.substr(0, str.find_last_not_of(chars) + 1);
183180
}
184181
std::string utils::string::trimRight(std::string const& str) {
185-
auto ret = str;
186-
return utils::string::trimRightIP(ret);
182+
return utils::string::trimRight(str, WHITESPACE);
187183
}
188184

189185
std::string utils::string::trim(std::string const& str, std::string const& chars) {
190-
auto ret = str;
191-
return utils::string::trimIP(ret, chars);
186+
size_t start = str.find_first_not_of(chars);
187+
return str.substr(start, str.find_last_not_of(chars) + 1 - start);
192188
}
193189
std::string utils::string::trim(std::string const& str) {
194-
auto ret = str;
195-
return utils::string::trimIP(ret);
190+
return utils::string::trim(str, WHITESPACE);
196191
}
197192

198193
std::string& utils::string::normalizeIP(std::string& str) {

0 commit comments

Comments
 (0)