knob-0.2: Memory-backed handles
Copyright2011 John Millikin
LicenseMIT
Maintainerjmillikin@gmail.com
PortabilityGHC only
Safe HaskellSafe-Inferred
LanguageHaskell2010

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

Documentation

data Knob Source #

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.

newFileHandle Source #

Arguments

:: MonadIO m 
=> Knob 
-> String

Filename shown in error messages

-> IOMode 
-> m Handle 

Create a new Handle pointing to a Knob. This handle behaves like a file-backed handle for most purposes.

withFileHandle Source #

Arguments

:: MonadIO m 
=> Knob 
-> String

Filename shown in error messages.

-> IOMode 
-> (Handle -> IO a) 
-> m a