Implement InputStream.nonBlockingReads and document it

This commit is contained in:
Zahary Karadjov 2020-05-06 23:54:28 +03:00
commit ec5c3af313
No known key found for this signature in database
GPG key ID: C8936F8A3073D609
3 changed files with 56 additions and 0 deletions

View file

@ -20,6 +20,10 @@ proc countLines(s: InputStream): Natural =
for s in lines(s):
inc result
proc readAll(s: InputStream): seq[byte] =
while s.readable:
result.add s.read
const
asciiTableFile = "files" / "ascii_table.txt"
asciiTableContents = slurp(asciiTableFile)
@ -132,6 +136,13 @@ procSuite "input stream":
check not fileExists(fileName)
test "non-blocking reads":
let s = fileInput(asciiTableFile, pageSize = 20)
if s.readable:
s.nonBlockingReads:
check s.readAll.len == 20
check s.readable
test "simple":
var input = repeat("1234 5678 90AB CDEF\n", 1000)
var stream = unsafeMemoryInput(input)