MCPcopy Create free account
hub / github.com/catboost/catboost / CollapseImpl

Function CollapseImpl

util/string/strip.h:269–285  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

267
268template <class TChar, class TWhitespaceFunc>
269size_t CollapseImpl(TChar* s, size_t n, const TWhitespaceFunc& isWhitespace) {
270 size_t newLen = 0;
271 for (size_t i = 0; i < n; ++i, ++newLen) {
272 size_t nextNonSpace = i;
273 while (nextNonSpace < n && isWhitespace(s[nextNonSpace])) {
274 ++nextNonSpace;
275 }
276 size_t numSpaces = nextNonSpace - i;
277 if (numSpaces > 1 || (numSpaces == 1 && s[i] != ' ')) {
278 s[newLen] = ' ';
279 i = nextNonSpace - 1;
280 } else {
281 s[newLen] = s[i];
282 }
283 }
284 return newLen;
285}
286
287template <class TStringType, class TWhitespaceFunc>
288bool CollapseImpl(const TStringType& from, TStringType& to, size_t maxLen, const TWhitespaceFunc& isWhitespace) {

Callers 2

CollapseFunction · 0.85
CollapseFunction · 0.85

Calls 5

isWhitespaceFunction · 0.85
MinFunction · 0.50
sizeMethod · 0.45
beginMethod · 0.45
removeMethod · 0.45

Tested by

no test coverage detected