Cabal-3.12.0.0: A framework for packaging Haskell software
Safe HaskellSafe-Inferred
LanguageHaskell2010

Distribution.Utils.IOData

Description

Since: Cabal-2.2.0

Synopsis

IOData & IODataMode type

data IOData Source #

Represents either textual or binary data passed via I/O functions which support binary/text mode

Since: Cabal-2.2

Constructors

IODataText String

How Text gets encoded is usually locale-dependent.

IODataBinary ByteString

Raw binary which gets read/written in binary mode.

Instances

Instances details
NFData IOData Source # 
Instance details

Defined in Distribution.Utils.IOData

Methods

rnf :: IOData -> () Source #

data IODataMode mode where Source #

Phantom-typed GADT representation of the mode of IOData, containing no other data.

Since: Cabal-3.2

class NFData mode => KnownIODataMode mode where Source #

Since: Cabal-2.2

Methods

hGetIODataContents :: Handle -> IO mode Source #

IOData Wrapper for hGetContents

Note: This operation uses lazy I/O. Use NFData to force all data to be read and consequently the internal file handle to be closed.

toIOData :: mode -> IOData Source #

iodataMode :: IODataMode mode Source #

withIOData :: IOData -> (forall mode. IODataMode mode -> mode -> r) -> r Source #

Applies a function polymorphic over IODataMode to an IOData value.

null :: IOData -> Bool Source #

Test whether IOData is empty

hPutContents :: Handle -> IOData -> IO () Source #

IOData Wrapper for hPutStr and hClose

This is the dual operation ot hGetIODataContents, and consequently the handle is closed with hClose.

Note: this performs lazy-IO.

Since: Cabal-2.2