diff options
author | Araq <rumpf_a@web.de> | 2015-09-28 16:39:52 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2015-09-29 19:30:43 +0200 |
commit | 985594cbb8274e21c65f88485f3c4d83d6ff60d2 (patch) | |
tree | 1d81365f123773a1deafea60fc5c2c63c12080e2 /lib/pure | |
parent | d8a10457e21654272e9de67048182d845e87eb3a (diff) | |
download | Nim-985594cbb8274e21c65f88485f3c4d83d6ff60d2.tar.gz |
added streams.readAll proc
Diffstat (limited to 'lib/pure')
-rw-r--r-- | lib/pure/streams.nim | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/pure/streams.nim b/lib/pure/streams.nim index 406a0ec6e..68f31e9fe 100644 --- a/lib/pure/streams.nim +++ b/lib/pure/streams.nim @@ -101,6 +101,18 @@ proc readData*(s: Stream, buffer: pointer, bufLen: int): int = ## low level proc that reads data into an untyped `buffer` of `bufLen` size. result = s.readDataImpl(s, buffer, bufLen) +proc readAll*(s: Stream): string = + ## Reads all available data. + result = newString(1000) + var r = 0 + while true: + let readBytes = readData(s, addr(result[r]), 1000) + if readBytes < 1000: + setLen(result, r+readBytes) + break + inc r, 1000 + setLen(result, r+1000) + proc readData*(s, unused: Stream, buffer: pointer, bufLen: int): int {.deprecated.} = ## low level proc that reads data into an untyped `buffer` of `bufLen` size. |