Merge pull request #4408 from euantorano/feature-strutils-isNilOrEmpty
Adding isNilOrEmpty and isNilOrWhitespace
This commit is contained in:
commit
d8fda3e4bb
1 changed files with 27 additions and 1 deletions
|
|
@ -160,7 +160,8 @@ proc isSpace*(s: string): bool {.noSideEffect, procvar,
|
||||||
|
|
||||||
result = true
|
result = true
|
||||||
for c in s:
|
for c in s:
|
||||||
result = c.isSpace() and result
|
if not c.isSpace():
|
||||||
|
return false
|
||||||
|
|
||||||
proc isLower*(s: string): bool {.noSideEffect, procvar,
|
proc isLower*(s: string): bool {.noSideEffect, procvar,
|
||||||
rtl, extern: "nsuIsLowerStr".}=
|
rtl, extern: "nsuIsLowerStr".}=
|
||||||
|
|
@ -326,6 +327,20 @@ proc toOctal*(c: char): string {.noSideEffect, rtl, extern: "nsuToOctal".} =
|
||||||
result[i] = chr(val mod 8 + ord('0'))
|
result[i] = chr(val mod 8 + ord('0'))
|
||||||
val = val div 8
|
val = val div 8
|
||||||
|
|
||||||
|
proc isNilOrEmpty*(s: string): bool {.noSideEffect, procvar, rtl, extern: "nsuIsNilOrEmpty".} =
|
||||||
|
## Checks if `s` is nil or empty.
|
||||||
|
result = len(s) == 0
|
||||||
|
|
||||||
|
proc isNilOrWhitespace*(s: string): bool {.noSideEffect, procvar, rtl, extern: "nsuIsNilOrWhitespace".} =
|
||||||
|
## Checks if `s` is nil or consists entirely of whitespace characters.
|
||||||
|
if len(s) == 0:
|
||||||
|
return true
|
||||||
|
|
||||||
|
result = true
|
||||||
|
for c in s:
|
||||||
|
if not c.isSpace():
|
||||||
|
return false
|
||||||
|
|
||||||
iterator split*(s: string, seps: set[char] = Whitespace,
|
iterator split*(s: string, seps: set[char] = Whitespace,
|
||||||
maxsplit: int = -1): string =
|
maxsplit: int = -1): string =
|
||||||
## Splits the string `s` into substrings using a group of separators.
|
## Splits the string `s` into substrings using a group of separators.
|
||||||
|
|
@ -2156,6 +2171,17 @@ when isMainModule:
|
||||||
doAssert isSpace(" ")
|
doAssert isSpace(" ")
|
||||||
doAssert(not isSpace("ABc \td"))
|
doAssert(not isSpace("ABc \td"))
|
||||||
|
|
||||||
|
doAssert(isNilOrEmpty(""))
|
||||||
|
doAssert(isNilOrEmpty(nil))
|
||||||
|
doAssert(not isNilOrEmpty("test"))
|
||||||
|
doAssert(not isNilOrEmpty(" "))
|
||||||
|
|
||||||
|
doAssert(isNilOrWhitespace(""))
|
||||||
|
doAssert(isNilOrWhitespace(nil))
|
||||||
|
doAssert(isNilOrWhitespace(" "))
|
||||||
|
doAssert(isNilOrWhitespace("\t\l \v\r\f"))
|
||||||
|
doAssert(not isNilOrWhitespace("ABc \td"))
|
||||||
|
|
||||||
doAssert isLower('a')
|
doAssert isLower('a')
|
||||||
doAssert isLower('z')
|
doAssert isLower('z')
|
||||||
doAssert(not isLower('A'))
|
doAssert(not isLower('A'))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue