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