# std/streamwrapper

Dark Mode

- Manual
- Standard library
- Index
- Compiler docs
- Fusion docs
- devel, stable

Search:
Source Edit

This module implements stream wrapper.

Since version 1.2.

# Imports

deques, streams

# Types

    PipeOutStream[T] = ref object of T
      buffer: Deque[char]
      baseReadLineImpl: typeof(StreamObj.readLineImpl)
      baseReadDataImpl: typeof(StreamObj.readDataImpl)

  Source Edit

# Procs

    proc newPipeOutStream[T](s: sink (ref T)): owned PipeOutStream[T]

  Wrap pipe for reading with PipeOutStream so that you can use peek* procs and generate runtime error when setPosition/getPosition is called or write operation is performed.

  Example:

      import std/[osproc, streamwrapper]
      var
        p = startProcess(exePath)
        outStream = p.outputStream().newPipeOutStream()
      echo outStream.peekChar
      p.close()

  Source Edit