packages feed

protocol-buffers-0.2.8: tests/UnittestProto/TestFieldOrderings.hs

module UnittestProto.TestFieldOrderings (TestFieldOrderings(..)) where
import Prelude ((+), (<=), (&&), ( || ))
import qualified Prelude as P'
import qualified Text.ProtocolBuffers.Header as P'
import qualified UnittestProto as UnittestProto (my_extension_int, my_extension_string)
 
data TestFieldOrderings = TestFieldOrderings{my_string :: P'.Maybe P'.Utf8, my_int :: P'.Maybe P'.Int64,
                                             my_float :: P'.Maybe P'.Float, ext'field :: P'.ExtField}
                        deriving (P'.Show, P'.Eq, P'.Ord, P'.Typeable)
 
instance P'.ExtendMessage TestFieldOrderings where
  getExtField = ext'field
  putExtField e'f msg = msg{ext'field = e'f}
  validExtRanges msg = P'.extRanges (P'.reflectDescriptorInfo msg)
 
instance P'.Mergeable TestFieldOrderings where
  mergeEmpty = TestFieldOrderings P'.mergeEmpty P'.mergeEmpty P'.mergeEmpty P'.mergeEmpty
  mergeAppend (TestFieldOrderings x'1 x'2 x'3 x'4) (TestFieldOrderings y'1 y'2 y'3 y'4)
    = TestFieldOrderings (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2) (P'.mergeAppend x'3 y'3) (P'.mergeAppend x'4 y'4)
 
instance P'.Default TestFieldOrderings where
  defaultValue = TestFieldOrderings P'.defaultValue P'.defaultValue P'.defaultValue P'.defaultValue
 
instance P'.Wire TestFieldOrderings where
  wireSize ft' self'@(TestFieldOrderings x'1 x'2 x'3 x'4)
    = case ft' of
        10 -> calc'Size
        11 -> P'.prependMessageSize calc'Size
        _ -> P'.wireSizeErr ft' self'
    where
        calc'Size = (P'.wireSizeOpt 1 9 x'1 + P'.wireSizeOpt 1 3 x'2 + P'.wireSizeOpt 2 2 x'3 + P'.wireSizeExtField x'4)
  wirePut ft' self'@(TestFieldOrderings x'1 x'2 x'3 x'4)
    = case ft' of
        10 -> put'Fields
        11
          -> do
               P'.putSize (P'.wireSize 10 self')
               put'Fields
        _ -> P'.wirePutErr ft' self'
    where
        put'Fields
          = do
              P'.wirePutOpt 8 3 x'2
              P'.wirePutOpt 90 9 x'1
              P'.wirePutOpt 813 2 x'3
              P'.wirePutExtField x'4
  wireGet ft'
    = case ft' of
        10 -> P'.getBareMessageExt update'Self
        11 -> P'.getMessageExt update'Self
        _ -> P'.wireGetErr ft'
    where
        update'Self field'Number old'Self
          = case field'Number of
              11 -> P'.fmap (\ new'Field -> old'Self{my_string = P'.Just new'Field}) (P'.wireGet 9)
              1 -> P'.fmap (\ new'Field -> old'Self{my_int = P'.Just new'Field}) (P'.wireGet 3)
              101 -> P'.fmap (\ new'Field -> old'Self{my_float = P'.Just new'Field}) (P'.wireGet 2)
              5 -> P'.wireGetKey UnittestProto.my_extension_int old'Self
              50 -> P'.wireGetKey UnittestProto.my_extension_string old'Self
              _ -> P'.unknownField field'Number
 
instance P'.MessageAPI msg' (msg' -> TestFieldOrderings) TestFieldOrderings where
  getVal m' f' = f' m'
 
instance P'.GPB TestFieldOrderings
 
instance P'.ReflectDescriptor TestFieldOrderings where
  reflectDescriptorInfo _
    = P'.read
        "DescriptorInfo {descName = ProtoName {haskellPrefix = \"\", parentModule = \"UnittestProto\", baseName = \"TestFieldOrderings\"}, descFilePath = [\"UnittestProto\",\"TestFieldOrderings.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoName {haskellPrefix = \"\", parentModule = \"UnittestProto.TestFieldOrderings\", baseName = \"my_string\"}, fieldNumber = FieldId {getFieldId = 11}, wireTag = WireTag {getWireTag = 90}, wireTagLength = 1, isRequired = False, canRepeat = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoName {haskellPrefix = \"\", parentModule = \"UnittestProto.TestFieldOrderings\", baseName = \"my_int\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 8}, wireTagLength = 1, isRequired = False, canRepeat = False, typeCode = FieldType {getFieldType = 3}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoName {haskellPrefix = \"\", parentModule = \"UnittestProto.TestFieldOrderings\", baseName = \"my_float\"}, fieldNumber = FieldId {getFieldId = 101}, wireTag = WireTag {getWireTag = 813}, wireTagLength = 2, isRequired = False, canRepeat = False, typeCode = FieldType {getFieldType = 2}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [(FieldId {getFieldId = 2},FieldId {getFieldId = 10}),(FieldId {getFieldId = 12},FieldId {getFieldId = 100})], knownKeys = fromList [FieldInfo {fieldName = ProtoName {haskellPrefix = \"\", parentModule = \"UnittestProto\", baseName = \"my_extension_int\"}, fieldNumber = FieldId {getFieldId = 5}, wireTag = WireTag {getWireTag = 40}, wireTagLength = 1, isRequired = False, canRepeat = False, typeCode = FieldType {getFieldType = 5}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoName {haskellPrefix = \"\", parentModule = \"UnittestProto\", baseName = \"my_extension_string\"}, fieldNumber = FieldId {getFieldId = 50}, wireTag = WireTag {getWireTag = 402}, wireTagLength = 2, isRequired = False, canRepeat = False, typeCode = FieldType {getFieldType = 9}, typeName = Nothing, hsRawDefault = Nothing, hsDefault = Nothing}]}"