sandi-0.5: Data encoding library

Copyright (c) 2012 Magnus Therning BSD3 None Haskell2010

Codec.Binary.Base16

Description

Implemention of base 16 encoding (hex encoding) as specified in RFC 4648 (http://tools.ietf.org/html/rfc4648).

Synopsis

# Documentation

Arguments

 :: ByteString -> ByteString The encoded string

Encoding function.

This function, unlike some other encoding functions in the library, simply cannot fail. Double the length of the input string is allocated for the encoded data, which is guaranteed to hold the result.

>>> b16Enc $Data.ByteString.pack [0x00] "00"  >>> b16Enc$ Data.ByteString.Char8.pack "foobar"
"666F6F626172"


Decoding function.

The returned value on success is Right (<decoded part>, <undecoded part>) (the undecoded part is either a empty or a single byte), and on failure it's Left (<decoded part>, <undecodable part>). Space equal to the length of the input string is allocated, which is more than enough to hold the decoded data.

>>> b16Dec $Data.ByteString.Char8.pack "00" Right ("\NUL","")  >>> b16Dec$ Data.ByteString.Char8.pack "666F6F626172"
Right ("foobar","")

>>> b16Dec $Data.ByteString.Char8.pack "666F6F62617" Right ("fooba","7") >>> b16Dec$ Data.ByteString.Char8.pack "666F6F62617g"
Left ("fooba","g")


A synonym for b16_enc.

A synonum for b16_dec.