module Data.ProtocolBuffers.Internal
  ( Tag
  , WireField(..)
  , wireFieldTag
  , getWireField
  , EncodeWire(..)
  , DecodeWire(..)
  , zzEncode32
  , zzEncode64
  , zzDecode32
  , zzDecode64
  , getVarintPrefixedBS, getVarInt
  , putVarintPrefixedBS, putVarSInt, putVarUInt
  , Field(..)
  , Value(..)
  , Always(..)
  , Enumeration(..)
  , RequiredField(..)
  , OptionalField(..)
  , RepeatedField(..)
  , PackedField(..)
  , PackedList(..)
  , Message(..)
  , GDecode
  , GEncode
  , GMessageMonoid
  ) where

import Data.ProtocolBuffers.Decode
import Data.ProtocolBuffers.Encode
import Data.ProtocolBuffers.Message
import Data.ProtocolBuffers.Types
import Data.ProtocolBuffers.Wire