diff options
Diffstat (limited to 'lib/pure/streamwrapper.nim')
-rw-r--r-- | lib/pure/streamwrapper.nim | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/lib/pure/streamwrapper.nim b/lib/pure/streamwrapper.nim index b99982f1b..99752a9ab 100644 --- a/lib/pure/streamwrapper.nim +++ b/lib/pure/streamwrapper.nim @@ -11,7 +11,11 @@ ## ## **Since** version 1.2. -import deques, streams +import std/[deques, streams] + +when defined(nimPreviewSlimSystem): + import std/assertions + type PipeOutStream*[T] = ref object of T @@ -26,12 +30,12 @@ type baseReadLineImpl: typeof(StreamObj.readLineImpl) baseReadDataImpl: typeof(StreamObj.readDataImpl) -proc posReadLine[T](s: Stream, line: var TaintedString): bool = +proc posReadLine[T](s: Stream, line: var string): bool = var s = PipeOutStream[T](s) assert s.baseReadLineImpl != nil let n = s.buffer.len - line.string.setLen(0) + line.setLen(0) for i in 0..<n: var c = s.buffer.popFirst if c == '\c': @@ -40,7 +44,7 @@ proc posReadLine[T](s: Stream, line: var TaintedString): bool = elif c == '\L': return true elif c == '\0': return line.len > 0 - line.string.add(c) + line.add(c) var line2: string result = s.baseReadLineImpl(s, line2) @@ -87,14 +91,14 @@ proc newPipeOutStream*[T](s: sink (ref T)): owned PipeOutStream[T] = ## when setPosition/getPosition is called or write operation is performed. ## ## Example: - ## - ## .. code-block:: Nim - ## import osproc, streamwrapper + ## ```Nim + ## import std/[osproc, streamwrapper] ## var ## p = startProcess(exePath) ## outStream = p.outputStream().newPipeOutStream() ## echo outStream.peekChar ## p.close() + ## ``` assert s.readDataImpl != nil |