| Portability | GHC only |
|---|---|
| Maintainer | jmillikin@gmail.com |
| Safe Haskell | Safe-Infered |
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)
- 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.
newKnob :: MonadIO m => ByteString -> m KnobSource
getContents :: MonadIO m => Knob -> m ByteStringSource
setContents :: MonadIO m => Knob -> ByteString -> m ()Source