Codec.Binary.Xx

dataenc-0.13.0.4: Data encoding library

Codec.Binary.Xx

Description

Xxencoding is obsolete but still included for completeness. Further information on the encoding can be found at http://en.wikipedia.org/wiki/Xxencode. It should be noted that this implementation performs no padding, due to the splitting up between encoding and chopping.

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

Synopsis

- encode :: [Word8] -> String
- decode :: String -> Maybe [Word8]
- decode' :: String -> [Maybe Word8]
- chop :: Int -> String -> [String]
- unchop :: [String] -> String

# Documentation

encode :: [Word8] -> String

Encode data.

decode :: String -> Maybe [Word8]

Decode data (strict).

decode' :: String -> [Maybe Word8]

Decode data (lazy).

chop

Arguments

:: Int | length (value should be in the range `[5..85]`)
-> String |
-> [String] |

Chop up a string in parts. Each string in the resulting list is prepended with the length according to the xxencode "specificiation".

Notes:

- The length of the strings in the result will be `(n -1) `div` 4 * 4 + 1`. The `-1` comes from the need to prepend the length (which explains the final `+1`). Keeping it to a multiple of 4 means that strings returned from `encode` can be chopped without requiring any changes.

unchop :: [String] -> String

Concatenate the strings into one long string. Each string is assumed to be prepended with the length according to the xxencode specification.