knob-0.1: Memory-backed handles

PortabilityGHC only
Maintainerjmillikin@gmail.com

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.

newFileHandleSource

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.

withFileHandleSource

Arguments

:: MonadIO m 
=> Knob 
-> String

Filename shown in error messages.

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