-------------------------------------------------------------------- -- | -- Module : Data.MessagePack -- Copyright : (c) Hideyuki Tanaka, 2009-2015 -- License : BSD3 -- -- Maintainer: tanaka.hideyuki@gmail.com -- Stability : experimental -- Portability: portable -- -- Simple interface to pack and unpack MessagePack data. -- -------------------------------------------------------------------- module Data.MessagePack ( -- * Simple interface to pack and unpack msgpack binary pack, unpack, -- * Re-export modules -- $reexports -- module X, module Data.MessagePack.Assoc, module Data.MessagePack.Get, module Data.MessagePack.Object, module Data.MessagePack.Put, ) where import Data.Binary import qualified Data.ByteString.Lazy as L import Data.MessagePack.Assoc import Data.MessagePack.Get import Data.MessagePack.Object import Data.MessagePack.Put -- | Pack a Haskell value to MessagePack binary. pack :: MessagePack a => a -> L.ByteString pack = encode . toObject -- | Unpack MessagePack binary to a Haskell value. If it fails, it returns Nothing. unpack :: MessagePack a => L.ByteString -> Maybe a unpack = fromObject . decode