diff --git a/lib/pure/strutils.nim b/lib/pure/strutils.nim index 8e362a917ce2..42a3ac57910a 100644 --- a/lib/pure/strutils.nim +++ b/lib/pure/strutils.nim @@ -2849,13 +2849,16 @@ iterator tokenize*(s: string, seps: set[char] = Whitespace): tuple[ break i = j +proc isEmptyOrWhitespace*(s: string): bool {.noSideEffect, procvar, rtl, + extern: "nsuIsEmptyOrWhitespace".} = + ## Checks if `s` is empty or consists entirely of whitespace characters. + result = s.allCharsInSet(Whitespace) + proc isNilOrWhitespace*(s: string): bool {.noSideEffect, procvar, rtl, - extern: "nsuIsNilOrWhitespace".} = - ## Checks if `s` is nil or consists entirely of whitespace characters. - result = true - for c in s: - if not c.isSpaceAscii(): - return false + extern: "nsuIsNilOrWhitespace", + deprecated: "use isEmptyOrWhitespace instead".} = + ## Alias for isEmptyOrWhitespace + result = isEmptyOrWhitespace(s) when isMainModule: proc nonStaticTests = @@ -2981,10 +2984,10 @@ when isMainModule: doAssert isSpaceAscii('\l') doAssert(not isSpaceAscii('A')) - doAssert(isNilOrWhitespace("")) - doAssert(isNilOrWhitespace(" ")) - doAssert(isNilOrWhitespace("\t\l \v\r\f")) - doAssert(not isNilOrWhitespace("ABc \td")) + doAssert(isEmptyOrWhitespace("")) + doAssert(isEmptyOrWhitespace(" ")) + doAssert(isEmptyOrWhitespace("\t\l \v\r\f")) + doAssert(not isEmptyOrWhitespace("ABc \td")) doAssert isLowerAscii('a') doAssert isLowerAscii('z')