stdio-0.1.0.0: A simple and high performance IO toolkit for Haskell

Copyright(c) Dong Han 2018~2019
LicenseBSD
Maintainerwinterland1989@gmail.com
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Std.IO.StdStream

Contents

Description

This module provides stdin/stderr/stdout reading and writings. Usually you don't have to use stderr or stderrBuf directly, Logger provides more logging utilities through stderr. While stdinBuf and stdoutBuf is useful when you write interactive programs, Buffered module provide many reading and writing operations. Example:

import Std.IO.LowResTimer
import Std.IO.Buffered
import Std.IO.StdStream

main = do
    -- read by '\n'
    b1 <- readLineStd
    -- read whatever user input in 3s, otherwise get Nothing
    b2 <- timeoutLowRes 30 $ readBuffered stdinBuf
    ...
    putStd "hello world!"

Synopsis

Standard input & output streams

data StdStream Source #

Standard input and output streams

We support both regular file and TTY based streams, when initialized uv_guess_handle is called to decide which type of devices are connected to standard streams.

StdStream is different from other UVStream in that exception during reading & writing won't close StdStream.

Instances
Output StdStream Source # 
Instance details

Defined in Std.IO.StdStream

Methods

writeOutput :: StdStream -> Ptr Word8 -> Int -> IO () Source #

Input StdStream Source # 
Instance details

Defined in Std.IO.StdStream

utils

printStd :: Show a => a -> IO () Source #

print a Show to stdout

readLineStd :: IO Bytes Source #

read a line from stdin

putStd :: Builder a -> IO () Source #

print a Builder and flush to stdout.

putLineStd :: Builder a -> IO () Source #

print a Builder and flush to stdout stdout, with a linefeed.