content: {-# LANGUAGE BangPatterns, DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses #-}
  module MachineLearning.Protobufs.DataSourceConfig (DataSourceConfig(..)) where
  import Prelude ((+), (/))
  import qualified Prelude as Prelude'
  import qualified Data.Typeable as Prelude'
  import qualified Data.Data as Prelude'
  import qualified Text.ProtocolBuffers.Header as P'
  import qualified MachineLearning.Protobufs.DataSource as Protobufs (DataSource)
  import qualified MachineLearning.Protobufs.GridFsConfig as Protobufs (GridFsConfig)
   
  data DataSourceConfig = DataSourceConfig{dataSource :: !(P'.Maybe Protobufs.DataSource),
                                           gridFsConfig :: !(P'.Maybe Protobufs.GridFsConfig)}
                        deriving (Prelude'.Show, Prelude'.Eq, Prelude'.Ord, Prelude'.Typeable, Prelude'.Data)
   
  instance P'.Mergeable DataSourceConfig where
    mergeAppend (DataSourceConfig x'1 x'2) (DataSourceConfig y'1 y'2)
     = DataSourceConfig (P'.mergeAppend x'1 y'1) (P'.mergeAppend x'2 y'2)
   
  instance P'.Default DataSourceConfig where
    defaultValue = DataSourceConfig P'.defaultValue P'.defaultValue
   
  instance P'.Wire DataSourceConfig where
    wireSize ft' self'@(DataSourceConfig x'1 x'2)
     = case ft' of
         10 -> calc'Size
         11 -> P'.prependMessageSize calc'Size
         _ -> P'.wireSizeErr ft' self'
      where
          calc'Size = (P'.wireSizeOpt 1 14 x'1 + P'.wireSizeOpt 1 11 x'2)
    wirePut ft' self'@(DataSourceConfig x'1 x'2)
     = 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 14 x'1
               P'.wirePutOpt 18 11 x'2
    wireGet ft'
     = case ft' of
         10 -> P'.getBareMessageWith update'Self
         11 -> P'.getMessageWith update'Self
         _ -> P'.wireGetErr ft'
      where
          update'Self wire'Tag old'Self
           = case wire'Tag of
               8 -> Prelude'.fmap (\ !new'Field -> old'Self{dataSource = Prelude'.Just new'Field}) (P'.wireGet 14)
               18 -> Prelude'.fmap
                      (\ !new'Field -> old'Self{gridFsConfig = P'.mergeAppend (gridFsConfig old'Self) (Prelude'.Just new'Field)})
                      (P'.wireGet 11)
               _ -> let (field'Number, wire'Type) = P'.splitWireTag wire'Tag in P'.unknown field'Number wire'Type old'Self
   
  instance P'.MessageAPI msg' (msg' -> DataSourceConfig) DataSourceConfig where
    getVal m' f' = f' m'
   
  instance P'.GPB DataSourceConfig
   
  instance P'.ReflectDescriptor DataSourceConfig where
    getMessageInfo _ = P'.GetMessageInfo (P'.fromDistinctAscList []) (P'.fromDistinctAscList [8, 18])
    reflectDescriptorInfo _
     = Prelude'.read
        "DescriptorInfo {descName = ProtoName {protobufName = FIName \".protobufs.DataSourceConfig\", haskellPrefix = [MName \"MachineLearning\"], parentModule = [MName \"Protobufs\"], baseName = MName \"DataSourceConfig\"}, descFilePath = [\"MachineLearning\",\"Protobufs\",\"DataSourceConfig.hs\"], isGroup = False, fields = fromList [FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".protobufs.DataSourceConfig.dataSource\", haskellPrefix' = [MName \"MachineLearning\"], parentModule' = [MName \"Protobufs\",MName \"DataSourceConfig\"], baseName' = FName \"dataSource\"}, fieldNumber = FieldId {getFieldId = 1}, wireTag = WireTag {getWireTag = 8}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 14}, typeName = Just (ProtoName {protobufName = FIName \".protobufs.DataSource\", haskellPrefix = [MName \"MachineLearning\"], parentModule = [MName \"Protobufs\"], baseName = MName \"DataSource\"}), hsRawDefault = Nothing, hsDefault = Nothing},FieldInfo {fieldName = ProtoFName {protobufName' = FIName \".protobufs.DataSourceConfig.gridFsConfig\", haskellPrefix' = [MName \"MachineLearning\"], parentModule' = [MName \"Protobufs\",MName \"DataSourceConfig\"], baseName' = FName \"gridFsConfig\"}, fieldNumber = FieldId {getFieldId = 2}, wireTag = WireTag {getWireTag = 18}, packedTag = Nothing, wireTagLength = 1, isPacked = False, isRequired = False, canRepeat = False, mightPack = False, typeCode = FieldType {getFieldType = 11}, typeName = Just (ProtoName {protobufName = FIName \".protobufs.GridFsConfig\", haskellPrefix = [MName \"MachineLearning\"], parentModule = [MName \"Protobufs\"], baseName = MName \"GridFsConfig\"}), hsRawDefault = Nothing, hsDefault = Nothing}], keys = fromList [], extRanges = [], knownKeys = fromList [], storeUnknown = False, lazyFields = False}"