bytestring-show-0.3.4: Efficient conversion of values into readable byte strings.

PortabilityNon-portable (type synonym instances)
StabilityExperimental
MaintainerDan Doel

Text.Show.ByteString

Contents

Description

Efficiently convert from values to lazy byte strings.

Synopsis

The Show class

class Show a whereSource

Conversion of values to readable byte strings. Minimal complete definition: showp or showpPrec

Methods

showpPrec :: Int -> a -> PutSource

Encodes a value to an efficient byte string builder. The precedence is used to determine where to put parentheses in a shown expression involving operators.

Values of type Put can be efficiently combined, so the showp functions are available for showing multiple values before producing an output byte string.

showp :: a -> PutSource

Encodes a value to an efficient byte string builder. Values of type Put can be efficiently combined, so this is available for building strings from multiple values.

showpList :: [a] -> PutSource

Allows for specialized display of lists of values. This is used, for example, when showing arrays of Chars.

show :: Show a => a -> ByteStringSource

Encode a single value into a byte string

Putting Chars

putAscii :: Char -> PutSource

Writes a single Char to a byte string, assuming it's ascii.

putUTF8 :: Char -> PutSource

Writes a single Char to a byte string, properly UTF-8 encoded

Putting Strings

putAsciiStr :: String -> PutSource

Writes a string of ascii characters to a byte string

putUTF8Str :: String -> PutSource

Writes a string of unicode characters to a byte string, properly UTF-8 encoded

Putting digits

unsafePutDigit :: Int -> PutSource

Puts the decimal digit corresponding to the given Int without checking that it is in the interval [0,9]

putDigit :: Int -> PutSource

Puts the digit corresponding to the Int passed in.

Putting integers

showpIntAtBase :: Integral a => a -> (Int -> Char) -> a -> PutSource

Shows an Integral number using the base specified by the first argument and the chracter representation specified by the second.

Putting floats

showpGFloat :: RealFloat a => Maybe Int -> a -> PutSource

Show a signed RealFloat value using decimal notation when the absolute value lies between 0.1 and 9,999,999, and scientific notation otherwise. The optional integer can be used to specify precision.

showpFFloat :: RealFloat a => Maybe Int -> a -> PutSource

Show a signed RealFloat value using decimal notation. The optional integer can be used to specify precision.

showpEFloat :: RealFloat a => Maybe Int -> a -> PutSource

Show a signed RealFloat value using scientific (exponential) notation. The optional integer can be used to specify precision.

Combining builders

unlinesP :: [Put] -> PutSource

Merge several string builders, separating them by newlines

unwordsP :: [Put] -> PutSource

Merge several string builders, separating them by spaces

showpParen :: Bool -> Put -> PutSource

A utility function for surrounding output by parentheses conditionally.

Printing values

print :: Show a => a -> IO ()Source

Print a value to the standard output

Put

type Put = PutM ()

Put merely lifts Builder into a Writer monad, applied to ().

newtype PutM a

The PutM type. A Writer monad over the efficient Builder monoid.

Constructors

Put 

Fields

unPut :: PairS a
 

runPut :: Put -> ByteString

Run the Put monad with a serialiser