module Text.ProtocolBuffers.Header
( append, emptyBS
, pack, fromMaybe, ap
, msum
, fromDistinctAscList, member
, throwError,catchError
, choice, sepEndBy, spaces, try
, (<=<)
, FromJSON(..), ToJSON(..)
, Value(..)
, explicitParseField, explicitParseFieldMaybe, withObject, withText
, module Data.Generics
, module Text.ProtocolBuffers.Basic
, module Text.ProtocolBuffers.Extensions
, module Text.ProtocolBuffers.Identifiers
, module Text.ProtocolBuffers.Reflections
, module Text.ProtocolBuffers.TextMessage
, module Text.ProtocolBuffers.Unknown
, module Text.ProtocolBuffers.WireMessage
, module Text.ProtocolBuffers.ProtoJSON
) where
import Control.Monad(ap, (<=<), msum)
import Control.Monad.Error.Class(throwError,catchError)
import Data.Aeson (FromJSON(..), ToJSON(..), Value(..))
import Data.Aeson.Types (explicitParseField, explicitParseFieldMaybe, withObject, withText)
import Data.ByteString.Lazy(empty)
import Data.ByteString.Lazy.Char8(pack)
import Data.Generics(Data(..))
import Data.Maybe(fromMaybe)
import Data.Sequence((|>))
import Data.Set(fromDistinctAscList,member)
import Text.Parsec(choice, sepEndBy, spaces, try)
import Text.ProtocolBuffers.Basic
import Text.ProtocolBuffers.Extensions
( wireSizeExtField,wirePutExtField,wirePutExtFieldWithSize
, loadExtension,notExtension
, wireGetKeyToUnPacked, wireGetKeyToPacked
, GPB,Key(..),ExtField,ExtendMessage(..),MessageAPI(..),ExtKey(wireGetKey),PackedSeq )
import Text.ProtocolBuffers.Identifiers(FIName(..),MName(..),FName(..))
import Text.ProtocolBuffers.Reflections
( ReflectDescriptor(..),ReflectEnum(..),EnumInfo(..),ProtoName(..)
, GetMessageInfo(GetMessageInfo),DescriptorInfo(extRanges),makePNF )
import Text.ProtocolBuffers.TextMessage
import Text.ProtocolBuffers.Unknown
( UnknownField
, UnknownMessage(..)
, wireSizeUnknownField
, wirePutUnknownField
, wirePutUnknownFieldWithSize
, catch'Unknown
, catch'Unknown'
, loadUnknown
, discardUnknown
)
import Text.ProtocolBuffers.WireMessage
( Wire(..)
, prependMessageSize,putSize,splitWireTag
, runPutM
, wireSizeReq,wireSizeOpt,wireSizeRep
, wirePutReq,wirePutOpt,wirePutRep
, wirePutReqWithSize,wirePutOptWithSize,wirePutRepWithSize
, sequencePutWithSize
, wirePutPacked,wirePutPackedWithSize,wireSizePacked
, getMessageWith,getBareMessageWith,wireGetEnum,wireGetPackedEnum
, wireSizeErr,wirePutErr,wireGetErr,size'WireSize
, unknown,unknownField
, fieldIdOf)
import Text.ProtocolBuffers.ProtoJSON
{-# INLINE append #-}
append :: Seq a -> a -> Seq a
append = (|>)
{-# INLINE emptyBS #-}
emptyBS :: ByteString
emptyBS = Data.ByteString.Lazy.empty