Copyright | 2011 John Millikin |
---|---|
License | MIT |
Maintainer | n@monade.li |
Portability | GHC only |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Data.Knob
Description
Create memory-backed Handle
s, referencing virtual files. This is
mostly useful for testing Handle
-based APIs without having to
interact with the filesystem.
import Data.ByteString (pack) import Data.Knob import System.IO main = do knob <- newKnob (pack []) h <- newFileHandle knob "test.txt" WriteMode hPutStrLn h "Hello world!" hClose h bytes <- Data.Knob.getContents knob putStrLn ("Wrote bytes: " ++ show bytes)
Synopsis
- data Knob
- newKnob :: MonadIO m => ByteString -> m Knob
- getContents :: MonadIO m => Knob -> m ByteString
- setContents :: MonadIO m => Knob -> ByteString -> m ()
- newFileHandle :: MonadIO m => Knob -> String -> IOMode -> m Handle
- withFileHandle :: MonadIO m => Knob -> String -> IOMode -> (Handle -> IO a) -> m a
Documentation
A knob is a basic virtual file, which contains a byte buffer. A knob can
have multiple Handle
s open to it, each of which behaves like a standard
file handle.
Use getContents
and setContents
to inspect and modify the knob's
byte buffer.
getContents :: MonadIO m => Knob -> m ByteString Source #
setContents :: MonadIO m => Knob -> ByteString -> m () Source #