| 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 Handles, 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 Handles 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 #