summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorGrzegorz Adam Hankiewicz <gradha@imap.cc>2013-03-11 23:48:15 +0100
committerGrzegorz Adam Hankiewicz <gradha@imap.cc>2013-03-11 23:49:03 +0100
commit75be9c8d552ab83be01d7f173efcbadc7a531e2a (patch)
treed2066cee9f288c6e5395664a3a8a5a58c465f677
parent5ac5bedc66c94a781c4a23fa6d0407c012276aa7 (diff)
downloadNim-75be9c8d552ab83be01d7f173efcbadc7a531e2a.tar.gz
Implements `$` proc for a sequence of TRunes.
-rw-r--r--lib/pure/unicode.nim12
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