diff options
author | Grzegorz Adam Hankiewicz <gradha@imap.cc> | 2013-03-11 23:48:15 +0100 |
---|---|---|
committer | Grzegorz Adam Hankiewicz <gradha@imap.cc> | 2013-03-11 23:49:03 +0100 |
commit | 75be9c8d552ab83be01d7f173efcbadc7a531e2a (patch) | |
tree | d2066cee9f288c6e5395664a3a8a5a58c465f677 | |
parent | 5ac5bedc66c94a781c4a23fa6d0407c012276aa7 (diff) | |
download | Nim-75be9c8d552ab83be01d7f173efcbadc7a531e2a.tar.gz |
Implements `$` proc for a sequence of TRunes.
-rw-r--r-- | lib/pure/unicode.nim | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/pure/unicode.nim b/lib/pure/unicode.nim index f76573788..142178a86 100644 --- a/lib/pure/unicode.nim +++ b/lib/pure/unicode.nim @@ -132,6 +132,11 @@ proc toUTF8*(c: TRune): string {.rtl, extern: "nuc$1".} = result = newString(1) result[0] = chr(i) +proc `$`*(runes: seq[TRune]): string = + ## converts a sequence of runes to a string + result = "" + for rune in runes: result.add(rune.toUTF8) + const alphaRanges = [ 0x00d8, 0x00f6, # - @@ -1208,3 +1213,10 @@ proc cmpRunesIgnoreCase*(a, b: string): int {.rtl, extern: "nuc$1", procvar.} = result = irune(toLower(ar)) - irune(toLower(br)) if result != 0: return result = a.len - b.len + +when isMainModule: + let + someString = "öÑ" + someRunes = @[runeAt(someString, 0), runeAt(someString, 2)] + compared = (someString == $someRunes) + assert compared == true |