-- | This provides what is needed for the output of 'hprotoc' to -- compile. This and the Prelude will both be imported qualified as -- P', the prime ensuring no name conflicts are possible. 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((|>)) -- for append, see below import Data.Set(fromDistinctAscList,member) import Text.Parsec(choice, sepEndBy, spaces, try) import Text.ProtocolBuffers.Basic -- all 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 -- all 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