dataenc-0.14.0.7: Data encoding library
Copyright(c) 2009 Magnus Therning
LicenseBSD3
Safe HaskellSafe-Inferred
LanguageHaskell98

Codec.Binary.PythonString

Description

Implementation of python escaping.

This implementation encodes non-printable characters (0x00-0x1f, 0x7f-0xff) to hex-value characters ('xhh') while leaving printable characters as such:

> encode [0, 10, 13, 110]
"\\x00\\x0A\\x0Dn"
> putStrLn $ encode [0, 10, 13, 110]
\x00\x0A\x0Dn

It also properly handles escaping of a few characters that require it:

> encode [34, 39, 92]
"\\\"\\'\\\\"
putStrLn $ encode [34, 39, 92]
\"\'\\

Further documentation and information can be found at http://www.haskell.org/haskellwiki/Library/Data_encoding.

Synopsis

Documentation

data EncIncData Source #

Data type for the incremental encoding functions.

Constructors

EChunk [Word8]

a chunk of data to be encoded

EDone

the signal to the encoder that the stream of data is ending

data EncIncRes i Source #

Data type for the result of calling the incremental encoding functions.

Constructors

EPart i (EncIncData -> EncIncRes i)

a partial result together with the continuation to use for further encoding

EFinal i

the final result of encoding (the response to EDone)

encodeInc :: EncIncData -> EncIncRes String Source #

Incremental encoder function.

encode :: [Word8] -> String Source #

Encode data.

data DecIncData i Source #

Data type for the incremental decoding functions.

Constructors

DChunk i

a chunk of data to be decoded

DDone

the signal to the decoder that the stream of data is ending

data DecIncRes i Source #

Data type for the result of calling the incremental encoding functions.

Constructors

DPart [Word8] (DecIncData i -> DecIncRes i)

a partial result together with the continuation to user for further decoding

DFinal [Word8] i

the final result of decoding (the response to DDone)

DFail [Word8] i

a partial result for a failed decoding, together with the remainder of the data passed in so far

decodeInc :: DecIncData String -> DecIncRes String Source #

Incremental decoder function.

decode :: String -> Maybe [Word8] Source #

Decode data.

chop Source #

Arguments

:: Int

length of individual lines (values < 1 are ignored)

-> String 
-> [String] 

Chop up a string in parts.

unchop :: [String] -> String Source #

Concatenate the list of strings into one long string.