raaz-0.0.1: Raaz/Core/Encode.hs
--
module Raaz.Core.Encode
( -- * The encodable type
-- $encodable$
Encodable(..)
-- * Encoding formats
-- $encodingformat$
, Format(..)
, encode, decode, unsafeDecode
-- ** The base 16 encoding fromat
, Base16, fromBase16, showBase16
) where
import Raaz.Core.Encode.Internal
import Raaz.Core.Encode.Base16
-- $encodable$
--
-- Many types like cryptographic hashes, secret keys etc can be
-- encoded into bytes. This module gives an interface to such objects
-- using the `Encodable` type class. To ease their printing most types
-- of this class have a `Show` instances. Similarly, to make it easy
-- to defines constants of these types in source code, they often are
-- instances of `Data.String.IsString`. Typically for cryptographic
-- types like hashes, secret keys etc the `Show` and
-- `Data.String.IsString` instances correspond to the base-16 encoding
-- of these types.
-- $encodingformat$
--
-- We also give facilities to encode any instance of `Encodable` into
-- multiple formats. For type safety, encoding formats are
-- distinguished by their types. All such formats have to be members
-- of the `Format` type class and this allows encoding and decoding
-- any type that is an instance of `Encodable` into any of the desired
-- format.
--