capnp-0.2.0.0: lib/Data/Capnp.hs
{- |
Module: Data.Capnp
Description: The most commonly used functionality from the low-level API.
This module re-exports the most commonly used functionality from the
low-level API. See also "Data.Capnp.Pure", which similarly re-exports
functionality from the high-level API.
Users getting acquainted with the library are *strongly* encouraged to read the
"Data.Capnp.Tutorial" module before anything else.
-}
module Data.Capnp
(
-- * Working with capnproto lists
Classes.ListElem(..)
, Classes.MutListElem(..)
-- * Working with capnproto Text and Data values.
, Basics.Data
, Basics.dataBytes
, Basics.Text
, Basics.textBytes
-- * Working with messages
, Message.ConstMsg
, Message.Message(..)
, Message.MutMsg
, Message.newMessage
, decodeMessage
, encodeMessage
-- ** Reading and writing messages
, Message.hPutMsg
, Message.putMsg
, Message.hGetMsg
, Message.getMsg
-- * Manipulating the root object of a message
, Codec.getRoot
, Codec.newRoot
, Codec.setRoot
-- * Reading values
, hGetValue
, getValue
-- * Type aliases for common contexts
, Message.WriteCtx
, Untyped.ReadCtx
, Untyped.RWCtx
-- * Managing resource limits
, module Data.Capnp.TraversalLimit
-- * Freezing and thawing values
, module Data.Mutable
-- * Building messages in pure code
, PureBuilder
, createPure
) where
import Control.Monad.Catch (MonadThrow)
import qualified Data.ByteString as BS
import qualified Data.ByteString.Builder as BB
import Data.Capnp.TraversalLimit
import Data.Mutable
import Data.Capnp.IO (getValue, hGetValue)
import Internal.BuildPure (PureBuilder, createPure)
import qualified Codec.Capnp as Codec
import qualified Data.Capnp.Basics as Basics
import qualified Data.Capnp.Classes as Classes
import qualified Data.Capnp.Message as Message
import qualified Data.Capnp.Untyped as Untyped
-- | Alias for 'Message.encode'
encodeMessage :: MonadThrow m => Message.ConstMsg -> m BB.Builder
encodeMessage = Message.encode
-- | Alias for 'Message.decode'
decodeMessage :: MonadThrow m => BS.ByteString -> m Message.ConstMsg
decodeMessage = Message.decode