proto-lens-protoc 0.5.0.0 → 0.6.0.0
raw patch · 20 files changed
+15045/−3229 lines, 20 filesdep +ghcdep +ghc-pathsdep +ghc-source-gendep −haskell-src-extsdep ~basedep ~lens-familydep ~proto-lensPVP ok
version bump matches the API change (PVP)
Dependencies added: ghc, ghc-paths, ghc-source-gen, proto-lens-runtime
Dependencies removed: haskell-src-exts
Dependency ranges changed: base, lens-family, proto-lens
API changes (from Hackage documentation)
- Data.ProtoLens.Compiler.Combinators: (-->) :: Pat -> Exp -> Alt
- Data.ProtoLens.Compiler.Combinators: (<--) :: Pat -> Exp -> Stmt
- Data.ProtoLens.Compiler.Combinators: (@::@) :: Exp -> Type -> Exp
- Data.ProtoLens.Compiler.Combinators: (@@) :: App a => a -> a -> a
- Data.ProtoLens.Compiler.Combinators: CommentedDecl :: Maybe String -> Decl -> CommentedDecl
- Data.ProtoLens.Compiler.Combinators: ImportDecl :: l -> ModuleName l -> Bool -> Bool -> Bool -> Maybe String -> Maybe (ModuleName l) -> Maybe (ImportSpecList l) -> ImportDecl l
- Data.ProtoLens.Compiler.Combinators: Module :: ModuleName -> Maybe [ExportSpec] -> [ModulePragma] -> [ImportDecl ()] -> [CommentedDecl] -> Module
- Data.ProtoLens.Compiler.Combinators: [importAnn] :: ImportDecl l -> l
- Data.ProtoLens.Compiler.Combinators: [importAs] :: ImportDecl l -> Maybe (ModuleName l)
- Data.ProtoLens.Compiler.Combinators: [importModule] :: ImportDecl l -> ModuleName l
- Data.ProtoLens.Compiler.Combinators: [importPkg] :: ImportDecl l -> Maybe String
- Data.ProtoLens.Compiler.Combinators: [importQualified] :: ImportDecl l -> Bool
- Data.ProtoLens.Compiler.Combinators: [importSafe] :: ImportDecl l -> Bool
- Data.ProtoLens.Compiler.Combinators: [importSpecs] :: ImportDecl l -> Maybe (ImportSpecList l)
- Data.ProtoLens.Compiler.Combinators: [importSrc] :: ImportDecl l -> Bool
- Data.ProtoLens.Compiler.Combinators: bangPat :: Pat -> Pat
- Data.ProtoLens.Compiler.Combinators: case' :: Exp -> [Alt] -> Exp
- Data.ProtoLens.Compiler.Combinators: char :: Char -> Literal ()
- Data.ProtoLens.Compiler.Combinators: charExp :: Char -> Exp
- Data.ProtoLens.Compiler.Combinators: class App a
- Data.ProtoLens.Compiler.Combinators: classA :: QName -> [Type] -> Asst
- Data.ProtoLens.Compiler.Combinators: commented :: String -> Decl -> CommentedDecl
- Data.ProtoLens.Compiler.Combinators: con :: QName -> Exp
- Data.ProtoLens.Compiler.Combinators: conDecl :: Name -> [Type] -> ConDecl
- Data.ProtoLens.Compiler.Combinators: cons :: Exp
- Data.ProtoLens.Compiler.Combinators: data CommentedDecl
- Data.ProtoLens.Compiler.Combinators: data ImportDecl l
- Data.ProtoLens.Compiler.Combinators: data Module
- Data.ProtoLens.Compiler.Combinators: dataDecl :: Name -> [ConDecl] -> Deriving -> Decl
- Data.ProtoLens.Compiler.Combinators: dataDeclHelper :: DataOrNew () -> Name -> [ConDecl] -> Deriving -> Decl
- Data.ProtoLens.Compiler.Combinators: deriving' :: [QName] -> Deriving
- Data.ProtoLens.Compiler.Combinators: do' :: [Stmt] -> Exp
- Data.ProtoLens.Compiler.Combinators: emptyList :: Exp
- Data.ProtoLens.Compiler.Combinators: equalP :: Type -> Type -> Asst
- Data.ProtoLens.Compiler.Combinators: exportAll :: QName -> ExportSpec
- Data.ProtoLens.Compiler.Combinators: exportVar :: QName -> ExportSpec
- Data.ProtoLens.Compiler.Combinators: exportWith :: QName -> [Name] -> ExportSpec
- Data.ProtoLens.Compiler.Combinators: fieldUpdate :: QName -> Exp -> FieldUpdate
- Data.ProtoLens.Compiler.Combinators: funBind :: [Match] -> Decl
- Data.ProtoLens.Compiler.Combinators: getModuleName :: Module -> ModuleName
- Data.ProtoLens.Compiler.Combinators: guardedMatch :: Name -> [Pat] -> [(Exp, Exp)] -> Match
- Data.ProtoLens.Compiler.Combinators: if' :: Exp -> Exp -> Exp -> Exp
- Data.ProtoLens.Compiler.Combinators: ihApp :: InstHead -> [Type] -> InstHead
- Data.ProtoLens.Compiler.Combinators: infixl 1 <--
- Data.ProtoLens.Compiler.Combinators: infixl 2 @::@
- Data.ProtoLens.Compiler.Combinators: instDecl :: [Asst] -> InstHead -> [[Match]] -> Decl
- Data.ProtoLens.Compiler.Combinators: instDeclWithTypes :: [Asst] -> InstHead -> [InstDecl ()] -> Decl
- Data.ProtoLens.Compiler.Combinators: instMatch :: [Match] -> InstDecl ()
- Data.ProtoLens.Compiler.Combinators: instType :: Type -> Type -> InstDecl ()
- Data.ProtoLens.Compiler.Combinators: instance Data.ProtoLens.Compiler.Combinators.App Data.ProtoLens.Compiler.Combinators.Exp
- Data.ProtoLens.Compiler.Combinators: instance Data.ProtoLens.Compiler.Combinators.App Data.ProtoLens.Compiler.Combinators.Type
- Data.ProtoLens.Compiler.Combinators: instance Data.String.IsString Data.ProtoLens.Compiler.Combinators.Exp
- Data.ProtoLens.Compiler.Combinators: instance Data.String.IsString Data.ProtoLens.Compiler.Combinators.InstHead
- Data.ProtoLens.Compiler.Combinators: instance Data.String.IsString Data.ProtoLens.Compiler.Combinators.ModuleName
- Data.ProtoLens.Compiler.Combinators: instance Data.String.IsString Data.ProtoLens.Compiler.Combinators.Name
- Data.ProtoLens.Compiler.Combinators: instance Data.String.IsString Data.ProtoLens.Compiler.Combinators.Pat
- Data.ProtoLens.Compiler.Combinators: instance Data.String.IsString Data.ProtoLens.Compiler.Combinators.Promoted
- Data.ProtoLens.Compiler.Combinators: instance Data.String.IsString Data.ProtoLens.Compiler.Combinators.QName
- Data.ProtoLens.Compiler.Combinators: instance Data.String.IsString Data.ProtoLens.Compiler.Combinators.TyVarBind
- Data.ProtoLens.Compiler.Combinators: instance Data.String.IsString Data.ProtoLens.Compiler.Combinators.Type
- Data.ProtoLens.Compiler.Combinators: isIdentChar :: Char -> Bool
- Data.ProtoLens.Compiler.Combinators: lambda :: [Pat] -> Exp -> Exp
- Data.ProtoLens.Compiler.Combinators: languagePragma :: [Name] -> ModulePragma
- Data.ProtoLens.Compiler.Combinators: let' :: [Decl] -> Exp -> Exp
- Data.ProtoLens.Compiler.Combinators: letStmt :: [Decl] -> Stmt
- Data.ProtoLens.Compiler.Combinators: list :: [Exp] -> Exp
- Data.ProtoLens.Compiler.Combinators: litFrac :: Rational -> Exp
- Data.ProtoLens.Compiler.Combinators: litInt :: Integer -> Exp
- Data.ProtoLens.Compiler.Combinators: match :: Name -> [Pat] -> Exp -> Match
- Data.ProtoLens.Compiler.Combinators: modifyModuleName :: (String -> String) -> ModuleName -> ModuleName
- Data.ProtoLens.Compiler.Combinators: newtypeDecl :: Name -> Type -> Deriving -> Decl
- Data.ProtoLens.Compiler.Combinators: optionsGhcPragma :: String -> ModulePragma
- Data.ProtoLens.Compiler.Combinators: pApp :: QName -> [Pat] -> Pat
- Data.ProtoLens.Compiler.Combinators: pLitInt :: Integer -> Pat
- Data.ProtoLens.Compiler.Combinators: pVar :: Name -> Pat
- Data.ProtoLens.Compiler.Combinators: pWildCard :: Pat
- Data.ProtoLens.Compiler.Combinators: patBind :: Pat -> Exp -> Decl
- Data.ProtoLens.Compiler.Combinators: patSyn :: Pat -> Pat -> Decl
- Data.ProtoLens.Compiler.Combinators: patSynSig :: Name -> Type -> Decl
- Data.ProtoLens.Compiler.Combinators: patTypeSig :: Pat -> Type -> Pat
- Data.ProtoLens.Compiler.Combinators: prettyPrim :: Pretty a => a -> Doc
- Data.ProtoLens.Compiler.Combinators: prettyPrint :: Pretty a => a -> String
- Data.ProtoLens.Compiler.Combinators: prettyPrintModule :: Module -> String
- Data.ProtoLens.Compiler.Combinators: qual :: ModuleName -> Name -> QName
- Data.ProtoLens.Compiler.Combinators: recConstr :: QName -> [FieldUpdate] -> Exp
- Data.ProtoLens.Compiler.Combinators: recDecl :: Name -> [(Name, Type)] -> ConDecl
- Data.ProtoLens.Compiler.Combinators: recUpdate :: Exp -> [FieldUpdate] -> Exp
- Data.ProtoLens.Compiler.Combinators: stmt :: Exp -> Stmt
- Data.ProtoLens.Compiler.Combinators: string :: String -> Literal ()
- Data.ProtoLens.Compiler.Combinators: stringExp :: String -> Exp
- Data.ProtoLens.Compiler.Combinators: stringPat :: String -> Pat
- Data.ProtoLens.Compiler.Combinators: tuple :: [Exp] -> Exp
- Data.ProtoLens.Compiler.Combinators: tyBang :: Type -> Type
- Data.ProtoLens.Compiler.Combinators: tyCon :: QName -> Type
- Data.ProtoLens.Compiler.Combinators: tyForAll :: [TyVarBind] -> [Asst] -> Type -> Type
- Data.ProtoLens.Compiler.Combinators: tyFun :: Type -> Type -> Type
- Data.ProtoLens.Compiler.Combinators: tyList :: Type -> Type
- Data.ProtoLens.Compiler.Combinators: tyParen :: Type -> Type
- Data.ProtoLens.Compiler.Combinators: tyPromotedCon :: Promoted -> Type
- Data.ProtoLens.Compiler.Combinators: tyPromotedList :: [Type] -> Type
- Data.ProtoLens.Compiler.Combinators: tyPromotedString :: String -> Type
- Data.ProtoLens.Compiler.Combinators: tyWildCard :: Type
- Data.ProtoLens.Compiler.Combinators: type Alt = Alt ()
- Data.ProtoLens.Compiler.Combinators: type Asst = Asst ()
- Data.ProtoLens.Compiler.Combinators: type ConDecl = ConDecl ()
- Data.ProtoLens.Compiler.Combinators: type Decl = Decl ()
- Data.ProtoLens.Compiler.Combinators: type Deriving = Deriving ()
- Data.ProtoLens.Compiler.Combinators: type Exp = Exp ()
- Data.ProtoLens.Compiler.Combinators: type ExportSpec = ExportSpec ()
- Data.ProtoLens.Compiler.Combinators: type FieldUpdate = FieldUpdate ()
- Data.ProtoLens.Compiler.Combinators: type InstHead = InstHead ()
- Data.ProtoLens.Compiler.Combinators: type Match = Match ()
- Data.ProtoLens.Compiler.Combinators: type ModuleName = ModuleName ()
- Data.ProtoLens.Compiler.Combinators: type ModulePragma = ModulePragma ()
- Data.ProtoLens.Compiler.Combinators: type Name = Name ()
- Data.ProtoLens.Compiler.Combinators: type Pat = Pat ()
- Data.ProtoLens.Compiler.Combinators: type Promoted = Promoted ()
- Data.ProtoLens.Compiler.Combinators: type QName = QName ()
- Data.ProtoLens.Compiler.Combinators: type Stmt = Stmt ()
- Data.ProtoLens.Compiler.Combinators: type TyVarBind = TyVarBind ()
- Data.ProtoLens.Compiler.Combinators: type Type = Type ()
- Data.ProtoLens.Compiler.Combinators: typeApp :: Type -> Exp
- Data.ProtoLens.Compiler.Combinators: typeSig :: [Name] -> Type -> Decl
- Data.ProtoLens.Compiler.Combinators: unQual :: Name -> QName
- Data.ProtoLens.Compiler.Combinators: uncommented :: Decl -> CommentedDecl
- Data.ProtoLens.Compiler.Combinators: unit :: Exp
- Data.ProtoLens.Compiler.Combinators: var :: QName -> Exp
- Data.ProtoLens.Compiler.Definitions: Enum :: EnumInfo n -> Definition n
- Data.ProtoLens.Compiler.Definitions: EnumInfo :: n -> Maybe EnumUnrecognizedInfo -> EnumDescriptorProto -> [EnumValueInfo n] -> EnumInfo n
- Data.ProtoLens.Compiler.Definitions: EnumUnrecognizedInfo :: Name -> Name -> EnumUnrecognizedInfo
- Data.ProtoLens.Compiler.Definitions: EnumValueInfo :: n -> EnumValueDescriptorProto -> Maybe Name -> EnumValueInfo n
- Data.ProtoLens.Compiler.Definitions: FieldInfo :: FieldDescriptorProto -> FieldName -> FieldInfo
- Data.ProtoLens.Compiler.Definitions: FieldName :: Symbol -> Name -> FieldName
- Data.ProtoLens.Compiler.Definitions: MapEntryInfo :: Name -> FieldInfo -> FieldInfo -> MapEntryInfo
- Data.ProtoLens.Compiler.Definitions: MapField :: MapEntryInfo -> FieldKind
- Data.ProtoLens.Compiler.Definitions: Message :: MessageInfo n -> Definition n
- Data.ProtoLens.Compiler.Definitions: MessageInfo :: n -> DescriptorProto -> [PlainFieldInfo] -> [OneofInfo] -> Name -> Maybe Int32 -> MessageInfo n
- Data.ProtoLens.Compiler.Definitions: MethodInfo :: Text -> Text -> Text -> Text -> Bool -> Bool -> MethodInfo
- Data.ProtoLens.Compiler.Definitions: NotPackable :: FieldPacking
- Data.ProtoLens.Compiler.Definitions: OneofCase :: FieldInfo -> Name -> Name -> OneofCase
- Data.ProtoLens.Compiler.Definitions: OneofInfo :: FieldName -> Name -> [OneofCase] -> OneofInfo
- Data.ProtoLens.Compiler.Definitions: OptionalMaybeField :: FieldKind
- Data.ProtoLens.Compiler.Definitions: OptionalValueField :: FieldKind
- Data.ProtoLens.Compiler.Definitions: Packable :: FieldPacking
- Data.ProtoLens.Compiler.Definitions: Packed :: FieldPacking
- Data.ProtoLens.Compiler.Definitions: PlainFieldInfo :: FieldKind -> FieldInfo -> PlainFieldInfo
- Data.ProtoLens.Compiler.Definitions: RepeatedField :: FieldPacking -> FieldKind
- Data.ProtoLens.Compiler.Definitions: RequiredField :: FieldKind
- Data.ProtoLens.Compiler.Definitions: ServiceInfo :: Text -> Text -> [MethodInfo] -> ServiceInfo
- Data.ProtoLens.Compiler.Definitions: [caseConstructorName] :: OneofCase -> Name
- Data.ProtoLens.Compiler.Definitions: [caseField] :: OneofCase -> FieldInfo
- Data.ProtoLens.Compiler.Definitions: [casePrismName] :: OneofCase -> Name
- Data.ProtoLens.Compiler.Definitions: [enumAliasOf] :: EnumValueInfo n -> Maybe Name
- Data.ProtoLens.Compiler.Definitions: [enumDescriptor] :: EnumInfo n -> EnumDescriptorProto
- Data.ProtoLens.Compiler.Definitions: [enumName] :: EnumInfo n -> n
- Data.ProtoLens.Compiler.Definitions: [enumUnrecognized] :: EnumInfo n -> Maybe EnumUnrecognizedInfo
- Data.ProtoLens.Compiler.Definitions: [enumValueDescriptor] :: EnumValueInfo n -> EnumValueDescriptorProto
- Data.ProtoLens.Compiler.Definitions: [enumValueName] :: EnumValueInfo n -> n
- Data.ProtoLens.Compiler.Definitions: [enumValues] :: EnumInfo n -> [EnumValueInfo n]
- Data.ProtoLens.Compiler.Definitions: [fieldDescriptor] :: FieldInfo -> FieldDescriptorProto
- Data.ProtoLens.Compiler.Definitions: [fieldName] :: FieldInfo -> FieldName
- Data.ProtoLens.Compiler.Definitions: [groupFieldNumber] :: MessageInfo n -> Maybe Int32
- Data.ProtoLens.Compiler.Definitions: [haskellRecordFieldName] :: FieldName -> Name
- Data.ProtoLens.Compiler.Definitions: [keyField] :: MapEntryInfo -> FieldInfo
- Data.ProtoLens.Compiler.Definitions: [mapEntryTypeName] :: MapEntryInfo -> Name
- Data.ProtoLens.Compiler.Definitions: [messageDescriptor] :: MessageInfo n -> DescriptorProto
- Data.ProtoLens.Compiler.Definitions: [messageFields] :: MessageInfo n -> [PlainFieldInfo]
- Data.ProtoLens.Compiler.Definitions: [messageName] :: MessageInfo n -> n
- Data.ProtoLens.Compiler.Definitions: [messageOneofFields] :: MessageInfo n -> [OneofInfo]
- Data.ProtoLens.Compiler.Definitions: [messageUnknownFields] :: MessageInfo n -> Name
- Data.ProtoLens.Compiler.Definitions: [methodClientStreaming] :: MethodInfo -> Bool
- Data.ProtoLens.Compiler.Definitions: [methodIdent] :: MethodInfo -> Text
- Data.ProtoLens.Compiler.Definitions: [methodInput] :: MethodInfo -> Text
- Data.ProtoLens.Compiler.Definitions: [methodName] :: MethodInfo -> Text
- Data.ProtoLens.Compiler.Definitions: [methodOutput] :: MethodInfo -> Text
- Data.ProtoLens.Compiler.Definitions: [methodServerStreaming] :: MethodInfo -> Bool
- Data.ProtoLens.Compiler.Definitions: [oneofCases] :: OneofInfo -> [OneofCase]
- Data.ProtoLens.Compiler.Definitions: [oneofFieldName] :: OneofInfo -> FieldName
- Data.ProtoLens.Compiler.Definitions: [oneofTypeName] :: OneofInfo -> Name
- Data.ProtoLens.Compiler.Definitions: [overloadedName] :: FieldName -> Symbol
- Data.ProtoLens.Compiler.Definitions: [plainFieldInfo] :: PlainFieldInfo -> FieldInfo
- Data.ProtoLens.Compiler.Definitions: [plainFieldKind] :: PlainFieldInfo -> FieldKind
- Data.ProtoLens.Compiler.Definitions: [serviceMethods] :: ServiceInfo -> [MethodInfo]
- Data.ProtoLens.Compiler.Definitions: [serviceName] :: ServiceInfo -> Text
- Data.ProtoLens.Compiler.Definitions: [servicePackage] :: ServiceInfo -> Text
- Data.ProtoLens.Compiler.Definitions: [unrecognizedName] :: EnumUnrecognizedInfo -> Name
- Data.ProtoLens.Compiler.Definitions: [unrecognizedValueName] :: EnumUnrecognizedInfo -> Name
- Data.ProtoLens.Compiler.Definitions: [valueField] :: MapEntryInfo -> FieldInfo
- Data.ProtoLens.Compiler.Definitions: camelCase :: Text -> Text
- Data.ProtoLens.Compiler.Definitions: collectDefinitions :: FileDescriptorProto -> Env Name
- Data.ProtoLens.Compiler.Definitions: collectServices :: FileDescriptorProto -> [ServiceInfo]
- Data.ProtoLens.Compiler.Definitions: data Definition n
- Data.ProtoLens.Compiler.Definitions: data EnumInfo n
- Data.ProtoLens.Compiler.Definitions: data EnumUnrecognizedInfo
- Data.ProtoLens.Compiler.Definitions: data EnumValueInfo n
- Data.ProtoLens.Compiler.Definitions: data FieldInfo
- Data.ProtoLens.Compiler.Definitions: data FieldKind
- Data.ProtoLens.Compiler.Definitions: data FieldName
- Data.ProtoLens.Compiler.Definitions: data FieldPacking
- Data.ProtoLens.Compiler.Definitions: data MapEntryInfo
- Data.ProtoLens.Compiler.Definitions: data MessageInfo n
- Data.ProtoLens.Compiler.Definitions: data MethodInfo
- Data.ProtoLens.Compiler.Definitions: data OneofCase
- Data.ProtoLens.Compiler.Definitions: data OneofInfo
- Data.ProtoLens.Compiler.Definitions: data PlainFieldInfo
- Data.ProtoLens.Compiler.Definitions: data ServiceInfo
- Data.ProtoLens.Compiler.Definitions: data Symbol
- Data.ProtoLens.Compiler.Definitions: definedFieldType :: FieldDescriptorProto -> Env QName -> Definition QName
- Data.ProtoLens.Compiler.Definitions: definedType :: Text -> Env QName -> Definition QName
- Data.ProtoLens.Compiler.Definitions: instance Data.String.IsString Data.ProtoLens.Compiler.Definitions.Symbol
- Data.ProtoLens.Compiler.Definitions: instance GHC.Base.Functor Data.ProtoLens.Compiler.Definitions.Definition
- Data.ProtoLens.Compiler.Definitions: instance GHC.Base.Functor Data.ProtoLens.Compiler.Definitions.EnumInfo
- Data.ProtoLens.Compiler.Definitions: instance GHC.Base.Functor Data.ProtoLens.Compiler.Definitions.EnumValueInfo
- Data.ProtoLens.Compiler.Definitions: instance GHC.Base.Functor Data.ProtoLens.Compiler.Definitions.MessageInfo
- Data.ProtoLens.Compiler.Definitions: instance GHC.Base.Monoid Data.ProtoLens.Compiler.Definitions.Symbol
- Data.ProtoLens.Compiler.Definitions: instance GHC.Base.Semigroup Data.ProtoLens.Compiler.Definitions.Symbol
- Data.ProtoLens.Compiler.Definitions: instance GHC.Classes.Eq Data.ProtoLens.Compiler.Definitions.FieldPacking
- Data.ProtoLens.Compiler.Definitions: instance GHC.Classes.Eq Data.ProtoLens.Compiler.Definitions.Symbol
- Data.ProtoLens.Compiler.Definitions: instance GHC.Classes.Eq Data.ProtoLens.Compiler.Definitions.SyntaxType
- Data.ProtoLens.Compiler.Definitions: instance GHC.Classes.Ord Data.ProtoLens.Compiler.Definitions.Symbol
- Data.ProtoLens.Compiler.Definitions: instance GHC.Show.Show Data.ProtoLens.Compiler.Definitions.SyntaxType
- Data.ProtoLens.Compiler.Definitions: nameFromSymbol :: Symbol -> Name
- Data.ProtoLens.Compiler.Definitions: overloadedFieldName :: FieldInfo -> Symbol
- Data.ProtoLens.Compiler.Definitions: promoteSymbol :: Symbol -> Type
- Data.ProtoLens.Compiler.Definitions: qualifyEnv :: ModuleName -> Env Name -> Env QName
- Data.ProtoLens.Compiler.Definitions: type Env n = Map Text (Definition n)
- Data.ProtoLens.Compiler.Definitions: unqualifyEnv :: Env Name -> Env QName
- Data.ProtoLens.Compiler.Generate: generateModule :: ModuleName -> [ModuleName] -> ModifyImports -> Env Name -> Env QName -> [ServiceInfo] -> [Module]
- Data.ProtoLens.Compiler.Generate: instance GHC.Classes.Eq Data.ProtoLens.Compiler.Generate.UseRuntime
- Data.ProtoLens.Compiler.Generate: instance GHC.Read.Read Data.ProtoLens.Compiler.Generate.UseRuntime
- Data.ProtoLens.Compiler.Generate: reexported :: ModifyImports
- Data.ProtoLens.Compiler.Generate: type ModifyImports = ImportDecl () -> ImportDecl ()
- Data.ProtoLens.Compiler.Plugin: ProtoFile :: FileDescriptorProto -> ModuleName -> Env Name -> [ServiceInfo] -> [ProtoFileName] -> Env QName -> ProtoFile
- Data.ProtoLens.Compiler.Plugin: [definitions] :: ProtoFile -> Env Name
- Data.ProtoLens.Compiler.Plugin: [descriptor] :: ProtoFile -> FileDescriptorProto
- Data.ProtoLens.Compiler.Plugin: [exportedEnv] :: ProtoFile -> Env QName
- Data.ProtoLens.Compiler.Plugin: [exports] :: ProtoFile -> [ProtoFileName]
- Data.ProtoLens.Compiler.Plugin: [haskellModule] :: ProtoFile -> ModuleName
- Data.ProtoLens.Compiler.Plugin: [services] :: ProtoFile -> [ServiceInfo]
- Data.ProtoLens.Compiler.Plugin: analyzeProtoFiles :: Text -> [FileDescriptorProto] -> Map ProtoFileName ProtoFile
- Data.ProtoLens.Compiler.Plugin: collectEnvFromDeps :: [ProtoFileName] -> Map ProtoFileName ProtoFile -> Env QName
- Data.ProtoLens.Compiler.Plugin: data ProtoFile
- Data.ProtoLens.Compiler.Plugin: moduleName :: Text -> FileDescriptorProto -> ModuleName
- Data.ProtoLens.Compiler.Plugin: moduleNameStr :: String -> FilePath -> String
- Data.ProtoLens.Compiler.Plugin: outputFilePath :: String -> Text
- Data.ProtoLens.Compiler.Plugin: type ProtoFileName = Text
+ Data.ProtoLens.Compiler.ModuleName: protoModuleName :: FilePath -> String
Files
- Changelog.md +18/−0
- app/Data/ProtoLens/Compiler/Definitions.hs +631/−0
- app/Data/ProtoLens/Compiler/Generate.hs +1054/−0
- app/Data/ProtoLens/Compiler/Generate/Commented.hs +48/−0
- app/Data/ProtoLens/Compiler/Generate/Encoding.hs +638/−0
- app/Data/ProtoLens/Compiler/Generate/Field.hs +261/−0
- app/Data/ProtoLens/Compiler/Plugin.hs +105/−0
- app/Proto/Google/Protobuf/Compiler/Plugin.hs +1039/−0
- app/Proto/Google/Protobuf/Compiler/Plugin_Fields.hs +181/−0
- app/Proto/Google/Protobuf/Descriptor.hs +9947/−0
- app/Proto/Google/Protobuf/Descriptor_Fields.hs +1039/−0
- app/protoc-gen-haskell.hs +36/−40
- proto-lens-protoc.cabal +24/−19
- src/Data/ProtoLens/Compiler/Combinators.hs +0/−462
- src/Data/ProtoLens/Compiler/Definitions.hs +0/−650
- src/Data/ProtoLens/Compiler/Generate.hs +0/−1030
- src/Data/ProtoLens/Compiler/Generate/Encoding.hs +0/−638
- src/Data/ProtoLens/Compiler/Generate/Field.hs +0/−260
- src/Data/ProtoLens/Compiler/ModuleName.hs +24/−0
- src/Data/ProtoLens/Compiler/Plugin.hs +0/−130
Changelog.md view
@@ -1,5 +1,23 @@ # Changelog for `proto-lens-protoc` +## v0.6.0.0++### Breaking Changes+- Reexport transitive definitions from modules generated for `.proto` files+ with `import public` statements (#329).+- Bump lower bounds to base-4.10 (ghc-8.2).+- Use `ghc-source-gen` instead of `haskell-src-exts`. Removes+ `Data.ProtoLens.Compiler.Combinators` and adds+ `Data.ProtoLens.Compiler.Definitions`.+- Limit the exposed library to a single module+ `Data.ProtoLens.Compiler.ModuleName`. The other modules were not+ used in practice, and exposed internals unnecessarily.++### Backwards-Compatible Changes+- Fix a potential naming conflict when message types and enum values+ are the same except for case.+- Support dependencies on base-4.13 (ghc-8.8) and lens-family-2.0.+ ## v0.5.0.0 ### Breaking Changes
+ app/Data/ProtoLens/Compiler/Definitions.hs view
@@ -0,0 +1,631 @@+-- Copyright 2016 Google Inc. All Rights Reserved.+--+-- Use of this source code is governed by a BSD-style+-- license that can be found in the LICENSE file or at+-- https://developers.google.com/open-source/licenses/bsd++-- | This module takes care of collecting all the definitions in a .proto file+-- and assigning Haskell names to all of the defined things (messages, enums+-- and field names).+{-# LANGUAGE CPP #-}+{-# LANGUAGE DeriveFunctor #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE OverloadedLabels #-}+{-# LANGUAGE OverloadedStrings #-}+module Data.ProtoLens.Compiler.Definitions+ ( Env+ , Definition(..)+ , MessageInfo(..)+ , ServiceInfo(..)+ , MethodInfo(..)+ , PlainFieldInfo(..)+ , FieldInfo(..)+ , FieldKind(..)+ , FieldPacking(..)+ , MapEntryInfo(..)+ , OneofInfo(..)+ , OneofCase(..)+ , FieldName(..)+ , Symbol+ , nameFromSymbol+ , promoteSymbol+ , EnumInfo(..)+ , EnumValueInfo(..)+ , EnumUnrecognizedInfo(..)+ , qualifyEnv+ , unqualifyEnv+ , collectDefinitions+ , collectServices+ , definedFieldType+ , definedType+ , camelCase+ , overloadedFieldName+ ) where++import Control.Applicative (liftA2)+import Data.Char (isUpper, toUpper)+import Data.Int (Int32)+import Data.List (mapAccumL)+import qualified Data.Map as Map+import Data.Maybe (fromMaybe)+#if !MIN_VERSION_base(4,11,0)+import Data.Monoid ((<>))+#endif+import Data.ProtoLens.Labels ()+import qualified Data.Semigroup as Semigroup+import qualified Data.Set as Set+import Data.String (IsString(..))+import Data.Text (Text, cons, splitOn, toLower, uncons, unpack)+import qualified Data.Text as T+import Data.Tree+ ( Tree(..)+ , Forest+ , flatten+ )+import Lens.Family2 ((^.), (^..), toListOf)+import Proto.Google.Protobuf.Descriptor+ ( DescriptorProto+ , EnumDescriptorProto+ , EnumValueDescriptorProto+ , FieldDescriptorProto+ , FieldDescriptorProto'Label(..)+ , FieldDescriptorProto'Type(..)+ , FileDescriptorProto+ , MethodDescriptorProto+ , ServiceDescriptorProto+ )+import GHC.SourceGen+ ( OccNameStr+ , RdrNameStr+ , ModuleNameStr+ , HsType'+ , qual+ , stringTy+ , unqual+ )++-- | 'Env' contains a mapping of proto names (as specified in the .proto file)+-- to Haskell names. The keys are fully-qualified names, for example,+-- ".package.Message.Submessage". (The protocol_compiler tool emits all+-- message field types in this form, even if they refer to local definitions.)+--+-- The type 'n' can be either a 'Name' (when talking about definitions within+-- the current file) or a (qualified) 'RdrNameStr' (when talking about definitions+-- either from this or another file).+type Env n = Map.Map Text (Definition n)++data SyntaxType = Proto2 | Proto3+ deriving (Show, Eq)++fileSyntaxType :: FileDescriptorProto -> SyntaxType+fileSyntaxType f = case f ^. #syntax of+ "proto2" -> Proto2+ "proto3" -> Proto3+ "" -> Proto2 -- The proto compiler doesn't set syntax for proto2 files.+ s -> error $ "Unknown syntax type " ++ show s++data Definition n = Message (MessageInfo n) | Enum (EnumInfo n)+ deriving Functor++-- | All the information needed to define or use a proto message type.+data MessageInfo n = MessageInfo+ { messageName :: n -- ^ Haskell type name+ , messageConstructorName :: n -- ^ Haskell constructor name+ , messageDescriptor :: DescriptorProto+ , messageFields :: [PlainFieldInfo] -- ^ Fields not belonging to a oneof.+ , messageOneofFields :: [OneofInfo]+ -- ^ The oneofs in this message, associated with the fields that+ -- belong to them.+ , messageUnknownFields :: OccNameStr+ -- ^ The name of the Haskell field in this message that holds the+ -- unknown fields.+ , groupFieldNumber :: Maybe Int32+ -- ^ The number of the field that holds this message, if it is a group.+ } deriving Functor++data ServiceInfo = ServiceInfo+ { serviceName :: Text+ , servicePackage :: Text+ , serviceMethods :: [MethodInfo]+ }++data MethodInfo = MethodInfo+ { methodName :: Text+ , methodIdent :: Text+ , methodInput :: Text+ , methodOutput :: Text+ , methodClientStreaming :: Bool+ , methodServerStreaming :: Bool+ }++-- | Information about a single field of a proto message,+-- associated with how it is stored.+data PlainFieldInfo = PlainFieldInfo+ { plainFieldKind :: FieldKind+ , plainFieldInfo :: FieldInfo+ }++-- | Information about a single field of a proto message.+data FieldInfo = FieldInfo+ { fieldDescriptor :: FieldDescriptorProto+ , fieldName :: FieldName+ }++-- | How a field is stored inside of the proto message.+data FieldKind+ = RequiredField+ -- ^ A proto2 required field. Stored internally as a value.+ | OptionalValueField+ -- ^ A proto3 optional scalar field. Stored internally as a+ -- value, and defaults to corresponding instance of fieldDefault.+ | OptionalMaybeField+ -- ^ An optional field where the "unset" and "defaulT" values+ -- are distinguishable. Stored internally as a Maybe.+ -- In particular: proto2 optional fields, proto3 messages,+ -- and "oneof" fields.+ | RepeatedField FieldPacking+ -- ^ A field containing a sequence of values.+ -- Stored internally as either a list or a map, depending on+ -- whether the field's FieldDescriptorProto of the field has+ -- options.map_entry set.+ | MapField MapEntryInfo+ -- ^ A field containing a map of keys to values.+ -- Serialized as a repeated field of an autogenerated "entry"+ -- proto type, each instance of which contains a key-value pair.++data FieldPacking+ = NotPackable -- ^ Cannot be packed (e.g., strings or messages).+ | Packable -- ^ Can be decoded as packed, but should not be not be+ -- encoded as packed by default.+ | Packed -- ^ Can be decoded as packed, and should be encoded+ -- as packed by default.+ deriving Eq++data OneofInfo = OneofInfo+ { oneofFieldName :: FieldName+ , oneofTypeName :: OccNameStr+ -- ^ The name of the sum type corresponding to this oneof.+ , oneofCases :: [OneofCase]+ -- ^ The individual fields that make up this oneof.+ }++data OneofCase = OneofCase+ { caseField :: FieldInfo+ , caseConstructorName :: OccNameStr+ -- ^ The constructor for building a 'oneofTypeName' from the+ -- value in this field.+ , casePrismName :: OccNameStr+ -- ^ The name for building 'Prism' definition.+ }++-- | The "entry" type for a map field is a proto message, autogenerated by+-- protoc, that has two fields: a key and a value. The map field should be+-- serialized like a repeated field of the entry messages.+data MapEntryInfo = MapEntryInfo+ { mapEntryTypeName :: OccNameStr+ -- ^ The Haskell name for this type.+ , keyField :: FieldInfo+ -- ^ The field of the entry type corresponding to the map key.+ , valueField :: FieldInfo+ -- ^ The field of the entry type corresponding to the map value.+ }++data FieldName = FieldName+ { overloadedName :: Symbol+ -- ^ The overloaded name of lenses that access this field.+ -- For example, if the field is called "foo_bar" in the .proto+ -- then @overloadedName == "fooBar"@ and we might generate+ -- @fooBar@ and/or @maybe'fooBar@ lenses to access the data.+ --+ -- May be shared between two different message data types in the same+ -- module.+ , haskellRecordFieldName :: OccNameStr+ -- ^ The Haskell name of this internal record field; for example,+ -- "_Foo'Bar'baz. Unique within each module.+ }++-- | A string that refers to the name (in Haskell) of a lens that accesses a+-- field.+--+-- For example, in the signature of the overloaded lens+--+-- @+-- foo :: HasLens "foo" ... => Lens ...+-- @+--+-- a 'Symbol' is used to construct both the type-level argument to+-- @HasLens@ and the name of the function @foo@.+newtype Symbol = Symbol String+ deriving (Eq, Ord, IsString, Semigroup.Semigroup, Monoid)++nameFromSymbol :: Symbol -> OccNameStr+nameFromSymbol (Symbol s) = fromString s++-- | Construct a promoted, type-level string.+promoteSymbol :: Symbol -> HsType'+promoteSymbol (Symbol s) = stringTy s++-- | All the information needed to define or use a proto enum type.+data EnumInfo n = EnumInfo+ { enumName :: n+ , enumUnrecognized :: Maybe EnumUnrecognizedInfo+ , enumDescriptor :: EnumDescriptorProto+ , enumValues :: [EnumValueInfo n]+ } deriving Functor++-- | Information about the "unrecognized" case of an enum.+data EnumUnrecognizedInfo = EnumUnrecognizedInfo+ { unrecognizedName :: OccNameStr+ , unrecognizedValueName :: OccNameStr+ }++-- | Information about a single value case of a proto enum.+data EnumValueInfo n = EnumValueInfo+ { enumValueName :: n+ , enumValueDescriptor :: EnumValueDescriptorProto+ , enumAliasOf :: Maybe OccNameStr+ -- ^ If 'Nothing', we turn value into a normal constructor of the enum.+ -- If @'Just' n@, we're treating it as an alias of the constructor @n@+ -- (a PatternSynonym in Haskell). This mirrors the behavior of the+ -- Java API.+ } deriving Functor++mapEnv :: (n -> n') -> Env n -> Env n'+mapEnv f = fmap $ fmap f++-- Lift a set of local definitions into references to a specific module.+qualifyEnv :: ModuleNameStr -> Env OccNameStr -> Env RdrNameStr+qualifyEnv m = mapEnv (qual m)++-- Lift a set of local definitions into references to the current module.+unqualifyEnv :: Env OccNameStr -> Env RdrNameStr+unqualifyEnv = mapEnv unqual++-- | Look up the Haskell name for the type of a given field (message or enum).+definedFieldType :: FieldDescriptorProto -> Env RdrNameStr -> Definition RdrNameStr+definedFieldType fd env = fromMaybe err $ Map.lookup (fd ^. #typeName) env+ where+ err = error $ "definedFieldType: Field type " ++ unpack (fd ^. #typeName)+ ++ " not found in environment."++-- | Look up the Haskell name for the type of a given type.+definedType :: Text -> Env RdrNameStr -> Definition RdrNameStr+definedType ty = fromMaybe err . Map.lookup ty+ where+ err = error $ "definedType: Type " ++ unpack ty+ ++ " not found in environment."++-- | Collect all the definitions in the given file (including definitions+-- nested in other messages), and assign Haskell names to them.+collectDefinitions :: FileDescriptorProto -> Env OccNameStr+collectDefinitions fd = let+ protoPrefix = case fd ^. #package of+ "" -> "."+ p -> "." <> p <> "."+ hsPrefix = ""+ in Map.fromList $ concatMap flatten $+ messageAndEnumDefs (fileSyntaxType fd)+ protoPrefix hsPrefix Map.empty+ (fd ^. #messageType) (fd ^. #enumType)++collectServices :: FileDescriptorProto -> [ServiceInfo]+collectServices fd = fmap (toServiceInfo $ fd ^. #package) $ fd ^. #service+ where+ toServiceInfo :: Text -> ServiceDescriptorProto -> ServiceInfo+ toServiceInfo pkg sd =+ ServiceInfo+ { serviceName = sd ^. #name+ , servicePackage = pkg+ , serviceMethods = fmap toMethodInfo $ sd ^. #method+ }++ toMethodInfo :: MethodDescriptorProto -> MethodInfo+ toMethodInfo md =+ MethodInfo+ { methodName = md ^. #name+ , methodIdent = camelCase $ md ^. #name+ , methodInput = fromString . T.unpack $ md ^. #inputType+ , methodOutput = fromString . T.unpack $ md ^. #outputType+ , methodClientStreaming = md ^. #clientStreaming+ , methodServerStreaming = md ^. #serverStreaming+ }++messageAndEnumDefs ::+ SyntaxType -> Text -> String+ -> GroupMap+ -- ^ Group fields of the parent message (if any).+ -> [DescriptorProto]+ -> [EnumDescriptorProto]+ -> Forest (Text, Definition OccNameStr)+ -- ^ Organized as a list of trees, to make it possible for callers+ -- to get the immediate child nested types.+messageAndEnumDefs syntaxType protoPrefix hsPrefix groups messages enums+ = map (messageDefs syntaxType protoPrefix hsPrefix groups) messages+ ++ map+ (flip Node [] -- Enums have no sub-definitions+ . enumDef syntaxType protoPrefix hsPrefix)+ enums++-- | Generate the definitions for a message and its nested types (if any).+messageDefs :: SyntaxType -> Text -> String -> GroupMap -> DescriptorProto+ -> Tree (Text, Definition OccNameStr)+messageDefs syntaxType protoPrefix hsPrefix groups d+ = Node (protoName, thisDef) subDefs+ where+ protoName = protoPrefix <> d ^. #name+ hsPrefix' = hsPrefix ++ hsName (d ^. #name) ++ "'"+ allFields = groupFieldsByOneofIndex (d ^. #field)+ thisDef =+ Message MessageInfo+ { messageName = fromString $ hsPrefix ++ hsName (d ^. #name)+ -- Set the constructor name to not conflict with enum values.+ , messageConstructorName =+ fromString $ hsPrefix ++ hsName (d ^. #name)+ ++ "'_constructor"+ , messageDescriptor = d+ , messageFields =+ map (liftA2 PlainFieldInfo+ (fieldKind syntaxType mapEntries) (fieldInfo hsPrefix'))+ $ Map.findWithDefault [] Nothing allFields+ , messageOneofFields = collectOneofFields hsPrefix' d allFields+ , messageUnknownFields =+ fromString $ "_" ++ hsPrefix' ++ "_unknownFields"+ , groupFieldNumber = Map.lookup protoName groups+ }+ subDefs = messageAndEnumDefs+ syntaxType+ (protoName <> ".")+ hsPrefix'+ (collectGroupFields $ d ^. #field)+ (d ^. #nestedType)+ (d ^. #enumType)+ -- For efficiency, only look for map entries within the immediate+ -- nested types, rather than recursively searching through all of them.+ mapEntries = collectMapEntries $ map rootLabel subDefs++-- | If this type is a map entry, retrieves the relevant information+-- along with the proto name of this type.+mapEntryInfo :: Definition OccNameStr -> Maybe MapEntryInfo+mapEntryInfo (Message m)+ | messageDescriptor m ^. #options . #mapEntry+ , [keyFd, valueFd] <- messageFields m+ = Just MapEntryInfo+ { mapEntryTypeName = messageName m+ , keyField = plainFieldInfo keyFd+ , valueField = plainFieldInfo valueFd+ }+mapEntryInfo _ = Nothing++-- | Returns a map whose keys are the proto type name of the entry message.+collectMapEntries :: [(Text, Definition OccNameStr)] -> Map.Map Text MapEntryInfo+collectMapEntries defs =+ Map.fromList+ [(protoName, e) | (protoName, d) <- defs, Just e <- [mapEntryInfo d]]++-- | A map whose keys are the proto type names of the groups in a message,+-- and values are the field numbers for those groups.+-- (Every group corresponds to exactly one message field.)+type GroupMap = Map.Map Text Int32++collectGroupFields :: [FieldDescriptorProto] -> GroupMap+collectGroupFields fs = Map.fromList+ [ (f ^. #typeName, f ^. #number)+ | f <- fs+ , f ^. #type' == FieldDescriptorProto'TYPE_GROUP+ ]++fieldInfo :: String -> FieldDescriptorProto -> FieldInfo+fieldInfo hsPrefix f = FieldInfo+ { fieldDescriptor = f+ , fieldName = mkFieldName hsPrefix $ f ^. #name+ }++fieldKind ::+ SyntaxType -> Map.Map Text MapEntryInfo -> FieldDescriptorProto+ -> FieldKind+fieldKind syntaxType mapEntries f = case f ^. #label of+ FieldDescriptorProto'LABEL_OPTIONAL+ | syntaxType == Proto3+ && f ^. #type' /= FieldDescriptorProto'TYPE_MESSAGE+ -> OptionalValueField+ | otherwise -> OptionalMaybeField+ FieldDescriptorProto'LABEL_REQUIRED -> RequiredField+ FieldDescriptorProto'LABEL_REPEATED+ | Just entryInfo <- Map.lookup (f ^. #typeName) mapEntries+ -> MapField entryInfo+ | otherwise -> RepeatedField packed+ where+ packed+ | f ^. #type' `elem` unpackableTypes = NotPackable+ | packedByDefault = Packed+ | otherwise = Packable+ -- If the "packed" attribute isn't set, then default to packed if proto3.+ -- Unfortunately, protoc doesn't implement this logic for us automatically.+ packedByDefault = fromMaybe (syntaxType == Proto3)+ $ f ^. #options . #maybe'packed+ unpackableTypes =+ [ FieldDescriptorProto'TYPE_MESSAGE+ , FieldDescriptorProto'TYPE_GROUP+ , FieldDescriptorProto'TYPE_STRING+ , FieldDescriptorProto'TYPE_BYTES+ ]++collectOneofFields+ :: String -> DescriptorProto -> Map.Map (Maybe Int32) [FieldDescriptorProto]+ -> [OneofInfo]+collectOneofFields hsPrefix d allFields+ = zipWith oneofInfo [0..] $ d ^.. #oneofDecl . traverse . #name+ where+ oneofInfo idx n = OneofInfo+ { oneofFieldName = mkFieldName hsPrefix n+ , oneofTypeName = fromString $ hsPrefix ++ hsNameUnique subdefTypes n+ , oneofCases = map oneofCase+ $ Map.findWithDefault [] (Just idx)+ allFields+ }+ oneofCase f =+ let consName = hsPrefix ++ hsNameUnique subdefCons (f ^. #name)+ in OneofCase+ { caseField = fieldInfo hsPrefix f+ , caseConstructorName =+ -- Note: oneof case constructors aren't prefixed+ -- by the oneof name; field names (even inside+ -- of a oneof) are unique within a message.+ fromString consName+ , casePrismName =+ fromString $ "_" ++ consName+ }+ -- Make a name that doesn't overlap with those already defined by submessages+ -- or subenums.+ hsNameUnique ns n+ | n' `elem` ns = n' ++ "'"+ | otherwise = n'+ where+ n' = hsName $ camelCase n+ -- The Haskell "type" namespace+ subdefTypes = Set.fromList $ map hsName+ $ toListOf (#nestedType . traverse . #name) d+ ++ toListOf (#enumType . traverse . #name) d+ -- The Haskell "expression" namespace (i.e., constructors)+ subdefCons = Set.fromList $ map hsName+ $ toListOf (#nestedType . traverse . #name) d+ ++ toListOf (#enumType . traverse . #value . traverse . #name) d++-- | Group fields by the index of the oneof field that they belong to.+-- (Or 'Nothing' if they don't belong to a oneof.)+groupFieldsByOneofIndex+ :: [FieldDescriptorProto] -> Map.Map (Maybe Int32) [FieldDescriptorProto]+groupFieldsByOneofIndex =+ fmap reverse+ . Map.fromListWith (++)+ . fmap (\f -> (f ^. #maybe'oneofIndex, [f]))++hsName :: Text -> String+hsName = unpack . capitalize++mkFieldName :: String -> Text -> FieldName+mkFieldName hsPrefix n = FieldName+ { overloadedName = fromString n'+ , haskellRecordFieldName = fromString $ "_" ++ hsPrefix ++ n'+ }+ where+ n' = fieldBaseName n++-- | Get the name in Haskell of a proto field, taking care of camel casing and+-- clashes with language keywords. Doesn't handle the name prefix of the+-- containing type.+fieldBaseName :: Text -> String+fieldBaseName = unpack . disambiguate . camelCase+ where+ disambiguate s+ | s `Set.member` reservedKeywords = s <> "'"+ | otherwise = s++camelCase :: Text -> Text+camelCase s =+ -- Preserve any initial underlines (e.g., "_foo_bar" -> "_fooBar").+ let (underlines, rest) = T.span (== '_') s+ in case splitOn "_" rest of+ -- splitOn always returns a list with at least one element.+ [] -> error $ "camelCase: splitOn returned empty list: "+ ++ show rest+ [""] -> error $ "camelCase: name consists only of underscores: "+ ++ show s+ s':ss -> T.concat $ underlines : lowerInitialChars s' : map capitalize ss++-- | Lower-case all initial upper-case characters.+-- For example: "Foo" -> "foo", "FooBar" -> "fooBar", "FOObar" -> "foobar"+lowerInitialChars :: Text -> Text+lowerInitialChars s = toLower pre <> post+ where (pre, post) = T.span isUpper s++-- | A list of reserved keywords that aren't valid as variable names.+reservedKeywords :: Set.Set Text+reservedKeywords = Set.fromList $+ -- Haskell2010 keywords:+ -- https://www.haskell.org/onlinereport/haskell2010/haskellch2.html#x7-180002.4+ -- We don't include keywords that are allowed to be variable names,+ -- in particular: "as", "forall", and "hiding".+ [ "case"+ , "class"+ , "data"+ , "default"+ , "deriving"+ , "do"+ , "else"+ , "foreign"+ , "if"+ , "import"+ , "in"+ , "infix"+ , "infixl"+ , "infixr"+ , "instance"+ , "let"+ , "module"+ , "newtype"+ , "of"+ , "then"+ , "type"+ , "where"+ ]+ ++ -- Nonstandard extensions+ [ "mdo" -- RecursiveDo+ , "rec" -- Arrows, RecursiveDo+ , "pattern" -- PatternSynonyms+ , "proc" -- Arrows+ ]++-- | Generate the definition for an enum type.+enumDef :: SyntaxType -> Text -> String -> EnumDescriptorProto+ -> (Text, Definition OccNameStr)+enumDef syntaxType protoPrefix hsPrefix d = let+ mkText n = protoPrefix <> n+ mkHsName n = fromString $ hsPrefix ++ case hsName n of+ ('_':xs) -> 'X':xs+ xs -> xs+ in (mkText (d ^. #name)+ , Enum EnumInfo+ { enumName = mkHsName (d ^. #name)+ , enumUnrecognized = if syntaxType == Proto2+ then Nothing+ else Just EnumUnrecognizedInfo+ { unrecognizedName+ = mkHsName (d ^. #name <> "'Unrecognized")+ , unrecognizedValueName+ = mkHsName (d ^. #name <> "'UnrecognizedValue")+ }+ , enumDescriptor = d+ , enumValues = collectEnumValues mkHsName $ d ^. #value+ })++-- | Generate the definitions for each enum value. In particular, decide+-- whether it's a true constructor or a PatternSynonym to another+-- constructor.+--+-- Like Java, we treat the first case of each numeric value as the "real"+-- constructor, and subsequent cases as synonyms.+collectEnumValues :: (Text -> OccNameStr) -> [EnumValueDescriptorProto]+ -> [EnumValueInfo OccNameStr]+collectEnumValues mkHsName = snd . mapAccumL helper Map.empty+ where+ helper :: Map.Map Int32 OccNameStr -> EnumValueDescriptorProto+ -> (Map.Map Int32 OccNameStr, EnumValueInfo OccNameStr)+ helper seenNames v+ | Just n' <- Map.lookup k seenNames = (seenNames, mkValue (Just n'))+ | otherwise = (Map.insert k n seenNames, mkValue Nothing)+ where+ mkValue = EnumValueInfo n v+ n = mkHsName (v ^. #name)+ k = v ^. #number++-- Haskell types must start with an uppercase letter, so we capitalize message+-- and enum names.+-- OccNameStr collisions will show up as build errors in the generated haskell file.+capitalize :: Text -> Text+capitalize s+ | Just (c, s') <- uncons s = cons (toUpper c) s'+ | otherwise = s++overloadedFieldName :: FieldInfo -> Symbol+overloadedFieldName = overloadedName . fieldName
+ app/Data/ProtoLens/Compiler/Generate.hs view
@@ -0,0 +1,1054 @@+-- Copyright 2016 Google Inc. All Rights Reserved.+--+-- Use of this source code is governed by a BSD-style+-- license that can be found in the LICENSE file or at+-- https://developers.google.com/open-source/licenses/bsd++-- | This module builds the actual, generated Haskell file+-- for a given input .proto file.+{-# LANGUAGE CPP #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedLabels #-}+{-# LANGUAGE OverloadedStrings #-}+module Data.ProtoLens.Compiler.Generate(+ generateModule,+ ) where+++import Control.Arrow (second)+import qualified Data.Foldable as F+import qualified Data.List as List+import qualified Data.Map as Map+import Data.Maybe (isJust)+#if !MIN_VERSION_base(4,11,0)+import Data.Semigroup ((<>))+#endif+import Data.Ord (comparing)+import qualified Data.Set as Set+import Data.String (fromString)+import Data.Text (unpack)+import qualified Data.Text as T+import Data.Tuple (swap)+import GHC.SourceGen+import HsSyn (ideclName, ideclAs)+import Module (moduleNameString, mkModuleName)+import qualified Outputable+import SrcLoc (unLoc, noLoc)+import Lens.Family2 ((^.))+import Text.Printf (printf)++import Proto.Google.Protobuf.Descriptor+ ( EnumValueDescriptorProto+ , FieldDescriptorProto+ , FieldDescriptorProto'Type(..)+ )++import Data.ProtoLens.Compiler.Definitions+import Data.ProtoLens.Compiler.Generate.Commented+import Data.ProtoLens.Compiler.Generate.Encoding+import Data.ProtoLens.Compiler.Generate.Field+ ( hsFieldType+ , hsFieldVectorType+ )++-- Whether to import the "Runtime" modules or the originals;+-- e.g., Data.ProtoLens.Runtime.Data.Map vs Data.Map.+data UseRuntime = UseRuntime | UseOriginal+ deriving (Eq, Read)++-- | Generate a Haskell module for the given input file(s).+-- input contains all defined names, incl. those in this module+generateModule :: ModuleNameStr+ -> [ModuleNameStr] -- ^ The imported modules+ -> [ModuleNameStr] -- ^ The publicly imported modules+ -> Env OccNameStr -- ^ Definitions in this file+ -> Env RdrNameStr -- ^ Definitions in the imported modules+ -> [ServiceInfo]+ -> [CommentedModule]+generateModule modName imports publicImports definitions importedEnv services+ = [ CommentedModule pragmas+ (module' (Just modName)+ (Just $ serviceExports+ ++ concatMap generateExports (Map.elems definitions)+ ++ map moduleContents publicImports)+ (mainImports ++ sharedImports+ ++ map importQualified (imports List.\\ publicImports)+ ++ map import' publicImports)+ [])+ $ (concatMap generateDecls $ Map.toList definitions)+ ++ map uncommented (concatMap (generateServiceDecls env) services)+ , CommentedModule pragmas+ (module' (Just fieldModName) Nothing+ (sharedImports ++ map importQualified imports) [])+ $ map uncommented+ $ concatMap generateFieldDecls allLensNames+ ]+ where+ fieldModName = fromString $ moduleNameString (unModuleNameStr modName) ++ "_Fields"+ pragmas =+ [ languagePragma $ List.intercalate ", " $ map fromString+ ["ScopedTypeVariables", "DataKinds", "TypeFamilies",+ "UndecidableInstances", "GeneralizedNewtypeDeriving",+ "MultiParamTypeClasses", "FlexibleContexts", "FlexibleInstances",+ "PatternSynonyms", "MagicHash", "NoImplicitPrelude",+ "DataKinds", "BangPatterns", "TypeApplications"]+ -- Allow unused imports in case we don't import anything from+ -- Data.Text, Data.Int, etc.+ , optionsGhcPragma "-Wno-unused-imports"+ -- haskell-src-exts doesn't support exporting `Foo(..., A, B)`+ -- in a single entry, so we use two: `Foo(..)` and `Foo(A, B)`.+ , optionsGhcPragma "-Wno-duplicate-exports"+ -- Don't warn if empty "import public" modules are reexported.+ , optionsGhcPragma "-Wno-dodgy-exports"+ ]+ mainImports = map (reexported . importQualified)+ [ "Control.DeepSeq", "Data.ProtoLens.Prism" ]+ sharedImports = map (reexported . importQualified)+ [ "Prelude", "Data.Int", "Data.Monoid", "Data.Word"+ , "Data.ProtoLens"+ , "Data.ProtoLens.Encoding.Bytes"+ , "Data.ProtoLens.Encoding.Growing"+ , "Data.ProtoLens.Encoding.Parser.Unsafe"+ , "Data.ProtoLens.Encoding.Wire"+ , "Data.ProtoLens.Field"+ , "Data.ProtoLens.Message.Enum"+ , "Data.ProtoLens.Service.Types"+ , "Lens.Family2", "Lens.Family2.Unchecked"+ , "Data.Text", "Data.Map", "Data.ByteString", "Data.ByteString.Char8"+ , "Data.Text.Encoding"+ , "Data.Vector"+ , "Data.Vector.Generic"+ , "Data.Vector.Unboxed"+ , "Text.Read"+ ]+ env = Map.union (unqualifyEnv definitions) importedEnv+ generateDecls (protoName, Message m)+ = generateMessageDecls fieldModName env (stripDotPrefix protoName) m+ ++ map uncommented (concatMap (generatePrisms env) (messageOneofFields m))+ generateDecls (_, Enum e) = map uncommented $ generateEnumDecls e+ generateExports (Message m) = generateMessageExports m+ ++ concatMap generatePrismExports (messageOneofFields m)+ generateExports (Enum e) = generateEnumExports e+ serviceExports = fmap generateServiceExports services+ allLensNames = F.toList $ Set.fromList+ [ lensSymbol inst+ | Message m <- Map.elems definitions+ , info <- allMessageFields env m+ , inst <- recordFieldLenses info+ ]+ -- The Env uses the convention that Message names are prefixed with '.'+ -- (since that's how the FileDescriptorProto refers to them).+ -- Strip that off when defining MessageDescriptor.messageName.+ stripDotPrefix s+ | Just ('.', s') <- T.uncons s = s'+ | otherwise = s++allMessageFields :: Env RdrNameStr -> MessageInfo OccNameStr -> [RecordField]+allMessageFields env info =+ map (plainRecordField env) (messageFields info)+ ++ map (oneofRecordField env) (messageOneofFields info)++{- We import modules as follows:++1) Modules from proto-lens-runtime: import qualified, strip the prefix:+ import qualified Data.ProtoLens.Runtime.Data.Text as Data.Text++2) Modules from "import" declarations: import qualified:+ import qualified Proto.Foo.Bar++3) Modules from "import public" declarations: import unqualified:+ import Proto.Foo.Bar+ To reexport the imported declarations from the current module via+ module ... (module Proto.Foo.Bar)+ the module Proto.Foo.Bar needs to be unqualified.+ Alternately we could explicitly enumerate every definition being reexported, but+ that would lead to less readable Haddocks and also make codegen a little more+ complicated.+-}++importQualified :: ModuleNameStr -> ImportDecl'+importQualified = qualified' . import'++type ModifyImports = ImportDecl' -> ImportDecl'++reexported :: ModifyImports+reexported imp = imp { ideclName = noLoc m', ideclAs = Just m }+ where+ m' = mkModuleName $ "Data.ProtoLens.Runtime." ++ moduleNameString (unLoc m)+ m = ideclName imp++messageComment :: ModuleNameStr -> OccNameStr -> [RecordField] -> Outputable.SDoc+messageComment fieldModName n fields =+ Outputable.vcat+ $ [Outputable.text "Fields :", ""]+ ++ map item (concatMap recordFieldLenses fields)+ where+ item :: LensInstance -> Outputable.SDoc+ item l = Outputable.text (printf " * '%s.%s' @:: "+ (moduleNameStrToString fieldModName)+ (occNameStrToString $ nameFromSymbol $ lensSymbol l))+ Outputable.<>+ (Outputable.ppr $ var "Lens'" @@ t @@ (lensFieldType l))+ Outputable.<> Outputable.char '@'+ t = var (unqual n)++generateMessageExports :: MessageInfo OccNameStr -> [IE']+generateMessageExports m =+ -- Hide the message contructor, but expose "oneof" case constructors.+ thingWith (unqual $ messageName m) []+ : map (thingAll . unqual . oneofTypeName)+ (messageOneofFields m)++generateServiceDecls :: Env RdrNameStr -> ServiceInfo -> [HsDecl']+generateServiceDecls env si =+ -- data MyService = MyService+ [ data' serverDataName []+ [ recordCon serverDataName []+ ]+ []+ ] +++ -- instance Data.ProtoLens.Service.Types.Service MyService where+ -- type ServiceName MyService = "myService"+ -- type ServicePackage MyService = "some.package"+ -- type ServiceMethods MyService = '["normalMethod", "streamingMethod"]+ [ instance' (var "Data.ProtoLens.Service.Types.Service" @@ serverRecordType)+ [ tyFamInst "ServiceName" [serverRecordType]+ . stringTy . T.unpack $ serviceName si+ , tyFamInst "ServicePackage" [serverRecordType]+ . stringTy . T.unpack $ servicePackage si+ , tyFamInst "ServiceMethods" [serverRecordType]+ $ listPromotedTy+ [ stringTy . T.unpack $ methodIdent m+ | m <- List.sortBy (comparing methodIdent) $ serviceMethods si+ ]+ ]+ ] +++ -- instance Data.ProtoLens.Service.Types.HasMethodImpl MyService "normalMethod" where+ -- type MethodInput MyService "normalMethod" = Foo+ -- type MethodOutput MyService "normalMethod" = Bar+ -- type IsClientStreaming MyService "normalMethod" = 'False+ -- type IsServerStreaming MyService "normalMethod" = 'False+ [ instance' (var "Data.ProtoLens.Service.Types.HasMethodImpl" @@ serverRecordType @@ instanceHead)+ [ tyFamInst "MethodName" [serverRecordType, instanceHead]+ . stringTy . T.unpack $ methodName m+ , tyFamInst "MethodInput" [serverRecordType, instanceHead]+ . lookupType $ methodInput m+ , tyFamInst "MethodOutput" [serverRecordType, instanceHead]+ . lookupType $ methodOutput m+ , tyFamInst "MethodStreamingType" [serverRecordType, instanceHead]+ . tyPromotedVar+ $ case (methodClientStreaming m, methodServerStreaming m) of+ (False, False) -> "Data.ProtoLens.Service.Types.NonStreaming"+ (True, False) -> "Data.ProtoLens.Service.Types.ClientStreaming"+ (False, True) -> "Data.ProtoLens.Service.Types.ServerStreaming"+ (True, True) -> "Data.ProtoLens.Service.Types.BiDiStreaming"+ ]+ | m <- serviceMethods si+ , let instanceHead = stringTy (T.unpack $ methodIdent m)+ ]+ where+ serverDataName = fromString . T.unpack $ serviceName si+ serverRecordType = var $ unqual serverDataName++ lookupType t = case definedType t env of+ Message msg -> var $ messageName msg+ Enum _ -> error "Service must have a message type"+++generateMessageDecls :: ModuleNameStr -> Env RdrNameStr -> T.Text -> MessageInfo OccNameStr -> [CommentedDecl]+generateMessageDecls fieldModName env protoName info =+ -- data Bar = Bar {+ -- foo :: Baz+ -- }+ [ commented (messageComment fieldModName (messageName info) allFields)+ $ data' dataName []+ [recordCon (messageConstructorName info) $+ [ (recordFieldName f, strict $ field $ recordFieldType f)+ | f <- allFields+ ]+ ++ [(messageUnknownFields info, strict $ field $ var "Data.ProtoLens.FieldSet")]+ ]+ [deriving' [var "Prelude.Eq", var "Prelude.Ord"]]+ -- instance Show Bar where+ -- showsPrec __x __s = showChar '{' (showString (showMessageShort __x) (showChar '}' s))+ , uncommented $+ instance' (var "Prelude.Show" @@ dataType)+ [funBind "showsPrec" $ match [bvar "_", bvar "__x", bvar "__s"]+ $ var "Prelude.showChar" @@ char '{'+ @@ (var "Prelude.showString"+ @@ (var "Data.ProtoLens.showMessageShort" @@ var "__x")+ @@ (var "Prelude.showChar" @@ char '}' @@ var "__s"))]+ ] +++ -- oneof field data type declarations+ -- proto: message Foo {+ -- oneof bar {+ -- float c = 1;+ -- Sub s = 2;+ -- }+ -- }+ -- haskell: data Foo'Bar = Foo'Bar'c !Prelude.Float+ -- | Foo'Bar's !Sub+ [ uncommented $ data' (oneofTypeName oneofInfo) []+ [ prefixCon consName [strict $ field $ hsFieldType env f]+ | c <- oneofCases oneofInfo+ , let f = caseField c+ , let consName = caseConstructorName c+ ]+ [deriving' [var "Prelude.Show", var "Prelude.Eq", var "Prelude.Ord"]]+ | oneofInfo <- messageOneofFields info+ ] +++ -- instance HasField Foo "foo" Bar+ -- fieldOf _ = ...+ -- Note: for optional fields, this generates an instance both for "foo" and+ -- for "maybe'foo" (see plainRecordField below).+ [ uncommented $ instance'+ (var "Data.ProtoLens.Field.HasField" @@ dataType @@ sym @@ t)+ [funBind "fieldOf" $ match [wildP] $+ var "Prelude.."+ @@ rawFieldAccessor (unqual $ recordFieldName li)+ @@ lensExp i]+ | li <- allFields+ , i <- recordFieldLenses li+ , let t = lensFieldType i+ , let sym = promoteSymbol $ lensSymbol i+ ]+ +++ -- instance Message.Message Bar where+ [ uncommented $ instance' (var "Data.ProtoLens.Message" @@ dataType)+ $ messageInstance env protoName info+ -- instance NFData Bar where+ , uncommented $ instance' (var "Control.DeepSeq.NFData" @@ dataType)+ [valBind "rnf" $ messageRnfExpr info]+ ] +++ -- instance NFData Foo'Bar where+ [ uncommented $+ instance' (var "Control.DeepSeq.NFData" @@+ var (unqual $ oneofTypeName o))+ [funBinds "rnf" $ map oneofRnfMatch $ oneofCases o]+ | o <- messageOneofFields info+ ]+ where+ dataType = var $ unqual dataName+ dataName = messageName info+ allFields = allMessageFields env info++-- oneof Prism declarations+-- proto: message Foo {+-- oneof bar {+-- float c = 1;+-- Sub s = 2;+-- }+-- }+-- haskell: _Foo'C :: Prism' Bar'C Float+-- _Foo'S :: Prism' Bar'S Sub+--+-- example of the function definition for _Foo'C:+-- _Foo'C :: Prism' Bar'C Float+-- _Foo'C+-- = prism' Bar'C+-- (\ p__ ->+-- case p__ of+-- Bar'C p__val -> Prelude.Just p__val+-- _otherwise -> Prelude.Nothing)+generatePrisms :: Env RdrNameStr -> OneofInfo -> [HsDecl']+generatePrisms env oneofInfo =+ if length cases > 1+ then concatMap (generatePrism altOtherwise) cases+ else concatMap (generatePrism mempty) cases+ where+ cases = oneofCases oneofInfo+ altOtherwise = [match [bvar "_otherwise"] (var "Prelude.Nothing")]++ -- Generate type signature+ -- e.g. Prism' Bar'C Float+ generateTypeSig f funName =+ typeSig funName $ var "Data.ProtoLens.Prism.Prism'"+ -- The oneof sum type name+ @@ (var . unqual $ oneofTypeName oneofInfo)+ -- The field contained in the sum+ @@ (hsFieldType env f)+ -- Generate function definition+ -- Prism' is constructed with Constructor for building value+ -- and Deconstructor and wrapping in Just for getting value+ generateFunDef :: [RawMatch] -> OccNameStr -> HsExpr'+ generateFunDef otherwiseCase consName =+ var "Data.ProtoLens.Prism.prism'"+ -- Sum type constructor+ @@ var (unqual consName)+ -- Case deconstruction+ @@ (lambda [bvar "p__"] $+ case' (var "p__") $+ [ match [conP (unqual consName) [bvar "p__val"]]+ $ var "Prelude.Just" @@ var "p__val"+ ]+ -- We want to generate the otherwise case+ -- depending on the amount of sum type cases there are+ ++ otherwiseCase+ )+ generatePrism :: [RawMatch] -> OneofCase -> [HsDecl']+ generatePrism otherwiseCase oneofCase =+ let consName = caseConstructorName oneofCase+ prismName = casePrismName oneofCase+ in [ generateTypeSig (caseField oneofCase) prismName+ , valBind prismName $ generateFunDef otherwiseCase consName+ ]++generatePrismExports :: OneofInfo -> [IE']+generatePrismExports = map (var . unqual . casePrismName) . oneofCases++generateEnumExports :: EnumInfo OccNameStr -> [IE']+generateEnumExports e = [thingAll n, thingWith n aliases] ++ proto3NewType+ where+ n = unqual $ enumName e+ aliases = [enumValueName v | v <- enumValues e, needsManualExport v]+ needsManualExport v = isJust (enumAliasOf v)+ proto3NewType = case enumUnrecognized e of+ Just u -> [var . unqual $ unrecognizedValueName u]+ Nothing -> []++generateServiceExports :: ServiceInfo -> IE'+generateServiceExports si = thingAll $ unqual $ fromString $ T.unpack $ serviceName si++generateEnumDecls :: EnumInfo OccNameStr -> [HsDecl']+generateEnumDecls info =+ -- Proto3-only:+ -- newtype FooEnum'UnrecognizedValue = FooEnum'UnrecognizedValue Data.Int.Int32+ -- deriving (Prelude.Eq, Prelude.Ord, Prelude.Show, Prelude.Read)+ [ newtype' (unrecognizedValueName u) []+ (prefixCon (unrecognizedValueName u) [field $ var "Data.Int.Int32"])+ [deriving' [var "Prelude.Eq", var "Prelude.Ord", var "Prelude.Show"]]+ | Just u <- [unrecognized]+ ]+ ++++ -- data FooEnum+ -- = Enum1+ -- | Enum2+ -- | FooEnum'Unrecognized !FooEnum'UnrecognizedValue+ -- deriving (Prelude.Show, Prelude.Eq, Prelude.Ord, Prelude.Read)+ [ data' dataName []+ ( (flip prefixCon [] <$> constructorNames)+ ++ [ prefixCon (unrecognizedName u)+ [strict $ field $ var $ unqual $ unrecognizedValueName u]+ | Just u <- [unrecognized]+ ]+ )+ [deriving' [var "Prelude.Show", var "Prelude.Eq", var "Prelude.Ord"]]++ -- instance Data.ProtoLens.MessageEnum FooEnum where+ -- maybeToEnum 0 = Prelude.Just Enum1+ -- maybeToEnum 3 = Prelude.Just Enum2+ -- maybeToEnum k+ -- -- Proto3:+ -- = Prelude.Just+ -- (FooEnum'Unrecognized+ -- (FooEnum'UnrecognizedValue (Prelude.fromIntegral k)))+ -- -- Proto2:+ -- = Nothing+ --+ -- showEnum Foo'Enum2 = "Enum2"+ -- showEnum Foo'Enum1 = "Enum1"+ -- showEnum (FooEnum'Unrecognized (FooEnum'UnrecognizedValue k))+ -- = Prelude.show k+ --+ -- readEnum k+ -- | k == "Enum2a" = Prelude.Just Enum2a -- alias+ -- | k == "Enum2" = Prelude.Just Enum2+ -- | k == "Enum1" = Prelude.Just Enum1+ -- readEnum k = Text.Read.readMaybe k >>= maybeToEnum+ , instance' (var "Data.ProtoLens.MessageEnum" @@ dataType)+ [ funBinds "maybeToEnum" $+ [ match [int k] $ var "Prelude.Just" @@ var (unqual c)+ | (c, k) <- constructorNumbers+ ]+ +++ [ case enumUnrecognized info of+ Nothing -> match [wildP] $ var "Prelude.Nothing"+ Just u -> match [bvar "k"]+ $ var "Prelude.Just" @@+ (var (unqual $ unrecognizedName u)+ @@ (var (unqual $ unrecognizedValueName u)+ @@ (var "Prelude.fromIntegral" @@ var "k")+ )+ )+ ]+ , funBinds "showEnum" $+ [ match [conP_ (unqual n)] $ string pn+ | v <- filter (null . enumAliasOf) $ enumValues info+ , let n = enumValueName v+ , let pn = T.unpack $ enumValueDescriptor v ^. #name+ ] +++ [ match [conP (unqual $ unrecognizedName u)+ [conP (unqual $ unrecognizedValueName u) [bvar "k"]]+ ]+ $ var "Prelude.show" @@ var "k"+ | Just u <- [unrecognized]+ ]+ , funBind "readEnum" $ matchGRHSs [bvar "k"] $ guardedRhs $+ [ guard (var "Prelude.==" @@ var "k" @@ string pn)+ $ var "Prelude.Just" @@ var (unqual n)+ | v <- enumValues info+ , let n = enumValueName v+ , let pn = T.unpack $ enumValueDescriptor v ^. #name+ ]+ ++ [guard (var "Prelude.otherwise") $ var "Prelude.>>="+ @@ (var "Text.Read.readMaybe" @@ var "k")+ @@ var "Data.ProtoLens.maybeToEnum"]+ ]++ -- instance Bounded Foo where+ -- minBound = Foo1+ -- maxBound = FooN+ , instance' (var "Prelude.Bounded" @@ dataType)+ [ valBind "minBound" $ var $ unqual minBoundName+ , valBind "maxBound" $ var $ unqual maxBoundName+ ]++ -- instance Enum Foo where+ -- toEnum k = maybe (error ("Foo.toEnum: unknown argument for enum Foo: "+ -- ++ show k))+ -- id (maybeToEnum k)+ -- fromEnum Foo1 = 1+ -- fromEnum Foo2 = 2+ -- ..+ -- succ FooN = error "Foo.succ: bad argument FooN."+ -- succ Foo1 = Foo2+ -- succ Foo2 = Foo3+ -- ..+ -- pred Foo1 = error "Foo.succ: bad argument Foo1."+ -- pred Foo2 = Foo1+ -- pred Foo3 = Foo2+ -- ..+ -- enumFrom = messageEnumFrom+ -- enumFromTo = messageEnumFromTo+ -- enumFromThen = messageEnumFromThen+ -- enumFromThenTo = messageEnumFromThenTo+ , instance' (var "Prelude.Enum" @@ dataType)+ [funBind "toEnum" $ match [bvar "k__"]+ $ var "Prelude.maybe" @@ errorMessageExpr @@ var "Prelude.id"+ @@ (var "Data.ProtoLens.maybeToEnum" @@ var "k__")+ , funBinds "fromEnum" $+ [ match [conP_ (unqual c)] $ int k+ | (c, k) <- constructorNumbers+ ]+ +++ [ match [conP (unqual $ unrecognizedName u)+ [conP (unqual $ unrecognizedValueName u) [bvar "k"]]+ ]+ $ var "Prelude.fromIntegral" @@ var "k"+ | Just u <- [unrecognized]+ ]+ , succDecl "succ" maxBoundName succPairs+ , succDecl "pred" minBoundName $ map swap succPairs+ , valBind "enumFrom" $ var "Data.ProtoLens.Message.Enum.messageEnumFrom"+ , valBind "enumFromTo" $ var "Data.ProtoLens.Message.Enum.messageEnumFromTo"+ , valBind "enumFromThen" $ var "Data.ProtoLens.Message.Enum.messageEnumFromThen"+ , valBind "enumFromThenTo"+ $ var "Data.ProtoLens.Message.Enum.messageEnumFromThenTo"+ ]++ -- instance Data.ProtoLens.FieldDefault Foo where+ -- fieldDefault = FirstEnumValue+ , instance' (var "Data.ProtoLens.FieldDefault" @@ dataType)+ [valBind "fieldDefault" $ defaultCon]++ -- instance NFData Foo where+ -- rnf x__ = seq x__ ()+ -- (Trivial since enum types are already strict)+ , instance' (var "Control.DeepSeq.NFData" @@ dataType)+ [ funBind "rnf" $ match [bvar "x__"]+ $ var "Prelude.seq" @@ var "x__" @@ var "()" ]+ ] ++++ -- pattern Enum2a :: FooEnum+ -- pattern Enum2a = Enum2+ concat+ [ [ patSynSig aliasName dataType+ , patSynBind aliasName [] (bvar originalName)+ ]+ | EnumValueInfo+ { enumValueName = aliasName+ , enumAliasOf = Just originalName+ } <- enumValues info+ ]++ where+ EnumInfo { enumName = dataName+ , enumUnrecognized = unrecognized+ , enumDescriptor = ed+ } = info+ errorMessage = "toEnum: unknown value for enum " ++ unpack (ed ^. #name)+ ++ ": "++ errorMessageExpr = var "Prelude.error"+ @@ (var "Prelude.++" @@ string errorMessage+ @@ (var "Prelude.show" @@ var "k__"))++ dataType = var $ unqual dataName++ constructors :: [(OccNameStr, EnumValueDescriptorProto)]+ constructors = List.sortBy (comparing ((^. #number) . snd))+ [(n, d) | EnumValueInfo+ { enumValueName = n+ , enumValueDescriptor = d+ , enumAliasOf = Nothing+ } <- enumValues info+ ]+ constructorNames = map fst constructors++ defaultCon = var $ unqual $ head constructorNames++ minBoundName = head constructorNames+ maxBoundName = last constructorNames++ constructorNumbers = map (second (fromIntegral . (^. #number))) constructors++ succPairs = zip constructorNames $ tail constructorNames++ succDecl :: OccNameStr -> OccNameStr -> [(OccNameStr, OccNameStr)] -> RawInstDecl+ succDecl funName boundName thePairs = funBinds funName $+ match [conP_ (unqual boundName)]+ (var "Prelude.error" @@ string (concat+ [ occNameStrToString dataName, "."+ , occNameStrToString funName, ": bad argument "+ , occNameStrToString boundName+ , ". This value would be out of bounds."+ ]))+ :+ [ match [conP_ (unqual from)] $ var $ unqual to+ | (from, to) <- thePairs+ ]+ +++ [ match [conP (unqual $ unrecognizedName u) [wildP]]+ (var "Prelude.error" @@ string (concat+ [ occNameStrToString dataName, "."+ , occNameStrToString funName, ": bad argument: unrecognized value"++ ]))+ | Just u <- [unrecognized]+ ]++generateFieldDecls :: Symbol -> [HsDecl']+generateFieldDecls xStr =+ -- foo :: forall f s a+ -- . (Functor f, HasLens s x a) => LensLike' f s a+ -- foo = fieldOf @s+ [ typeSig x+ $ forall' [bvar "f", bvar "s", bvar "a"]+ $ [ var "Prelude.Functor" @@ var "f"+ , var "Data.ProtoLens.Field.HasField" @@ var "s" @@ xSym @@ var "a"+ ]+ ==> var "Lens.Family2.LensLike'" @@ var "f" @@ var "s" @@ var "a"+ , valBind x $ fieldOfExp xStr+ ]+ where+ x = nameFromSymbol xStr+ xSym = promoteSymbol xStr++------------------------------------------++-- | An individual field of the Haskell type corresponding to a proto message.+data RecordField = RecordField+ { recordFieldName :: OccNameStr -- ^ The Haskell name of this field (unique+ -- within the module).+ , recordFieldType :: HsType' -- ^ Internal type in the record+ , recordFieldLenses :: [LensInstance]+ -- ^ All of the (overloaded) lenses accessing this record field.+ }++-- | An instance of HasLens' for a particular field.+data LensInstance = LensInstance+ { lensSymbol :: Symbol+ -- ^ The overloaded name for this lens.+ , lensFieldType :: HsType'+ -- ^ The type pointed to from this lens.+ , lensExp :: HsExpr'+ -- ^ A lens from the recordFieldType to the lensFieldType; i.e.,+ -- from how it's actually stored in the Haskell record to how the+ -- lens views it.+ }++-- | Compile information about the record field type and type/class instances+-- for this particular field.+--+-- Used for "plain" record fields that are not part of a oneof.+plainRecordField :: Env RdrNameStr -> PlainFieldInfo -> RecordField+plainRecordField env (PlainFieldInfo kind f) = case kind of+ -- data Foo = Foo { _Foo_bar :: Bar }+ -- type instance Field "bar" Foo = Bar+ RequiredField+ -> recordField baseType+ [LensInstance+ { lensSymbol = baseName+ , lensFieldType = baseType+ , lensExp = rawAccessor+ }]+ OptionalValueField+ -> recordField baseType+ [LensInstance+ { lensSymbol = baseName+ , lensFieldType = baseType+ , lensExp = rawAccessor+ }]+ -- data Foo = Foo { _Foo_bar :: Maybe Bar }+ -- type instance Field "bar" Foo = Bar+ -- type instance Field "maybe'bar" Foo = Maybe Bar+ OptionalMaybeField ->+ recordField maybeType+ [LensInstance+ { lensSymbol = baseName+ , lensFieldType = baseType+ , lensExp = maybeAccessor+ }+ , LensInstance+ { lensSymbol = "maybe'" <> baseName+ , lensFieldType = maybeType+ , lensExp = rawAccessor+ }+ ]+ -- data Foo = Foo { _Foo_bar :: Map Bar Baz }+ -- type instance Field "foo" Foo = Map Bar Baz+ MapField entry ->+ let mapType = var "Data.Map.Map"+ @@ hsFieldType env (keyField entry)+ @@ hsFieldType env (valueField entry)+ in recordField mapType+ [LensInstance+ { lensSymbol = baseName+ , lensFieldType = mapType+ , lensExp = rawAccessor+ }]+ -- data Foo = Foo { _Foo_bar :: [Bar] }+ -- type instance Field "bar" Foo = [Bar]+ RepeatedField {} ->+ recordField vectorType+ [ LensInstance+ { lensSymbol = baseName+ , lensFieldType = listType+ , lensExp = vectorAccessor+ }+ , LensInstance+ { lensSymbol = "vec'" <> baseName+ , lensFieldType = vectorType+ , lensExp = rawAccessor+ }+ ]+ where+ recordField = RecordField (haskellRecordFieldName $ fieldName f)+ baseName = overloadedName $ fieldName f+ fd = fieldDescriptor f+ baseType = hsFieldType env f+ maybeType = var "Prelude.Maybe" @@ baseType+ listType = listTy baseType+ vectorType = hsFieldVectorType f @@ baseType+ rawAccessor = var "Prelude.id"+ maybeAccessor = var "Data.ProtoLens.maybeLens"+ @@ hsFieldValueDefault env fd++vectorAccessor :: HsExpr'+vectorAccessor = var "Lens.Family2.Unchecked.lens" @@ getter @@ setter+ where+ getter = var "Data.Vector.Generic.toList"+ setter = lambda [wildP, bvar "y__"]+ $ var "Data.Vector.Generic.fromList" @@ var "y__"++oneofRecordField :: Env RdrNameStr -> OneofInfo -> RecordField+oneofRecordField env oneofInfo+ = RecordField+ { recordFieldName = haskellRecordFieldName $ oneofFieldName oneofInfo+ , recordFieldType =+ var "Prelude.Maybe" @@ var (unqual $ oneofTypeName oneofInfo)+ , recordFieldLenses = lenses+ }+ where+ lenses =+ -- Only generate a "maybe" version of this lens,+ -- since oneofs don't have a notion of a "default" case.+ -- data Foo = Foo { _Foo'bar = Maybe Foo'Bar }+ -- type instance Field "maybe'bar" Foo = Maybe Foo'Bar+ [LensInstance+ { lensSymbol = "maybe'" <> overloadedName+ (oneofFieldName oneofInfo)+ , lensFieldType =+ var "Prelude.Maybe" @@ var (unqual $ oneofTypeName oneofInfo)+ , lensExp = var "Prelude.id"+ }+ ]+ ++ concat+ -- Generate the same lenses for each sub-field of the oneof+ -- as if they were proto2 optional fields.+ -- type instance Field "bar" Foo = Bar+ -- type instance Field "maybe'bar" Foo = Maybe Bar+ [ [ LensInstance+ { lensSymbol = maybeName+ , lensFieldType = var "Prelude.Maybe" @@ baseType+ , lensExp = oneofFieldAccessor c+ }+ , LensInstance+ { lensSymbol = baseName+ , lensFieldType = baseType+ , lensExp = var "Prelude.."+ @@ oneofFieldAccessor c+ @@ (var "Data.ProtoLens.maybeLens"+ @@ hsFieldValueDefault env+ (fieldDescriptor f))+ }+ ]+ | c <- oneofCases oneofInfo+ , let f = caseField c+ , let baseName = overloadedName $ fieldName f+ , let baseType = hsFieldType env f+ , let maybeName = "maybe'" <> baseName+ ]++hsFieldDefault :: Env RdrNameStr -> PlainFieldInfo -> HsExpr'+hsFieldDefault env f = case plainFieldKind f of+ RequiredField -> hsFieldValueDefault env fd+ OptionalValueField -> hsFieldValueDefault env fd+ OptionalMaybeField -> var "Prelude.Nothing"+ MapField {} -> var "Data.Map.empty"+ RepeatedField {} -> var "Data.Vector.Generic.empty"+ where+ fd = fieldDescriptor (plainFieldInfo f)++hsFieldValueDefault :: Env RdrNameStr -> FieldDescriptorProto -> HsExpr'+hsFieldValueDefault env fd = case fd ^. #type' of+ FieldDescriptorProto'TYPE_MESSAGE -> var "Data.ProtoLens.defMessage"+ FieldDescriptorProto'TYPE_GROUP -> var "Data.ProtoLens.defMessage"+ FieldDescriptorProto'TYPE_ENUM+ | T.null def -> var "Data.ProtoLens.fieldDefault"+ | Enum e <- definedFieldType fd env+ , Just v <- List.lookup def [ (enumValueDescriptor v ^. #name, enumValueName v)+ | v <- enumValues e+ ]+ -> var v+ | otherwise -> errorMessage "enum"+ -- The rest of the cases are for scalar fields that have a fieldDefault+ -- instance.+ _ | T.null def -> var "Data.ProtoLens.fieldDefault"+ FieldDescriptorProto'TYPE_BOOL+ | def == "true" -> var "Prelude.True"+ | def == "false" -> var "Prelude.False"+ | otherwise -> errorMessage "bool"+ FieldDescriptorProto'TYPE_STRING+ -> var "Data.Text.pack" @@ string (T.unpack def)+ FieldDescriptorProto'TYPE_BYTES+ -> var "Data.ByteString.pack"+ @@ list ((mkByte . fromEnum) <$> T.unpack def)+ where mkByte c+ | c > 0 && c < 255 = int $ fromIntegral c+ | otherwise = errorMessage "bytes"+ FieldDescriptorProto'TYPE_FLOAT -> defaultFrac $ T.unpack def+ FieldDescriptorProto'TYPE_DOUBLE -> defaultFrac $ T.unpack def+ -- Otherwise, assume it's an integral field:+ _ -> defaultInt $ T.unpack def+ where+ def = fd ^. #defaultValue+ errorMessage fieldType+ = error $ "Bad default value " ++ show (T.unpack def)+ ++ " in default value for " ++ fieldType ++ " field "+ ++ unpack (fd ^. #name)+ -- float/double fields can use nan, inf and -inf as default values.+ -- The Prelude doesn't provide names for them, so we implement+ -- them as division by zero.+ defaultFrac "nan" = var "Prelude./" @@ frac 0 @@ frac 0+ defaultFrac "inf" = var "Prelude./" @@ frac 1 @@ frac 0+ defaultFrac "-inf" = var "Prelude./" @@ frac (negate 1) @@ frac 0+ defaultFrac s = case reads s of+ [(x, "")] -> frac $ toRational (x :: Double)+ _ -> errorMessage "fractional"+ defaultInt s = case reads s of+ [(x, "")] -> int x+ _ -> errorMessage "integral"++-- | A lens to access an internal field.+--+-- lens _Foo_bar (\x__ y__ -> x__ { _Foo_bar = y__ })+rawFieldAccessor :: RdrNameStr -> HsExpr'+rawFieldAccessor f = var "Lens.Family2.Unchecked.lens" @@ getter @@ setter+ where+ getter = var f+ setter = lambda [bvar "x__", bvar "y__"]+ $ recordUpd (var "x__") [(f, var "y__")]++-- | A lens that maps from a oneof sum type to one of its individual cases.+--+-- For example, with+-- data Foo = Bar Int32 | Baz Int64+--+-- this will generate a lens of type @Lens' (Maybe Foo) (Maybe Int32)@.+--+-- (Recall that oneofs are stored in a proto message as @Maybe Foo@, where+-- 'Nothing' means that it's either set to an unknown value or unset.)+--+-- lens+-- (\ x__ -> case x__ of+-- Prelude.Just (Foo'c x__val) -> Prelude.Just x__val+-- otherwise -> Prelude.Nothing)+-- (\ _ y__ -> fmap Foo'c y__+oneofFieldAccessor :: OneofCase -> HsExpr'+oneofFieldAccessor o+ = var "Lens.Family2.Unchecked.lens" @@ getter @@ setter+ where+ consName = caseConstructorName o+ getter = lambda [bvar "x__"] $+ case' (var "x__")+ [ match [conP "Prelude.Just" [conP (unqual consName) [bvar "x__val"]]]+ $ var "Prelude.Just" @@ var "x__val"+ , match [bvar "_otherwise"] $ var "Prelude.Nothing"+ ]+ setter = lambda [wildP, bvar "y__"]+ $ var "Prelude.fmap" @@ var (unqual consName) @@ var "y__"++messageInstance :: Env RdrNameStr -> T.Text -> MessageInfo OccNameStr -> [RawInstDecl]+messageInstance env protoName m =+ [ funBind "messageName" $ match [wildP] $+ var "Data.Text.pack" @@ string (T.unpack protoName)+ , valBind "fieldsByTag" $+ let' (map (fieldDescriptorVarBind $ messageName m) $ fields)+ $ var "Data.Map.fromList" @@ list fieldsByTag+ , valBind "unknownFields"+ $ rawFieldAccessor (unqual $ messageUnknownFields m)+ , valBind "defMessage"+ $ recordConE (unqual $ messageConstructorName m) $+ [ (unqual $ haskellRecordFieldName+ $ fieldName $ plainFieldInfo f,+ hsFieldDefault env f)+ | f <- messageFields m+ ] +++ [ (unqual $ haskellRecordFieldName $ oneofFieldName o,+ var "Prelude.Nothing")+ | o <- messageOneofFields m+ ] +++ [ (unqual $ messageUnknownFields m, var "[]")]+ , valBind "parseMessage" $ generatedParser env m+ , valBind "buildMessage" $ generatedBuilder m+ ]+ where+ fieldsByTag =+ [tuple+ [ t, fieldDescriptorVar f ]+ | f <- fields+ , let t = var "Data.ProtoLens.Tag"+ @@ int (fromIntegral+ $ fieldDescriptor (plainFieldInfo f) ^. #number)+ ]+ fieldDescriptorVar = var . unqual . fieldDescriptorName+ fieldDescriptorName f+ = nameFromSymbol $ overloadedName (fieldName . plainFieldInfo $ f)+ <> "__field_descriptor"+ fieldDescriptorVarBind n f+ = valBind (fieldDescriptorName f)+ $ fieldDescriptorExpr env n f+ fields = messageFields m+ ++ (messageOneofFields m >>= fmap casePlainField . oneofCases)+ -- The cases of an optional are always treated like proto2 "maybe" fields.+ casePlainField = PlainFieldInfo OptionalMaybeField . caseField++-- | Get the name of the field when used in a text format proto. Groups are+-- special because their text format field name is the name of their type,+-- not the name of the field in the descriptor (e.g. "Foo", not "foo").+textFormatFieldName :: Env RdrNameStr -> FieldDescriptorProto -> T.Text+textFormatFieldName env descr = case descr ^. #type' of+ FieldDescriptorProto'TYPE_GROUP+ | Message msg <- definedFieldType descr env+ -> messageDescriptor msg ^. #name+ | otherwise -> error $ "expected TYPE_GROUP for type name"+ ++ T.unpack (descr ^. #typeName)+ _ -> descr ^. #name++fieldDescriptorExpr :: Env RdrNameStr -> OccNameStr -> PlainFieldInfo+ -> HsExpr'+fieldDescriptorExpr env n f =+ (var "Data.ProtoLens.FieldDescriptor"+ -- Record the original .proto name for text format+ @@ string (T.unpack $ textFormatFieldName env fd)+ -- Force the type signature since it can't be inferred for Map entry+ -- types.+ @@ (fieldTypeDescriptorExpr (fd ^. #type')+ @::@+ (var "Data.ProtoLens.FieldTypeDescriptor"+ @@ hsFieldType env (plainFieldInfo f)))+ @@ fieldAccessorExpr f)+ -- TODO: why is this type sig needed?+ @::@+ (var "Data.ProtoLens.FieldDescriptor" @@ var (unqual n))+ where+ fd = fieldDescriptor $ plainFieldInfo f++fieldAccessorExpr :: PlainFieldInfo -> HsExpr'+-- (PlainField Required foo), (OptionalField foo), etc...+fieldAccessorExpr (PlainFieldInfo kind f) = accessorCon @@ fieldOfExp hsFieldName++ where+ accessorCon = case kind of+ RequiredField+ -> var "Data.ProtoLens.PlainField" @@ var "Data.ProtoLens.Required"+ OptionalValueField+ -> var "Data.ProtoLens.PlainField" @@ var "Data.ProtoLens.Optional"+ OptionalMaybeField+ -> var "Data.ProtoLens.OptionalField"+ MapField entry+ -> var "Data.ProtoLens.MapField"+ @@ fieldOfExp (overloadedField $ keyField entry)+ @@ fieldOfExp (overloadedField $ valueField entry)+ RepeatedField packed ->+ var "Data.ProtoLens.RepeatedField"+ @@ if packed == Packed+ then var "Data.ProtoLens.Packed"+ else var "Data.ProtoLens.Unpacked"+ hsFieldName+ = case kind of+ OptionalMaybeField -> "maybe'" <> overloadedField f+ _ -> overloadedField f++fieldOfExp :: Symbol -> HsExpr'+fieldOfExp sym = var "Data.ProtoLens.Field.field" `tyApp` promoteSymbol sym++overloadedField :: FieldInfo -> Symbol+overloadedField = overloadedName . fieldName++fieldTypeDescriptorExpr :: FieldDescriptorProto'Type -> HsExpr'+fieldTypeDescriptorExpr = \case+ FieldDescriptorProto'TYPE_DOUBLE -> mk "ScalarField" "DoubleField"+ FieldDescriptorProto'TYPE_FLOAT -> mk "ScalarField" "FloatField"+ FieldDescriptorProto'TYPE_INT64 -> mk "ScalarField" "Int64Field"+ FieldDescriptorProto'TYPE_UINT64 -> mk "ScalarField" "UInt64Field"+ FieldDescriptorProto'TYPE_INT32 -> mk "ScalarField" "Int32Field"+ FieldDescriptorProto'TYPE_FIXED64 -> mk "ScalarField" "Fixed64Field"+ FieldDescriptorProto'TYPE_FIXED32 -> mk "ScalarField" "Fixed32Field"+ FieldDescriptorProto'TYPE_BOOL -> mk "ScalarField" "BoolField"+ FieldDescriptorProto'TYPE_STRING -> mk "ScalarField" "StringField"+ FieldDescriptorProto'TYPE_GROUP -> mk "MessageField" "GroupType"+ FieldDescriptorProto'TYPE_MESSAGE -> mk "MessageField" "MessageType"+ FieldDescriptorProto'TYPE_BYTES -> mk "ScalarField" "BytesField"+ FieldDescriptorProto'TYPE_UINT32 -> mk "ScalarField" "UInt32Field"+ FieldDescriptorProto'TYPE_ENUM -> mk "ScalarField" "EnumField"+ FieldDescriptorProto'TYPE_SFIXED32 -> mk "ScalarField" "SFixed32Field"+ FieldDescriptorProto'TYPE_SFIXED64 -> mk "ScalarField" "SFixed64Field"+ FieldDescriptorProto'TYPE_SINT32 -> mk "ScalarField" "SInt32Field"+ FieldDescriptorProto'TYPE_SINT64 -> mk "ScalarField" "SInt64Field"+ where+ mk x y = var (fromString ("Data.ProtoLens." ++ x))+ @@ var (fromString ("Data.ProtoLens." ++ y))++-- | Generate the implementation of NFData.rnf for the given message.+--+-- instance NFData Bar where+-- rnf = \x -> deepseq (_Bar'foo x) (deepseq (_Bar'bar x) ())+messageRnfExpr :: MessageInfo OccNameStr -> HsExpr'+messageRnfExpr msg = lambda [bvar "x__"] $ foldr (@@) unit (map seqField fieldNames)+ where+ fieldNames = messageUnknownFields msg+ : map (haskellRecordFieldName . fieldName . plainFieldInfo)+ (messageFields msg)+ ++ map (haskellRecordFieldName . oneofFieldName)+ (messageOneofFields msg)+ seqField :: OccNameStr -> HsExpr'+ seqField f = var "Control.DeepSeq.deepseq" @@ (var (unqual f) @@ var "x__")++-- rnf (Foo'a x__) = rnf x__+-- rnf (Bar'b x__) = rnf x__+oneofRnfMatch :: OneofCase -> RawMatch+oneofRnfMatch c = match [unqual (caseConstructorName c) `conP` [bvar "x__"]]+ $ var "Control.DeepSeq.rnf" @@ var "x__"
+ app/Data/ProtoLens/Compiler/Generate/Commented.hs view
@@ -0,0 +1,48 @@+-- | Enables pretty-printing Haddock comments along with top-level declarations.+module Data.ProtoLens.Compiler.Generate.Commented where++import Data.Maybe (fromMaybe)+import GHC.SourceGen+import Outputable (Outputable(..), SDoc, (<+>), ($+$), vcat, empty, text)+import HsSyn (hsmodName)+import GHC (ModuleName)+import SrcLoc (unLoc)++-- | A declaration, along with an optional comment.+--+-- GHC's pretty-printer omits the contents of comments, so we can't use it here.+data CommentedDecl = CommentedDecl (Maybe SDoc) HsDecl'++instance Outputable CommentedDecl where+ ppr (CommentedDecl maybeComment decl) =+ maybe empty pprComment maybeComment+ $+$ ppr decl+ where+ pprComment c = text "{- |" <+> c <+> text "-}"++uncommented :: HsDecl' -> CommentedDecl+uncommented = CommentedDecl Nothing++commented :: SDoc -> HsDecl' -> CommentedDecl+commented = CommentedDecl . Just++data CommentedModule = CommentedModule+ { pragmaComments :: [String]+ , moduleHeader :: HsModule'+ , commentedDecls :: [CommentedDecl]+ }++getModuleName :: CommentedModule -> ModuleName+getModuleName m =+ fromMaybe (error $ "getModuleName: No explicit name")+ $ fmap unLoc $ hsmodName $ moduleHeader m++instance Outputable CommentedModule where+ ppr m =+ vcat (map text $ pragmaComments m)+ $+$ ppr (moduleHeader m)+ $+$ vcat (map ppr $ commentedDecls m)++languagePragma, optionsGhcPragma :: String -> String+languagePragma s = "{-# LANGUAGE " ++ s ++ "#-}"+optionsGhcPragma s = "{-# OPTIONS_GHC " ++ s ++ "#-}"
+ app/Data/ProtoLens/Compiler/Generate/Encoding.hs view
@@ -0,0 +1,638 @@+-- | This module generates code for decoding and encoding protocol buffer messages.+--+-- Upstream docs: <https://developers.google.com/protocol-buffers/docs/encoding>+{-# LANGUAGE CPP #-}+{-# LANGUAGE DeriveFunctor #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoMonomorphismRestriction #-}+{-# LANGUAGE OverloadedLabels #-}+{-# LANGUAGE OverloadedStrings #-}+module Data.ProtoLens.Compiler.Generate.Encoding+ ( generatedParser+ , generatedBuilder+ ) where++import Data.Int (Int32)+import qualified Data.Map as Map+#if !MIN_VERSION_base(4,11,0)+import Data.Semigroup ((<>))+#endif+import qualified Data.Text as Text+import Lens.Family2 (view, (^.))+import GHC.SourceGen++import Data.ProtoLens.Compiler.Definitions+import Data.ProtoLens.Compiler.Generate.Field+import Data.ProtoLens.Encoding.Wire (joinTypeAndTag)++generatedParser :: Env RdrNameStr -> MessageInfo OccNameStr -> HsExpr'+generatedParser env m =+ {- let loop :: T -> Bool -> Bool -> ...+ -> MVector RealWorld Int32 -> MVector RealWorld Float -> ...+ -> Parser T+ loop x required'a required'b ... mutable'a mutable'b ... = ...+ in "package.T" <?> do+ mutable'a <- unsafeLiftIO new+ mutable'b <- unsafeLiftIO new+ ...+ loop defMessage True True ... mutable'a mutable'b ...+ -}+ let' [typeSig loop loopSig+ , funBind loop $ match (bvar <$> loopArgs names) loopExpr+ ]+ $ var "Data.ProtoLens.Encoding.Bytes.<?>"+ @@ do' (startStmts ++ [stmt $ continue startExp])+ @@ string msgName+ where+ ty = var (unqual $ messageName m)+ msgName = Text.unpack (messageDescriptor m ^. #name)+ loopSig = foldr (-->)+ (var "Data.ProtoLens.Encoding.Bytes.Parser" @@ ty)+ (loopArgs $ parseStateTypes env m)++ names = parseStateNames m+ exprs = fmap (var . unqual) names+ tag = bvar "tag"+ end = bvar "end"+ loop = "loop"++ (startStmts, startExp) = startParse names++ continue :: ParseState HsExpr' -> HsExpr'+ continue s = foldl (@@) (var loop) (loopArgs s)++ loopExpr+ {- Group:+ do+ tag <- getVarInt+ case tag of+ {groupEndTag} -> {finish}+ ... -- Regular message fields++ TODO(#282): fail the parse if we find a group-end tag+ with an incorrect field number.+ -}+ | Just g <- groupFieldNumber m = do'+ [ tag <-- getVarInt'+ , stmt $ case' tag $+ (match [int (groupEndTag g)] (finish m exprs))+ : parseTagCases continue exprs m+ ]+ {- Regular message type:+ do+ end <- atEnd+ if end+ then {finish}+ else do+ tag <- getVarInt+ case tag of ...+ -}+ | otherwise = do'+ [ end <-- var "Data.ProtoLens.Encoding.Bytes.atEnd"+ , stmt $+ if' end (finish m exprs)+ $ do'+ [ tag <-- getVarInt'+ , stmt $ case' tag $ parseTagCases continue exprs m+ ]+ ]++-- | A Parser expression that finalizes the message.+finish :: MessageInfo OccNameStr -> ParseState HsExpr' -> HsExpr'+finish m s = do' $+ {- do+ frozen'a <- unsafeLiftIO $ unsafeFreeze mutable'a+ frozen'b <- unsafeLiftIO $ unsafeFreeze mutable'b+ ...+ {checkMissingFields}+ over unknownFields reverse+ $ set field @"vec'a" frozen'a+ $ set field @"vec'b" frozen'b+ ...+ $ {partialMessage}+ -}+ [ bvar frozen <-- unsafeLiftIO' @@+ (var "Data.ProtoLens.Encoding.Growing.unsafeFreeze"+ @@ mutable)+ | (frozen, mutable) <- Map.elems $ Map.intersectionWith (,)+ frozenNames (repeatedFieldMVectors s)+ ]+ +++ [ stmt $ checkMissingFields s+ , stmt $ var "Prelude.return" @@+ (over' unknownFields' (var "Prelude.reverse")+ @@(foldr (@@)+ (partialMessage s)+ (Map.intersectionWith+ (\finfo frozen ->+ var "Lens.Family2.set"+ @@ fieldOfVector finfo+ @@ var (unqual frozen))+ repeatedInfos frozenNames)))+ ]++ where+ repeatedInfos = repeatedFields m+ frozenNames = (\f -> nameFromSymbol $ "frozen'" <> overloadedFieldName f)+ <$> repeatedInfos++-- | The state of the parsing loop. Each instance of @v@ corresponds+-- to an argument of the loop function.+data ParseState v = ParseState+ { partialMessage :: v+ -- ^ The message that we're parsing.+ , requiredFieldsUnset :: Map.Map FieldId v+ -- ^ The required fields of the message, each corresponding to+ -- a @Bool@ argument of the loop.+ , repeatedFieldMVectors :: Map.Map FieldId v+ -- ^ The repeated fields of the message, each corresponding to+ -- an @MVector@ argument of the loop.+ } deriving Functor++-- | Returns a sequence of all arguments of the loop function.+loopArgs :: ParseState v -> [v]+loopArgs s = partialMessage s : Map.elems (requiredFieldsUnset s)+ ++ Map.elems (repeatedFieldMVectors s)++-- | The proto name of the field.+newtype FieldId = FieldId Text.Text+ deriving (Eq, Ord)++fieldId :: PlainFieldInfo -> FieldId+fieldId f = FieldId $ fieldDescriptor (plainFieldInfo f) ^. #name++-- | The names of the loop arguments.+parseStateNames :: MessageInfo OccNameStr -> ParseState OccNameStr+parseStateNames m = ParseState+ { partialMessage = "x"+ , requiredFieldsUnset = Map.fromList+ [ (fieldId f, nameFromSymbol $ "required'" <> n)+ | f <- messageFields m+ , let info = plainFieldInfo f+ , let n = overloadedFieldName info+ , RequiredField <- [plainFieldKind f]+ ]+ , repeatedFieldMVectors =+ (\f -> nameFromSymbol $ "mutable'" <> overloadedFieldName f)+ <$> repeatedFields m+ }++repeatedFields :: MessageInfo OccNameStr -> Map.Map FieldId FieldInfo+repeatedFields m = Map.fromList+ [ (fieldId f, plainFieldInfo f)+ | f <- messageFields m+ , RepeatedField{} <- [plainFieldKind f]+ ]++-- | Intialize the values of the loop arguments.+startParse :: ParseState OccNameStr -> ([Stmt'], ParseState HsExpr')+startParse names =+ ([ bvar n <-- unsafeLiftIO' @@ var "Data.ProtoLens.Encoding.Growing.new"+ | n <- Map.elems mvectorNames+ ]+ , ParseState+ { partialMessage = var "Data.ProtoLens.defMessage"+ , requiredFieldsUnset = const (var "Prelude.True")+ <$> requiredFieldsUnset names+ , repeatedFieldMVectors = var . unqual <$> mvectorNames+ }+ )+ where+ mvectorNames = repeatedFieldMVectors names++-- | The types of the loop arguments.+parseStateTypes :: Env RdrNameStr -> MessageInfo OccNameStr -> ParseState HsType'+parseStateTypes env m = ParseState+ { partialMessage = var $ unqual $ messageName m+ , requiredFieldsUnset = fmap (const $ var "Prelude.Bool")+ $ requiredFieldsUnset+ $ parseStateNames m+ , repeatedFieldMVectors = growingType env <$> repeatedFields m+ }++-- | Transform the loop arguments by applying a given function+-- to the intermediate message value.+updateParseState ::+ HsExpr' -- ^ An expression of type @msg -> msg@+ -> ParseState HsExpr'+ -> ParseState HsExpr'+updateParseState f s = s { partialMessage = f @@ (partialMessage s) }++-- | Transform the loop arguments by marking a required field+-- as having been set.+markRequiredField :: FieldId -> ParseState HsExpr' -> ParseState HsExpr'+markRequiredField f s =+ s { requiredFieldsUnset = Map.insert f (var "Prelude.False")+ $ requiredFieldsUnset s }++-- | Append to the given repeated field.+appendToRepeated :: FieldId -> HsExpr' -> ParseState HsExpr' -> (Stmt', ParseState HsExpr')+appendToRepeated f x s =+ ( v <-- unsafeLiftIO'+ @@ (var "Data.ProtoLens.Encoding.Growing.append"+ @@ (repeatedFieldMVectors s Map.! f)+ @@ x)+ , s { repeatedFieldMVectors =+ Map.insert f v+ $ repeatedFieldMVectors s+ }+ )+ where+ v = bvar "v"++-- | Returns an HsExpr' of type @Parser ()@+-- which fails if any of the missing fields aren't set.+checkMissingFields :: ParseState HsExpr' -> HsExpr'+checkMissingFields s =+ {- let missing = (if required'a then ("a":) else id)+ ((if required'b then ("b":) else id)+ ... [])+ in if null missing then return ()+ else fail ("Missing required fields: " ++ show missing)+ -}+ let' [valBind missing $ allMissingFields]+ $ if' (var "Prelude.null" @@ var missing) (var "Prelude.return" @@ unit)+ $ var "Prelude.fail"+ @@ (var "Prelude.++"+ @@ string "Missing required fields: "+ @@ (var "Prelude.show" @@ (var missing @::@ listTy (var "Prelude.String"))))+ where+ missing = "missing"+ allMissingFields = Map.foldrWithKey consIfMissing (list []) (requiredFieldsUnset s)+ consIfMissing (FieldId f) e rest =+ (if' e (cons @@ string (Text.unpack f)) (var "Prelude.id")) @@ rest++-- | A list case alternatives for the fields of a message.+--+-- The exact structure of each case differs based on the field type. However, it+-- generally looks like:+--+-- @+-- {N} -> do+-- {VALUE} <- {PARSE}+-- loop (set {FIELD} {VALUE} x) required'a False required'c ...+-- @+--+-- where:+-- - {N} is an integer representing the wire type + field number,+-- - {VALUE} is an expression of type "V", which is the type of the field,+-- - {PARSE} is an expression of the form "Parser V",+-- - and "loop" and "x" are as in @generatedParser@.+parseTagCases ::+ (ParseState HsExpr' -> HsExpr')+ -- ^ loop continuation, equivalent to "msg -> Bool -> ... -> Bool -> Parser msg".+ -- It continues the loop with the given new value of the message, keeping track+ -- of whether the required fields are still needed.+ -> ParseState HsExpr' -- ^ Previous value of the message and required field states+ -> MessageInfo OccNameStr+ -> [RawMatch]+parseTagCases loop x info =+ concatMap (parseFieldCase loop x) allFields+ -- TODO: currently we ignore unknown fields.+ ++ [unknownFieldCase info loop x]+ where+ allFields = messageFields info+ -- Cases of a oneof are decoded like optional oneof fields.+ ++ [ PlainFieldInfo OptionalMaybeField (caseField c)+ | o <- messageOneofFields info+ , c <- oneofCases o+ ]++-- | A particular parsing case. See @parseTagCases@ for details.+parseFieldCase ::+ (ParseState HsExpr' -> HsExpr') -> ParseState HsExpr' -> PlainFieldInfo -> [RawMatch]+parseFieldCase loop x f = case plainFieldKind f of+ MapField entryInfo -> [mapCase entryInfo]+ RepeatedField p+ | p == NotPackable -> [unpackedCase]+ | otherwise -> [unpackedCase, packedCase]+ RequiredField -> [requiredCase]+ _ -> [valueCase]+ where+ y = bvar "y"+ entry = bvar "entry"+ info = plainFieldInfo f+ valueCase = match [int (fieldTag info)] $ do'+ [ y <-- parseField info+ , stmt . loop . updateParseState (setField info @@ y)+ $ x+ ]+ requiredCase = match [int (fieldTag info)] $ do'+ [ y <-- parseField info+ , stmt . loop+ . updateParseState (setField info @@ y)+ . markRequiredField (fieldId f)+ $ x+ ]+ unpackedCase = match [int (fieldTag info)]+ $ let (appendStmt, x') = appendToRepeated (fieldId f) y x+ in do'+ [ strictP y <-- parseField info+ , appendStmt+ , stmt . loop $ x'+ ]+ packedCase = match [int (packedFieldTag info)] $ do'+ [ y <-- isolatedLengthy (parsePackedField info+ @@ repeatedFieldMVectors x Map.! fieldId f)+ , stmt $ loop x { repeatedFieldMVectors =+ Map.insert (fieldId f) y+ $ repeatedFieldMVectors x }+ ]+ mapCase entryInfo = match [int (fieldTag info)] $ do'+ [ strictP (entry `sigP` var (unqual $ mapEntryTypeName entryInfo))+ <-- parseField info+ , stmt . let' [ valBind "key"+ $ view' @@ fieldOf (keyField entryInfo)+ @@ entry+ , valBind "value"+ $ view' @@ fieldOf (valueField entryInfo)+ @@ entry+ ]+ . loop+ . updateParseState+ (overField info+ (var "Data.Map.insert" @@ var "key" @@ var "value"))+ $ x+ ]++unknownFieldCase ::+ MessageInfo OccNameStr -> (ParseState HsExpr' -> HsExpr') -> ParseState HsExpr' -> RawMatch+{-+ wire -> do+ !y <- parseTaggedValueFromWire wire+ -- Omitted if not a group:+ case y of+ TaggedValue utag EndGroup+ -> fail ("Mismatched group-end tag number " ++ show utag)+ _ -> return ()+ loop (over unknownFields (\!t -> y:t) x) ...+-}+unknownFieldCase info loop x = match [wire] $ do' $+ [ strictP y <-- var "Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire" @@ wire+ ]+ +++ [ stmt $ case' y+ [ match+ [conP "Data.ProtoLens.Encoding.Wire.TaggedValue"+ [utag, conP_ "Data.ProtoLens.Encoding.Wire.EndGroup"]]+ $ var "Prelude.fail" @@+ (var "Prelude.++"+ @@ string "Mismatched group-end tag number "+ @@ (var "Prelude.show" @@ utag))+ , match [wildP] $ var "Prelude.return" @@ unit+ ]+ | Just _ <- [groupFieldNumber info]+ ]+ +++ [ stmt . loop . updateParseState (over' unknownFields' (cons @@ y))+ $ x+ ]+ where+ wire = bvar "wire"+ y = bvar "y"+ utag = bvar "utag"++-- | An expression of type "b -> a -> a", corresponding to a Lens a b+-- for this field.+setField :: FieldInfo -> HsExpr'+setField f = var "Lens.Family2.set" @@ fieldOf f++-- | An expression of type "(b -> b) -> a -> a", corresponding to a+-- Lens a b for this field.+overField :: FieldInfo -> HsExpr' -> HsExpr'+overField f = over' (fieldOf f)++-- | An expression of type "(b -> b) -> a -> a".+--+-- Specifically, this renders to:+-- over f (\!z -> g z) x+-- The extra strictness prevents a space leak due to lists being lazy.+over' :: HsExpr' -> HsExpr' -> HsExpr'+over' f g = var "Lens.Family2.over"+ @@ f+ @@ lambda [strictP t] (g @@ t)+ where+ t = bvar "t"++-- | A "Growing v RealWorld a -> Parser (Growing v RealWorld a)"+-- for a field that can be packed.+parsePackedField :: FieldInfo -> HsExpr'+{- let ploop qs = do+ packedEnd <- atEnd+ if packedEnd+ then return qs+ else do+ !q <- {PARSE FIELD}+ qs' <- append qs q+ ploop qs'+ in ploop+-}+parsePackedField info = let' [funBind ploop $ match [qs] ploopExp]+ (var ploop)+ where+ ploop = "ploop"+ q = bvar "q"+ qs = bvar "qs"+ qs' = bvar "qs'"+ packedEnd = bvar "packedEnd"+ ploopExp = do'+ [ packedEnd <-- var "Data.ProtoLens.Encoding.Bytes.atEnd"+ , stmt $+ if' packedEnd+ (var "Prelude.return" @@ qs)+ $ do'+ [ strictP q <-- parseField info+ , qs' <-- unsafeLiftIO' @@+ (var "Data.ProtoLens.Encoding.Growing.append"+ @@ qs @@ q)+ , stmt $ var ploop @@ qs'+ ]+ ]++generatedBuilder :: MessageInfo OccNameStr -> HsExpr'+generatedBuilder m =+ lambda [x] $ foldMapExp $ map (buildPlainField x) (messageFields m)+ ++ map (buildOneofField x) (messageOneofFields m)+ ++ [buildUnknown x]+ ++ buildGroupEnd+ where+ x = bvar "_x" -- TODO: rename to "x" once it's always used+ -- If this is a group, finish by emitting the end-group tag.+ buildGroupEnd = [ putVarInt' @@ int (groupEndTag g)+ | Just g <- [groupFieldNumber m]+ ]++buildUnknown :: HsExpr' -> HsExpr'+buildUnknown x+ = var "Data.ProtoLens.Encoding.Wire.buildFieldSet"+ @@ (view' @@ unknownFields' @@ x)++-- | Concatenate a list of Monoids into a single value.+-- For example, foldMapExp [a,b,c] will be transformed into+-- the (unrolled) expression a <> b <> c.+foldMapExp :: [HsExpr'] -> HsExpr'+foldMapExp [] = mempty'+foldMapExp [x] = x+foldMapExp (x:xs) = var "Data.Monoid.<>" @@ x @@ foldMapExp xs++-- | An expression of type @Builder@ which encodes the field value+-- @x@ based on the kind and type of the field @f@.+buildPlainField :: HsExpr' -> PlainFieldInfo -> HsExpr'+buildPlainField x f = case plainFieldKind f of+ RequiredField -> buildTaggedField info fieldValue+ OptionalMaybeField -> case' maybeFieldValue+ [ match [conP_ "Prelude.Nothing"] mempty'+ , match [conP "Prelude.Just" [v']]+ $ buildTaggedField info v'+ ]+ OptionalValueField -> let' [valBind v $ fieldValue]+ $ if' (var "Prelude.==" @@ v' @@ var "Data.ProtoLens.fieldDefault")+ mempty'+ (buildTaggedField info v')+ MapField entryInfo+ -> var "Data.Monoid.mconcat"+ @@ (var "Prelude.map"+ @@ lambda [v'] (buildEntry entryInfo v')+ @@ (var "Data.Map.toList" @@ fieldValue))+ RepeatedField Packed -> buildPackedField info vectorFieldValue+ RepeatedField _ -> var "Data.ProtoLens.Encoding.Bytes.foldMapBuilder"+ @@ lambda [v']+ (buildTaggedField info v')+ @@ vectorFieldValue+ where+ info = plainFieldInfo f+ v = "_v"+ v' = bvar v+ fieldValue = view'+ @@ fieldOf info+ @@ x+ maybeFieldValue = view'+ @@ fieldOfMaybe info+ @@ x+ vectorFieldValue = view'+ @@ fieldOfVector info+ @@ x+ {- Builds a value of the given map entry type+ from the given key/value pair kv.++ ... set (fieldOf {KEY}) (fst kv)+ (set (fieldOf {VALUE}) (snd kv)+ (defMessage :: Foo'Entry)+ -}+ buildEntry entry kv+ = buildTaggedField info+ $ set'+ @@ fieldOf (keyField entry)+ @@ (var "Prelude.fst" @@ kv)+ @@ (set' @@ fieldOf (valueField entry)+ @@ (var "Prelude.snd" @@ kv)+ @@ (var "Data.ProtoLens.defMessage"+ @::@ var (unqual $ mapEntryTypeName entry)))++fieldOf :: FieldInfo -> HsExpr'+fieldOf = fieldOfExp . overloadedFieldName++fieldOfMaybe :: FieldInfo -> HsExpr'+fieldOfMaybe = fieldOfExp . ("maybe'" <>) . overloadedFieldName++fieldOfOneof :: OneofInfo -> HsExpr'+fieldOfOneof =+ fieldOfExp . ("maybe'" <>) . overloadedName . oneofFieldName++fieldOfVector :: FieldInfo -> HsExpr'+fieldOfVector = fieldOfExp . ("vec'" <>) . overloadedFieldName++-- | Build a field along with its tag.+buildTaggedField :: FieldInfo -> HsExpr' -> HsExpr'+buildTaggedField f x = foldMapExp+ [ putVarInt' @@ int (fieldTag f)+ , buildField f @@ x+ ]++-- | Encodes a packed field as a byte string, along with+-- its wire type+number.+buildPackedField :: FieldInfo -> HsExpr' -> HsExpr'+{-+ let p = x -- where x might be a complicated expression+ in if null p then mempty+ else putVarInt {TAG}+ <> ... (runBuilder (mconcat (map {BUILD_ELT} p)))+-}+buildPackedField f x = let' [valBind p x]+ $ if' (var "Data.Vector.Generic.null" @@ var p) mempty'+ $ var "Data.Monoid.<>"+ @@ (putVarInt' @@ int (packedFieldTag f))+ @@ (buildFieldType lengthy+ @@ (var "Data.ProtoLens.Encoding.Bytes.runBuilder"+ @@ (var "Data.ProtoLens.Encoding.Bytes.foldMapBuilder"+ @@ buildField f+ @@ var p)))+ where+ p = "p"++buildOneofField :: HsExpr' -> OneofInfo -> HsExpr'+buildOneofField x info = case' (view' @@ fieldOfOneof info @@ x) $+ (match [conP_ "Prelude.Nothing"] mempty')+ : [ match [conP "Prelude.Just" [conP (unqual $ caseConstructorName c)+ [v]]]+ $ buildTaggedField (caseField c) v+ | c <- oneofCases info+ ]+ where+ v = bvar "v"++-- | Compute the proto encoding's representation of the wire type+-- and field number.+--+-- The last three bits of the number store the wire type, and the+-- rest store the field number as a varint.+makeTag :: Int32 -> FieldEncoding -> Integer+makeTag num enc = fromIntegral $ joinTypeAndTag (fromIntegral num) (wireType enc)++fieldTag :: FieldInfo -> Integer+fieldTag f = makeTag (fieldDescriptor f ^. #number) $ fieldInfoEncoding f++packedFieldTag :: FieldInfo -> Integer+packedFieldTag f = makeTag (fieldDescriptor f ^. #number) lengthy++groupEndTag :: Int32 -> Integer+groupEndTag num = makeTag num groupEnd++-- | An expression that selects the overloaded field lens of this name.+--+-- field @"fieldName"+fieldOfExp :: Symbol -> HsExpr'+fieldOfExp sym = tyApp (var "Data.ProtoLens.Field.field") (promoteSymbol sym)++-- | Some functions that are used in multiple places in the generated code.+getVarInt', putVarInt', mempty', view', set', unknownFields', unsafeLiftIO'+ :: HsExpr'+getVarInt' = var "Data.ProtoLens.Encoding.Bytes.getVarInt"+putVarInt' = var "Data.ProtoLens.Encoding.Bytes.putVarInt"+mempty' = var "Data.Monoid.mempty"+view' = var "Lens.Family2.view"+set' = var "Lens.Family2.set"+unknownFields' = var "Data.ProtoLens.unknownFields"+unsafeLiftIO' = var "Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO"++-- | Returns an expression of type @Parser a@ for the given field.+parseField :: FieldInfo -> HsExpr'+parseField f = var "Data.ProtoLens.Encoding.Bytes.<?>"+ @@ (parseFieldType $ fieldInfoEncoding f)+ @@ string n+ where+ n = Text.unpack (fieldDescriptor f ^. #name)++-- | Returns a function corresponding to `a -> Builder`:+buildField :: FieldInfo -> HsExpr'+buildField = buildFieldType . fieldInfoEncoding++fieldInfoEncoding :: FieldInfo -> FieldEncoding+fieldInfoEncoding = fieldEncoding . view #type' . fieldDescriptor++growingType :: Env RdrNameStr -> FieldInfo -> HsType'+growingType env f+ = var "Data.ProtoLens.Encoding.Growing.Growing"+ @@ hsFieldVectorType f+ @@ var "Data.ProtoLens.Encoding.Growing.RealWorld"+ @@ hsFieldType env f
+ app/Data/ProtoLens/Compiler/Generate/Field.hs view
@@ -0,0 +1,261 @@+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoMonomorphismRestriction #-}+{-# LANGUAGE OverloadedLabels #-}+{-# LANGUAGE OverloadedStrings #-}+-- | This module generates the code for decoding and encoding+-- individual field types.+--+-- Upstream docs:+-- <https://developers.google.com/protocol-buffers/docs/encoding#structure>+module Data.ProtoLens.Compiler.Generate.Field+ ( hsFieldType+ , hsFieldVectorType+ , FieldEncoding(..)+ , fieldEncoding+ , lengthy+ , groupEnd+ , isolatedLengthy+ ) where++import Data.Text (unpack)+import Data.Word (Word8)+import Lens.Family2+import Proto.Google.Protobuf.Descriptor (FieldDescriptorProto'Type(..))++import Data.ProtoLens.Compiler.Definitions++import GHC.SourceGen++hsFieldType :: Env RdrNameStr -> FieldInfo -> HsType'+hsFieldType env f = let+ fd = fieldDescriptor f+ in var $ case fd ^. #type' of+ FieldDescriptorProto'TYPE_DOUBLE -> "Prelude.Double"+ FieldDescriptorProto'TYPE_FLOAT -> "Prelude.Float"+ FieldDescriptorProto'TYPE_INT64 -> "Data.Int.Int64"+ FieldDescriptorProto'TYPE_UINT64 -> "Data.Word.Word64"+ FieldDescriptorProto'TYPE_INT32 -> "Data.Int.Int32"+ FieldDescriptorProto'TYPE_FIXED64 -> "Data.Word.Word64"+ FieldDescriptorProto'TYPE_FIXED32 -> "Data.Word.Word32"+ FieldDescriptorProto'TYPE_BOOL -> "Prelude.Bool"+ FieldDescriptorProto'TYPE_STRING -> "Data.Text.Text"+ FieldDescriptorProto'TYPE_GROUP+ | Message m <- definedFieldType fd env -> messageName m+ | otherwise -> error $ "expected TYPE_GROUP for type name"+ ++ unpack (fd ^. #typeName)+ FieldDescriptorProto'TYPE_MESSAGE+ | Message m <- definedFieldType fd env -> messageName m+ | otherwise -> error $ "expected TYPE_MESSAGE for type name"+ ++ unpack (fd ^. #typeName)+ FieldDescriptorProto'TYPE_BYTES -> "Data.ByteString.ByteString"+ FieldDescriptorProto'TYPE_UINT32 -> "Data.Word.Word32"+ FieldDescriptorProto'TYPE_ENUM+ | Enum e <- definedFieldType fd env -> enumName e+ | otherwise -> error $ "expected TYPE_ENUM for type name"+ ++ unpack (fd ^. #typeName)+ FieldDescriptorProto'TYPE_SFIXED32 -> "Data.Int.Int32"+ FieldDescriptorProto'TYPE_SFIXED64 -> "Data.Int.Int64"+ FieldDescriptorProto'TYPE_SINT32 -> "Data.Int.Int32"+ FieldDescriptorProto'TYPE_SINT64 -> "Data.Int.Int64"++hsFieldVectorType :: FieldInfo -> HsType'+hsFieldVectorType f = case fieldDescriptor f ^. #type' of+ FieldDescriptorProto'TYPE_MESSAGE -> boxed+ -- TODO: store enums in unboxed fields.+ FieldDescriptorProto'TYPE_ENUM -> boxed+ FieldDescriptorProto'TYPE_GROUP -> boxed+ FieldDescriptorProto'TYPE_STRING -> boxed+ FieldDescriptorProto'TYPE_BYTES -> boxed+ _ -> unboxed+ where+ boxed = var "Data.Vector.Vector"+ unboxed = var "Data.Vector.Unboxed.Vector"++-- | A representation for how to encode and decode a particular field type.+data FieldEncoding = FieldEncoding+ { buildFieldType :: HsExpr' -- ^ :: a -> Builder+ , parseFieldType :: HsExpr' -- ^ :: Parser a+ , wireType :: Word8+ }++-- | A variable-length integer, decoded as an unsigned Word64.+varint :: FieldEncoding+varint = FieldEncoding+ { wireType = 0+ , buildFieldType = putVarInt'+ , parseFieldType = getVarInt'+ }++-- | A fixed-length integer (Word64).+fixed64 :: FieldEncoding+fixed64 = FieldEncoding+ { wireType = 1+ , buildFieldType = var "Data.ProtoLens.Encoding.Bytes.putFixed64"+ , parseFieldType = var "Data.ProtoLens.Encoding.Bytes.getFixed64"+ }++-- | A fixed-length integer (Word32).+fixed32 :: FieldEncoding+fixed32 = FieldEncoding+ { wireType = 5+ , buildFieldType = var "Data.ProtoLens.Encoding.Bytes.putFixed32"+ , parseFieldType = var "Data.ProtoLens.Encoding.Bytes.getFixed32"+ }++-- | A ByteString, prefixed by its length (which is encoded as a varint).+lengthy :: FieldEncoding+lengthy = FieldEncoding+ { wireType = 2+ , buildFieldType = buildLengthy+ , parseFieldType = parseLengthy+ }+ where+ bs = bvar "bs"+ len = bvar "len"+ buildLengthy =+ -- Bind x since it may be a nontrivial expression:+ lambda [bs]+ $ var "Data.Monoid.<>"+ @@ (putVarInt'+ @@ (fromIntegral'+ @@ (var "Data.ByteString.length" @@ bs)))+ @@ (var "Data.ProtoLens.Encoding.Bytes.putBytes" @@ bs)+ parseLengthy = do'+ [ len <-- getVarInt'+ , stmt $ var "Data.ProtoLens.Encoding.Bytes.getBytes"+ @@ (fromIntegral' @@ len)+ ]++group :: FieldEncoding+group = FieldEncoding+ { wireType = 3+ , buildFieldType = var "Data.ProtoLens.buildMessage"+ , parseFieldType = var "Data.ProtoLens.parseMessage"+ }++groupEnd :: FieldEncoding+groupEnd = FieldEncoding+ { wireType = 4+ , buildFieldType = var "Prelude.const" @@ var "Data.Monoid.mempty"+ , parseFieldType = var "Prelude.return" @@ unit+ }++-- Wrap a field encoding with Haskell functions that should always succeed.+bijectField :: HsExpr' -> HsExpr' -> FieldEncoding -> FieldEncoding+bijectField buildF parseF f = FieldEncoding+ { buildFieldType = var "Prelude.." @@ buildFieldType f @@ buildF+ , parseFieldType = var "Prelude.fmap" @@ parseF @@ parseFieldType f+ , wireType = wireType f+ }++-- | Wrap a field encoding with Haskell functions that may fail during parsing.+partialField :: HsExpr' -> (HsExpr' -> HsExpr') -> FieldEncoding -> FieldEncoding+partialField buildF parseF f = FieldEncoding+ { buildFieldType = var "Prelude.." @@ buildFieldType f @@ buildF+ -- do+ -- value <- ...+ -- runEither $ {parseF} value+ , parseFieldType = do'+ [ value <-- parseFieldType f+ , stmt $ runEither @@ parseF value+ ]+ , wireType = wireType f+ }+ where+ value = bvar "value"+ runEither = var "Data.ProtoLens.Encoding.Bytes.runEither"++-- | Convert a field of one integral type to another.+integralField :: FieldEncoding -> FieldEncoding+integralField = bijectField fromIntegral' fromIntegral'++fieldEncoding :: FieldDescriptorProto'Type -> FieldEncoding+fieldEncoding = \case+ FieldDescriptorProto'TYPE_INT64 -> integralField varint+ FieldDescriptorProto'TYPE_UINT64 -> varint+ FieldDescriptorProto'TYPE_INT32 -> integralField varint+ FieldDescriptorProto'TYPE_UINT32 -> integralField varint+ FieldDescriptorProto'TYPE_FIXED64 -> fixed64+ FieldDescriptorProto'TYPE_FIXED32 -> fixed32+ FieldDescriptorProto'TYPE_SFIXED64 -> integralField fixed64+ FieldDescriptorProto'TYPE_SFIXED32 -> integralField fixed32+ FieldDescriptorProto'TYPE_DOUBLE ->+ bijectField+ (var "Data.ProtoLens.Encoding.Bytes.doubleToWord")+ (var "Data.ProtoLens.Encoding.Bytes.wordToDouble")+ fixed64+ FieldDescriptorProto'TYPE_FLOAT ->+ bijectField+ (var "Data.ProtoLens.Encoding.Bytes.floatToWord")+ (var "Data.ProtoLens.Encoding.Bytes.wordToFloat")+ fixed32+ FieldDescriptorProto'TYPE_BOOL ->+ bijectField+ (lambda [bvar "b"] $ if' (var "b") (int 1) (int 0))+ (var "Prelude./=" @@ int 0)+ varint+ FieldDescriptorProto'TYPE_ENUM ->+ -- TODO: don't throw an exception on unknown proto2 enums.+ bijectField (var "Prelude.fromEnum") (var "Prelude.toEnum")+ $ integralField varint+ FieldDescriptorProto'TYPE_SINT64 ->+ bijectField+ (var "Data.ProtoLens.Encoding.Bytes.signedInt64ToWord")+ (var "Data.ProtoLens.Encoding.Bytes.wordToSignedInt64")+ $ integralField varint+ FieldDescriptorProto'TYPE_SINT32 ->+ bijectField+ (var "Data.ProtoLens.Encoding.Bytes.signedInt32ToWord")+ (var "Data.ProtoLens.Encoding.Bytes.wordToSignedInt32")+ $ integralField varint+ FieldDescriptorProto'TYPE_BYTES -> lengthy+ FieldDescriptorProto'TYPE_STRING -> stringField+ FieldDescriptorProto'TYPE_MESSAGE -> message+ FieldDescriptorProto'TYPE_GROUP -> group++-- | A string, represented as Data.Text.Text.+stringField :: FieldEncoding+stringField = partialField (var "Data.Text.Encoding.encodeUtf8") decodeUtf8P lengthy+ where+ {- Translates to:+ case decodeUtf8' bytes of+ Left err -> Left (show err)+ Right r -> r+ Equivalently:+ first show $ decodeUtf8' bytes+ but avoids dragging in Data.Bifunctors.+ -}+ decodeUtf8P bytes =+ case' (var "Data.Text.Encoding.decodeUtf8'" @@ bytes)+ [ match ["Prelude.Left" `conP` [bvar "err"]]+ $ var "Prelude.Left" @@ (var "Prelude.show" @@ var "err")+ , match ["Prelude.Right" `conP` [bvar "r"]]+ $ var "Prelude.Right" @@ var "r"+ ]++-- | A protobuf message type.+message :: FieldEncoding+message = lengthy+ { buildFieldType = var "Prelude.." @@+ buildFieldType lengthy @@+ var "Data.ProtoLens.encodeMessage"+ , parseFieldType = isolatedLengthy (var "Data.ProtoLens.parseMessage")+ }++-- | Takes a @Parser a@, reads a varint and then runs the parser+-- isolated to the given length.+isolatedLengthy :: HsExpr' -> HsExpr'+isolatedLengthy parser = do'+ [ len <-- getVarInt'+ , stmt $ var "Data.ProtoLens.Encoding.Bytes.isolate"+ @@ (fromIntegral' @@ len)+ @@ parser+ ]+ where+ len = bvar "len"++-- | Some functions that are used in multiple places in the generated code.+getVarInt', putVarInt', fromIntegral' :: HsExpr'+getVarInt' = var "Data.ProtoLens.Encoding.Bytes.getVarInt"+putVarInt' = var "Data.ProtoLens.Encoding.Bytes.putVarInt"+fromIntegral' = var "Prelude.fromIntegral"
+ app/Data/ProtoLens/Compiler/Plugin.hs view
@@ -0,0 +1,105 @@+-- Copyright 2016 Google Inc. All Rights Reserved.+--+-- Use of this source code is governed by a BSD-style+-- license that can be found in the LICENSE file or at+-- https://developers.google.com/open-source/licenses/bsd+--+-- Code for writing protocol compiler plugins.++{-# LANGUAGE CPP #-}+{-# LANGUAGE OverloadedLabels #-}+{-# LANGUAGE OverloadedStrings #-}+module Data.ProtoLens.Compiler.Plugin+ ( ProtoFileName+ , ProtoFile(..)+ , analyzeProtoFiles+ , collectEnvFromDeps+ ) where++import Data.List (foldl')+import qualified Data.Map.Strict as Map+import Data.Map.Strict (Map, unions, (!))+import Data.String (fromString)+import qualified Data.Text as T+import Data.Text (Text)+import Lens.Family2+import Proto.Google.Protobuf.Descriptor (FileDescriptorProto)++import Data.ProtoLens.Compiler.Definitions+import Data.ProtoLens.Compiler.ModuleName++import GHC.SourceGen (ModuleNameStr, OccNameStr, RdrNameStr)++-- | The filename of an input .proto file.+type ProtoFileName = Text++data ProtoFile = ProtoFile+ { descriptor :: FileDescriptorProto+ , haskellModule :: ModuleNameStr+ , definitions :: Env OccNameStr+ , services :: [ServiceInfo]+ , exportedEnv :: Env RdrNameStr+ , publicImports :: [ModuleNameStr]+ }++-- Given a list of FileDescriptorProtos, collect information about each file+-- into a map of 'ProtoFile's keyed by 'ProtoFileName'.+analyzeProtoFiles :: [FileDescriptorProto] -> Map ProtoFileName ProtoFile+analyzeProtoFiles files =+ Map.fromList [ (f ^. #name, ingestFile f) | f <- files ]+ where+ filesByName = Map.fromList [(f ^. #name, f) | f <- files]+ moduleNames = fmap fdModuleName filesByName+ -- The definitions in each input proto file, indexed by filename.+ definitionsByName = fmap collectDefinitions filesByName+ servicesByName = fmap collectServices filesByName+ exportsByName = transitiveExports files+ exportedEnvs = fmap (foldMap (definitionsByName !)) exportsByName++ ingestFile f = ProtoFile+ { descriptor = f+ , haskellModule = m+ , definitions = definitionsByName ! n+ , services = servicesByName ! n+ , exportedEnv = qualifyEnv m $ exportedEnvs ! n+ , publicImports = [moduleNames ! i | i <- reexported]+ }+ where+ n = f ^. #name+ m = moduleNames ! n+ reexported =+ [ (f ^. #dependency) !! fromIntegral i+ | i <- f ^. #publicDependency+ ]++collectEnvFromDeps :: [ProtoFileName] -> Map ProtoFileName ProtoFile -> Env RdrNameStr+collectEnvFromDeps deps filesByName =+ unions $ fmap (exportedEnv . (filesByName !)) deps++-- | Get the Haskell 'ModuleName' corresponding to a given .proto file.+fdModuleName :: FileDescriptorProto -> ModuleNameStr+fdModuleName fd+ = fromString $ protoModuleName (T.unpack $ fd ^. #name)++-- | Given a list of .proto files (topologically sorted), determine which+-- files' definitions are exported by which files.+--+-- Files only export their own definitions, along with the definitions exported+-- by any "import public" declarations. (And any definitions that *those* files+-- "import public", etc.)+transitiveExports :: [FileDescriptorProto] -> Map ProtoFileName [ProtoFileName]+-- Accumulate the transitive dependencies by folding over the files in+-- topological order.+transitiveExports = foldl' setExportsFromFile Map.empty+ where+ setExportsFromFile :: Map ProtoFileName [ProtoFileName]+ -> FileDescriptorProto+ -> Map ProtoFileName [ProtoFileName]+ setExportsFromFile prevExports fd+ = flip (Map.insert n) prevExports $+ n : concat [ prevExports ! ((fd ^. #dependency) !! fromIntegral i)+ -- Note that publicDependency is a list of indices into+ -- the dependency list.+ | i <- fd ^. #publicDependency+ ]+ where n = fd ^. #name
+ app/Proto/Google/Protobuf/Compiler/Plugin.hs view
@@ -0,0 +1,1039 @@+{- This file was auto-generated from google/protobuf/compiler/plugin.proto by the proto-lens-protoc program. -}+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies, UndecidableInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances, PatternSynonyms, MagicHash, NoImplicitPrelude, DataKinds, BangPatterns, TypeApplications#-}+{-# OPTIONS_GHC -Wno-unused-imports#-}+{-# OPTIONS_GHC -Wno-duplicate-exports#-}+{-# OPTIONS_GHC -Wno-dodgy-exports#-}+module Proto.Google.Protobuf.Compiler.Plugin (+ CodeGeneratorRequest(), CodeGeneratorResponse(),+ CodeGeneratorResponse'File(), Version()+ ) where+import qualified Data.ProtoLens.Runtime.Control.DeepSeq as Control.DeepSeq+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Prism as Data.ProtoLens.Prism+import qualified Data.ProtoLens.Runtime.Prelude as Prelude+import qualified Data.ProtoLens.Runtime.Data.Int as Data.Int+import qualified Data.ProtoLens.Runtime.Data.Monoid as Data.Monoid+import qualified Data.ProtoLens.Runtime.Data.Word as Data.Word+import qualified Data.ProtoLens.Runtime.Data.ProtoLens as Data.ProtoLens+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Bytes as Data.ProtoLens.Encoding.Bytes+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Growing as Data.ProtoLens.Encoding.Growing+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Parser.Unsafe as Data.ProtoLens.Encoding.Parser.Unsafe+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Wire as Data.ProtoLens.Encoding.Wire+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Field as Data.ProtoLens.Field+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Message.Enum as Data.ProtoLens.Message.Enum+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Service.Types as Data.ProtoLens.Service.Types+import qualified Data.ProtoLens.Runtime.Lens.Family2 as Lens.Family2+import qualified Data.ProtoLens.Runtime.Lens.Family2.Unchecked as Lens.Family2.Unchecked+import qualified Data.ProtoLens.Runtime.Data.Text as Data.Text+import qualified Data.ProtoLens.Runtime.Data.Map as Data.Map+import qualified Data.ProtoLens.Runtime.Data.ByteString as Data.ByteString+import qualified Data.ProtoLens.Runtime.Data.ByteString.Char8 as Data.ByteString.Char8+import qualified Data.ProtoLens.Runtime.Data.Text.Encoding as Data.Text.Encoding+import qualified Data.ProtoLens.Runtime.Data.Vector as Data.Vector+import qualified Data.ProtoLens.Runtime.Data.Vector.Generic as Data.Vector.Generic+import qualified Data.ProtoLens.Runtime.Data.Vector.Unboxed as Data.Vector.Unboxed+import qualified Data.ProtoLens.Runtime.Text.Read as Text.Read+import qualified Proto.Google.Protobuf.Descriptor+{- | Fields :+ + * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.fileToGenerate' @:: Lens' CodeGeneratorRequest [Data.Text.Text]@+ * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.vec'fileToGenerate' @:: Lens' CodeGeneratorRequest (Data.Vector.Vector Data.Text.Text)@+ * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.parameter' @:: Lens' CodeGeneratorRequest Data.Text.Text@+ * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.maybe'parameter' @:: Lens' CodeGeneratorRequest (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.protoFile' @:: Lens' CodeGeneratorRequest [Proto.Google.Protobuf.Descriptor.FileDescriptorProto]@+ * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.vec'protoFile' @:: Lens' CodeGeneratorRequest (Data.Vector.Vector Proto.Google.Protobuf.Descriptor.FileDescriptorProto)@+ * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.compilerVersion' @:: Lens' CodeGeneratorRequest Version@+ * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.maybe'compilerVersion' @:: Lens' CodeGeneratorRequest (Prelude.Maybe Version)@ -}+data CodeGeneratorRequest+ = CodeGeneratorRequest'_constructor {_CodeGeneratorRequest'fileToGenerate :: !(Data.Vector.Vector Data.Text.Text),+ _CodeGeneratorRequest'parameter :: !(Prelude.Maybe Data.Text.Text),+ _CodeGeneratorRequest'protoFile :: !(Data.Vector.Vector Proto.Google.Protobuf.Descriptor.FileDescriptorProto),+ _CodeGeneratorRequest'compilerVersion :: !(Prelude.Maybe Version),+ _CodeGeneratorRequest'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show CodeGeneratorRequest where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField CodeGeneratorRequest "fileToGenerate" [Data.Text.Text] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _CodeGeneratorRequest'fileToGenerate+ (\ x__ y__ -> x__ {_CodeGeneratorRequest'fileToGenerate = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField CodeGeneratorRequest "vec'fileToGenerate" (Data.Vector.Vector Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _CodeGeneratorRequest'fileToGenerate+ (\ x__ y__ -> x__ {_CodeGeneratorRequest'fileToGenerate = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField CodeGeneratorRequest "parameter" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _CodeGeneratorRequest'parameter+ (\ x__ y__ -> x__ {_CodeGeneratorRequest'parameter = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField CodeGeneratorRequest "maybe'parameter" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _CodeGeneratorRequest'parameter+ (\ x__ y__ -> x__ {_CodeGeneratorRequest'parameter = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField CodeGeneratorRequest "protoFile" [Proto.Google.Protobuf.Descriptor.FileDescriptorProto] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _CodeGeneratorRequest'protoFile+ (\ x__ y__ -> x__ {_CodeGeneratorRequest'protoFile = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField CodeGeneratorRequest "vec'protoFile" (Data.Vector.Vector Proto.Google.Protobuf.Descriptor.FileDescriptorProto) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _CodeGeneratorRequest'protoFile+ (\ x__ y__ -> x__ {_CodeGeneratorRequest'protoFile = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField CodeGeneratorRequest "compilerVersion" Version where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _CodeGeneratorRequest'compilerVersion+ (\ x__ y__ -> x__ {_CodeGeneratorRequest'compilerVersion = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField CodeGeneratorRequest "maybe'compilerVersion" (Prelude.Maybe Version) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _CodeGeneratorRequest'compilerVersion+ (\ x__ y__ -> x__ {_CodeGeneratorRequest'compilerVersion = y__}))+ Prelude.id+instance Data.ProtoLens.Message CodeGeneratorRequest where+ messageName _+ = Data.Text.pack "google.protobuf.compiler.CodeGeneratorRequest"+ fieldsByTag+ = let+ fileToGenerate__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "file_to_generate"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"fileToGenerate")) ::+ Data.ProtoLens.FieldDescriptor CodeGeneratorRequest+ parameter__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "parameter"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'parameter")) ::+ Data.ProtoLens.FieldDescriptor CodeGeneratorRequest+ protoFile__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "proto_file"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor Proto.Google.Protobuf.Descriptor.FileDescriptorProto)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"protoFile")) ::+ Data.ProtoLens.FieldDescriptor CodeGeneratorRequest+ compilerVersion__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "compiler_version"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor Version)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'compilerVersion")) ::+ Data.ProtoLens.FieldDescriptor CodeGeneratorRequest+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 1, fileToGenerate__field_descriptor),+ (Data.ProtoLens.Tag 2, parameter__field_descriptor),+ (Data.ProtoLens.Tag 15, protoFile__field_descriptor),+ (Data.ProtoLens.Tag 3, compilerVersion__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _CodeGeneratorRequest'_unknownFields+ (\ x__ y__ -> x__ {_CodeGeneratorRequest'_unknownFields = y__})+ defMessage+ = CodeGeneratorRequest'_constructor+ {_CodeGeneratorRequest'fileToGenerate = Data.Vector.Generic.empty,+ _CodeGeneratorRequest'parameter = Prelude.Nothing,+ _CodeGeneratorRequest'protoFile = Data.Vector.Generic.empty,+ _CodeGeneratorRequest'compilerVersion = Prelude.Nothing,+ _CodeGeneratorRequest'_unknownFields = []}+ parseMessage+ = let+ loop ::+ CodeGeneratorRequest+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Text.Text+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Proto.Google.Protobuf.Descriptor.FileDescriptorProto+ -> Data.ProtoLens.Encoding.Bytes.Parser CodeGeneratorRequest+ loop x mutable'fileToGenerate mutable'protoFile+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do frozen'fileToGenerate <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'fileToGenerate)+ frozen'protoFile <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'protoFile)+ (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields+ (\ !t -> Prelude.reverse t)+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'fileToGenerate")+ frozen'fileToGenerate+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'protoFile") frozen'protoFile x)))+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 10+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "file_to_generate"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append+ mutable'fileToGenerate y)+ loop x v mutable'protoFile+ 18+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "parameter"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"parameter") y x)+ mutable'fileToGenerate+ mutable'protoFile+ 122+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "proto_file"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append mutable'protoFile y)+ loop x mutable'fileToGenerate v+ 26+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+ "compiler_version"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"compilerVersion") y x)+ mutable'fileToGenerate+ mutable'protoFile+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ mutable'fileToGenerate+ mutable'protoFile+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do mutable'fileToGenerate <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ mutable'protoFile <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ loop+ Data.ProtoLens.defMessage mutable'fileToGenerate mutable'protoFile)+ "CodeGeneratorRequest"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'fileToGenerate") _x))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'parameter") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 122)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'protoFile") _x))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'compilerVersion") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 26)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))+instance Control.DeepSeq.NFData CodeGeneratorRequest where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_CodeGeneratorRequest'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_CodeGeneratorRequest'fileToGenerate x__)+ (Control.DeepSeq.deepseq+ (_CodeGeneratorRequest'parameter x__)+ (Control.DeepSeq.deepseq+ (_CodeGeneratorRequest'protoFile x__)+ (Control.DeepSeq.deepseq+ (_CodeGeneratorRequest'compilerVersion x__) ()))))+{- | Fields :+ + * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.error' @:: Lens' CodeGeneratorResponse Data.Text.Text@+ * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.maybe'error' @:: Lens' CodeGeneratorResponse (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.file' @:: Lens' CodeGeneratorResponse [CodeGeneratorResponse'File]@+ * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.vec'file' @:: Lens' CodeGeneratorResponse (Data.Vector.Vector CodeGeneratorResponse'File)@ -}+data CodeGeneratorResponse+ = CodeGeneratorResponse'_constructor {_CodeGeneratorResponse'error :: !(Prelude.Maybe Data.Text.Text),+ _CodeGeneratorResponse'file :: !(Data.Vector.Vector CodeGeneratorResponse'File),+ _CodeGeneratorResponse'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show CodeGeneratorResponse where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse "error" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _CodeGeneratorResponse'error+ (\ x__ y__ -> x__ {_CodeGeneratorResponse'error = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse "maybe'error" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _CodeGeneratorResponse'error+ (\ x__ y__ -> x__ {_CodeGeneratorResponse'error = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse "file" [CodeGeneratorResponse'File] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _CodeGeneratorResponse'file+ (\ x__ y__ -> x__ {_CodeGeneratorResponse'file = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse "vec'file" (Data.Vector.Vector CodeGeneratorResponse'File) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _CodeGeneratorResponse'file+ (\ x__ y__ -> x__ {_CodeGeneratorResponse'file = y__}))+ Prelude.id+instance Data.ProtoLens.Message CodeGeneratorResponse where+ messageName _+ = Data.Text.pack "google.protobuf.compiler.CodeGeneratorResponse"+ fieldsByTag+ = let+ error__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "error"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'error")) ::+ Data.ProtoLens.FieldDescriptor CodeGeneratorResponse+ file__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "file"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor CodeGeneratorResponse'File)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"file")) ::+ Data.ProtoLens.FieldDescriptor CodeGeneratorResponse+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 1, error__field_descriptor),+ (Data.ProtoLens.Tag 15, file__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _CodeGeneratorResponse'_unknownFields+ (\ x__ y__ -> x__ {_CodeGeneratorResponse'_unknownFields = y__})+ defMessage+ = CodeGeneratorResponse'_constructor+ {_CodeGeneratorResponse'error = Prelude.Nothing,+ _CodeGeneratorResponse'file = Data.Vector.Generic.empty,+ _CodeGeneratorResponse'_unknownFields = []}+ parseMessage+ = let+ loop ::+ CodeGeneratorResponse+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld CodeGeneratorResponse'File+ -> Data.ProtoLens.Encoding.Bytes.Parser CodeGeneratorResponse+ loop x mutable'file+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do frozen'file <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'file)+ (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields+ (\ !t -> Prelude.reverse t)+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'file") frozen'file x))+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 10+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "error"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"error") y x)+ mutable'file+ 122+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "file"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append mutable'file y)+ loop x v+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ mutable'file+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do mutable'file <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ loop Data.ProtoLens.defMessage mutable'file)+ "CodeGeneratorResponse"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'error") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 122)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'file") _x))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x)))+instance Control.DeepSeq.NFData CodeGeneratorResponse where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_CodeGeneratorResponse'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_CodeGeneratorResponse'error x__)+ (Control.DeepSeq.deepseq (_CodeGeneratorResponse'file x__) ()))+{- | Fields :+ + * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.name' @:: Lens' CodeGeneratorResponse'File Data.Text.Text@+ * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.maybe'name' @:: Lens' CodeGeneratorResponse'File (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.insertionPoint' @:: Lens' CodeGeneratorResponse'File Data.Text.Text@+ * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.maybe'insertionPoint' @:: Lens' CodeGeneratorResponse'File (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.content' @:: Lens' CodeGeneratorResponse'File Data.Text.Text@+ * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.maybe'content' @:: Lens' CodeGeneratorResponse'File (Prelude.Maybe Data.Text.Text)@ -}+data CodeGeneratorResponse'File+ = CodeGeneratorResponse'File'_constructor {_CodeGeneratorResponse'File'name :: !(Prelude.Maybe Data.Text.Text),+ _CodeGeneratorResponse'File'insertionPoint :: !(Prelude.Maybe Data.Text.Text),+ _CodeGeneratorResponse'File'content :: !(Prelude.Maybe Data.Text.Text),+ _CodeGeneratorResponse'File'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show CodeGeneratorResponse'File where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse'File "name" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _CodeGeneratorResponse'File'name+ (\ x__ y__ -> x__ {_CodeGeneratorResponse'File'name = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse'File "maybe'name" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _CodeGeneratorResponse'File'name+ (\ x__ y__ -> x__ {_CodeGeneratorResponse'File'name = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse'File "insertionPoint" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _CodeGeneratorResponse'File'insertionPoint+ (\ x__ y__+ -> x__ {_CodeGeneratorResponse'File'insertionPoint = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse'File "maybe'insertionPoint" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _CodeGeneratorResponse'File'insertionPoint+ (\ x__ y__+ -> x__ {_CodeGeneratorResponse'File'insertionPoint = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse'File "content" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _CodeGeneratorResponse'File'content+ (\ x__ y__ -> x__ {_CodeGeneratorResponse'File'content = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField CodeGeneratorResponse'File "maybe'content" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _CodeGeneratorResponse'File'content+ (\ x__ y__ -> x__ {_CodeGeneratorResponse'File'content = y__}))+ Prelude.id+instance Data.ProtoLens.Message CodeGeneratorResponse'File where+ messageName _+ = Data.Text.pack+ "google.protobuf.compiler.CodeGeneratorResponse.File"+ fieldsByTag+ = let+ name__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "name"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'name")) ::+ Data.ProtoLens.FieldDescriptor CodeGeneratorResponse'File+ insertionPoint__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "insertion_point"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'insertionPoint")) ::+ Data.ProtoLens.FieldDescriptor CodeGeneratorResponse'File+ content__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "content"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'content")) ::+ Data.ProtoLens.FieldDescriptor CodeGeneratorResponse'File+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 1, name__field_descriptor),+ (Data.ProtoLens.Tag 2, insertionPoint__field_descriptor),+ (Data.ProtoLens.Tag 15, content__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _CodeGeneratorResponse'File'_unknownFields+ (\ x__ y__+ -> x__ {_CodeGeneratorResponse'File'_unknownFields = y__})+ defMessage+ = CodeGeneratorResponse'File'_constructor+ {_CodeGeneratorResponse'File'name = Prelude.Nothing,+ _CodeGeneratorResponse'File'insertionPoint = Prelude.Nothing,+ _CodeGeneratorResponse'File'content = Prelude.Nothing,+ _CodeGeneratorResponse'File'_unknownFields = []}+ parseMessage+ = let+ loop ::+ CodeGeneratorResponse'File+ -> Data.ProtoLens.Encoding.Bytes.Parser CodeGeneratorResponse'File+ loop x+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 10+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "name"+ loop (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)+ 18+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "insertion_point"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"insertionPoint") y x)+ 122+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "content"+ loop (Lens.Family2.set (Data.ProtoLens.Field.field @"content") y x)+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do loop Data.ProtoLens.defMessage) "File"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'name") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'insertionPoint") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'content") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 122)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x))))+instance Control.DeepSeq.NFData CodeGeneratorResponse'File where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_CodeGeneratorResponse'File'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_CodeGeneratorResponse'File'name x__)+ (Control.DeepSeq.deepseq+ (_CodeGeneratorResponse'File'insertionPoint x__)+ (Control.DeepSeq.deepseq+ (_CodeGeneratorResponse'File'content x__) ())))+{- | Fields :+ + * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.major' @:: Lens' Version Data.Int.Int32@+ * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.maybe'major' @:: Lens' Version (Prelude.Maybe Data.Int.Int32)@+ * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.minor' @:: Lens' Version Data.Int.Int32@+ * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.maybe'minor' @:: Lens' Version (Prelude.Maybe Data.Int.Int32)@+ * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.patch' @:: Lens' Version Data.Int.Int32@+ * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.maybe'patch' @:: Lens' Version (Prelude.Maybe Data.Int.Int32)@+ * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.suffix' @:: Lens' Version Data.Text.Text@+ * 'Proto.Google.Protobuf.Compiler.Plugin_Fields.maybe'suffix' @:: Lens' Version (Prelude.Maybe Data.Text.Text)@ -}+data Version+ = Version'_constructor {_Version'major :: !(Prelude.Maybe Data.Int.Int32),+ _Version'minor :: !(Prelude.Maybe Data.Int.Int32),+ _Version'patch :: !(Prelude.Maybe Data.Int.Int32),+ _Version'suffix :: !(Prelude.Maybe Data.Text.Text),+ _Version'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show Version where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField Version "major" Data.Int.Int32 where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _Version'major (\ x__ y__ -> x__ {_Version'major = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField Version "maybe'major" (Prelude.Maybe Data.Int.Int32) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _Version'major (\ x__ y__ -> x__ {_Version'major = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField Version "minor" Data.Int.Int32 where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _Version'minor (\ x__ y__ -> x__ {_Version'minor = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField Version "maybe'minor" (Prelude.Maybe Data.Int.Int32) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _Version'minor (\ x__ y__ -> x__ {_Version'minor = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField Version "patch" Data.Int.Int32 where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _Version'patch (\ x__ y__ -> x__ {_Version'patch = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField Version "maybe'patch" (Prelude.Maybe Data.Int.Int32) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _Version'patch (\ x__ y__ -> x__ {_Version'patch = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField Version "suffix" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _Version'suffix (\ x__ y__ -> x__ {_Version'suffix = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField Version "maybe'suffix" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _Version'suffix (\ x__ y__ -> x__ {_Version'suffix = y__}))+ Prelude.id+instance Data.ProtoLens.Message Version where+ messageName _ = Data.Text.pack "google.protobuf.compiler.Version"+ fieldsByTag+ = let+ major__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "major"+ (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'major")) ::+ Data.ProtoLens.FieldDescriptor Version+ minor__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "minor"+ (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'minor")) ::+ Data.ProtoLens.FieldDescriptor Version+ patch__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "patch"+ (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'patch")) ::+ Data.ProtoLens.FieldDescriptor Version+ suffix__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "suffix"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'suffix")) ::+ Data.ProtoLens.FieldDescriptor Version+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 1, major__field_descriptor),+ (Data.ProtoLens.Tag 2, minor__field_descriptor),+ (Data.ProtoLens.Tag 3, patch__field_descriptor),+ (Data.ProtoLens.Tag 4, suffix__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _Version'_unknownFields+ (\ x__ y__ -> x__ {_Version'_unknownFields = y__})+ defMessage+ = Version'_constructor+ {_Version'major = Prelude.Nothing,+ _Version'minor = Prelude.Nothing, _Version'patch = Prelude.Nothing,+ _Version'suffix = Prelude.Nothing, _Version'_unknownFields = []}+ parseMessage+ = let+ loop :: Version -> Data.ProtoLens.Encoding.Bytes.Parser Version+ loop x+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt)+ "major"+ loop (Lens.Family2.set (Data.ProtoLens.Field.field @"major") y x)+ 16+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt)+ "minor"+ loop (Lens.Family2.set (Data.ProtoLens.Field.field @"minor") y x)+ 24+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt)+ "patch"+ loop (Lens.Family2.set (Data.ProtoLens.Field.field @"patch") y x)+ 34+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "suffix"+ loop (Lens.Family2.set (Data.ProtoLens.Field.field @"suffix") y x)+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do loop Data.ProtoLens.defMessage) "Version"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'major") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 8)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'minor") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 16)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'patch") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 24)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'suffix") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 34)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))+instance Control.DeepSeq.NFData Version where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_Version'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_Version'major x__)+ (Control.DeepSeq.deepseq+ (_Version'minor x__)+ (Control.DeepSeq.deepseq+ (_Version'patch x__)+ (Control.DeepSeq.deepseq (_Version'suffix x__) ()))))
+ app/Proto/Google/Protobuf/Compiler/Plugin_Fields.hs view
@@ -0,0 +1,181 @@+{- This file was auto-generated from google/protobuf/compiler/plugin.proto by the proto-lens-protoc program. -}+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies, UndecidableInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances, PatternSynonyms, MagicHash, NoImplicitPrelude, DataKinds, BangPatterns, TypeApplications#-}+{-# OPTIONS_GHC -Wno-unused-imports#-}+{-# OPTIONS_GHC -Wno-duplicate-exports#-}+{-# OPTIONS_GHC -Wno-dodgy-exports#-}+module Proto.Google.Protobuf.Compiler.Plugin_Fields where+import qualified Data.ProtoLens.Runtime.Prelude as Prelude+import qualified Data.ProtoLens.Runtime.Data.Int as Data.Int+import qualified Data.ProtoLens.Runtime.Data.Monoid as Data.Monoid+import qualified Data.ProtoLens.Runtime.Data.Word as Data.Word+import qualified Data.ProtoLens.Runtime.Data.ProtoLens as Data.ProtoLens+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Bytes as Data.ProtoLens.Encoding.Bytes+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Growing as Data.ProtoLens.Encoding.Growing+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Parser.Unsafe as Data.ProtoLens.Encoding.Parser.Unsafe+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Wire as Data.ProtoLens.Encoding.Wire+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Field as Data.ProtoLens.Field+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Message.Enum as Data.ProtoLens.Message.Enum+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Service.Types as Data.ProtoLens.Service.Types+import qualified Data.ProtoLens.Runtime.Lens.Family2 as Lens.Family2+import qualified Data.ProtoLens.Runtime.Lens.Family2.Unchecked as Lens.Family2.Unchecked+import qualified Data.ProtoLens.Runtime.Data.Text as Data.Text+import qualified Data.ProtoLens.Runtime.Data.Map as Data.Map+import qualified Data.ProtoLens.Runtime.Data.ByteString as Data.ByteString+import qualified Data.ProtoLens.Runtime.Data.ByteString.Char8 as Data.ByteString.Char8+import qualified Data.ProtoLens.Runtime.Data.Text.Encoding as Data.Text.Encoding+import qualified Data.ProtoLens.Runtime.Data.Vector as Data.Vector+import qualified Data.ProtoLens.Runtime.Data.Vector.Generic as Data.Vector.Generic+import qualified Data.ProtoLens.Runtime.Data.Vector.Unboxed as Data.Vector.Unboxed+import qualified Data.ProtoLens.Runtime.Text.Read as Text.Read+import qualified Proto.Google.Protobuf.Descriptor+compilerVersion ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "compilerVersion" a) =>+ Lens.Family2.LensLike' f s a+compilerVersion = Data.ProtoLens.Field.field @"compilerVersion"+content ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "content" a) =>+ Lens.Family2.LensLike' f s a+content = Data.ProtoLens.Field.field @"content"+error ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "error" a) =>+ Lens.Family2.LensLike' f s a+error = Data.ProtoLens.Field.field @"error"+file ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "file" a) =>+ Lens.Family2.LensLike' f s a+file = Data.ProtoLens.Field.field @"file"+fileToGenerate ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "fileToGenerate" a) =>+ Lens.Family2.LensLike' f s a+fileToGenerate = Data.ProtoLens.Field.field @"fileToGenerate"+insertionPoint ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "insertionPoint" a) =>+ Lens.Family2.LensLike' f s a+insertionPoint = Data.ProtoLens.Field.field @"insertionPoint"+major ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "major" a) =>+ Lens.Family2.LensLike' f s a+major = Data.ProtoLens.Field.field @"major"+maybe'compilerVersion ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'compilerVersion" a) =>+ Lens.Family2.LensLike' f s a+maybe'compilerVersion+ = Data.ProtoLens.Field.field @"maybe'compilerVersion"+maybe'content ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'content" a) =>+ Lens.Family2.LensLike' f s a+maybe'content = Data.ProtoLens.Field.field @"maybe'content"+maybe'error ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'error" a) =>+ Lens.Family2.LensLike' f s a+maybe'error = Data.ProtoLens.Field.field @"maybe'error"+maybe'insertionPoint ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'insertionPoint" a) =>+ Lens.Family2.LensLike' f s a+maybe'insertionPoint+ = Data.ProtoLens.Field.field @"maybe'insertionPoint"+maybe'major ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'major" a) =>+ Lens.Family2.LensLike' f s a+maybe'major = Data.ProtoLens.Field.field @"maybe'major"+maybe'minor ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'minor" a) =>+ Lens.Family2.LensLike' f s a+maybe'minor = Data.ProtoLens.Field.field @"maybe'minor"+maybe'name ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'name" a) =>+ Lens.Family2.LensLike' f s a+maybe'name = Data.ProtoLens.Field.field @"maybe'name"+maybe'parameter ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'parameter" a) =>+ Lens.Family2.LensLike' f s a+maybe'parameter = Data.ProtoLens.Field.field @"maybe'parameter"+maybe'patch ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'patch" a) =>+ Lens.Family2.LensLike' f s a+maybe'patch = Data.ProtoLens.Field.field @"maybe'patch"+maybe'suffix ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'suffix" a) =>+ Lens.Family2.LensLike' f s a+maybe'suffix = Data.ProtoLens.Field.field @"maybe'suffix"+minor ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "minor" a) =>+ Lens.Family2.LensLike' f s a+minor = Data.ProtoLens.Field.field @"minor"+name ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "name" a) =>+ Lens.Family2.LensLike' f s a+name = Data.ProtoLens.Field.field @"name"+parameter ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "parameter" a) =>+ Lens.Family2.LensLike' f s a+parameter = Data.ProtoLens.Field.field @"parameter"+patch ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "patch" a) =>+ Lens.Family2.LensLike' f s a+patch = Data.ProtoLens.Field.field @"patch"+protoFile ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "protoFile" a) =>+ Lens.Family2.LensLike' f s a+protoFile = Data.ProtoLens.Field.field @"protoFile"+suffix ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "suffix" a) =>+ Lens.Family2.LensLike' f s a+suffix = Data.ProtoLens.Field.field @"suffix"+vec'file ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'file" a) =>+ Lens.Family2.LensLike' f s a+vec'file = Data.ProtoLens.Field.field @"vec'file"+vec'fileToGenerate ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'fileToGenerate" a) =>+ Lens.Family2.LensLike' f s a+vec'fileToGenerate+ = Data.ProtoLens.Field.field @"vec'fileToGenerate"+vec'protoFile ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'protoFile" a) =>+ Lens.Family2.LensLike' f s a+vec'protoFile = Data.ProtoLens.Field.field @"vec'protoFile"
+ app/Proto/Google/Protobuf/Descriptor.hs view
@@ -0,0 +1,9947 @@+{- This file was auto-generated from google/protobuf/descriptor.proto by the proto-lens-protoc program. -}+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies, UndecidableInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances, PatternSynonyms, MagicHash, NoImplicitPrelude, DataKinds, BangPatterns, TypeApplications#-}+{-# OPTIONS_GHC -Wno-unused-imports#-}+{-# OPTIONS_GHC -Wno-duplicate-exports#-}+{-# OPTIONS_GHC -Wno-dodgy-exports#-}+module Proto.Google.Protobuf.Descriptor (+ DescriptorProto(), DescriptorProto'ExtensionRange(),+ DescriptorProto'ReservedRange(), EnumDescriptorProto(),+ EnumDescriptorProto'EnumReservedRange(), EnumOptions(),+ EnumValueDescriptorProto(), EnumValueOptions(),+ ExtensionRangeOptions(), FieldDescriptorProto(),+ FieldDescriptorProto'Label(..), FieldDescriptorProto'Label(),+ FieldDescriptorProto'Type(..), FieldDescriptorProto'Type(),+ FieldOptions(), FieldOptions'CType(..), FieldOptions'CType(),+ FieldOptions'JSType(..), FieldOptions'JSType(),+ FileDescriptorProto(), FileDescriptorSet(), FileOptions(),+ FileOptions'OptimizeMode(..), FileOptions'OptimizeMode(),+ GeneratedCodeInfo(), GeneratedCodeInfo'Annotation(),+ MessageOptions(), MethodDescriptorProto(), MethodOptions(),+ MethodOptions'IdempotencyLevel(..),+ MethodOptions'IdempotencyLevel(), OneofDescriptorProto(),+ OneofOptions(), ServiceDescriptorProto(), ServiceOptions(),+ SourceCodeInfo(), SourceCodeInfo'Location(), UninterpretedOption(),+ UninterpretedOption'NamePart()+ ) where+import qualified Data.ProtoLens.Runtime.Control.DeepSeq as Control.DeepSeq+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Prism as Data.ProtoLens.Prism+import qualified Data.ProtoLens.Runtime.Prelude as Prelude+import qualified Data.ProtoLens.Runtime.Data.Int as Data.Int+import qualified Data.ProtoLens.Runtime.Data.Monoid as Data.Monoid+import qualified Data.ProtoLens.Runtime.Data.Word as Data.Word+import qualified Data.ProtoLens.Runtime.Data.ProtoLens as Data.ProtoLens+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Bytes as Data.ProtoLens.Encoding.Bytes+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Growing as Data.ProtoLens.Encoding.Growing+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Parser.Unsafe as Data.ProtoLens.Encoding.Parser.Unsafe+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Wire as Data.ProtoLens.Encoding.Wire+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Field as Data.ProtoLens.Field+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Message.Enum as Data.ProtoLens.Message.Enum+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Service.Types as Data.ProtoLens.Service.Types+import qualified Data.ProtoLens.Runtime.Lens.Family2 as Lens.Family2+import qualified Data.ProtoLens.Runtime.Lens.Family2.Unchecked as Lens.Family2.Unchecked+import qualified Data.ProtoLens.Runtime.Data.Text as Data.Text+import qualified Data.ProtoLens.Runtime.Data.Map as Data.Map+import qualified Data.ProtoLens.Runtime.Data.ByteString as Data.ByteString+import qualified Data.ProtoLens.Runtime.Data.ByteString.Char8 as Data.ByteString.Char8+import qualified Data.ProtoLens.Runtime.Data.Text.Encoding as Data.Text.Encoding+import qualified Data.ProtoLens.Runtime.Data.Vector as Data.Vector+import qualified Data.ProtoLens.Runtime.Data.Vector.Generic as Data.Vector.Generic+import qualified Data.ProtoLens.Runtime.Data.Vector.Unboxed as Data.Vector.Unboxed+import qualified Data.ProtoLens.Runtime.Text.Read as Text.Read+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.name' @:: Lens' DescriptorProto Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'name' @:: Lens' DescriptorProto (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.field' @:: Lens' DescriptorProto [FieldDescriptorProto]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'field' @:: Lens' DescriptorProto (Data.Vector.Vector FieldDescriptorProto)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.extension' @:: Lens' DescriptorProto [FieldDescriptorProto]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'extension' @:: Lens' DescriptorProto (Data.Vector.Vector FieldDescriptorProto)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.nestedType' @:: Lens' DescriptorProto [DescriptorProto]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'nestedType' @:: Lens' DescriptorProto (Data.Vector.Vector DescriptorProto)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.enumType' @:: Lens' DescriptorProto [EnumDescriptorProto]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'enumType' @:: Lens' DescriptorProto (Data.Vector.Vector EnumDescriptorProto)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.extensionRange' @:: Lens' DescriptorProto [DescriptorProto'ExtensionRange]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'extensionRange' @:: Lens' DescriptorProto (Data.Vector.Vector DescriptorProto'ExtensionRange)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.oneofDecl' @:: Lens' DescriptorProto [OneofDescriptorProto]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'oneofDecl' @:: Lens' DescriptorProto (Data.Vector.Vector OneofDescriptorProto)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.options' @:: Lens' DescriptorProto MessageOptions@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'options' @:: Lens' DescriptorProto (Prelude.Maybe MessageOptions)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.reservedRange' @:: Lens' DescriptorProto [DescriptorProto'ReservedRange]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'reservedRange' @:: Lens' DescriptorProto (Data.Vector.Vector DescriptorProto'ReservedRange)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.reservedName' @:: Lens' DescriptorProto [Data.Text.Text]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'reservedName' @:: Lens' DescriptorProto (Data.Vector.Vector Data.Text.Text)@ -}+data DescriptorProto+ = DescriptorProto'_constructor {_DescriptorProto'name :: !(Prelude.Maybe Data.Text.Text),+ _DescriptorProto'field :: !(Data.Vector.Vector FieldDescriptorProto),+ _DescriptorProto'extension :: !(Data.Vector.Vector FieldDescriptorProto),+ _DescriptorProto'nestedType :: !(Data.Vector.Vector DescriptorProto),+ _DescriptorProto'enumType :: !(Data.Vector.Vector EnumDescriptorProto),+ _DescriptorProto'extensionRange :: !(Data.Vector.Vector DescriptorProto'ExtensionRange),+ _DescriptorProto'oneofDecl :: !(Data.Vector.Vector OneofDescriptorProto),+ _DescriptorProto'options :: !(Prelude.Maybe MessageOptions),+ _DescriptorProto'reservedRange :: !(Data.Vector.Vector DescriptorProto'ReservedRange),+ _DescriptorProto'reservedName :: !(Data.Vector.Vector Data.Text.Text),+ _DescriptorProto'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show DescriptorProto where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField DescriptorProto "name" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'name+ (\ x__ y__ -> x__ {_DescriptorProto'name = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField DescriptorProto "maybe'name" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'name+ (\ x__ y__ -> x__ {_DescriptorProto'name = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField DescriptorProto "field" [FieldDescriptorProto] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'field+ (\ x__ y__ -> x__ {_DescriptorProto'field = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField DescriptorProto "vec'field" (Data.Vector.Vector FieldDescriptorProto) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'field+ (\ x__ y__ -> x__ {_DescriptorProto'field = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField DescriptorProto "extension" [FieldDescriptorProto] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'extension+ (\ x__ y__ -> x__ {_DescriptorProto'extension = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField DescriptorProto "vec'extension" (Data.Vector.Vector FieldDescriptorProto) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'extension+ (\ x__ y__ -> x__ {_DescriptorProto'extension = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField DescriptorProto "nestedType" [DescriptorProto] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'nestedType+ (\ x__ y__ -> x__ {_DescriptorProto'nestedType = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField DescriptorProto "vec'nestedType" (Data.Vector.Vector DescriptorProto) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'nestedType+ (\ x__ y__ -> x__ {_DescriptorProto'nestedType = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField DescriptorProto "enumType" [EnumDescriptorProto] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'enumType+ (\ x__ y__ -> x__ {_DescriptorProto'enumType = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField DescriptorProto "vec'enumType" (Data.Vector.Vector EnumDescriptorProto) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'enumType+ (\ x__ y__ -> x__ {_DescriptorProto'enumType = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField DescriptorProto "extensionRange" [DescriptorProto'ExtensionRange] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'extensionRange+ (\ x__ y__ -> x__ {_DescriptorProto'extensionRange = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField DescriptorProto "vec'extensionRange" (Data.Vector.Vector DescriptorProto'ExtensionRange) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'extensionRange+ (\ x__ y__ -> x__ {_DescriptorProto'extensionRange = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField DescriptorProto "oneofDecl" [OneofDescriptorProto] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'oneofDecl+ (\ x__ y__ -> x__ {_DescriptorProto'oneofDecl = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField DescriptorProto "vec'oneofDecl" (Data.Vector.Vector OneofDescriptorProto) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'oneofDecl+ (\ x__ y__ -> x__ {_DescriptorProto'oneofDecl = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField DescriptorProto "options" MessageOptions where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'options+ (\ x__ y__ -> x__ {_DescriptorProto'options = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField DescriptorProto "maybe'options" (Prelude.Maybe MessageOptions) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'options+ (\ x__ y__ -> x__ {_DescriptorProto'options = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField DescriptorProto "reservedRange" [DescriptorProto'ReservedRange] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'reservedRange+ (\ x__ y__ -> x__ {_DescriptorProto'reservedRange = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField DescriptorProto "vec'reservedRange" (Data.Vector.Vector DescriptorProto'ReservedRange) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'reservedRange+ (\ x__ y__ -> x__ {_DescriptorProto'reservedRange = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField DescriptorProto "reservedName" [Data.Text.Text] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'reservedName+ (\ x__ y__ -> x__ {_DescriptorProto'reservedName = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField DescriptorProto "vec'reservedName" (Data.Vector.Vector Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'reservedName+ (\ x__ y__ -> x__ {_DescriptorProto'reservedName = y__}))+ Prelude.id+instance Data.ProtoLens.Message DescriptorProto where+ messageName _ = Data.Text.pack "google.protobuf.DescriptorProto"+ fieldsByTag+ = let+ name__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "name"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'name")) ::+ Data.ProtoLens.FieldDescriptor DescriptorProto+ field__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "field"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor FieldDescriptorProto)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"field")) ::+ Data.ProtoLens.FieldDescriptor DescriptorProto+ extension__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "extension"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor FieldDescriptorProto)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"extension")) ::+ Data.ProtoLens.FieldDescriptor DescriptorProto+ nestedType__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "nested_type"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor DescriptorProto)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"nestedType")) ::+ Data.ProtoLens.FieldDescriptor DescriptorProto+ enumType__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "enum_type"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor EnumDescriptorProto)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"enumType")) ::+ Data.ProtoLens.FieldDescriptor DescriptorProto+ extensionRange__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "extension_range"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor DescriptorProto'ExtensionRange)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"extensionRange")) ::+ Data.ProtoLens.FieldDescriptor DescriptorProto+ oneofDecl__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "oneof_decl"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor OneofDescriptorProto)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"oneofDecl")) ::+ Data.ProtoLens.FieldDescriptor DescriptorProto+ options__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "options"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor MessageOptions)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'options")) ::+ Data.ProtoLens.FieldDescriptor DescriptorProto+ reservedRange__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "reserved_range"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor DescriptorProto'ReservedRange)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"reservedRange")) ::+ Data.ProtoLens.FieldDescriptor DescriptorProto+ reservedName__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "reserved_name"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"reservedName")) ::+ Data.ProtoLens.FieldDescriptor DescriptorProto+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 1, name__field_descriptor),+ (Data.ProtoLens.Tag 2, field__field_descriptor),+ (Data.ProtoLens.Tag 6, extension__field_descriptor),+ (Data.ProtoLens.Tag 3, nestedType__field_descriptor),+ (Data.ProtoLens.Tag 4, enumType__field_descriptor),+ (Data.ProtoLens.Tag 5, extensionRange__field_descriptor),+ (Data.ProtoLens.Tag 8, oneofDecl__field_descriptor),+ (Data.ProtoLens.Tag 7, options__field_descriptor),+ (Data.ProtoLens.Tag 9, reservedRange__field_descriptor),+ (Data.ProtoLens.Tag 10, reservedName__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _DescriptorProto'_unknownFields+ (\ x__ y__ -> x__ {_DescriptorProto'_unknownFields = y__})+ defMessage+ = DescriptorProto'_constructor+ {_DescriptorProto'name = Prelude.Nothing,+ _DescriptorProto'field = Data.Vector.Generic.empty,+ _DescriptorProto'extension = Data.Vector.Generic.empty,+ _DescriptorProto'nestedType = Data.Vector.Generic.empty,+ _DescriptorProto'enumType = Data.Vector.Generic.empty,+ _DescriptorProto'extensionRange = Data.Vector.Generic.empty,+ _DescriptorProto'oneofDecl = Data.Vector.Generic.empty,+ _DescriptorProto'options = Prelude.Nothing,+ _DescriptorProto'reservedRange = Data.Vector.Generic.empty,+ _DescriptorProto'reservedName = Data.Vector.Generic.empty,+ _DescriptorProto'_unknownFields = []}+ parseMessage+ = let+ loop ::+ DescriptorProto+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld EnumDescriptorProto+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld FieldDescriptorProto+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld DescriptorProto'ExtensionRange+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld FieldDescriptorProto+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld DescriptorProto+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld OneofDescriptorProto+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Text.Text+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld DescriptorProto'ReservedRange+ -> Data.ProtoLens.Encoding.Bytes.Parser DescriptorProto+ loop+ x+ mutable'enumType+ mutable'extension+ mutable'extensionRange+ mutable'field+ mutable'nestedType+ mutable'oneofDecl+ mutable'reservedName+ mutable'reservedRange+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do frozen'enumType <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'enumType)+ frozen'extension <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'extension)+ frozen'extensionRange <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'extensionRange)+ frozen'field <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'field)+ frozen'nestedType <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'nestedType)+ frozen'oneofDecl <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'oneofDecl)+ frozen'reservedName <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'reservedName)+ frozen'reservedRange <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'reservedRange)+ (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields+ (\ !t -> Prelude.reverse t)+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'enumType")+ frozen'enumType+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'extension")+ frozen'extension+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'extensionRange")+ frozen'extensionRange+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'field")+ frozen'field+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'nestedType")+ frozen'nestedType+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'oneofDecl")+ frozen'oneofDecl+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'reservedName")+ frozen'reservedName+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'reservedRange")+ frozen'reservedRange+ x)))))))))+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 10+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "name"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)+ mutable'enumType+ mutable'extension+ mutable'extensionRange+ mutable'field+ mutable'nestedType+ mutable'oneofDecl+ mutable'reservedName+ mutable'reservedRange+ 18+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "field"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append mutable'field y)+ loop+ x+ mutable'enumType+ mutable'extension+ mutable'extensionRange+ v+ mutable'nestedType+ mutable'oneofDecl+ mutable'reservedName+ mutable'reservedRange+ 50+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "extension"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append mutable'extension y)+ loop+ x+ mutable'enumType+ v+ mutable'extensionRange+ mutable'field+ mutable'nestedType+ mutable'oneofDecl+ mutable'reservedName+ mutable'reservedRange+ 26+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "nested_type"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append mutable'nestedType y)+ loop+ x+ mutable'enumType+ mutable'extension+ mutable'extensionRange+ mutable'field+ v+ mutable'oneofDecl+ mutable'reservedName+ mutable'reservedRange+ 34+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "enum_type"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append mutable'enumType y)+ loop+ x+ v+ mutable'extension+ mutable'extensionRange+ mutable'field+ mutable'nestedType+ mutable'oneofDecl+ mutable'reservedName+ mutable'reservedRange+ 42+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "extension_range"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append+ mutable'extensionRange y)+ loop+ x+ mutable'enumType+ mutable'extension+ v+ mutable'field+ mutable'nestedType+ mutable'oneofDecl+ mutable'reservedName+ mutable'reservedRange+ 66+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "oneof_decl"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append mutable'oneofDecl y)+ loop+ x+ mutable'enumType+ mutable'extension+ mutable'extensionRange+ mutable'field+ mutable'nestedType+ v+ mutable'reservedName+ mutable'reservedRange+ 58+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+ "options"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"options") y x)+ mutable'enumType+ mutable'extension+ mutable'extensionRange+ mutable'field+ mutable'nestedType+ mutable'oneofDecl+ mutable'reservedName+ mutable'reservedRange+ 74+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "reserved_range"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append+ mutable'reservedRange y)+ loop+ x+ mutable'enumType+ mutable'extension+ mutable'extensionRange+ mutable'field+ mutable'nestedType+ mutable'oneofDecl+ mutable'reservedName+ v+ 82+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "reserved_name"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append+ mutable'reservedName y)+ loop+ x+ mutable'enumType+ mutable'extension+ mutable'extensionRange+ mutable'field+ mutable'nestedType+ mutable'oneofDecl+ v+ mutable'reservedRange+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ mutable'enumType+ mutable'extension+ mutable'extensionRange+ mutable'field+ mutable'nestedType+ mutable'oneofDecl+ mutable'reservedName+ mutable'reservedRange+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do mutable'enumType <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ mutable'extension <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ mutable'extensionRange <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ mutable'field <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ mutable'nestedType <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ mutable'oneofDecl <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ mutable'reservedName <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ mutable'reservedRange <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ loop+ Data.ProtoLens.defMessage+ mutable'enumType+ mutable'extension+ mutable'extensionRange+ mutable'field+ mutable'nestedType+ mutable'oneofDecl+ mutable'reservedName+ mutable'reservedRange)+ "DescriptorProto"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'name") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'field") _x))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 50)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'extension") _x))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 26)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'nestedType") _x))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 34)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'enumType") _x))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 42)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'extensionRange") _x))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 66)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'oneofDecl") _x))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'options") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 58)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 74)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes+ bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'reservedRange") _x))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 82)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes+ bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'reservedName") _x))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view+ Data.ProtoLens.unknownFields _x)))))))))))+instance Control.DeepSeq.NFData DescriptorProto where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_DescriptorProto'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_DescriptorProto'name x__)+ (Control.DeepSeq.deepseq+ (_DescriptorProto'field x__)+ (Control.DeepSeq.deepseq+ (_DescriptorProto'extension x__)+ (Control.DeepSeq.deepseq+ (_DescriptorProto'nestedType x__)+ (Control.DeepSeq.deepseq+ (_DescriptorProto'enumType x__)+ (Control.DeepSeq.deepseq+ (_DescriptorProto'extensionRange x__)+ (Control.DeepSeq.deepseq+ (_DescriptorProto'oneofDecl x__)+ (Control.DeepSeq.deepseq+ (_DescriptorProto'options x__)+ (Control.DeepSeq.deepseq+ (_DescriptorProto'reservedRange x__)+ (Control.DeepSeq.deepseq+ (_DescriptorProto'reservedName x__) ()))))))))))+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.start' @:: Lens' DescriptorProto'ExtensionRange Data.Int.Int32@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'start' @:: Lens' DescriptorProto'ExtensionRange (Prelude.Maybe Data.Int.Int32)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.end' @:: Lens' DescriptorProto'ExtensionRange Data.Int.Int32@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'end' @:: Lens' DescriptorProto'ExtensionRange (Prelude.Maybe Data.Int.Int32)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.options' @:: Lens' DescriptorProto'ExtensionRange ExtensionRangeOptions@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'options' @:: Lens' DescriptorProto'ExtensionRange (Prelude.Maybe ExtensionRangeOptions)@ -}+data DescriptorProto'ExtensionRange+ = DescriptorProto'ExtensionRange'_constructor {_DescriptorProto'ExtensionRange'start :: !(Prelude.Maybe Data.Int.Int32),+ _DescriptorProto'ExtensionRange'end :: !(Prelude.Maybe Data.Int.Int32),+ _DescriptorProto'ExtensionRange'options :: !(Prelude.Maybe ExtensionRangeOptions),+ _DescriptorProto'ExtensionRange'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show DescriptorProto'ExtensionRange where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField DescriptorProto'ExtensionRange "start" Data.Int.Int32 where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'ExtensionRange'start+ (\ x__ y__ -> x__ {_DescriptorProto'ExtensionRange'start = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField DescriptorProto'ExtensionRange "maybe'start" (Prelude.Maybe Data.Int.Int32) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'ExtensionRange'start+ (\ x__ y__ -> x__ {_DescriptorProto'ExtensionRange'start = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField DescriptorProto'ExtensionRange "end" Data.Int.Int32 where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'ExtensionRange'end+ (\ x__ y__ -> x__ {_DescriptorProto'ExtensionRange'end = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField DescriptorProto'ExtensionRange "maybe'end" (Prelude.Maybe Data.Int.Int32) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'ExtensionRange'end+ (\ x__ y__ -> x__ {_DescriptorProto'ExtensionRange'end = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField DescriptorProto'ExtensionRange "options" ExtensionRangeOptions where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'ExtensionRange'options+ (\ x__ y__ -> x__ {_DescriptorProto'ExtensionRange'options = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField DescriptorProto'ExtensionRange "maybe'options" (Prelude.Maybe ExtensionRangeOptions) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'ExtensionRange'options+ (\ x__ y__ -> x__ {_DescriptorProto'ExtensionRange'options = y__}))+ Prelude.id+instance Data.ProtoLens.Message DescriptorProto'ExtensionRange where+ messageName _+ = Data.Text.pack "google.protobuf.DescriptorProto.ExtensionRange"+ fieldsByTag+ = let+ start__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "start"+ (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'start")) ::+ Data.ProtoLens.FieldDescriptor DescriptorProto'ExtensionRange+ end__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "end"+ (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'end")) ::+ Data.ProtoLens.FieldDescriptor DescriptorProto'ExtensionRange+ options__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "options"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor ExtensionRangeOptions)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'options")) ::+ Data.ProtoLens.FieldDescriptor DescriptorProto'ExtensionRange+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 1, start__field_descriptor),+ (Data.ProtoLens.Tag 2, end__field_descriptor),+ (Data.ProtoLens.Tag 3, options__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _DescriptorProto'ExtensionRange'_unknownFields+ (\ x__ y__+ -> x__ {_DescriptorProto'ExtensionRange'_unknownFields = y__})+ defMessage+ = DescriptorProto'ExtensionRange'_constructor+ {_DescriptorProto'ExtensionRange'start = Prelude.Nothing,+ _DescriptorProto'ExtensionRange'end = Prelude.Nothing,+ _DescriptorProto'ExtensionRange'options = Prelude.Nothing,+ _DescriptorProto'ExtensionRange'_unknownFields = []}+ parseMessage+ = let+ loop ::+ DescriptorProto'ExtensionRange+ -> Data.ProtoLens.Encoding.Bytes.Parser DescriptorProto'ExtensionRange+ loop x+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt)+ "start"+ loop (Lens.Family2.set (Data.ProtoLens.Field.field @"start") y x)+ 16+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt)+ "end"+ loop (Lens.Family2.set (Data.ProtoLens.Field.field @"end") y x)+ 26+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+ "options"+ loop (Lens.Family2.set (Data.ProtoLens.Field.field @"options") y x)+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do loop Data.ProtoLens.defMessage) "ExtensionRange"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'start") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 8)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'end") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 16)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'options") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 26)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x))))+instance Control.DeepSeq.NFData DescriptorProto'ExtensionRange where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_DescriptorProto'ExtensionRange'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_DescriptorProto'ExtensionRange'start x__)+ (Control.DeepSeq.deepseq+ (_DescriptorProto'ExtensionRange'end x__)+ (Control.DeepSeq.deepseq+ (_DescriptorProto'ExtensionRange'options x__) ())))+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.start' @:: Lens' DescriptorProto'ReservedRange Data.Int.Int32@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'start' @:: Lens' DescriptorProto'ReservedRange (Prelude.Maybe Data.Int.Int32)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.end' @:: Lens' DescriptorProto'ReservedRange Data.Int.Int32@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'end' @:: Lens' DescriptorProto'ReservedRange (Prelude.Maybe Data.Int.Int32)@ -}+data DescriptorProto'ReservedRange+ = DescriptorProto'ReservedRange'_constructor {_DescriptorProto'ReservedRange'start :: !(Prelude.Maybe Data.Int.Int32),+ _DescriptorProto'ReservedRange'end :: !(Prelude.Maybe Data.Int.Int32),+ _DescriptorProto'ReservedRange'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show DescriptorProto'ReservedRange where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField DescriptorProto'ReservedRange "start" Data.Int.Int32 where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'ReservedRange'start+ (\ x__ y__ -> x__ {_DescriptorProto'ReservedRange'start = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField DescriptorProto'ReservedRange "maybe'start" (Prelude.Maybe Data.Int.Int32) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'ReservedRange'start+ (\ x__ y__ -> x__ {_DescriptorProto'ReservedRange'start = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField DescriptorProto'ReservedRange "end" Data.Int.Int32 where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'ReservedRange'end+ (\ x__ y__ -> x__ {_DescriptorProto'ReservedRange'end = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField DescriptorProto'ReservedRange "maybe'end" (Prelude.Maybe Data.Int.Int32) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _DescriptorProto'ReservedRange'end+ (\ x__ y__ -> x__ {_DescriptorProto'ReservedRange'end = y__}))+ Prelude.id+instance Data.ProtoLens.Message DescriptorProto'ReservedRange where+ messageName _+ = Data.Text.pack "google.protobuf.DescriptorProto.ReservedRange"+ fieldsByTag+ = let+ start__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "start"+ (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'start")) ::+ Data.ProtoLens.FieldDescriptor DescriptorProto'ReservedRange+ end__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "end"+ (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'end")) ::+ Data.ProtoLens.FieldDescriptor DescriptorProto'ReservedRange+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 1, start__field_descriptor),+ (Data.ProtoLens.Tag 2, end__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _DescriptorProto'ReservedRange'_unknownFields+ (\ x__ y__+ -> x__ {_DescriptorProto'ReservedRange'_unknownFields = y__})+ defMessage+ = DescriptorProto'ReservedRange'_constructor+ {_DescriptorProto'ReservedRange'start = Prelude.Nothing,+ _DescriptorProto'ReservedRange'end = Prelude.Nothing,+ _DescriptorProto'ReservedRange'_unknownFields = []}+ parseMessage+ = let+ loop ::+ DescriptorProto'ReservedRange+ -> Data.ProtoLens.Encoding.Bytes.Parser DescriptorProto'ReservedRange+ loop x+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt)+ "start"+ loop (Lens.Family2.set (Data.ProtoLens.Field.field @"start") y x)+ 16+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt)+ "end"+ loop (Lens.Family2.set (Data.ProtoLens.Field.field @"end") y x)+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do loop Data.ProtoLens.defMessage) "ReservedRange"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'start") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 8)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'end") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 16)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x)))+instance Control.DeepSeq.NFData DescriptorProto'ReservedRange where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_DescriptorProto'ReservedRange'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_DescriptorProto'ReservedRange'start x__)+ (Control.DeepSeq.deepseq+ (_DescriptorProto'ReservedRange'end x__) ()))+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.name' @:: Lens' EnumDescriptorProto Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'name' @:: Lens' EnumDescriptorProto (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.value' @:: Lens' EnumDescriptorProto [EnumValueDescriptorProto]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'value' @:: Lens' EnumDescriptorProto (Data.Vector.Vector EnumValueDescriptorProto)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.options' @:: Lens' EnumDescriptorProto EnumOptions@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'options' @:: Lens' EnumDescriptorProto (Prelude.Maybe EnumOptions)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.reservedRange' @:: Lens' EnumDescriptorProto [EnumDescriptorProto'EnumReservedRange]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'reservedRange' @:: Lens' EnumDescriptorProto (Data.Vector.Vector EnumDescriptorProto'EnumReservedRange)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.reservedName' @:: Lens' EnumDescriptorProto [Data.Text.Text]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'reservedName' @:: Lens' EnumDescriptorProto (Data.Vector.Vector Data.Text.Text)@ -}+data EnumDescriptorProto+ = EnumDescriptorProto'_constructor {_EnumDescriptorProto'name :: !(Prelude.Maybe Data.Text.Text),+ _EnumDescriptorProto'value :: !(Data.Vector.Vector EnumValueDescriptorProto),+ _EnumDescriptorProto'options :: !(Prelude.Maybe EnumOptions),+ _EnumDescriptorProto'reservedRange :: !(Data.Vector.Vector EnumDescriptorProto'EnumReservedRange),+ _EnumDescriptorProto'reservedName :: !(Data.Vector.Vector Data.Text.Text),+ _EnumDescriptorProto'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show EnumDescriptorProto where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField EnumDescriptorProto "name" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumDescriptorProto'name+ (\ x__ y__ -> x__ {_EnumDescriptorProto'name = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField EnumDescriptorProto "maybe'name" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumDescriptorProto'name+ (\ x__ y__ -> x__ {_EnumDescriptorProto'name = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField EnumDescriptorProto "value" [EnumValueDescriptorProto] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumDescriptorProto'value+ (\ x__ y__ -> x__ {_EnumDescriptorProto'value = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField EnumDescriptorProto "vec'value" (Data.Vector.Vector EnumValueDescriptorProto) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumDescriptorProto'value+ (\ x__ y__ -> x__ {_EnumDescriptorProto'value = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField EnumDescriptorProto "options" EnumOptions where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumDescriptorProto'options+ (\ x__ y__ -> x__ {_EnumDescriptorProto'options = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField EnumDescriptorProto "maybe'options" (Prelude.Maybe EnumOptions) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumDescriptorProto'options+ (\ x__ y__ -> x__ {_EnumDescriptorProto'options = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField EnumDescriptorProto "reservedRange" [EnumDescriptorProto'EnumReservedRange] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumDescriptorProto'reservedRange+ (\ x__ y__ -> x__ {_EnumDescriptorProto'reservedRange = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField EnumDescriptorProto "vec'reservedRange" (Data.Vector.Vector EnumDescriptorProto'EnumReservedRange) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumDescriptorProto'reservedRange+ (\ x__ y__ -> x__ {_EnumDescriptorProto'reservedRange = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField EnumDescriptorProto "reservedName" [Data.Text.Text] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumDescriptorProto'reservedName+ (\ x__ y__ -> x__ {_EnumDescriptorProto'reservedName = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField EnumDescriptorProto "vec'reservedName" (Data.Vector.Vector Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumDescriptorProto'reservedName+ (\ x__ y__ -> x__ {_EnumDescriptorProto'reservedName = y__}))+ Prelude.id+instance Data.ProtoLens.Message EnumDescriptorProto where+ messageName _+ = Data.Text.pack "google.protobuf.EnumDescriptorProto"+ fieldsByTag+ = let+ name__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "name"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'name")) ::+ Data.ProtoLens.FieldDescriptor EnumDescriptorProto+ value__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "value"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor EnumValueDescriptorProto)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"value")) ::+ Data.ProtoLens.FieldDescriptor EnumDescriptorProto+ options__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "options"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor EnumOptions)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'options")) ::+ Data.ProtoLens.FieldDescriptor EnumDescriptorProto+ reservedRange__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "reserved_range"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor EnumDescriptorProto'EnumReservedRange)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"reservedRange")) ::+ Data.ProtoLens.FieldDescriptor EnumDescriptorProto+ reservedName__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "reserved_name"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"reservedName")) ::+ Data.ProtoLens.FieldDescriptor EnumDescriptorProto+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 1, name__field_descriptor),+ (Data.ProtoLens.Tag 2, value__field_descriptor),+ (Data.ProtoLens.Tag 3, options__field_descriptor),+ (Data.ProtoLens.Tag 4, reservedRange__field_descriptor),+ (Data.ProtoLens.Tag 5, reservedName__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _EnumDescriptorProto'_unknownFields+ (\ x__ y__ -> x__ {_EnumDescriptorProto'_unknownFields = y__})+ defMessage+ = EnumDescriptorProto'_constructor+ {_EnumDescriptorProto'name = Prelude.Nothing,+ _EnumDescriptorProto'value = Data.Vector.Generic.empty,+ _EnumDescriptorProto'options = Prelude.Nothing,+ _EnumDescriptorProto'reservedRange = Data.Vector.Generic.empty,+ _EnumDescriptorProto'reservedName = Data.Vector.Generic.empty,+ _EnumDescriptorProto'_unknownFields = []}+ parseMessage+ = let+ loop ::+ EnumDescriptorProto+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Text.Text+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld EnumDescriptorProto'EnumReservedRange+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld EnumValueDescriptorProto+ -> Data.ProtoLens.Encoding.Bytes.Parser EnumDescriptorProto+ loop x mutable'reservedName mutable'reservedRange mutable'value+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do frozen'reservedName <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'reservedName)+ frozen'reservedRange <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'reservedRange)+ frozen'value <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'value)+ (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields+ (\ !t -> Prelude.reverse t)+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'reservedName")+ frozen'reservedName+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'reservedRange")+ frozen'reservedRange+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'value") frozen'value x))))+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 10+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "name"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)+ mutable'reservedName+ mutable'reservedRange+ mutable'value+ 18+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "value"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append mutable'value y)+ loop x mutable'reservedName mutable'reservedRange v+ 26+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+ "options"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"options") y x)+ mutable'reservedName+ mutable'reservedRange+ mutable'value+ 34+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "reserved_range"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append+ mutable'reservedRange y)+ loop x mutable'reservedName v mutable'value+ 42+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "reserved_name"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append+ mutable'reservedName y)+ loop x v mutable'reservedRange mutable'value+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ mutable'reservedName+ mutable'reservedRange+ mutable'value+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do mutable'reservedName <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ mutable'reservedRange <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ mutable'value <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ loop+ Data.ProtoLens.defMessage+ mutable'reservedName+ mutable'reservedRange+ mutable'value)+ "EnumDescriptorProto"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'name") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'value") _x))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'options") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 26)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 34)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'reservedRange") _x))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 42)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'reservedName") _x))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))+instance Control.DeepSeq.NFData EnumDescriptorProto where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_EnumDescriptorProto'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_EnumDescriptorProto'name x__)+ (Control.DeepSeq.deepseq+ (_EnumDescriptorProto'value x__)+ (Control.DeepSeq.deepseq+ (_EnumDescriptorProto'options x__)+ (Control.DeepSeq.deepseq+ (_EnumDescriptorProto'reservedRange x__)+ (Control.DeepSeq.deepseq+ (_EnumDescriptorProto'reservedName x__) ())))))+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.start' @:: Lens' EnumDescriptorProto'EnumReservedRange Data.Int.Int32@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'start' @:: Lens' EnumDescriptorProto'EnumReservedRange (Prelude.Maybe Data.Int.Int32)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.end' @:: Lens' EnumDescriptorProto'EnumReservedRange Data.Int.Int32@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'end' @:: Lens' EnumDescriptorProto'EnumReservedRange (Prelude.Maybe Data.Int.Int32)@ -}+data EnumDescriptorProto'EnumReservedRange+ = EnumDescriptorProto'EnumReservedRange'_constructor {_EnumDescriptorProto'EnumReservedRange'start :: !(Prelude.Maybe Data.Int.Int32),+ _EnumDescriptorProto'EnumReservedRange'end :: !(Prelude.Maybe Data.Int.Int32),+ _EnumDescriptorProto'EnumReservedRange'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show EnumDescriptorProto'EnumReservedRange where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField EnumDescriptorProto'EnumReservedRange "start" Data.Int.Int32 where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumDescriptorProto'EnumReservedRange'start+ (\ x__ y__+ -> x__ {_EnumDescriptorProto'EnumReservedRange'start = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField EnumDescriptorProto'EnumReservedRange "maybe'start" (Prelude.Maybe Data.Int.Int32) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumDescriptorProto'EnumReservedRange'start+ (\ x__ y__+ -> x__ {_EnumDescriptorProto'EnumReservedRange'start = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField EnumDescriptorProto'EnumReservedRange "end" Data.Int.Int32 where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumDescriptorProto'EnumReservedRange'end+ (\ x__ y__+ -> x__ {_EnumDescriptorProto'EnumReservedRange'end = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField EnumDescriptorProto'EnumReservedRange "maybe'end" (Prelude.Maybe Data.Int.Int32) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumDescriptorProto'EnumReservedRange'end+ (\ x__ y__+ -> x__ {_EnumDescriptorProto'EnumReservedRange'end = y__}))+ Prelude.id+instance Data.ProtoLens.Message EnumDescriptorProto'EnumReservedRange where+ messageName _+ = Data.Text.pack+ "google.protobuf.EnumDescriptorProto.EnumReservedRange"+ fieldsByTag+ = let+ start__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "start"+ (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'start")) ::+ Data.ProtoLens.FieldDescriptor EnumDescriptorProto'EnumReservedRange+ end__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "end"+ (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'end")) ::+ Data.ProtoLens.FieldDescriptor EnumDescriptorProto'EnumReservedRange+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 1, start__field_descriptor),+ (Data.ProtoLens.Tag 2, end__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _EnumDescriptorProto'EnumReservedRange'_unknownFields+ (\ x__ y__+ -> x__+ {_EnumDescriptorProto'EnumReservedRange'_unknownFields = y__})+ defMessage+ = EnumDescriptorProto'EnumReservedRange'_constructor+ {_EnumDescriptorProto'EnumReservedRange'start = Prelude.Nothing,+ _EnumDescriptorProto'EnumReservedRange'end = Prelude.Nothing,+ _EnumDescriptorProto'EnumReservedRange'_unknownFields = []}+ parseMessage+ = let+ loop ::+ EnumDescriptorProto'EnumReservedRange+ -> Data.ProtoLens.Encoding.Bytes.Parser EnumDescriptorProto'EnumReservedRange+ loop x+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt)+ "start"+ loop (Lens.Family2.set (Data.ProtoLens.Field.field @"start") y x)+ 16+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt)+ "end"+ loop (Lens.Family2.set (Data.ProtoLens.Field.field @"end") y x)+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do loop Data.ProtoLens.defMessage) "EnumReservedRange"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'start") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 8)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'end") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 16)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x)))+instance Control.DeepSeq.NFData EnumDescriptorProto'EnumReservedRange where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_EnumDescriptorProto'EnumReservedRange'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_EnumDescriptorProto'EnumReservedRange'start x__)+ (Control.DeepSeq.deepseq+ (_EnumDescriptorProto'EnumReservedRange'end x__) ()))+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.allowAlias' @:: Lens' EnumOptions Prelude.Bool@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'allowAlias' @:: Lens' EnumOptions (Prelude.Maybe Prelude.Bool)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.deprecated' @:: Lens' EnumOptions Prelude.Bool@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'deprecated' @:: Lens' EnumOptions (Prelude.Maybe Prelude.Bool)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.uninterpretedOption' @:: Lens' EnumOptions [UninterpretedOption]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'uninterpretedOption' @:: Lens' EnumOptions (Data.Vector.Vector UninterpretedOption)@ -}+data EnumOptions+ = EnumOptions'_constructor {_EnumOptions'allowAlias :: !(Prelude.Maybe Prelude.Bool),+ _EnumOptions'deprecated :: !(Prelude.Maybe Prelude.Bool),+ _EnumOptions'uninterpretedOption :: !(Data.Vector.Vector UninterpretedOption),+ _EnumOptions'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show EnumOptions where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField EnumOptions "allowAlias" Prelude.Bool where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumOptions'allowAlias+ (\ x__ y__ -> x__ {_EnumOptions'allowAlias = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField EnumOptions "maybe'allowAlias" (Prelude.Maybe Prelude.Bool) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumOptions'allowAlias+ (\ x__ y__ -> x__ {_EnumOptions'allowAlias = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField EnumOptions "deprecated" Prelude.Bool where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumOptions'deprecated+ (\ x__ y__ -> x__ {_EnumOptions'deprecated = y__}))+ (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField EnumOptions "maybe'deprecated" (Prelude.Maybe Prelude.Bool) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumOptions'deprecated+ (\ x__ y__ -> x__ {_EnumOptions'deprecated = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField EnumOptions "uninterpretedOption" [UninterpretedOption] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumOptions'uninterpretedOption+ (\ x__ y__ -> x__ {_EnumOptions'uninterpretedOption = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField EnumOptions "vec'uninterpretedOption" (Data.Vector.Vector UninterpretedOption) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumOptions'uninterpretedOption+ (\ x__ y__ -> x__ {_EnumOptions'uninterpretedOption = y__}))+ Prelude.id+instance Data.ProtoLens.Message EnumOptions where+ messageName _ = Data.Text.pack "google.protobuf.EnumOptions"+ fieldsByTag+ = let+ allowAlias__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "allow_alias"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'allowAlias")) ::+ Data.ProtoLens.FieldDescriptor EnumOptions+ deprecated__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "deprecated"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'deprecated")) ::+ Data.ProtoLens.FieldDescriptor EnumOptions+ uninterpretedOption__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "uninterpreted_option"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor UninterpretedOption)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"uninterpretedOption")) ::+ Data.ProtoLens.FieldDescriptor EnumOptions+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 2, allowAlias__field_descriptor),+ (Data.ProtoLens.Tag 3, deprecated__field_descriptor),+ (Data.ProtoLens.Tag 999, uninterpretedOption__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _EnumOptions'_unknownFields+ (\ x__ y__ -> x__ {_EnumOptions'_unknownFields = y__})+ defMessage+ = EnumOptions'_constructor+ {_EnumOptions'allowAlias = Prelude.Nothing,+ _EnumOptions'deprecated = Prelude.Nothing,+ _EnumOptions'uninterpretedOption = Data.Vector.Generic.empty,+ _EnumOptions'_unknownFields = []}+ parseMessage+ = let+ loop ::+ EnumOptions+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld UninterpretedOption+ -> Data.ProtoLens.Encoding.Bytes.Parser EnumOptions+ loop x mutable'uninterpretedOption+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do frozen'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'uninterpretedOption)+ (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields+ (\ !t -> Prelude.reverse t)+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'uninterpretedOption")+ frozen'uninterpretedOption+ x))+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 16+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+ "allow_alias"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"allowAlias") y x)+ mutable'uninterpretedOption+ 24+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+ "deprecated"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"deprecated") y x)+ mutable'uninterpretedOption+ 7994+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "uninterpreted_option"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append+ mutable'uninterpretedOption y)+ loop x v+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ mutable'uninterpretedOption+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do mutable'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ loop Data.ProtoLens.defMessage mutable'uninterpretedOption)+ "EnumOptions"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'allowAlias") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 16)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ (\ b -> if b then 1 else 0)+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'deprecated") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 24)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ (\ b -> if b then 1 else 0)+ _v))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 7994)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'uninterpretedOption") _x))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x))))+instance Control.DeepSeq.NFData EnumOptions where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_EnumOptions'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_EnumOptions'allowAlias x__)+ (Control.DeepSeq.deepseq+ (_EnumOptions'deprecated x__)+ (Control.DeepSeq.deepseq+ (_EnumOptions'uninterpretedOption x__) ())))+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.name' @:: Lens' EnumValueDescriptorProto Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'name' @:: Lens' EnumValueDescriptorProto (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.number' @:: Lens' EnumValueDescriptorProto Data.Int.Int32@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'number' @:: Lens' EnumValueDescriptorProto (Prelude.Maybe Data.Int.Int32)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.options' @:: Lens' EnumValueDescriptorProto EnumValueOptions@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'options' @:: Lens' EnumValueDescriptorProto (Prelude.Maybe EnumValueOptions)@ -}+data EnumValueDescriptorProto+ = EnumValueDescriptorProto'_constructor {_EnumValueDescriptorProto'name :: !(Prelude.Maybe Data.Text.Text),+ _EnumValueDescriptorProto'number :: !(Prelude.Maybe Data.Int.Int32),+ _EnumValueDescriptorProto'options :: !(Prelude.Maybe EnumValueOptions),+ _EnumValueDescriptorProto'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show EnumValueDescriptorProto where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField EnumValueDescriptorProto "name" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumValueDescriptorProto'name+ (\ x__ y__ -> x__ {_EnumValueDescriptorProto'name = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField EnumValueDescriptorProto "maybe'name" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumValueDescriptorProto'name+ (\ x__ y__ -> x__ {_EnumValueDescriptorProto'name = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField EnumValueDescriptorProto "number" Data.Int.Int32 where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumValueDescriptorProto'number+ (\ x__ y__ -> x__ {_EnumValueDescriptorProto'number = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField EnumValueDescriptorProto "maybe'number" (Prelude.Maybe Data.Int.Int32) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumValueDescriptorProto'number+ (\ x__ y__ -> x__ {_EnumValueDescriptorProto'number = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField EnumValueDescriptorProto "options" EnumValueOptions where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumValueDescriptorProto'options+ (\ x__ y__ -> x__ {_EnumValueDescriptorProto'options = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField EnumValueDescriptorProto "maybe'options" (Prelude.Maybe EnumValueOptions) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumValueDescriptorProto'options+ (\ x__ y__ -> x__ {_EnumValueDescriptorProto'options = y__}))+ Prelude.id+instance Data.ProtoLens.Message EnumValueDescriptorProto where+ messageName _+ = Data.Text.pack "google.protobuf.EnumValueDescriptorProto"+ fieldsByTag+ = let+ name__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "name"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'name")) ::+ Data.ProtoLens.FieldDescriptor EnumValueDescriptorProto+ number__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "number"+ (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'number")) ::+ Data.ProtoLens.FieldDescriptor EnumValueDescriptorProto+ options__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "options"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor EnumValueOptions)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'options")) ::+ Data.ProtoLens.FieldDescriptor EnumValueDescriptorProto+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 1, name__field_descriptor),+ (Data.ProtoLens.Tag 2, number__field_descriptor),+ (Data.ProtoLens.Tag 3, options__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _EnumValueDescriptorProto'_unknownFields+ (\ x__ y__ -> x__ {_EnumValueDescriptorProto'_unknownFields = y__})+ defMessage+ = EnumValueDescriptorProto'_constructor+ {_EnumValueDescriptorProto'name = Prelude.Nothing,+ _EnumValueDescriptorProto'number = Prelude.Nothing,+ _EnumValueDescriptorProto'options = Prelude.Nothing,+ _EnumValueDescriptorProto'_unknownFields = []}+ parseMessage+ = let+ loop ::+ EnumValueDescriptorProto+ -> Data.ProtoLens.Encoding.Bytes.Parser EnumValueDescriptorProto+ loop x+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 10+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "name"+ loop (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)+ 16+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt)+ "number"+ loop (Lens.Family2.set (Data.ProtoLens.Field.field @"number") y x)+ 26+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+ "options"+ loop (Lens.Family2.set (Data.ProtoLens.Field.field @"options") y x)+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do loop Data.ProtoLens.defMessage) "EnumValueDescriptorProto"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'name") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'number") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 16)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'options") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 26)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x))))+instance Control.DeepSeq.NFData EnumValueDescriptorProto where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_EnumValueDescriptorProto'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_EnumValueDescriptorProto'name x__)+ (Control.DeepSeq.deepseq+ (_EnumValueDescriptorProto'number x__)+ (Control.DeepSeq.deepseq+ (_EnumValueDescriptorProto'options x__) ())))+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.deprecated' @:: Lens' EnumValueOptions Prelude.Bool@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'deprecated' @:: Lens' EnumValueOptions (Prelude.Maybe Prelude.Bool)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.uninterpretedOption' @:: Lens' EnumValueOptions [UninterpretedOption]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'uninterpretedOption' @:: Lens' EnumValueOptions (Data.Vector.Vector UninterpretedOption)@ -}+data EnumValueOptions+ = EnumValueOptions'_constructor {_EnumValueOptions'deprecated :: !(Prelude.Maybe Prelude.Bool),+ _EnumValueOptions'uninterpretedOption :: !(Data.Vector.Vector UninterpretedOption),+ _EnumValueOptions'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show EnumValueOptions where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField EnumValueOptions "deprecated" Prelude.Bool where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumValueOptions'deprecated+ (\ x__ y__ -> x__ {_EnumValueOptions'deprecated = y__}))+ (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField EnumValueOptions "maybe'deprecated" (Prelude.Maybe Prelude.Bool) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumValueOptions'deprecated+ (\ x__ y__ -> x__ {_EnumValueOptions'deprecated = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField EnumValueOptions "uninterpretedOption" [UninterpretedOption] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumValueOptions'uninterpretedOption+ (\ x__ y__ -> x__ {_EnumValueOptions'uninterpretedOption = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField EnumValueOptions "vec'uninterpretedOption" (Data.Vector.Vector UninterpretedOption) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _EnumValueOptions'uninterpretedOption+ (\ x__ y__ -> x__ {_EnumValueOptions'uninterpretedOption = y__}))+ Prelude.id+instance Data.ProtoLens.Message EnumValueOptions where+ messageName _ = Data.Text.pack "google.protobuf.EnumValueOptions"+ fieldsByTag+ = let+ deprecated__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "deprecated"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'deprecated")) ::+ Data.ProtoLens.FieldDescriptor EnumValueOptions+ uninterpretedOption__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "uninterpreted_option"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor UninterpretedOption)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"uninterpretedOption")) ::+ Data.ProtoLens.FieldDescriptor EnumValueOptions+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 1, deprecated__field_descriptor),+ (Data.ProtoLens.Tag 999, uninterpretedOption__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _EnumValueOptions'_unknownFields+ (\ x__ y__ -> x__ {_EnumValueOptions'_unknownFields = y__})+ defMessage+ = EnumValueOptions'_constructor+ {_EnumValueOptions'deprecated = Prelude.Nothing,+ _EnumValueOptions'uninterpretedOption = Data.Vector.Generic.empty,+ _EnumValueOptions'_unknownFields = []}+ parseMessage+ = let+ loop ::+ EnumValueOptions+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld UninterpretedOption+ -> Data.ProtoLens.Encoding.Bytes.Parser EnumValueOptions+ loop x mutable'uninterpretedOption+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do frozen'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'uninterpretedOption)+ (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields+ (\ !t -> Prelude.reverse t)+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'uninterpretedOption")+ frozen'uninterpretedOption+ x))+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+ "deprecated"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"deprecated") y x)+ mutable'uninterpretedOption+ 7994+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "uninterpreted_option"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append+ mutable'uninterpretedOption y)+ loop x v+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ mutable'uninterpretedOption+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do mutable'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ loop Data.ProtoLens.defMessage mutable'uninterpretedOption)+ "EnumValueOptions"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'deprecated") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 8)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ (\ b -> if b then 1 else 0)+ _v))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 7994)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'uninterpretedOption") _x))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x)))+instance Control.DeepSeq.NFData EnumValueOptions where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_EnumValueOptions'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_EnumValueOptions'deprecated x__)+ (Control.DeepSeq.deepseq+ (_EnumValueOptions'uninterpretedOption x__) ()))+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.uninterpretedOption' @:: Lens' ExtensionRangeOptions [UninterpretedOption]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'uninterpretedOption' @:: Lens' ExtensionRangeOptions (Data.Vector.Vector UninterpretedOption)@ -}+data ExtensionRangeOptions+ = ExtensionRangeOptions'_constructor {_ExtensionRangeOptions'uninterpretedOption :: !(Data.Vector.Vector UninterpretedOption),+ _ExtensionRangeOptions'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show ExtensionRangeOptions where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField ExtensionRangeOptions "uninterpretedOption" [UninterpretedOption] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _ExtensionRangeOptions'uninterpretedOption+ (\ x__ y__+ -> x__ {_ExtensionRangeOptions'uninterpretedOption = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField ExtensionRangeOptions "vec'uninterpretedOption" (Data.Vector.Vector UninterpretedOption) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _ExtensionRangeOptions'uninterpretedOption+ (\ x__ y__+ -> x__ {_ExtensionRangeOptions'uninterpretedOption = y__}))+ Prelude.id+instance Data.ProtoLens.Message ExtensionRangeOptions where+ messageName _+ = Data.Text.pack "google.protobuf.ExtensionRangeOptions"+ fieldsByTag+ = let+ uninterpretedOption__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "uninterpreted_option"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor UninterpretedOption)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"uninterpretedOption")) ::+ Data.ProtoLens.FieldDescriptor ExtensionRangeOptions+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 999, uninterpretedOption__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _ExtensionRangeOptions'_unknownFields+ (\ x__ y__ -> x__ {_ExtensionRangeOptions'_unknownFields = y__})+ defMessage+ = ExtensionRangeOptions'_constructor+ {_ExtensionRangeOptions'uninterpretedOption = Data.Vector.Generic.empty,+ _ExtensionRangeOptions'_unknownFields = []}+ parseMessage+ = let+ loop ::+ ExtensionRangeOptions+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld UninterpretedOption+ -> Data.ProtoLens.Encoding.Bytes.Parser ExtensionRangeOptions+ loop x mutable'uninterpretedOption+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do frozen'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'uninterpretedOption)+ (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields+ (\ !t -> Prelude.reverse t)+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'uninterpretedOption")+ frozen'uninterpretedOption+ x))+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 7994+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "uninterpreted_option"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append+ mutable'uninterpretedOption y)+ loop x v+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ mutable'uninterpretedOption+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do mutable'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ loop Data.ProtoLens.defMessage mutable'uninterpretedOption)+ "ExtensionRangeOptions"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 7994)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'uninterpretedOption") _x))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x))+instance Control.DeepSeq.NFData ExtensionRangeOptions where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_ExtensionRangeOptions'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_ExtensionRangeOptions'uninterpretedOption x__) ())+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.name' @:: Lens' FieldDescriptorProto Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'name' @:: Lens' FieldDescriptorProto (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.number' @:: Lens' FieldDescriptorProto Data.Int.Int32@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'number' @:: Lens' FieldDescriptorProto (Prelude.Maybe Data.Int.Int32)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.label' @:: Lens' FieldDescriptorProto FieldDescriptorProto'Label@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'label' @:: Lens' FieldDescriptorProto (Prelude.Maybe FieldDescriptorProto'Label)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.type'' @:: Lens' FieldDescriptorProto FieldDescriptorProto'Type@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'type'' @:: Lens' FieldDescriptorProto (Prelude.Maybe FieldDescriptorProto'Type)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.typeName' @:: Lens' FieldDescriptorProto Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'typeName' @:: Lens' FieldDescriptorProto (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.extendee' @:: Lens' FieldDescriptorProto Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'extendee' @:: Lens' FieldDescriptorProto (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.defaultValue' @:: Lens' FieldDescriptorProto Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'defaultValue' @:: Lens' FieldDescriptorProto (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.oneofIndex' @:: Lens' FieldDescriptorProto Data.Int.Int32@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'oneofIndex' @:: Lens' FieldDescriptorProto (Prelude.Maybe Data.Int.Int32)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.jsonName' @:: Lens' FieldDescriptorProto Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'jsonName' @:: Lens' FieldDescriptorProto (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.options' @:: Lens' FieldDescriptorProto FieldOptions@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'options' @:: Lens' FieldDescriptorProto (Prelude.Maybe FieldOptions)@ -}+data FieldDescriptorProto+ = FieldDescriptorProto'_constructor {_FieldDescriptorProto'name :: !(Prelude.Maybe Data.Text.Text),+ _FieldDescriptorProto'number :: !(Prelude.Maybe Data.Int.Int32),+ _FieldDescriptorProto'label :: !(Prelude.Maybe FieldDescriptorProto'Label),+ _FieldDescriptorProto'type' :: !(Prelude.Maybe FieldDescriptorProto'Type),+ _FieldDescriptorProto'typeName :: !(Prelude.Maybe Data.Text.Text),+ _FieldDescriptorProto'extendee :: !(Prelude.Maybe Data.Text.Text),+ _FieldDescriptorProto'defaultValue :: !(Prelude.Maybe Data.Text.Text),+ _FieldDescriptorProto'oneofIndex :: !(Prelude.Maybe Data.Int.Int32),+ _FieldDescriptorProto'jsonName :: !(Prelude.Maybe Data.Text.Text),+ _FieldDescriptorProto'options :: !(Prelude.Maybe FieldOptions),+ _FieldDescriptorProto'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show FieldDescriptorProto where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "name" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldDescriptorProto'name+ (\ x__ y__ -> x__ {_FieldDescriptorProto'name = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "maybe'name" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldDescriptorProto'name+ (\ x__ y__ -> x__ {_FieldDescriptorProto'name = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "number" Data.Int.Int32 where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldDescriptorProto'number+ (\ x__ y__ -> x__ {_FieldDescriptorProto'number = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "maybe'number" (Prelude.Maybe Data.Int.Int32) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldDescriptorProto'number+ (\ x__ y__ -> x__ {_FieldDescriptorProto'number = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "label" FieldDescriptorProto'Label where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldDescriptorProto'label+ (\ x__ y__ -> x__ {_FieldDescriptorProto'label = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "maybe'label" (Prelude.Maybe FieldDescriptorProto'Label) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldDescriptorProto'label+ (\ x__ y__ -> x__ {_FieldDescriptorProto'label = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "type'" FieldDescriptorProto'Type where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldDescriptorProto'type'+ (\ x__ y__ -> x__ {_FieldDescriptorProto'type' = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "maybe'type'" (Prelude.Maybe FieldDescriptorProto'Type) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldDescriptorProto'type'+ (\ x__ y__ -> x__ {_FieldDescriptorProto'type' = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "typeName" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldDescriptorProto'typeName+ (\ x__ y__ -> x__ {_FieldDescriptorProto'typeName = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "maybe'typeName" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldDescriptorProto'typeName+ (\ x__ y__ -> x__ {_FieldDescriptorProto'typeName = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "extendee" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldDescriptorProto'extendee+ (\ x__ y__ -> x__ {_FieldDescriptorProto'extendee = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "maybe'extendee" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldDescriptorProto'extendee+ (\ x__ y__ -> x__ {_FieldDescriptorProto'extendee = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "defaultValue" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldDescriptorProto'defaultValue+ (\ x__ y__ -> x__ {_FieldDescriptorProto'defaultValue = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "maybe'defaultValue" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldDescriptorProto'defaultValue+ (\ x__ y__ -> x__ {_FieldDescriptorProto'defaultValue = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "oneofIndex" Data.Int.Int32 where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldDescriptorProto'oneofIndex+ (\ x__ y__ -> x__ {_FieldDescriptorProto'oneofIndex = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "maybe'oneofIndex" (Prelude.Maybe Data.Int.Int32) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldDescriptorProto'oneofIndex+ (\ x__ y__ -> x__ {_FieldDescriptorProto'oneofIndex = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "jsonName" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldDescriptorProto'jsonName+ (\ x__ y__ -> x__ {_FieldDescriptorProto'jsonName = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "maybe'jsonName" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldDescriptorProto'jsonName+ (\ x__ y__ -> x__ {_FieldDescriptorProto'jsonName = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "options" FieldOptions where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldDescriptorProto'options+ (\ x__ y__ -> x__ {_FieldDescriptorProto'options = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField FieldDescriptorProto "maybe'options" (Prelude.Maybe FieldOptions) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldDescriptorProto'options+ (\ x__ y__ -> x__ {_FieldDescriptorProto'options = y__}))+ Prelude.id+instance Data.ProtoLens.Message FieldDescriptorProto where+ messageName _+ = Data.Text.pack "google.protobuf.FieldDescriptorProto"+ fieldsByTag+ = let+ name__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "name"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'name")) ::+ Data.ProtoLens.FieldDescriptor FieldDescriptorProto+ number__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "number"+ (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'number")) ::+ Data.ProtoLens.FieldDescriptor FieldDescriptorProto+ label__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "label"+ (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+ Data.ProtoLens.FieldTypeDescriptor FieldDescriptorProto'Label)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'label")) ::+ Data.ProtoLens.FieldDescriptor FieldDescriptorProto+ type'__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "type"+ (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+ Data.ProtoLens.FieldTypeDescriptor FieldDescriptorProto'Type)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'type'")) ::+ Data.ProtoLens.FieldDescriptor FieldDescriptorProto+ typeName__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "type_name"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'typeName")) ::+ Data.ProtoLens.FieldDescriptor FieldDescriptorProto+ extendee__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "extendee"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'extendee")) ::+ Data.ProtoLens.FieldDescriptor FieldDescriptorProto+ defaultValue__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "default_value"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'defaultValue")) ::+ Data.ProtoLens.FieldDescriptor FieldDescriptorProto+ oneofIndex__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "oneof_index"+ (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'oneofIndex")) ::+ Data.ProtoLens.FieldDescriptor FieldDescriptorProto+ jsonName__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "json_name"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'jsonName")) ::+ Data.ProtoLens.FieldDescriptor FieldDescriptorProto+ options__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "options"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor FieldOptions)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'options")) ::+ Data.ProtoLens.FieldDescriptor FieldDescriptorProto+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 1, name__field_descriptor),+ (Data.ProtoLens.Tag 3, number__field_descriptor),+ (Data.ProtoLens.Tag 4, label__field_descriptor),+ (Data.ProtoLens.Tag 5, type'__field_descriptor),+ (Data.ProtoLens.Tag 6, typeName__field_descriptor),+ (Data.ProtoLens.Tag 2, extendee__field_descriptor),+ (Data.ProtoLens.Tag 7, defaultValue__field_descriptor),+ (Data.ProtoLens.Tag 9, oneofIndex__field_descriptor),+ (Data.ProtoLens.Tag 10, jsonName__field_descriptor),+ (Data.ProtoLens.Tag 8, options__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _FieldDescriptorProto'_unknownFields+ (\ x__ y__ -> x__ {_FieldDescriptorProto'_unknownFields = y__})+ defMessage+ = FieldDescriptorProto'_constructor+ {_FieldDescriptorProto'name = Prelude.Nothing,+ _FieldDescriptorProto'number = Prelude.Nothing,+ _FieldDescriptorProto'label = Prelude.Nothing,+ _FieldDescriptorProto'type' = Prelude.Nothing,+ _FieldDescriptorProto'typeName = Prelude.Nothing,+ _FieldDescriptorProto'extendee = Prelude.Nothing,+ _FieldDescriptorProto'defaultValue = Prelude.Nothing,+ _FieldDescriptorProto'oneofIndex = Prelude.Nothing,+ _FieldDescriptorProto'jsonName = Prelude.Nothing,+ _FieldDescriptorProto'options = Prelude.Nothing,+ _FieldDescriptorProto'_unknownFields = []}+ parseMessage+ = let+ loop ::+ FieldDescriptorProto+ -> Data.ProtoLens.Encoding.Bytes.Parser FieldDescriptorProto+ loop x+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 10+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "name"+ loop (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)+ 24+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt)+ "number"+ loop (Lens.Family2.set (Data.ProtoLens.Field.field @"number") y x)+ 32+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.toEnum+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt))+ "label"+ loop (Lens.Family2.set (Data.ProtoLens.Field.field @"label") y x)+ 40+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.toEnum+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt))+ "type"+ loop (Lens.Family2.set (Data.ProtoLens.Field.field @"type'") y x)+ 50+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "type_name"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"typeName") y x)+ 18+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "extendee"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"extendee") y x)+ 58+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "default_value"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"defaultValue") y x)+ 72+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt)+ "oneof_index"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"oneofIndex") y x)+ 82+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "json_name"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"jsonName") y x)+ 66+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+ "options"+ loop (Lens.Family2.set (Data.ProtoLens.Field.field @"options") y x)+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do loop Data.ProtoLens.defMessage) "FieldDescriptorProto"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'name") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'number") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 24)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'label") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 32)+ ((Prelude..)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+ Prelude.fromEnum+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'type'") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 40)+ ((Prelude..)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+ Prelude.fromEnum+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'typeName") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 50)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'extendee") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'defaultValue") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 58)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'oneofIndex") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 72)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ Prelude.fromIntegral+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'jsonName") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 82)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes+ bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'options") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 66)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes+ bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view+ Data.ProtoLens.unknownFields _x)))))))))))+instance Control.DeepSeq.NFData FieldDescriptorProto where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_FieldDescriptorProto'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_FieldDescriptorProto'name x__)+ (Control.DeepSeq.deepseq+ (_FieldDescriptorProto'number x__)+ (Control.DeepSeq.deepseq+ (_FieldDescriptorProto'label x__)+ (Control.DeepSeq.deepseq+ (_FieldDescriptorProto'type' x__)+ (Control.DeepSeq.deepseq+ (_FieldDescriptorProto'typeName x__)+ (Control.DeepSeq.deepseq+ (_FieldDescriptorProto'extendee x__)+ (Control.DeepSeq.deepseq+ (_FieldDescriptorProto'defaultValue x__)+ (Control.DeepSeq.deepseq+ (_FieldDescriptorProto'oneofIndex x__)+ (Control.DeepSeq.deepseq+ (_FieldDescriptorProto'jsonName x__)+ (Control.DeepSeq.deepseq+ (_FieldDescriptorProto'options x__) ()))))))))))+data FieldDescriptorProto'Label+ = FieldDescriptorProto'LABEL_OPTIONAL |+ FieldDescriptorProto'LABEL_REQUIRED |+ FieldDescriptorProto'LABEL_REPEATED+ deriving (Prelude.Show, Prelude.Eq, Prelude.Ord)+instance Data.ProtoLens.MessageEnum FieldDescriptorProto'Label where+ maybeToEnum 1 = Prelude.Just FieldDescriptorProto'LABEL_OPTIONAL+ maybeToEnum 2 = Prelude.Just FieldDescriptorProto'LABEL_REQUIRED+ maybeToEnum 3 = Prelude.Just FieldDescriptorProto'LABEL_REPEATED+ maybeToEnum _ = Prelude.Nothing+ showEnum FieldDescriptorProto'LABEL_OPTIONAL = "LABEL_OPTIONAL"+ showEnum FieldDescriptorProto'LABEL_REQUIRED = "LABEL_REQUIRED"+ showEnum FieldDescriptorProto'LABEL_REPEATED = "LABEL_REPEATED"+ readEnum k+ | (Prelude.==) k "LABEL_OPTIONAL"+ = Prelude.Just FieldDescriptorProto'LABEL_OPTIONAL+ | (Prelude.==) k "LABEL_REQUIRED"+ = Prelude.Just FieldDescriptorProto'LABEL_REQUIRED+ | (Prelude.==) k "LABEL_REPEATED"+ = Prelude.Just FieldDescriptorProto'LABEL_REPEATED+ | Prelude.otherwise+ = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum+instance Prelude.Bounded FieldDescriptorProto'Label where+ minBound = FieldDescriptorProto'LABEL_OPTIONAL+ maxBound = FieldDescriptorProto'LABEL_REPEATED+instance Prelude.Enum FieldDescriptorProto'Label where+ toEnum k__+ = Prelude.maybe+ (Prelude.error+ ((Prelude.++)+ "toEnum: unknown value for enum Label: " (Prelude.show k__)))+ Prelude.id+ (Data.ProtoLens.maybeToEnum k__)+ fromEnum FieldDescriptorProto'LABEL_OPTIONAL = 1+ fromEnum FieldDescriptorProto'LABEL_REQUIRED = 2+ fromEnum FieldDescriptorProto'LABEL_REPEATED = 3+ succ FieldDescriptorProto'LABEL_REPEATED+ = Prelude.error+ "FieldDescriptorProto'Label.succ: bad argument FieldDescriptorProto'LABEL_REPEATED. This value would be out of bounds."+ succ FieldDescriptorProto'LABEL_OPTIONAL+ = FieldDescriptorProto'LABEL_REQUIRED+ succ FieldDescriptorProto'LABEL_REQUIRED+ = FieldDescriptorProto'LABEL_REPEATED+ pred FieldDescriptorProto'LABEL_OPTIONAL+ = Prelude.error+ "FieldDescriptorProto'Label.pred: bad argument FieldDescriptorProto'LABEL_OPTIONAL. This value would be out of bounds."+ pred FieldDescriptorProto'LABEL_REQUIRED+ = FieldDescriptorProto'LABEL_OPTIONAL+ pred FieldDescriptorProto'LABEL_REPEATED+ = FieldDescriptorProto'LABEL_REQUIRED+ enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+ enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+ enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+ enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo+instance Data.ProtoLens.FieldDefault FieldDescriptorProto'Label where+ fieldDefault = FieldDescriptorProto'LABEL_OPTIONAL+instance Control.DeepSeq.NFData FieldDescriptorProto'Label where+ rnf x__ = Prelude.seq x__ ()+data FieldDescriptorProto'Type+ = FieldDescriptorProto'TYPE_DOUBLE |+ FieldDescriptorProto'TYPE_FLOAT |+ FieldDescriptorProto'TYPE_INT64 |+ FieldDescriptorProto'TYPE_UINT64 |+ FieldDescriptorProto'TYPE_INT32 |+ FieldDescriptorProto'TYPE_FIXED64 |+ FieldDescriptorProto'TYPE_FIXED32 |+ FieldDescriptorProto'TYPE_BOOL |+ FieldDescriptorProto'TYPE_STRING |+ FieldDescriptorProto'TYPE_GROUP |+ FieldDescriptorProto'TYPE_MESSAGE |+ FieldDescriptorProto'TYPE_BYTES |+ FieldDescriptorProto'TYPE_UINT32 |+ FieldDescriptorProto'TYPE_ENUM |+ FieldDescriptorProto'TYPE_SFIXED32 |+ FieldDescriptorProto'TYPE_SFIXED64 |+ FieldDescriptorProto'TYPE_SINT32 |+ FieldDescriptorProto'TYPE_SINT64+ deriving (Prelude.Show, Prelude.Eq, Prelude.Ord)+instance Data.ProtoLens.MessageEnum FieldDescriptorProto'Type where+ maybeToEnum 1 = Prelude.Just FieldDescriptorProto'TYPE_DOUBLE+ maybeToEnum 2 = Prelude.Just FieldDescriptorProto'TYPE_FLOAT+ maybeToEnum 3 = Prelude.Just FieldDescriptorProto'TYPE_INT64+ maybeToEnum 4 = Prelude.Just FieldDescriptorProto'TYPE_UINT64+ maybeToEnum 5 = Prelude.Just FieldDescriptorProto'TYPE_INT32+ maybeToEnum 6 = Prelude.Just FieldDescriptorProto'TYPE_FIXED64+ maybeToEnum 7 = Prelude.Just FieldDescriptorProto'TYPE_FIXED32+ maybeToEnum 8 = Prelude.Just FieldDescriptorProto'TYPE_BOOL+ maybeToEnum 9 = Prelude.Just FieldDescriptorProto'TYPE_STRING+ maybeToEnum 10 = Prelude.Just FieldDescriptorProto'TYPE_GROUP+ maybeToEnum 11 = Prelude.Just FieldDescriptorProto'TYPE_MESSAGE+ maybeToEnum 12 = Prelude.Just FieldDescriptorProto'TYPE_BYTES+ maybeToEnum 13 = Prelude.Just FieldDescriptorProto'TYPE_UINT32+ maybeToEnum 14 = Prelude.Just FieldDescriptorProto'TYPE_ENUM+ maybeToEnum 15 = Prelude.Just FieldDescriptorProto'TYPE_SFIXED32+ maybeToEnum 16 = Prelude.Just FieldDescriptorProto'TYPE_SFIXED64+ maybeToEnum 17 = Prelude.Just FieldDescriptorProto'TYPE_SINT32+ maybeToEnum 18 = Prelude.Just FieldDescriptorProto'TYPE_SINT64+ maybeToEnum _ = Prelude.Nothing+ showEnum FieldDescriptorProto'TYPE_DOUBLE = "TYPE_DOUBLE"+ showEnum FieldDescriptorProto'TYPE_FLOAT = "TYPE_FLOAT"+ showEnum FieldDescriptorProto'TYPE_INT64 = "TYPE_INT64"+ showEnum FieldDescriptorProto'TYPE_UINT64 = "TYPE_UINT64"+ showEnum FieldDescriptorProto'TYPE_INT32 = "TYPE_INT32"+ showEnum FieldDescriptorProto'TYPE_FIXED64 = "TYPE_FIXED64"+ showEnum FieldDescriptorProto'TYPE_FIXED32 = "TYPE_FIXED32"+ showEnum FieldDescriptorProto'TYPE_BOOL = "TYPE_BOOL"+ showEnum FieldDescriptorProto'TYPE_STRING = "TYPE_STRING"+ showEnum FieldDescriptorProto'TYPE_GROUP = "TYPE_GROUP"+ showEnum FieldDescriptorProto'TYPE_MESSAGE = "TYPE_MESSAGE"+ showEnum FieldDescriptorProto'TYPE_BYTES = "TYPE_BYTES"+ showEnum FieldDescriptorProto'TYPE_UINT32 = "TYPE_UINT32"+ showEnum FieldDescriptorProto'TYPE_ENUM = "TYPE_ENUM"+ showEnum FieldDescriptorProto'TYPE_SFIXED32 = "TYPE_SFIXED32"+ showEnum FieldDescriptorProto'TYPE_SFIXED64 = "TYPE_SFIXED64"+ showEnum FieldDescriptorProto'TYPE_SINT32 = "TYPE_SINT32"+ showEnum FieldDescriptorProto'TYPE_SINT64 = "TYPE_SINT64"+ readEnum k+ | (Prelude.==) k "TYPE_DOUBLE"+ = Prelude.Just FieldDescriptorProto'TYPE_DOUBLE+ | (Prelude.==) k "TYPE_FLOAT"+ = Prelude.Just FieldDescriptorProto'TYPE_FLOAT+ | (Prelude.==) k "TYPE_INT64"+ = Prelude.Just FieldDescriptorProto'TYPE_INT64+ | (Prelude.==) k "TYPE_UINT64"+ = Prelude.Just FieldDescriptorProto'TYPE_UINT64+ | (Prelude.==) k "TYPE_INT32"+ = Prelude.Just FieldDescriptorProto'TYPE_INT32+ | (Prelude.==) k "TYPE_FIXED64"+ = Prelude.Just FieldDescriptorProto'TYPE_FIXED64+ | (Prelude.==) k "TYPE_FIXED32"+ = Prelude.Just FieldDescriptorProto'TYPE_FIXED32+ | (Prelude.==) k "TYPE_BOOL"+ = Prelude.Just FieldDescriptorProto'TYPE_BOOL+ | (Prelude.==) k "TYPE_STRING"+ = Prelude.Just FieldDescriptorProto'TYPE_STRING+ | (Prelude.==) k "TYPE_GROUP"+ = Prelude.Just FieldDescriptorProto'TYPE_GROUP+ | (Prelude.==) k "TYPE_MESSAGE"+ = Prelude.Just FieldDescriptorProto'TYPE_MESSAGE+ | (Prelude.==) k "TYPE_BYTES"+ = Prelude.Just FieldDescriptorProto'TYPE_BYTES+ | (Prelude.==) k "TYPE_UINT32"+ = Prelude.Just FieldDescriptorProto'TYPE_UINT32+ | (Prelude.==) k "TYPE_ENUM"+ = Prelude.Just FieldDescriptorProto'TYPE_ENUM+ | (Prelude.==) k "TYPE_SFIXED32"+ = Prelude.Just FieldDescriptorProto'TYPE_SFIXED32+ | (Prelude.==) k "TYPE_SFIXED64"+ = Prelude.Just FieldDescriptorProto'TYPE_SFIXED64+ | (Prelude.==) k "TYPE_SINT32"+ = Prelude.Just FieldDescriptorProto'TYPE_SINT32+ | (Prelude.==) k "TYPE_SINT64"+ = Prelude.Just FieldDescriptorProto'TYPE_SINT64+ | Prelude.otherwise+ = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum+instance Prelude.Bounded FieldDescriptorProto'Type where+ minBound = FieldDescriptorProto'TYPE_DOUBLE+ maxBound = FieldDescriptorProto'TYPE_SINT64+instance Prelude.Enum FieldDescriptorProto'Type where+ toEnum k__+ = Prelude.maybe+ (Prelude.error+ ((Prelude.++)+ "toEnum: unknown value for enum Type: " (Prelude.show k__)))+ Prelude.id+ (Data.ProtoLens.maybeToEnum k__)+ fromEnum FieldDescriptorProto'TYPE_DOUBLE = 1+ fromEnum FieldDescriptorProto'TYPE_FLOAT = 2+ fromEnum FieldDescriptorProto'TYPE_INT64 = 3+ fromEnum FieldDescriptorProto'TYPE_UINT64 = 4+ fromEnum FieldDescriptorProto'TYPE_INT32 = 5+ fromEnum FieldDescriptorProto'TYPE_FIXED64 = 6+ fromEnum FieldDescriptorProto'TYPE_FIXED32 = 7+ fromEnum FieldDescriptorProto'TYPE_BOOL = 8+ fromEnum FieldDescriptorProto'TYPE_STRING = 9+ fromEnum FieldDescriptorProto'TYPE_GROUP = 10+ fromEnum FieldDescriptorProto'TYPE_MESSAGE = 11+ fromEnum FieldDescriptorProto'TYPE_BYTES = 12+ fromEnum FieldDescriptorProto'TYPE_UINT32 = 13+ fromEnum FieldDescriptorProto'TYPE_ENUM = 14+ fromEnum FieldDescriptorProto'TYPE_SFIXED32 = 15+ fromEnum FieldDescriptorProto'TYPE_SFIXED64 = 16+ fromEnum FieldDescriptorProto'TYPE_SINT32 = 17+ fromEnum FieldDescriptorProto'TYPE_SINT64 = 18+ succ FieldDescriptorProto'TYPE_SINT64+ = Prelude.error+ "FieldDescriptorProto'Type.succ: bad argument FieldDescriptorProto'TYPE_SINT64. This value would be out of bounds."+ succ FieldDescriptorProto'TYPE_DOUBLE+ = FieldDescriptorProto'TYPE_FLOAT+ succ FieldDescriptorProto'TYPE_FLOAT+ = FieldDescriptorProto'TYPE_INT64+ succ FieldDescriptorProto'TYPE_INT64+ = FieldDescriptorProto'TYPE_UINT64+ succ FieldDescriptorProto'TYPE_UINT64+ = FieldDescriptorProto'TYPE_INT32+ succ FieldDescriptorProto'TYPE_INT32+ = FieldDescriptorProto'TYPE_FIXED64+ succ FieldDescriptorProto'TYPE_FIXED64+ = FieldDescriptorProto'TYPE_FIXED32+ succ FieldDescriptorProto'TYPE_FIXED32+ = FieldDescriptorProto'TYPE_BOOL+ succ FieldDescriptorProto'TYPE_BOOL+ = FieldDescriptorProto'TYPE_STRING+ succ FieldDescriptorProto'TYPE_STRING+ = FieldDescriptorProto'TYPE_GROUP+ succ FieldDescriptorProto'TYPE_GROUP+ = FieldDescriptorProto'TYPE_MESSAGE+ succ FieldDescriptorProto'TYPE_MESSAGE+ = FieldDescriptorProto'TYPE_BYTES+ succ FieldDescriptorProto'TYPE_BYTES+ = FieldDescriptorProto'TYPE_UINT32+ succ FieldDescriptorProto'TYPE_UINT32+ = FieldDescriptorProto'TYPE_ENUM+ succ FieldDescriptorProto'TYPE_ENUM+ = FieldDescriptorProto'TYPE_SFIXED32+ succ FieldDescriptorProto'TYPE_SFIXED32+ = FieldDescriptorProto'TYPE_SFIXED64+ succ FieldDescriptorProto'TYPE_SFIXED64+ = FieldDescriptorProto'TYPE_SINT32+ succ FieldDescriptorProto'TYPE_SINT32+ = FieldDescriptorProto'TYPE_SINT64+ pred FieldDescriptorProto'TYPE_DOUBLE+ = Prelude.error+ "FieldDescriptorProto'Type.pred: bad argument FieldDescriptorProto'TYPE_DOUBLE. This value would be out of bounds."+ pred FieldDescriptorProto'TYPE_FLOAT+ = FieldDescriptorProto'TYPE_DOUBLE+ pred FieldDescriptorProto'TYPE_INT64+ = FieldDescriptorProto'TYPE_FLOAT+ pred FieldDescriptorProto'TYPE_UINT64+ = FieldDescriptorProto'TYPE_INT64+ pred FieldDescriptorProto'TYPE_INT32+ = FieldDescriptorProto'TYPE_UINT64+ pred FieldDescriptorProto'TYPE_FIXED64+ = FieldDescriptorProto'TYPE_INT32+ pred FieldDescriptorProto'TYPE_FIXED32+ = FieldDescriptorProto'TYPE_FIXED64+ pred FieldDescriptorProto'TYPE_BOOL+ = FieldDescriptorProto'TYPE_FIXED32+ pred FieldDescriptorProto'TYPE_STRING+ = FieldDescriptorProto'TYPE_BOOL+ pred FieldDescriptorProto'TYPE_GROUP+ = FieldDescriptorProto'TYPE_STRING+ pred FieldDescriptorProto'TYPE_MESSAGE+ = FieldDescriptorProto'TYPE_GROUP+ pred FieldDescriptorProto'TYPE_BYTES+ = FieldDescriptorProto'TYPE_MESSAGE+ pred FieldDescriptorProto'TYPE_UINT32+ = FieldDescriptorProto'TYPE_BYTES+ pred FieldDescriptorProto'TYPE_ENUM+ = FieldDescriptorProto'TYPE_UINT32+ pred FieldDescriptorProto'TYPE_SFIXED32+ = FieldDescriptorProto'TYPE_ENUM+ pred FieldDescriptorProto'TYPE_SFIXED64+ = FieldDescriptorProto'TYPE_SFIXED32+ pred FieldDescriptorProto'TYPE_SINT32+ = FieldDescriptorProto'TYPE_SFIXED64+ pred FieldDescriptorProto'TYPE_SINT64+ = FieldDescriptorProto'TYPE_SINT32+ enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+ enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+ enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+ enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo+instance Data.ProtoLens.FieldDefault FieldDescriptorProto'Type where+ fieldDefault = FieldDescriptorProto'TYPE_DOUBLE+instance Control.DeepSeq.NFData FieldDescriptorProto'Type where+ rnf x__ = Prelude.seq x__ ()+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.ctype' @:: Lens' FieldOptions FieldOptions'CType@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'ctype' @:: Lens' FieldOptions (Prelude.Maybe FieldOptions'CType)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.packed' @:: Lens' FieldOptions Prelude.Bool@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'packed' @:: Lens' FieldOptions (Prelude.Maybe Prelude.Bool)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.jstype' @:: Lens' FieldOptions FieldOptions'JSType@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'jstype' @:: Lens' FieldOptions (Prelude.Maybe FieldOptions'JSType)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.lazy' @:: Lens' FieldOptions Prelude.Bool@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'lazy' @:: Lens' FieldOptions (Prelude.Maybe Prelude.Bool)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.deprecated' @:: Lens' FieldOptions Prelude.Bool@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'deprecated' @:: Lens' FieldOptions (Prelude.Maybe Prelude.Bool)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.weak' @:: Lens' FieldOptions Prelude.Bool@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'weak' @:: Lens' FieldOptions (Prelude.Maybe Prelude.Bool)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.uninterpretedOption' @:: Lens' FieldOptions [UninterpretedOption]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'uninterpretedOption' @:: Lens' FieldOptions (Data.Vector.Vector UninterpretedOption)@ -}+data FieldOptions+ = FieldOptions'_constructor {_FieldOptions'ctype :: !(Prelude.Maybe FieldOptions'CType),+ _FieldOptions'packed :: !(Prelude.Maybe Prelude.Bool),+ _FieldOptions'jstype :: !(Prelude.Maybe FieldOptions'JSType),+ _FieldOptions'lazy :: !(Prelude.Maybe Prelude.Bool),+ _FieldOptions'deprecated :: !(Prelude.Maybe Prelude.Bool),+ _FieldOptions'weak :: !(Prelude.Maybe Prelude.Bool),+ _FieldOptions'uninterpretedOption :: !(Data.Vector.Vector UninterpretedOption),+ _FieldOptions'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show FieldOptions where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField FieldOptions "ctype" FieldOptions'CType where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldOptions'ctype (\ x__ y__ -> x__ {_FieldOptions'ctype = y__}))+ (Data.ProtoLens.maybeLens FieldOptions'STRING)+instance Data.ProtoLens.Field.HasField FieldOptions "maybe'ctype" (Prelude.Maybe FieldOptions'CType) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldOptions'ctype (\ x__ y__ -> x__ {_FieldOptions'ctype = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FieldOptions "packed" Prelude.Bool where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldOptions'packed+ (\ x__ y__ -> x__ {_FieldOptions'packed = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FieldOptions "maybe'packed" (Prelude.Maybe Prelude.Bool) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldOptions'packed+ (\ x__ y__ -> x__ {_FieldOptions'packed = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FieldOptions "jstype" FieldOptions'JSType where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldOptions'jstype+ (\ x__ y__ -> x__ {_FieldOptions'jstype = y__}))+ (Data.ProtoLens.maybeLens FieldOptions'JS_NORMAL)+instance Data.ProtoLens.Field.HasField FieldOptions "maybe'jstype" (Prelude.Maybe FieldOptions'JSType) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldOptions'jstype+ (\ x__ y__ -> x__ {_FieldOptions'jstype = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FieldOptions "lazy" Prelude.Bool where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldOptions'lazy (\ x__ y__ -> x__ {_FieldOptions'lazy = y__}))+ (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField FieldOptions "maybe'lazy" (Prelude.Maybe Prelude.Bool) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldOptions'lazy (\ x__ y__ -> x__ {_FieldOptions'lazy = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FieldOptions "deprecated" Prelude.Bool where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldOptions'deprecated+ (\ x__ y__ -> x__ {_FieldOptions'deprecated = y__}))+ (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField FieldOptions "maybe'deprecated" (Prelude.Maybe Prelude.Bool) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldOptions'deprecated+ (\ x__ y__ -> x__ {_FieldOptions'deprecated = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FieldOptions "weak" Prelude.Bool where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldOptions'weak (\ x__ y__ -> x__ {_FieldOptions'weak = y__}))+ (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField FieldOptions "maybe'weak" (Prelude.Maybe Prelude.Bool) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldOptions'weak (\ x__ y__ -> x__ {_FieldOptions'weak = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FieldOptions "uninterpretedOption" [UninterpretedOption] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldOptions'uninterpretedOption+ (\ x__ y__ -> x__ {_FieldOptions'uninterpretedOption = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField FieldOptions "vec'uninterpretedOption" (Data.Vector.Vector UninterpretedOption) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FieldOptions'uninterpretedOption+ (\ x__ y__ -> x__ {_FieldOptions'uninterpretedOption = y__}))+ Prelude.id+instance Data.ProtoLens.Message FieldOptions where+ messageName _ = Data.Text.pack "google.protobuf.FieldOptions"+ fieldsByTag+ = let+ ctype__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "ctype"+ (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+ Data.ProtoLens.FieldTypeDescriptor FieldOptions'CType)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'ctype")) ::+ Data.ProtoLens.FieldDescriptor FieldOptions+ packed__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "packed"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'packed")) ::+ Data.ProtoLens.FieldDescriptor FieldOptions+ jstype__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "jstype"+ (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+ Data.ProtoLens.FieldTypeDescriptor FieldOptions'JSType)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'jstype")) ::+ Data.ProtoLens.FieldDescriptor FieldOptions+ lazy__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "lazy"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'lazy")) ::+ Data.ProtoLens.FieldDescriptor FieldOptions+ deprecated__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "deprecated"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'deprecated")) ::+ Data.ProtoLens.FieldDescriptor FieldOptions+ weak__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "weak"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'weak")) ::+ Data.ProtoLens.FieldDescriptor FieldOptions+ uninterpretedOption__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "uninterpreted_option"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor UninterpretedOption)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"uninterpretedOption")) ::+ Data.ProtoLens.FieldDescriptor FieldOptions+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 1, ctype__field_descriptor),+ (Data.ProtoLens.Tag 2, packed__field_descriptor),+ (Data.ProtoLens.Tag 6, jstype__field_descriptor),+ (Data.ProtoLens.Tag 5, lazy__field_descriptor),+ (Data.ProtoLens.Tag 3, deprecated__field_descriptor),+ (Data.ProtoLens.Tag 10, weak__field_descriptor),+ (Data.ProtoLens.Tag 999, uninterpretedOption__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _FieldOptions'_unknownFields+ (\ x__ y__ -> x__ {_FieldOptions'_unknownFields = y__})+ defMessage+ = FieldOptions'_constructor+ {_FieldOptions'ctype = Prelude.Nothing,+ _FieldOptions'packed = Prelude.Nothing,+ _FieldOptions'jstype = Prelude.Nothing,+ _FieldOptions'lazy = Prelude.Nothing,+ _FieldOptions'deprecated = Prelude.Nothing,+ _FieldOptions'weak = Prelude.Nothing,+ _FieldOptions'uninterpretedOption = Data.Vector.Generic.empty,+ _FieldOptions'_unknownFields = []}+ parseMessage+ = let+ loop ::+ FieldOptions+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld UninterpretedOption+ -> Data.ProtoLens.Encoding.Bytes.Parser FieldOptions+ loop x mutable'uninterpretedOption+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do frozen'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'uninterpretedOption)+ (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields+ (\ !t -> Prelude.reverse t)+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'uninterpretedOption")+ frozen'uninterpretedOption+ x))+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.toEnum+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt))+ "ctype"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"ctype") y x)+ mutable'uninterpretedOption+ 16+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+ "packed"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"packed") y x)+ mutable'uninterpretedOption+ 48+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.toEnum+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt))+ "jstype"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"jstype") y x)+ mutable'uninterpretedOption+ 40+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+ "lazy"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"lazy") y x)+ mutable'uninterpretedOption+ 24+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+ "deprecated"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"deprecated") y x)+ mutable'uninterpretedOption+ 80+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+ "weak"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"weak") y x)+ mutable'uninterpretedOption+ 7994+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "uninterpreted_option"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append+ mutable'uninterpretedOption y)+ loop x v+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ mutable'uninterpretedOption+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do mutable'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ loop Data.ProtoLens.defMessage mutable'uninterpretedOption)+ "FieldOptions"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'ctype") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 8)+ ((Prelude..)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+ Prelude.fromEnum+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'packed") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 16)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ (\ b -> if b then 1 else 0)+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'jstype") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 48)+ ((Prelude..)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+ Prelude.fromEnum+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'lazy") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 40)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ (\ b -> if b then 1 else 0)+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'deprecated") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 24)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ (\ b -> if b then 1 else 0)+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'weak") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 80)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ (\ b -> if b then 1 else 0)+ _v))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 7994)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'uninterpretedOption") _x))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))))+instance Control.DeepSeq.NFData FieldOptions where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_FieldOptions'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_FieldOptions'ctype x__)+ (Control.DeepSeq.deepseq+ (_FieldOptions'packed x__)+ (Control.DeepSeq.deepseq+ (_FieldOptions'jstype x__)+ (Control.DeepSeq.deepseq+ (_FieldOptions'lazy x__)+ (Control.DeepSeq.deepseq+ (_FieldOptions'deprecated x__)+ (Control.DeepSeq.deepseq+ (_FieldOptions'weak x__)+ (Control.DeepSeq.deepseq+ (_FieldOptions'uninterpretedOption x__) ())))))))+data FieldOptions'CType+ = FieldOptions'STRING |+ FieldOptions'CORD |+ FieldOptions'STRING_PIECE+ deriving (Prelude.Show, Prelude.Eq, Prelude.Ord)+instance Data.ProtoLens.MessageEnum FieldOptions'CType where+ maybeToEnum 0 = Prelude.Just FieldOptions'STRING+ maybeToEnum 1 = Prelude.Just FieldOptions'CORD+ maybeToEnum 2 = Prelude.Just FieldOptions'STRING_PIECE+ maybeToEnum _ = Prelude.Nothing+ showEnum FieldOptions'STRING = "STRING"+ showEnum FieldOptions'CORD = "CORD"+ showEnum FieldOptions'STRING_PIECE = "STRING_PIECE"+ readEnum k+ | (Prelude.==) k "STRING" = Prelude.Just FieldOptions'STRING+ | (Prelude.==) k "CORD" = Prelude.Just FieldOptions'CORD+ | (Prelude.==) k "STRING_PIECE"+ = Prelude.Just FieldOptions'STRING_PIECE+ | Prelude.otherwise+ = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum+instance Prelude.Bounded FieldOptions'CType where+ minBound = FieldOptions'STRING+ maxBound = FieldOptions'STRING_PIECE+instance Prelude.Enum FieldOptions'CType where+ toEnum k__+ = Prelude.maybe+ (Prelude.error+ ((Prelude.++)+ "toEnum: unknown value for enum CType: " (Prelude.show k__)))+ Prelude.id+ (Data.ProtoLens.maybeToEnum k__)+ fromEnum FieldOptions'STRING = 0+ fromEnum FieldOptions'CORD = 1+ fromEnum FieldOptions'STRING_PIECE = 2+ succ FieldOptions'STRING_PIECE+ = Prelude.error+ "FieldOptions'CType.succ: bad argument FieldOptions'STRING_PIECE. This value would be out of bounds."+ succ FieldOptions'STRING = FieldOptions'CORD+ succ FieldOptions'CORD = FieldOptions'STRING_PIECE+ pred FieldOptions'STRING+ = Prelude.error+ "FieldOptions'CType.pred: bad argument FieldOptions'STRING. This value would be out of bounds."+ pred FieldOptions'CORD = FieldOptions'STRING+ pred FieldOptions'STRING_PIECE = FieldOptions'CORD+ enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+ enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+ enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+ enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo+instance Data.ProtoLens.FieldDefault FieldOptions'CType where+ fieldDefault = FieldOptions'STRING+instance Control.DeepSeq.NFData FieldOptions'CType where+ rnf x__ = Prelude.seq x__ ()+data FieldOptions'JSType+ = FieldOptions'JS_NORMAL |+ FieldOptions'JS_STRING |+ FieldOptions'JS_NUMBER+ deriving (Prelude.Show, Prelude.Eq, Prelude.Ord)+instance Data.ProtoLens.MessageEnum FieldOptions'JSType where+ maybeToEnum 0 = Prelude.Just FieldOptions'JS_NORMAL+ maybeToEnum 1 = Prelude.Just FieldOptions'JS_STRING+ maybeToEnum 2 = Prelude.Just FieldOptions'JS_NUMBER+ maybeToEnum _ = Prelude.Nothing+ showEnum FieldOptions'JS_NORMAL = "JS_NORMAL"+ showEnum FieldOptions'JS_STRING = "JS_STRING"+ showEnum FieldOptions'JS_NUMBER = "JS_NUMBER"+ readEnum k+ | (Prelude.==) k "JS_NORMAL" = Prelude.Just FieldOptions'JS_NORMAL+ | (Prelude.==) k "JS_STRING" = Prelude.Just FieldOptions'JS_STRING+ | (Prelude.==) k "JS_NUMBER" = Prelude.Just FieldOptions'JS_NUMBER+ | Prelude.otherwise+ = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum+instance Prelude.Bounded FieldOptions'JSType where+ minBound = FieldOptions'JS_NORMAL+ maxBound = FieldOptions'JS_NUMBER+instance Prelude.Enum FieldOptions'JSType where+ toEnum k__+ = Prelude.maybe+ (Prelude.error+ ((Prelude.++)+ "toEnum: unknown value for enum JSType: " (Prelude.show k__)))+ Prelude.id+ (Data.ProtoLens.maybeToEnum k__)+ fromEnum FieldOptions'JS_NORMAL = 0+ fromEnum FieldOptions'JS_STRING = 1+ fromEnum FieldOptions'JS_NUMBER = 2+ succ FieldOptions'JS_NUMBER+ = Prelude.error+ "FieldOptions'JSType.succ: bad argument FieldOptions'JS_NUMBER. This value would be out of bounds."+ succ FieldOptions'JS_NORMAL = FieldOptions'JS_STRING+ succ FieldOptions'JS_STRING = FieldOptions'JS_NUMBER+ pred FieldOptions'JS_NORMAL+ = Prelude.error+ "FieldOptions'JSType.pred: bad argument FieldOptions'JS_NORMAL. This value would be out of bounds."+ pred FieldOptions'JS_STRING = FieldOptions'JS_NORMAL+ pred FieldOptions'JS_NUMBER = FieldOptions'JS_STRING+ enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+ enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+ enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+ enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo+instance Data.ProtoLens.FieldDefault FieldOptions'JSType where+ fieldDefault = FieldOptions'JS_NORMAL+instance Control.DeepSeq.NFData FieldOptions'JSType where+ rnf x__ = Prelude.seq x__ ()+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.name' @:: Lens' FileDescriptorProto Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'name' @:: Lens' FileDescriptorProto (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.package' @:: Lens' FileDescriptorProto Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'package' @:: Lens' FileDescriptorProto (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.dependency' @:: Lens' FileDescriptorProto [Data.Text.Text]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'dependency' @:: Lens' FileDescriptorProto (Data.Vector.Vector Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.publicDependency' @:: Lens' FileDescriptorProto [Data.Int.Int32]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'publicDependency' @:: Lens' FileDescriptorProto (Data.Vector.Unboxed.Vector Data.Int.Int32)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.weakDependency' @:: Lens' FileDescriptorProto [Data.Int.Int32]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'weakDependency' @:: Lens' FileDescriptorProto (Data.Vector.Unboxed.Vector Data.Int.Int32)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.messageType' @:: Lens' FileDescriptorProto [DescriptorProto]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'messageType' @:: Lens' FileDescriptorProto (Data.Vector.Vector DescriptorProto)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.enumType' @:: Lens' FileDescriptorProto [EnumDescriptorProto]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'enumType' @:: Lens' FileDescriptorProto (Data.Vector.Vector EnumDescriptorProto)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.service' @:: Lens' FileDescriptorProto [ServiceDescriptorProto]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'service' @:: Lens' FileDescriptorProto (Data.Vector.Vector ServiceDescriptorProto)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.extension' @:: Lens' FileDescriptorProto [FieldDescriptorProto]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'extension' @:: Lens' FileDescriptorProto (Data.Vector.Vector FieldDescriptorProto)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.options' @:: Lens' FileDescriptorProto FileOptions@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'options' @:: Lens' FileDescriptorProto (Prelude.Maybe FileOptions)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.sourceCodeInfo' @:: Lens' FileDescriptorProto SourceCodeInfo@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'sourceCodeInfo' @:: Lens' FileDescriptorProto (Prelude.Maybe SourceCodeInfo)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.syntax' @:: Lens' FileDescriptorProto Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'syntax' @:: Lens' FileDescriptorProto (Prelude.Maybe Data.Text.Text)@ -}+data FileDescriptorProto+ = FileDescriptorProto'_constructor {_FileDescriptorProto'name :: !(Prelude.Maybe Data.Text.Text),+ _FileDescriptorProto'package :: !(Prelude.Maybe Data.Text.Text),+ _FileDescriptorProto'dependency :: !(Data.Vector.Vector Data.Text.Text),+ _FileDescriptorProto'publicDependency :: !(Data.Vector.Unboxed.Vector Data.Int.Int32),+ _FileDescriptorProto'weakDependency :: !(Data.Vector.Unboxed.Vector Data.Int.Int32),+ _FileDescriptorProto'messageType :: !(Data.Vector.Vector DescriptorProto),+ _FileDescriptorProto'enumType :: !(Data.Vector.Vector EnumDescriptorProto),+ _FileDescriptorProto'service :: !(Data.Vector.Vector ServiceDescriptorProto),+ _FileDescriptorProto'extension :: !(Data.Vector.Vector FieldDescriptorProto),+ _FileDescriptorProto'options :: !(Prelude.Maybe FileOptions),+ _FileDescriptorProto'sourceCodeInfo :: !(Prelude.Maybe SourceCodeInfo),+ _FileDescriptorProto'syntax :: !(Prelude.Maybe Data.Text.Text),+ _FileDescriptorProto'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show FileDescriptorProto where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField FileDescriptorProto "name" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorProto'name+ (\ x__ y__ -> x__ {_FileDescriptorProto'name = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileDescriptorProto "maybe'name" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorProto'name+ (\ x__ y__ -> x__ {_FileDescriptorProto'name = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileDescriptorProto "package" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorProto'package+ (\ x__ y__ -> x__ {_FileDescriptorProto'package = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileDescriptorProto "maybe'package" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorProto'package+ (\ x__ y__ -> x__ {_FileDescriptorProto'package = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileDescriptorProto "dependency" [Data.Text.Text] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorProto'dependency+ (\ x__ y__ -> x__ {_FileDescriptorProto'dependency = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField FileDescriptorProto "vec'dependency" (Data.Vector.Vector Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorProto'dependency+ (\ x__ y__ -> x__ {_FileDescriptorProto'dependency = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileDescriptorProto "publicDependency" [Data.Int.Int32] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorProto'publicDependency+ (\ x__ y__ -> x__ {_FileDescriptorProto'publicDependency = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField FileDescriptorProto "vec'publicDependency" (Data.Vector.Unboxed.Vector Data.Int.Int32) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorProto'publicDependency+ (\ x__ y__ -> x__ {_FileDescriptorProto'publicDependency = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileDescriptorProto "weakDependency" [Data.Int.Int32] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorProto'weakDependency+ (\ x__ y__ -> x__ {_FileDescriptorProto'weakDependency = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField FileDescriptorProto "vec'weakDependency" (Data.Vector.Unboxed.Vector Data.Int.Int32) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorProto'weakDependency+ (\ x__ y__ -> x__ {_FileDescriptorProto'weakDependency = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileDescriptorProto "messageType" [DescriptorProto] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorProto'messageType+ (\ x__ y__ -> x__ {_FileDescriptorProto'messageType = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField FileDescriptorProto "vec'messageType" (Data.Vector.Vector DescriptorProto) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorProto'messageType+ (\ x__ y__ -> x__ {_FileDescriptorProto'messageType = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileDescriptorProto "enumType" [EnumDescriptorProto] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorProto'enumType+ (\ x__ y__ -> x__ {_FileDescriptorProto'enumType = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField FileDescriptorProto "vec'enumType" (Data.Vector.Vector EnumDescriptorProto) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorProto'enumType+ (\ x__ y__ -> x__ {_FileDescriptorProto'enumType = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileDescriptorProto "service" [ServiceDescriptorProto] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorProto'service+ (\ x__ y__ -> x__ {_FileDescriptorProto'service = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField FileDescriptorProto "vec'service" (Data.Vector.Vector ServiceDescriptorProto) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorProto'service+ (\ x__ y__ -> x__ {_FileDescriptorProto'service = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileDescriptorProto "extension" [FieldDescriptorProto] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorProto'extension+ (\ x__ y__ -> x__ {_FileDescriptorProto'extension = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField FileDescriptorProto "vec'extension" (Data.Vector.Vector FieldDescriptorProto) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorProto'extension+ (\ x__ y__ -> x__ {_FileDescriptorProto'extension = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileDescriptorProto "options" FileOptions where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorProto'options+ (\ x__ y__ -> x__ {_FileDescriptorProto'options = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField FileDescriptorProto "maybe'options" (Prelude.Maybe FileOptions) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorProto'options+ (\ x__ y__ -> x__ {_FileDescriptorProto'options = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileDescriptorProto "sourceCodeInfo" SourceCodeInfo where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorProto'sourceCodeInfo+ (\ x__ y__ -> x__ {_FileDescriptorProto'sourceCodeInfo = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField FileDescriptorProto "maybe'sourceCodeInfo" (Prelude.Maybe SourceCodeInfo) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorProto'sourceCodeInfo+ (\ x__ y__ -> x__ {_FileDescriptorProto'sourceCodeInfo = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileDescriptorProto "syntax" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorProto'syntax+ (\ x__ y__ -> x__ {_FileDescriptorProto'syntax = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileDescriptorProto "maybe'syntax" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorProto'syntax+ (\ x__ y__ -> x__ {_FileDescriptorProto'syntax = y__}))+ Prelude.id+instance Data.ProtoLens.Message FileDescriptorProto where+ messageName _+ = Data.Text.pack "google.protobuf.FileDescriptorProto"+ fieldsByTag+ = let+ name__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "name"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'name")) ::+ Data.ProtoLens.FieldDescriptor FileDescriptorProto+ package__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "package"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'package")) ::+ Data.ProtoLens.FieldDescriptor FileDescriptorProto+ dependency__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "dependency"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"dependency")) ::+ Data.ProtoLens.FieldDescriptor FileDescriptorProto+ publicDependency__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "public_dependency"+ (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"publicDependency")) ::+ Data.ProtoLens.FieldDescriptor FileDescriptorProto+ weakDependency__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "weak_dependency"+ (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"weakDependency")) ::+ Data.ProtoLens.FieldDescriptor FileDescriptorProto+ messageType__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "message_type"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor DescriptorProto)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"messageType")) ::+ Data.ProtoLens.FieldDescriptor FileDescriptorProto+ enumType__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "enum_type"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor EnumDescriptorProto)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"enumType")) ::+ Data.ProtoLens.FieldDescriptor FileDescriptorProto+ service__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "service"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor ServiceDescriptorProto)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"service")) ::+ Data.ProtoLens.FieldDescriptor FileDescriptorProto+ extension__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "extension"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor FieldDescriptorProto)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"extension")) ::+ Data.ProtoLens.FieldDescriptor FileDescriptorProto+ options__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "options"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor FileOptions)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'options")) ::+ Data.ProtoLens.FieldDescriptor FileDescriptorProto+ sourceCodeInfo__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "source_code_info"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor SourceCodeInfo)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'sourceCodeInfo")) ::+ Data.ProtoLens.FieldDescriptor FileDescriptorProto+ syntax__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "syntax"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'syntax")) ::+ Data.ProtoLens.FieldDescriptor FileDescriptorProto+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 1, name__field_descriptor),+ (Data.ProtoLens.Tag 2, package__field_descriptor),+ (Data.ProtoLens.Tag 3, dependency__field_descriptor),+ (Data.ProtoLens.Tag 10, publicDependency__field_descriptor),+ (Data.ProtoLens.Tag 11, weakDependency__field_descriptor),+ (Data.ProtoLens.Tag 4, messageType__field_descriptor),+ (Data.ProtoLens.Tag 5, enumType__field_descriptor),+ (Data.ProtoLens.Tag 6, service__field_descriptor),+ (Data.ProtoLens.Tag 7, extension__field_descriptor),+ (Data.ProtoLens.Tag 8, options__field_descriptor),+ (Data.ProtoLens.Tag 9, sourceCodeInfo__field_descriptor),+ (Data.ProtoLens.Tag 12, syntax__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _FileDescriptorProto'_unknownFields+ (\ x__ y__ -> x__ {_FileDescriptorProto'_unknownFields = y__})+ defMessage+ = FileDescriptorProto'_constructor+ {_FileDescriptorProto'name = Prelude.Nothing,+ _FileDescriptorProto'package = Prelude.Nothing,+ _FileDescriptorProto'dependency = Data.Vector.Generic.empty,+ _FileDescriptorProto'publicDependency = Data.Vector.Generic.empty,+ _FileDescriptorProto'weakDependency = Data.Vector.Generic.empty,+ _FileDescriptorProto'messageType = Data.Vector.Generic.empty,+ _FileDescriptorProto'enumType = Data.Vector.Generic.empty,+ _FileDescriptorProto'service = Data.Vector.Generic.empty,+ _FileDescriptorProto'extension = Data.Vector.Generic.empty,+ _FileDescriptorProto'options = Prelude.Nothing,+ _FileDescriptorProto'sourceCodeInfo = Prelude.Nothing,+ _FileDescriptorProto'syntax = Prelude.Nothing,+ _FileDescriptorProto'_unknownFields = []}+ parseMessage+ = let+ loop ::+ FileDescriptorProto+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Text.Text+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld EnumDescriptorProto+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld FieldDescriptorProto+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld DescriptorProto+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Unboxed.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Int.Int32+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld ServiceDescriptorProto+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Unboxed.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Int.Int32+ -> Data.ProtoLens.Encoding.Bytes.Parser FileDescriptorProto+ loop+ x+ mutable'dependency+ mutable'enumType+ mutable'extension+ mutable'messageType+ mutable'publicDependency+ mutable'service+ mutable'weakDependency+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do frozen'dependency <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'dependency)+ frozen'enumType <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'enumType)+ frozen'extension <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'extension)+ frozen'messageType <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'messageType)+ frozen'publicDependency <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'publicDependency)+ frozen'service <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'service)+ frozen'weakDependency <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'weakDependency)+ (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields+ (\ !t -> Prelude.reverse t)+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'dependency")+ frozen'dependency+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'enumType")+ frozen'enumType+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'extension")+ frozen'extension+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'messageType")+ frozen'messageType+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'publicDependency")+ frozen'publicDependency+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'service")+ frozen'service+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'weakDependency")+ frozen'weakDependency+ x))))))))+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 10+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "name"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)+ mutable'dependency+ mutable'enumType+ mutable'extension+ mutable'messageType+ mutable'publicDependency+ mutable'service+ mutable'weakDependency+ 18+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "package"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"package") y x)+ mutable'dependency+ mutable'enumType+ mutable'extension+ mutable'messageType+ mutable'publicDependency+ mutable'service+ mutable'weakDependency+ 26+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "dependency"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append mutable'dependency y)+ loop+ x+ v+ mutable'enumType+ mutable'extension+ mutable'messageType+ mutable'publicDependency+ mutable'service+ mutable'weakDependency+ 80+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt)+ "public_dependency"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append+ mutable'publicDependency y)+ loop+ x+ mutable'dependency+ mutable'enumType+ mutable'extension+ mutable'messageType+ v+ mutable'service+ mutable'weakDependency+ 82+ -> do y <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ ((let+ ploop qs+ = do packedEnd <- Data.ProtoLens.Encoding.Bytes.atEnd+ if packedEnd then+ Prelude.return qs+ else+ do !q <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt)+ "public_dependency"+ qs' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append+ qs q)+ ploop qs'+ in ploop)+ mutable'publicDependency)+ loop+ x+ mutable'dependency+ mutable'enumType+ mutable'extension+ mutable'messageType+ y+ mutable'service+ mutable'weakDependency+ 88+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt)+ "weak_dependency"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append+ mutable'weakDependency y)+ loop+ x+ mutable'dependency+ mutable'enumType+ mutable'extension+ mutable'messageType+ mutable'publicDependency+ mutable'service+ v+ 90+ -> do y <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ ((let+ ploop qs+ = do packedEnd <- Data.ProtoLens.Encoding.Bytes.atEnd+ if packedEnd then+ Prelude.return qs+ else+ do !q <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt)+ "weak_dependency"+ qs' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append+ qs q)+ ploop qs'+ in ploop)+ mutable'weakDependency)+ loop+ x+ mutable'dependency+ mutable'enumType+ mutable'extension+ mutable'messageType+ mutable'publicDependency+ mutable'service+ y+ 34+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "message_type"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append+ mutable'messageType y)+ loop+ x+ mutable'dependency+ mutable'enumType+ mutable'extension+ v+ mutable'publicDependency+ mutable'service+ mutable'weakDependency+ 42+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "enum_type"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append mutable'enumType y)+ loop+ x+ mutable'dependency+ v+ mutable'extension+ mutable'messageType+ mutable'publicDependency+ mutable'service+ mutable'weakDependency+ 50+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "service"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append mutable'service y)+ loop+ x+ mutable'dependency+ mutable'enumType+ mutable'extension+ mutable'messageType+ mutable'publicDependency+ v+ mutable'weakDependency+ 58+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "extension"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append mutable'extension y)+ loop+ x+ mutable'dependency+ mutable'enumType+ v+ mutable'messageType+ mutable'publicDependency+ mutable'service+ mutable'weakDependency+ 66+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+ "options"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"options") y x)+ mutable'dependency+ mutable'enumType+ mutable'extension+ mutable'messageType+ mutable'publicDependency+ mutable'service+ mutable'weakDependency+ 74+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+ "source_code_info"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"sourceCodeInfo") y x)+ mutable'dependency+ mutable'enumType+ mutable'extension+ mutable'messageType+ mutable'publicDependency+ mutable'service+ mutable'weakDependency+ 98+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "syntax"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"syntax") y x)+ mutable'dependency+ mutable'enumType+ mutable'extension+ mutable'messageType+ mutable'publicDependency+ mutable'service+ mutable'weakDependency+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ mutable'dependency+ mutable'enumType+ mutable'extension+ mutable'messageType+ mutable'publicDependency+ mutable'service+ mutable'weakDependency+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do mutable'dependency <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ mutable'enumType <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ mutable'extension <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ mutable'messageType <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ mutable'publicDependency <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ mutable'service <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ mutable'weakDependency <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ loop+ Data.ProtoLens.defMessage+ mutable'dependency+ mutable'enumType+ mutable'extension+ mutable'messageType+ mutable'publicDependency+ mutable'service+ mutable'weakDependency)+ "FileDescriptorProto"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'name") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'package") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 26)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'dependency") _x))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 80)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ Prelude.fromIntegral+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'publicDependency") _x))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 88)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ Prelude.fromIntegral+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'weakDependency") _x))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 34)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'messageType") _x))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 42)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'enumType") _x))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 50)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'service") _x))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 58)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes+ bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'extension") _x))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'options") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 66)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes+ bs))+ Data.ProtoLens.encodeMessage+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field+ @"maybe'sourceCodeInfo")+ _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 74)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes+ bs))+ Data.ProtoLens.encodeMessage+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'syntax") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 98)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length+ bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes+ bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view+ Data.ProtoLens.unknownFields _x)))))))))))))+instance Control.DeepSeq.NFData FileDescriptorProto where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_FileDescriptorProto'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_FileDescriptorProto'name x__)+ (Control.DeepSeq.deepseq+ (_FileDescriptorProto'package x__)+ (Control.DeepSeq.deepseq+ (_FileDescriptorProto'dependency x__)+ (Control.DeepSeq.deepseq+ (_FileDescriptorProto'publicDependency x__)+ (Control.DeepSeq.deepseq+ (_FileDescriptorProto'weakDependency x__)+ (Control.DeepSeq.deepseq+ (_FileDescriptorProto'messageType x__)+ (Control.DeepSeq.deepseq+ (_FileDescriptorProto'enumType x__)+ (Control.DeepSeq.deepseq+ (_FileDescriptorProto'service x__)+ (Control.DeepSeq.deepseq+ (_FileDescriptorProto'extension x__)+ (Control.DeepSeq.deepseq+ (_FileDescriptorProto'options x__)+ (Control.DeepSeq.deepseq+ (_FileDescriptorProto'sourceCodeInfo x__)+ (Control.DeepSeq.deepseq+ (_FileDescriptorProto'syntax x__) ()))))))))))))+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.file' @:: Lens' FileDescriptorSet [FileDescriptorProto]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'file' @:: Lens' FileDescriptorSet (Data.Vector.Vector FileDescriptorProto)@ -}+data FileDescriptorSet+ = FileDescriptorSet'_constructor {_FileDescriptorSet'file :: !(Data.Vector.Vector FileDescriptorProto),+ _FileDescriptorSet'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show FileDescriptorSet where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField FileDescriptorSet "file" [FileDescriptorProto] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorSet'file+ (\ x__ y__ -> x__ {_FileDescriptorSet'file = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField FileDescriptorSet "vec'file" (Data.Vector.Vector FileDescriptorProto) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileDescriptorSet'file+ (\ x__ y__ -> x__ {_FileDescriptorSet'file = y__}))+ Prelude.id+instance Data.ProtoLens.Message FileDescriptorSet where+ messageName _ = Data.Text.pack "google.protobuf.FileDescriptorSet"+ fieldsByTag+ = let+ file__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "file"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor FileDescriptorProto)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"file")) ::+ Data.ProtoLens.FieldDescriptor FileDescriptorSet+ in+ Data.Map.fromList [(Data.ProtoLens.Tag 1, file__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _FileDescriptorSet'_unknownFields+ (\ x__ y__ -> x__ {_FileDescriptorSet'_unknownFields = y__})+ defMessage+ = FileDescriptorSet'_constructor+ {_FileDescriptorSet'file = Data.Vector.Generic.empty,+ _FileDescriptorSet'_unknownFields = []}+ parseMessage+ = let+ loop ::+ FileDescriptorSet+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld FileDescriptorProto+ -> Data.ProtoLens.Encoding.Bytes.Parser FileDescriptorSet+ loop x mutable'file+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do frozen'file <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'file)+ (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields+ (\ !t -> Prelude.reverse t)+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'file") frozen'file x))+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 10+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "file"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append mutable'file y)+ loop x v+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ mutable'file+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do mutable'file <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ loop Data.ProtoLens.defMessage mutable'file)+ "FileDescriptorSet"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'file") _x))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x))+instance Control.DeepSeq.NFData FileDescriptorSet where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_FileDescriptorSet'_unknownFields x__)+ (Control.DeepSeq.deepseq (_FileDescriptorSet'file x__) ())+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.javaPackage' @:: Lens' FileOptions Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'javaPackage' @:: Lens' FileOptions (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.javaOuterClassname' @:: Lens' FileOptions Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'javaOuterClassname' @:: Lens' FileOptions (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.javaMultipleFiles' @:: Lens' FileOptions Prelude.Bool@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'javaMultipleFiles' @:: Lens' FileOptions (Prelude.Maybe Prelude.Bool)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.javaGenerateEqualsAndHash' @:: Lens' FileOptions Prelude.Bool@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'javaGenerateEqualsAndHash' @:: Lens' FileOptions (Prelude.Maybe Prelude.Bool)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.javaStringCheckUtf8' @:: Lens' FileOptions Prelude.Bool@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'javaStringCheckUtf8' @:: Lens' FileOptions (Prelude.Maybe Prelude.Bool)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.optimizeFor' @:: Lens' FileOptions FileOptions'OptimizeMode@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'optimizeFor' @:: Lens' FileOptions (Prelude.Maybe FileOptions'OptimizeMode)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.goPackage' @:: Lens' FileOptions Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'goPackage' @:: Lens' FileOptions (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.ccGenericServices' @:: Lens' FileOptions Prelude.Bool@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'ccGenericServices' @:: Lens' FileOptions (Prelude.Maybe Prelude.Bool)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.javaGenericServices' @:: Lens' FileOptions Prelude.Bool@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'javaGenericServices' @:: Lens' FileOptions (Prelude.Maybe Prelude.Bool)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.pyGenericServices' @:: Lens' FileOptions Prelude.Bool@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'pyGenericServices' @:: Lens' FileOptions (Prelude.Maybe Prelude.Bool)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.phpGenericServices' @:: Lens' FileOptions Prelude.Bool@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'phpGenericServices' @:: Lens' FileOptions (Prelude.Maybe Prelude.Bool)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.deprecated' @:: Lens' FileOptions Prelude.Bool@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'deprecated' @:: Lens' FileOptions (Prelude.Maybe Prelude.Bool)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.ccEnableArenas' @:: Lens' FileOptions Prelude.Bool@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'ccEnableArenas' @:: Lens' FileOptions (Prelude.Maybe Prelude.Bool)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.objcClassPrefix' @:: Lens' FileOptions Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'objcClassPrefix' @:: Lens' FileOptions (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.csharpNamespace' @:: Lens' FileOptions Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'csharpNamespace' @:: Lens' FileOptions (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.swiftPrefix' @:: Lens' FileOptions Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'swiftPrefix' @:: Lens' FileOptions (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.phpClassPrefix' @:: Lens' FileOptions Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'phpClassPrefix' @:: Lens' FileOptions (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.phpNamespace' @:: Lens' FileOptions Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'phpNamespace' @:: Lens' FileOptions (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.phpMetadataNamespace' @:: Lens' FileOptions Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'phpMetadataNamespace' @:: Lens' FileOptions (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.rubyPackage' @:: Lens' FileOptions Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'rubyPackage' @:: Lens' FileOptions (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.uninterpretedOption' @:: Lens' FileOptions [UninterpretedOption]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'uninterpretedOption' @:: Lens' FileOptions (Data.Vector.Vector UninterpretedOption)@ -}+data FileOptions+ = FileOptions'_constructor {_FileOptions'javaPackage :: !(Prelude.Maybe Data.Text.Text),+ _FileOptions'javaOuterClassname :: !(Prelude.Maybe Data.Text.Text),+ _FileOptions'javaMultipleFiles :: !(Prelude.Maybe Prelude.Bool),+ _FileOptions'javaGenerateEqualsAndHash :: !(Prelude.Maybe Prelude.Bool),+ _FileOptions'javaStringCheckUtf8 :: !(Prelude.Maybe Prelude.Bool),+ _FileOptions'optimizeFor :: !(Prelude.Maybe FileOptions'OptimizeMode),+ _FileOptions'goPackage :: !(Prelude.Maybe Data.Text.Text),+ _FileOptions'ccGenericServices :: !(Prelude.Maybe Prelude.Bool),+ _FileOptions'javaGenericServices :: !(Prelude.Maybe Prelude.Bool),+ _FileOptions'pyGenericServices :: !(Prelude.Maybe Prelude.Bool),+ _FileOptions'phpGenericServices :: !(Prelude.Maybe Prelude.Bool),+ _FileOptions'deprecated :: !(Prelude.Maybe Prelude.Bool),+ _FileOptions'ccEnableArenas :: !(Prelude.Maybe Prelude.Bool),+ _FileOptions'objcClassPrefix :: !(Prelude.Maybe Data.Text.Text),+ _FileOptions'csharpNamespace :: !(Prelude.Maybe Data.Text.Text),+ _FileOptions'swiftPrefix :: !(Prelude.Maybe Data.Text.Text),+ _FileOptions'phpClassPrefix :: !(Prelude.Maybe Data.Text.Text),+ _FileOptions'phpNamespace :: !(Prelude.Maybe Data.Text.Text),+ _FileOptions'phpMetadataNamespace :: !(Prelude.Maybe Data.Text.Text),+ _FileOptions'rubyPackage :: !(Prelude.Maybe Data.Text.Text),+ _FileOptions'uninterpretedOption :: !(Data.Vector.Vector UninterpretedOption),+ _FileOptions'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show FileOptions where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField FileOptions "javaPackage" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'javaPackage+ (\ x__ y__ -> x__ {_FileOptions'javaPackage = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'javaPackage" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'javaPackage+ (\ x__ y__ -> x__ {_FileOptions'javaPackage = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "javaOuterClassname" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'javaOuterClassname+ (\ x__ y__ -> x__ {_FileOptions'javaOuterClassname = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'javaOuterClassname" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'javaOuterClassname+ (\ x__ y__ -> x__ {_FileOptions'javaOuterClassname = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "javaMultipleFiles" Prelude.Bool where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'javaMultipleFiles+ (\ x__ y__ -> x__ {_FileOptions'javaMultipleFiles = y__}))+ (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'javaMultipleFiles" (Prelude.Maybe Prelude.Bool) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'javaMultipleFiles+ (\ x__ y__ -> x__ {_FileOptions'javaMultipleFiles = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "javaGenerateEqualsAndHash" Prelude.Bool where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'javaGenerateEqualsAndHash+ (\ x__ y__ -> x__ {_FileOptions'javaGenerateEqualsAndHash = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'javaGenerateEqualsAndHash" (Prelude.Maybe Prelude.Bool) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'javaGenerateEqualsAndHash+ (\ x__ y__ -> x__ {_FileOptions'javaGenerateEqualsAndHash = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "javaStringCheckUtf8" Prelude.Bool where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'javaStringCheckUtf8+ (\ x__ y__ -> x__ {_FileOptions'javaStringCheckUtf8 = y__}))+ (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'javaStringCheckUtf8" (Prelude.Maybe Prelude.Bool) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'javaStringCheckUtf8+ (\ x__ y__ -> x__ {_FileOptions'javaStringCheckUtf8 = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "optimizeFor" FileOptions'OptimizeMode where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'optimizeFor+ (\ x__ y__ -> x__ {_FileOptions'optimizeFor = y__}))+ (Data.ProtoLens.maybeLens FileOptions'SPEED)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'optimizeFor" (Prelude.Maybe FileOptions'OptimizeMode) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'optimizeFor+ (\ x__ y__ -> x__ {_FileOptions'optimizeFor = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "goPackage" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'goPackage+ (\ x__ y__ -> x__ {_FileOptions'goPackage = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'goPackage" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'goPackage+ (\ x__ y__ -> x__ {_FileOptions'goPackage = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "ccGenericServices" Prelude.Bool where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'ccGenericServices+ (\ x__ y__ -> x__ {_FileOptions'ccGenericServices = y__}))+ (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'ccGenericServices" (Prelude.Maybe Prelude.Bool) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'ccGenericServices+ (\ x__ y__ -> x__ {_FileOptions'ccGenericServices = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "javaGenericServices" Prelude.Bool where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'javaGenericServices+ (\ x__ y__ -> x__ {_FileOptions'javaGenericServices = y__}))+ (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'javaGenericServices" (Prelude.Maybe Prelude.Bool) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'javaGenericServices+ (\ x__ y__ -> x__ {_FileOptions'javaGenericServices = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "pyGenericServices" Prelude.Bool where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'pyGenericServices+ (\ x__ y__ -> x__ {_FileOptions'pyGenericServices = y__}))+ (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'pyGenericServices" (Prelude.Maybe Prelude.Bool) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'pyGenericServices+ (\ x__ y__ -> x__ {_FileOptions'pyGenericServices = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "phpGenericServices" Prelude.Bool where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'phpGenericServices+ (\ x__ y__ -> x__ {_FileOptions'phpGenericServices = y__}))+ (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'phpGenericServices" (Prelude.Maybe Prelude.Bool) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'phpGenericServices+ (\ x__ y__ -> x__ {_FileOptions'phpGenericServices = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "deprecated" Prelude.Bool where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'deprecated+ (\ x__ y__ -> x__ {_FileOptions'deprecated = y__}))+ (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'deprecated" (Prelude.Maybe Prelude.Bool) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'deprecated+ (\ x__ y__ -> x__ {_FileOptions'deprecated = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "ccEnableArenas" Prelude.Bool where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'ccEnableArenas+ (\ x__ y__ -> x__ {_FileOptions'ccEnableArenas = y__}))+ (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'ccEnableArenas" (Prelude.Maybe Prelude.Bool) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'ccEnableArenas+ (\ x__ y__ -> x__ {_FileOptions'ccEnableArenas = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "objcClassPrefix" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'objcClassPrefix+ (\ x__ y__ -> x__ {_FileOptions'objcClassPrefix = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'objcClassPrefix" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'objcClassPrefix+ (\ x__ y__ -> x__ {_FileOptions'objcClassPrefix = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "csharpNamespace" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'csharpNamespace+ (\ x__ y__ -> x__ {_FileOptions'csharpNamespace = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'csharpNamespace" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'csharpNamespace+ (\ x__ y__ -> x__ {_FileOptions'csharpNamespace = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "swiftPrefix" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'swiftPrefix+ (\ x__ y__ -> x__ {_FileOptions'swiftPrefix = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'swiftPrefix" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'swiftPrefix+ (\ x__ y__ -> x__ {_FileOptions'swiftPrefix = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "phpClassPrefix" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'phpClassPrefix+ (\ x__ y__ -> x__ {_FileOptions'phpClassPrefix = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'phpClassPrefix" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'phpClassPrefix+ (\ x__ y__ -> x__ {_FileOptions'phpClassPrefix = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "phpNamespace" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'phpNamespace+ (\ x__ y__ -> x__ {_FileOptions'phpNamespace = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'phpNamespace" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'phpNamespace+ (\ x__ y__ -> x__ {_FileOptions'phpNamespace = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "phpMetadataNamespace" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'phpMetadataNamespace+ (\ x__ y__ -> x__ {_FileOptions'phpMetadataNamespace = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'phpMetadataNamespace" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'phpMetadataNamespace+ (\ x__ y__ -> x__ {_FileOptions'phpMetadataNamespace = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "rubyPackage" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'rubyPackage+ (\ x__ y__ -> x__ {_FileOptions'rubyPackage = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField FileOptions "maybe'rubyPackage" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'rubyPackage+ (\ x__ y__ -> x__ {_FileOptions'rubyPackage = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField FileOptions "uninterpretedOption" [UninterpretedOption] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'uninterpretedOption+ (\ x__ y__ -> x__ {_FileOptions'uninterpretedOption = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField FileOptions "vec'uninterpretedOption" (Data.Vector.Vector UninterpretedOption) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _FileOptions'uninterpretedOption+ (\ x__ y__ -> x__ {_FileOptions'uninterpretedOption = y__}))+ Prelude.id+instance Data.ProtoLens.Message FileOptions where+ messageName _ = Data.Text.pack "google.protobuf.FileOptions"+ fieldsByTag+ = let+ javaPackage__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "java_package"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'javaPackage")) ::+ Data.ProtoLens.FieldDescriptor FileOptions+ javaOuterClassname__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "java_outer_classname"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'javaOuterClassname")) ::+ Data.ProtoLens.FieldDescriptor FileOptions+ javaMultipleFiles__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "java_multiple_files"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'javaMultipleFiles")) ::+ Data.ProtoLens.FieldDescriptor FileOptions+ javaGenerateEqualsAndHash__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "java_generate_equals_and_hash"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'javaGenerateEqualsAndHash")) ::+ Data.ProtoLens.FieldDescriptor FileOptions+ javaStringCheckUtf8__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "java_string_check_utf8"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'javaStringCheckUtf8")) ::+ Data.ProtoLens.FieldDescriptor FileOptions+ optimizeFor__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "optimize_for"+ (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+ Data.ProtoLens.FieldTypeDescriptor FileOptions'OptimizeMode)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'optimizeFor")) ::+ Data.ProtoLens.FieldDescriptor FileOptions+ goPackage__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "go_package"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'goPackage")) ::+ Data.ProtoLens.FieldDescriptor FileOptions+ ccGenericServices__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "cc_generic_services"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'ccGenericServices")) ::+ Data.ProtoLens.FieldDescriptor FileOptions+ javaGenericServices__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "java_generic_services"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'javaGenericServices")) ::+ Data.ProtoLens.FieldDescriptor FileOptions+ pyGenericServices__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "py_generic_services"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'pyGenericServices")) ::+ Data.ProtoLens.FieldDescriptor FileOptions+ phpGenericServices__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "php_generic_services"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'phpGenericServices")) ::+ Data.ProtoLens.FieldDescriptor FileOptions+ deprecated__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "deprecated"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'deprecated")) ::+ Data.ProtoLens.FieldDescriptor FileOptions+ ccEnableArenas__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "cc_enable_arenas"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'ccEnableArenas")) ::+ Data.ProtoLens.FieldDescriptor FileOptions+ objcClassPrefix__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "objc_class_prefix"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'objcClassPrefix")) ::+ Data.ProtoLens.FieldDescriptor FileOptions+ csharpNamespace__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "csharp_namespace"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'csharpNamespace")) ::+ Data.ProtoLens.FieldDescriptor FileOptions+ swiftPrefix__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "swift_prefix"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'swiftPrefix")) ::+ Data.ProtoLens.FieldDescriptor FileOptions+ phpClassPrefix__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "php_class_prefix"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'phpClassPrefix")) ::+ Data.ProtoLens.FieldDescriptor FileOptions+ phpNamespace__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "php_namespace"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'phpNamespace")) ::+ Data.ProtoLens.FieldDescriptor FileOptions+ phpMetadataNamespace__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "php_metadata_namespace"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'phpMetadataNamespace")) ::+ Data.ProtoLens.FieldDescriptor FileOptions+ rubyPackage__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "ruby_package"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'rubyPackage")) ::+ Data.ProtoLens.FieldDescriptor FileOptions+ uninterpretedOption__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "uninterpreted_option"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor UninterpretedOption)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"uninterpretedOption")) ::+ Data.ProtoLens.FieldDescriptor FileOptions+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 1, javaPackage__field_descriptor),+ (Data.ProtoLens.Tag 8, javaOuterClassname__field_descriptor),+ (Data.ProtoLens.Tag 10, javaMultipleFiles__field_descriptor),+ (Data.ProtoLens.Tag 20, + javaGenerateEqualsAndHash__field_descriptor),+ (Data.ProtoLens.Tag 27, javaStringCheckUtf8__field_descriptor),+ (Data.ProtoLens.Tag 9, optimizeFor__field_descriptor),+ (Data.ProtoLens.Tag 11, goPackage__field_descriptor),+ (Data.ProtoLens.Tag 16, ccGenericServices__field_descriptor),+ (Data.ProtoLens.Tag 17, javaGenericServices__field_descriptor),+ (Data.ProtoLens.Tag 18, pyGenericServices__field_descriptor),+ (Data.ProtoLens.Tag 42, phpGenericServices__field_descriptor),+ (Data.ProtoLens.Tag 23, deprecated__field_descriptor),+ (Data.ProtoLens.Tag 31, ccEnableArenas__field_descriptor),+ (Data.ProtoLens.Tag 36, objcClassPrefix__field_descriptor),+ (Data.ProtoLens.Tag 37, csharpNamespace__field_descriptor),+ (Data.ProtoLens.Tag 39, swiftPrefix__field_descriptor),+ (Data.ProtoLens.Tag 40, phpClassPrefix__field_descriptor),+ (Data.ProtoLens.Tag 41, phpNamespace__field_descriptor),+ (Data.ProtoLens.Tag 44, phpMetadataNamespace__field_descriptor),+ (Data.ProtoLens.Tag 45, rubyPackage__field_descriptor),+ (Data.ProtoLens.Tag 999, uninterpretedOption__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _FileOptions'_unknownFields+ (\ x__ y__ -> x__ {_FileOptions'_unknownFields = y__})+ defMessage+ = FileOptions'_constructor+ {_FileOptions'javaPackage = Prelude.Nothing,+ _FileOptions'javaOuterClassname = Prelude.Nothing,+ _FileOptions'javaMultipleFiles = Prelude.Nothing,+ _FileOptions'javaGenerateEqualsAndHash = Prelude.Nothing,+ _FileOptions'javaStringCheckUtf8 = Prelude.Nothing,+ _FileOptions'optimizeFor = Prelude.Nothing,+ _FileOptions'goPackage = Prelude.Nothing,+ _FileOptions'ccGenericServices = Prelude.Nothing,+ _FileOptions'javaGenericServices = Prelude.Nothing,+ _FileOptions'pyGenericServices = Prelude.Nothing,+ _FileOptions'phpGenericServices = Prelude.Nothing,+ _FileOptions'deprecated = Prelude.Nothing,+ _FileOptions'ccEnableArenas = Prelude.Nothing,+ _FileOptions'objcClassPrefix = Prelude.Nothing,+ _FileOptions'csharpNamespace = Prelude.Nothing,+ _FileOptions'swiftPrefix = Prelude.Nothing,+ _FileOptions'phpClassPrefix = Prelude.Nothing,+ _FileOptions'phpNamespace = Prelude.Nothing,+ _FileOptions'phpMetadataNamespace = Prelude.Nothing,+ _FileOptions'rubyPackage = Prelude.Nothing,+ _FileOptions'uninterpretedOption = Data.Vector.Generic.empty,+ _FileOptions'_unknownFields = []}+ parseMessage+ = let+ loop ::+ FileOptions+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld UninterpretedOption+ -> Data.ProtoLens.Encoding.Bytes.Parser FileOptions+ loop x mutable'uninterpretedOption+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do frozen'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'uninterpretedOption)+ (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields+ (\ !t -> Prelude.reverse t)+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'uninterpretedOption")+ frozen'uninterpretedOption+ x))+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 10+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "java_package"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"javaPackage") y x)+ mutable'uninterpretedOption+ 66+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "java_outer_classname"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"javaOuterClassname") y x)+ mutable'uninterpretedOption+ 80+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+ "java_multiple_files"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"javaMultipleFiles") y x)+ mutable'uninterpretedOption+ 160+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+ "java_generate_equals_and_hash"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"javaGenerateEqualsAndHash") y x)+ mutable'uninterpretedOption+ 216+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+ "java_string_check_utf8"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"javaStringCheckUtf8") y x)+ mutable'uninterpretedOption+ 72+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.toEnum+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt))+ "optimize_for"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"optimizeFor") y x)+ mutable'uninterpretedOption+ 90+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "go_package"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"goPackage") y x)+ mutable'uninterpretedOption+ 128+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+ "cc_generic_services"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"ccGenericServices") y x)+ mutable'uninterpretedOption+ 136+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+ "java_generic_services"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"javaGenericServices") y x)+ mutable'uninterpretedOption+ 144+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+ "py_generic_services"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"pyGenericServices") y x)+ mutable'uninterpretedOption+ 336+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+ "php_generic_services"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"phpGenericServices") y x)+ mutable'uninterpretedOption+ 184+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+ "deprecated"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"deprecated") y x)+ mutable'uninterpretedOption+ 248+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+ "cc_enable_arenas"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"ccEnableArenas") y x)+ mutable'uninterpretedOption+ 290+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "objc_class_prefix"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"objcClassPrefix") y x)+ mutable'uninterpretedOption+ 298+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "csharp_namespace"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"csharpNamespace") y x)+ mutable'uninterpretedOption+ 314+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "swift_prefix"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"swiftPrefix") y x)+ mutable'uninterpretedOption+ 322+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "php_class_prefix"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"phpClassPrefix") y x)+ mutable'uninterpretedOption+ 330+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "php_namespace"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"phpNamespace") y x)+ mutable'uninterpretedOption+ 354+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "php_metadata_namespace"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"phpMetadataNamespace") y x)+ mutable'uninterpretedOption+ 362+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "ruby_package"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"rubyPackage") y x)+ mutable'uninterpretedOption+ 7994+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "uninterpreted_option"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append+ mutable'uninterpretedOption y)+ loop x v+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ mutable'uninterpretedOption+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do mutable'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ loop Data.ProtoLens.defMessage mutable'uninterpretedOption)+ "FileOptions"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'javaPackage") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'javaOuterClassname") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 66)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'javaMultipleFiles") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 80)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ (\ b -> if b then 1 else 0)+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'javaGenerateEqualsAndHash") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 160)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ (\ b -> if b then 1 else 0)+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'javaStringCheckUtf8") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 216)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ (\ b -> if b then 1 else 0)+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'optimizeFor") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 72)+ ((Prelude..)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ Prelude.fromIntegral)+ Prelude.fromEnum+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'goPackage") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 90)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'ccGenericServices") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 128)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ (\ b -> if b then 1 else 0)+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field+ @"maybe'javaGenericServices")+ _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 136)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ (\ b -> if b then 1 else 0)+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field+ @"maybe'pyGenericServices")+ _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 144)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ (\ b -> if b then 1 else 0)+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field+ @"maybe'phpGenericServices")+ _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 336)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ (\ b -> if b then 1 else 0)+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field+ @"maybe'deprecated")+ _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ 184)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ (\ b -> if b then 1 else 0)+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field+ @"maybe'ccEnableArenas")+ _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ 248)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ (\ b -> if b then 1 else 0)+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field+ @"maybe'objcClassPrefix")+ _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ 290)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length+ bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes+ bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field+ @"maybe'csharpNamespace")+ _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ 298)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length+ bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes+ bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field+ @"maybe'swiftPrefix")+ _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ 314)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length+ bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes+ bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field+ @"maybe'phpClassPrefix")+ _x+ of+ Prelude.Nothing+ -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ 322)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length+ bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes+ bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field+ @"maybe'phpNamespace")+ _x+ of+ Prelude.Nothing+ -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ 330)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length+ bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes+ bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field+ @"maybe'phpMetadataNamespace")+ _x+ of+ Prelude.Nothing+ -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ 354)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length+ bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes+ bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field+ @"maybe'rubyPackage")+ _x+ of+ Prelude.Nothing+ -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ 362)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length+ bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes+ bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ 7994)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length+ bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes+ bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field+ @"vec'uninterpretedOption")+ _x))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view+ Data.ProtoLens.unknownFields+ _x))))))))))))))))))))))+instance Control.DeepSeq.NFData FileOptions where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_FileOptions'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_FileOptions'javaPackage x__)+ (Control.DeepSeq.deepseq+ (_FileOptions'javaOuterClassname x__)+ (Control.DeepSeq.deepseq+ (_FileOptions'javaMultipleFiles x__)+ (Control.DeepSeq.deepseq+ (_FileOptions'javaGenerateEqualsAndHash x__)+ (Control.DeepSeq.deepseq+ (_FileOptions'javaStringCheckUtf8 x__)+ (Control.DeepSeq.deepseq+ (_FileOptions'optimizeFor x__)+ (Control.DeepSeq.deepseq+ (_FileOptions'goPackage x__)+ (Control.DeepSeq.deepseq+ (_FileOptions'ccGenericServices x__)+ (Control.DeepSeq.deepseq+ (_FileOptions'javaGenericServices x__)+ (Control.DeepSeq.deepseq+ (_FileOptions'pyGenericServices x__)+ (Control.DeepSeq.deepseq+ (_FileOptions'phpGenericServices x__)+ (Control.DeepSeq.deepseq+ (_FileOptions'deprecated x__)+ (Control.DeepSeq.deepseq+ (_FileOptions'ccEnableArenas x__)+ (Control.DeepSeq.deepseq+ (_FileOptions'objcClassPrefix x__)+ (Control.DeepSeq.deepseq+ (_FileOptions'csharpNamespace x__)+ (Control.DeepSeq.deepseq+ (_FileOptions'swiftPrefix x__)+ (Control.DeepSeq.deepseq+ (_FileOptions'phpClassPrefix x__)+ (Control.DeepSeq.deepseq+ (_FileOptions'phpNamespace x__)+ (Control.DeepSeq.deepseq+ (_FileOptions'phpMetadataNamespace+ x__)+ (Control.DeepSeq.deepseq+ (_FileOptions'rubyPackage+ x__)+ (Control.DeepSeq.deepseq+ (_FileOptions'uninterpretedOption+ x__)+ ())))))))))))))))))))))+data FileOptions'OptimizeMode+ = FileOptions'SPEED |+ FileOptions'CODE_SIZE |+ FileOptions'LITE_RUNTIME+ deriving (Prelude.Show, Prelude.Eq, Prelude.Ord)+instance Data.ProtoLens.MessageEnum FileOptions'OptimizeMode where+ maybeToEnum 1 = Prelude.Just FileOptions'SPEED+ maybeToEnum 2 = Prelude.Just FileOptions'CODE_SIZE+ maybeToEnum 3 = Prelude.Just FileOptions'LITE_RUNTIME+ maybeToEnum _ = Prelude.Nothing+ showEnum FileOptions'SPEED = "SPEED"+ showEnum FileOptions'CODE_SIZE = "CODE_SIZE"+ showEnum FileOptions'LITE_RUNTIME = "LITE_RUNTIME"+ readEnum k+ | (Prelude.==) k "SPEED" = Prelude.Just FileOptions'SPEED+ | (Prelude.==) k "CODE_SIZE" = Prelude.Just FileOptions'CODE_SIZE+ | (Prelude.==) k "LITE_RUNTIME"+ = Prelude.Just FileOptions'LITE_RUNTIME+ | Prelude.otherwise+ = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum+instance Prelude.Bounded FileOptions'OptimizeMode where+ minBound = FileOptions'SPEED+ maxBound = FileOptions'LITE_RUNTIME+instance Prelude.Enum FileOptions'OptimizeMode where+ toEnum k__+ = Prelude.maybe+ (Prelude.error+ ((Prelude.++)+ "toEnum: unknown value for enum OptimizeMode: "+ (Prelude.show k__)))+ Prelude.id+ (Data.ProtoLens.maybeToEnum k__)+ fromEnum FileOptions'SPEED = 1+ fromEnum FileOptions'CODE_SIZE = 2+ fromEnum FileOptions'LITE_RUNTIME = 3+ succ FileOptions'LITE_RUNTIME+ = Prelude.error+ "FileOptions'OptimizeMode.succ: bad argument FileOptions'LITE_RUNTIME. This value would be out of bounds."+ succ FileOptions'SPEED = FileOptions'CODE_SIZE+ succ FileOptions'CODE_SIZE = FileOptions'LITE_RUNTIME+ pred FileOptions'SPEED+ = Prelude.error+ "FileOptions'OptimizeMode.pred: bad argument FileOptions'SPEED. This value would be out of bounds."+ pred FileOptions'CODE_SIZE = FileOptions'SPEED+ pred FileOptions'LITE_RUNTIME = FileOptions'CODE_SIZE+ enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+ enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+ enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+ enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo+instance Data.ProtoLens.FieldDefault FileOptions'OptimizeMode where+ fieldDefault = FileOptions'SPEED+instance Control.DeepSeq.NFData FileOptions'OptimizeMode where+ rnf x__ = Prelude.seq x__ ()+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.annotation' @:: Lens' GeneratedCodeInfo [GeneratedCodeInfo'Annotation]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'annotation' @:: Lens' GeneratedCodeInfo (Data.Vector.Vector GeneratedCodeInfo'Annotation)@ -}+data GeneratedCodeInfo+ = GeneratedCodeInfo'_constructor {_GeneratedCodeInfo'annotation :: !(Data.Vector.Vector GeneratedCodeInfo'Annotation),+ _GeneratedCodeInfo'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show GeneratedCodeInfo where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField GeneratedCodeInfo "annotation" [GeneratedCodeInfo'Annotation] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _GeneratedCodeInfo'annotation+ (\ x__ y__ -> x__ {_GeneratedCodeInfo'annotation = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField GeneratedCodeInfo "vec'annotation" (Data.Vector.Vector GeneratedCodeInfo'Annotation) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _GeneratedCodeInfo'annotation+ (\ x__ y__ -> x__ {_GeneratedCodeInfo'annotation = y__}))+ Prelude.id+instance Data.ProtoLens.Message GeneratedCodeInfo where+ messageName _ = Data.Text.pack "google.protobuf.GeneratedCodeInfo"+ fieldsByTag+ = let+ annotation__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "annotation"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor GeneratedCodeInfo'Annotation)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"annotation")) ::+ Data.ProtoLens.FieldDescriptor GeneratedCodeInfo+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 1, annotation__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _GeneratedCodeInfo'_unknownFields+ (\ x__ y__ -> x__ {_GeneratedCodeInfo'_unknownFields = y__})+ defMessage+ = GeneratedCodeInfo'_constructor+ {_GeneratedCodeInfo'annotation = Data.Vector.Generic.empty,+ _GeneratedCodeInfo'_unknownFields = []}+ parseMessage+ = let+ loop ::+ GeneratedCodeInfo+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld GeneratedCodeInfo'Annotation+ -> Data.ProtoLens.Encoding.Bytes.Parser GeneratedCodeInfo+ loop x mutable'annotation+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do frozen'annotation <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'annotation)+ (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields+ (\ !t -> Prelude.reverse t)+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'annotation")+ frozen'annotation+ x))+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 10+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "annotation"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append mutable'annotation y)+ loop x v+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ mutable'annotation+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do mutable'annotation <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ loop Data.ProtoLens.defMessage mutable'annotation)+ "GeneratedCodeInfo"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'annotation") _x))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x))+instance Control.DeepSeq.NFData GeneratedCodeInfo where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_GeneratedCodeInfo'_unknownFields x__)+ (Control.DeepSeq.deepseq (_GeneratedCodeInfo'annotation x__) ())+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.path' @:: Lens' GeneratedCodeInfo'Annotation [Data.Int.Int32]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'path' @:: Lens' GeneratedCodeInfo'Annotation (Data.Vector.Unboxed.Vector Data.Int.Int32)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.sourceFile' @:: Lens' GeneratedCodeInfo'Annotation Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'sourceFile' @:: Lens' GeneratedCodeInfo'Annotation (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.begin' @:: Lens' GeneratedCodeInfo'Annotation Data.Int.Int32@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'begin' @:: Lens' GeneratedCodeInfo'Annotation (Prelude.Maybe Data.Int.Int32)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.end' @:: Lens' GeneratedCodeInfo'Annotation Data.Int.Int32@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'end' @:: Lens' GeneratedCodeInfo'Annotation (Prelude.Maybe Data.Int.Int32)@ -}+data GeneratedCodeInfo'Annotation+ = GeneratedCodeInfo'Annotation'_constructor {_GeneratedCodeInfo'Annotation'path :: !(Data.Vector.Unboxed.Vector Data.Int.Int32),+ _GeneratedCodeInfo'Annotation'sourceFile :: !(Prelude.Maybe Data.Text.Text),+ _GeneratedCodeInfo'Annotation'begin :: !(Prelude.Maybe Data.Int.Int32),+ _GeneratedCodeInfo'Annotation'end :: !(Prelude.Maybe Data.Int.Int32),+ _GeneratedCodeInfo'Annotation'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show GeneratedCodeInfo'Annotation where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField GeneratedCodeInfo'Annotation "path" [Data.Int.Int32] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _GeneratedCodeInfo'Annotation'path+ (\ x__ y__ -> x__ {_GeneratedCodeInfo'Annotation'path = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField GeneratedCodeInfo'Annotation "vec'path" (Data.Vector.Unboxed.Vector Data.Int.Int32) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _GeneratedCodeInfo'Annotation'path+ (\ x__ y__ -> x__ {_GeneratedCodeInfo'Annotation'path = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField GeneratedCodeInfo'Annotation "sourceFile" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _GeneratedCodeInfo'Annotation'sourceFile+ (\ x__ y__+ -> x__ {_GeneratedCodeInfo'Annotation'sourceFile = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField GeneratedCodeInfo'Annotation "maybe'sourceFile" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _GeneratedCodeInfo'Annotation'sourceFile+ (\ x__ y__+ -> x__ {_GeneratedCodeInfo'Annotation'sourceFile = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField GeneratedCodeInfo'Annotation "begin" Data.Int.Int32 where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _GeneratedCodeInfo'Annotation'begin+ (\ x__ y__ -> x__ {_GeneratedCodeInfo'Annotation'begin = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField GeneratedCodeInfo'Annotation "maybe'begin" (Prelude.Maybe Data.Int.Int32) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _GeneratedCodeInfo'Annotation'begin+ (\ x__ y__ -> x__ {_GeneratedCodeInfo'Annotation'begin = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField GeneratedCodeInfo'Annotation "end" Data.Int.Int32 where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _GeneratedCodeInfo'Annotation'end+ (\ x__ y__ -> x__ {_GeneratedCodeInfo'Annotation'end = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField GeneratedCodeInfo'Annotation "maybe'end" (Prelude.Maybe Data.Int.Int32) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _GeneratedCodeInfo'Annotation'end+ (\ x__ y__ -> x__ {_GeneratedCodeInfo'Annotation'end = y__}))+ Prelude.id+instance Data.ProtoLens.Message GeneratedCodeInfo'Annotation where+ messageName _+ = Data.Text.pack "google.protobuf.GeneratedCodeInfo.Annotation"+ fieldsByTag+ = let+ path__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "path"+ (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Packed (Data.ProtoLens.Field.field @"path")) ::+ Data.ProtoLens.FieldDescriptor GeneratedCodeInfo'Annotation+ sourceFile__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "source_file"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'sourceFile")) ::+ Data.ProtoLens.FieldDescriptor GeneratedCodeInfo'Annotation+ begin__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "begin"+ (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'begin")) ::+ Data.ProtoLens.FieldDescriptor GeneratedCodeInfo'Annotation+ end__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "end"+ (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'end")) ::+ Data.ProtoLens.FieldDescriptor GeneratedCodeInfo'Annotation+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 1, path__field_descriptor),+ (Data.ProtoLens.Tag 2, sourceFile__field_descriptor),+ (Data.ProtoLens.Tag 3, begin__field_descriptor),+ (Data.ProtoLens.Tag 4, end__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _GeneratedCodeInfo'Annotation'_unknownFields+ (\ x__ y__+ -> x__ {_GeneratedCodeInfo'Annotation'_unknownFields = y__})+ defMessage+ = GeneratedCodeInfo'Annotation'_constructor+ {_GeneratedCodeInfo'Annotation'path = Data.Vector.Generic.empty,+ _GeneratedCodeInfo'Annotation'sourceFile = Prelude.Nothing,+ _GeneratedCodeInfo'Annotation'begin = Prelude.Nothing,+ _GeneratedCodeInfo'Annotation'end = Prelude.Nothing,+ _GeneratedCodeInfo'Annotation'_unknownFields = []}+ parseMessage+ = let+ loop ::+ GeneratedCodeInfo'Annotation+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Unboxed.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Int.Int32+ -> Data.ProtoLens.Encoding.Bytes.Parser GeneratedCodeInfo'Annotation+ loop x mutable'path+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do frozen'path <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'path)+ (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields+ (\ !t -> Prelude.reverse t)+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'path") frozen'path x))+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 8 -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt)+ "path"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append mutable'path y)+ loop x v+ 10+ -> do y <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ ((let+ ploop qs+ = do packedEnd <- Data.ProtoLens.Encoding.Bytes.atEnd+ if packedEnd then+ Prelude.return qs+ else+ do !q <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt)+ "path"+ qs' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append+ qs q)+ ploop qs'+ in ploop)+ mutable'path)+ loop x y+ 18+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "source_file"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"sourceFile") y x)+ mutable'path+ 24+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt)+ "begin"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"begin") y x)+ mutable'path+ 32+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt)+ "end"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"end") y x)+ mutable'path+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ mutable'path+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do mutable'path <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ loop Data.ProtoLens.defMessage mutable'path)+ "Annotation"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (let+ p = Lens.Family2.view (Data.ProtoLens.Field.field @"vec'path") _x+ in+ if Data.Vector.Generic.null p then+ Data.Monoid.mempty+ else+ (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+ ((\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ (Data.ProtoLens.Encoding.Bytes.runBuilder+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+ p))))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'sourceFile") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'begin") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 24)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'end") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 32)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))+instance Control.DeepSeq.NFData GeneratedCodeInfo'Annotation where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_GeneratedCodeInfo'Annotation'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_GeneratedCodeInfo'Annotation'path x__)+ (Control.DeepSeq.deepseq+ (_GeneratedCodeInfo'Annotation'sourceFile x__)+ (Control.DeepSeq.deepseq+ (_GeneratedCodeInfo'Annotation'begin x__)+ (Control.DeepSeq.deepseq+ (_GeneratedCodeInfo'Annotation'end x__) ()))))+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.messageSetWireFormat' @:: Lens' MessageOptions Prelude.Bool@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'messageSetWireFormat' @:: Lens' MessageOptions (Prelude.Maybe Prelude.Bool)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.noStandardDescriptorAccessor' @:: Lens' MessageOptions Prelude.Bool@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'noStandardDescriptorAccessor' @:: Lens' MessageOptions (Prelude.Maybe Prelude.Bool)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.deprecated' @:: Lens' MessageOptions Prelude.Bool@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'deprecated' @:: Lens' MessageOptions (Prelude.Maybe Prelude.Bool)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.mapEntry' @:: Lens' MessageOptions Prelude.Bool@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'mapEntry' @:: Lens' MessageOptions (Prelude.Maybe Prelude.Bool)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.uninterpretedOption' @:: Lens' MessageOptions [UninterpretedOption]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'uninterpretedOption' @:: Lens' MessageOptions (Data.Vector.Vector UninterpretedOption)@ -}+data MessageOptions+ = MessageOptions'_constructor {_MessageOptions'messageSetWireFormat :: !(Prelude.Maybe Prelude.Bool),+ _MessageOptions'noStandardDescriptorAccessor :: !(Prelude.Maybe Prelude.Bool),+ _MessageOptions'deprecated :: !(Prelude.Maybe Prelude.Bool),+ _MessageOptions'mapEntry :: !(Prelude.Maybe Prelude.Bool),+ _MessageOptions'uninterpretedOption :: !(Data.Vector.Vector UninterpretedOption),+ _MessageOptions'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show MessageOptions where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField MessageOptions "messageSetWireFormat" Prelude.Bool where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MessageOptions'messageSetWireFormat+ (\ x__ y__ -> x__ {_MessageOptions'messageSetWireFormat = y__}))+ (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField MessageOptions "maybe'messageSetWireFormat" (Prelude.Maybe Prelude.Bool) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MessageOptions'messageSetWireFormat+ (\ x__ y__ -> x__ {_MessageOptions'messageSetWireFormat = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField MessageOptions "noStandardDescriptorAccessor" Prelude.Bool where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MessageOptions'noStandardDescriptorAccessor+ (\ x__ y__+ -> x__ {_MessageOptions'noStandardDescriptorAccessor = y__}))+ (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField MessageOptions "maybe'noStandardDescriptorAccessor" (Prelude.Maybe Prelude.Bool) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MessageOptions'noStandardDescriptorAccessor+ (\ x__ y__+ -> x__ {_MessageOptions'noStandardDescriptorAccessor = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField MessageOptions "deprecated" Prelude.Bool where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MessageOptions'deprecated+ (\ x__ y__ -> x__ {_MessageOptions'deprecated = y__}))+ (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField MessageOptions "maybe'deprecated" (Prelude.Maybe Prelude.Bool) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MessageOptions'deprecated+ (\ x__ y__ -> x__ {_MessageOptions'deprecated = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField MessageOptions "mapEntry" Prelude.Bool where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MessageOptions'mapEntry+ (\ x__ y__ -> x__ {_MessageOptions'mapEntry = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField MessageOptions "maybe'mapEntry" (Prelude.Maybe Prelude.Bool) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MessageOptions'mapEntry+ (\ x__ y__ -> x__ {_MessageOptions'mapEntry = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField MessageOptions "uninterpretedOption" [UninterpretedOption] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MessageOptions'uninterpretedOption+ (\ x__ y__ -> x__ {_MessageOptions'uninterpretedOption = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField MessageOptions "vec'uninterpretedOption" (Data.Vector.Vector UninterpretedOption) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MessageOptions'uninterpretedOption+ (\ x__ y__ -> x__ {_MessageOptions'uninterpretedOption = y__}))+ Prelude.id+instance Data.ProtoLens.Message MessageOptions where+ messageName _ = Data.Text.pack "google.protobuf.MessageOptions"+ fieldsByTag+ = let+ messageSetWireFormat__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "message_set_wire_format"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'messageSetWireFormat")) ::+ Data.ProtoLens.FieldDescriptor MessageOptions+ noStandardDescriptorAccessor__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "no_standard_descriptor_accessor"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field+ @"maybe'noStandardDescriptorAccessor")) ::+ Data.ProtoLens.FieldDescriptor MessageOptions+ deprecated__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "deprecated"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'deprecated")) ::+ Data.ProtoLens.FieldDescriptor MessageOptions+ mapEntry__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "map_entry"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'mapEntry")) ::+ Data.ProtoLens.FieldDescriptor MessageOptions+ uninterpretedOption__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "uninterpreted_option"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor UninterpretedOption)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"uninterpretedOption")) ::+ Data.ProtoLens.FieldDescriptor MessageOptions+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 1, messageSetWireFormat__field_descriptor),+ (Data.ProtoLens.Tag 2, + noStandardDescriptorAccessor__field_descriptor),+ (Data.ProtoLens.Tag 3, deprecated__field_descriptor),+ (Data.ProtoLens.Tag 7, mapEntry__field_descriptor),+ (Data.ProtoLens.Tag 999, uninterpretedOption__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _MessageOptions'_unknownFields+ (\ x__ y__ -> x__ {_MessageOptions'_unknownFields = y__})+ defMessage+ = MessageOptions'_constructor+ {_MessageOptions'messageSetWireFormat = Prelude.Nothing,+ _MessageOptions'noStandardDescriptorAccessor = Prelude.Nothing,+ _MessageOptions'deprecated = Prelude.Nothing,+ _MessageOptions'mapEntry = Prelude.Nothing,+ _MessageOptions'uninterpretedOption = Data.Vector.Generic.empty,+ _MessageOptions'_unknownFields = []}+ parseMessage+ = let+ loop ::+ MessageOptions+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld UninterpretedOption+ -> Data.ProtoLens.Encoding.Bytes.Parser MessageOptions+ loop x mutable'uninterpretedOption+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do frozen'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'uninterpretedOption)+ (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields+ (\ !t -> Prelude.reverse t)+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'uninterpretedOption")+ frozen'uninterpretedOption+ x))+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 8 -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+ "message_set_wire_format"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"messageSetWireFormat") y x)+ mutable'uninterpretedOption+ 16+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+ "no_standard_descriptor_accessor"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"noStandardDescriptorAccessor")+ y+ x)+ mutable'uninterpretedOption+ 24+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+ "deprecated"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"deprecated") y x)+ mutable'uninterpretedOption+ 56+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+ "map_entry"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"mapEntry") y x)+ mutable'uninterpretedOption+ 7994+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "uninterpreted_option"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append+ mutable'uninterpretedOption y)+ loop x v+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ mutable'uninterpretedOption+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do mutable'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ loop Data.ProtoLens.defMessage mutable'uninterpretedOption)+ "MessageOptions"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'messageSetWireFormat") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 8)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ (\ b -> if b then 1 else 0)+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'noStandardDescriptorAccessor")+ _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 16)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ (\ b -> if b then 1 else 0)+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'deprecated") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 24)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ (\ b -> if b then 1 else 0)+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'mapEntry") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 56)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ (\ b -> if b then 1 else 0)+ _v))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 7994)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'uninterpretedOption") _x))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))+instance Control.DeepSeq.NFData MessageOptions where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_MessageOptions'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_MessageOptions'messageSetWireFormat x__)+ (Control.DeepSeq.deepseq+ (_MessageOptions'noStandardDescriptorAccessor x__)+ (Control.DeepSeq.deepseq+ (_MessageOptions'deprecated x__)+ (Control.DeepSeq.deepseq+ (_MessageOptions'mapEntry x__)+ (Control.DeepSeq.deepseq+ (_MessageOptions'uninterpretedOption x__) ())))))+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.name' @:: Lens' MethodDescriptorProto Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'name' @:: Lens' MethodDescriptorProto (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.inputType' @:: Lens' MethodDescriptorProto Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'inputType' @:: Lens' MethodDescriptorProto (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.outputType' @:: Lens' MethodDescriptorProto Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'outputType' @:: Lens' MethodDescriptorProto (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.options' @:: Lens' MethodDescriptorProto MethodOptions@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'options' @:: Lens' MethodDescriptorProto (Prelude.Maybe MethodOptions)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.clientStreaming' @:: Lens' MethodDescriptorProto Prelude.Bool@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'clientStreaming' @:: Lens' MethodDescriptorProto (Prelude.Maybe Prelude.Bool)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.serverStreaming' @:: Lens' MethodDescriptorProto Prelude.Bool@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'serverStreaming' @:: Lens' MethodDescriptorProto (Prelude.Maybe Prelude.Bool)@ -}+data MethodDescriptorProto+ = MethodDescriptorProto'_constructor {_MethodDescriptorProto'name :: !(Prelude.Maybe Data.Text.Text),+ _MethodDescriptorProto'inputType :: !(Prelude.Maybe Data.Text.Text),+ _MethodDescriptorProto'outputType :: !(Prelude.Maybe Data.Text.Text),+ _MethodDescriptorProto'options :: !(Prelude.Maybe MethodOptions),+ _MethodDescriptorProto'clientStreaming :: !(Prelude.Maybe Prelude.Bool),+ _MethodDescriptorProto'serverStreaming :: !(Prelude.Maybe Prelude.Bool),+ _MethodDescriptorProto'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show MethodDescriptorProto where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField MethodDescriptorProto "name" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MethodDescriptorProto'name+ (\ x__ y__ -> x__ {_MethodDescriptorProto'name = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField MethodDescriptorProto "maybe'name" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MethodDescriptorProto'name+ (\ x__ y__ -> x__ {_MethodDescriptorProto'name = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField MethodDescriptorProto "inputType" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MethodDescriptorProto'inputType+ (\ x__ y__ -> x__ {_MethodDescriptorProto'inputType = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField MethodDescriptorProto "maybe'inputType" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MethodDescriptorProto'inputType+ (\ x__ y__ -> x__ {_MethodDescriptorProto'inputType = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField MethodDescriptorProto "outputType" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MethodDescriptorProto'outputType+ (\ x__ y__ -> x__ {_MethodDescriptorProto'outputType = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField MethodDescriptorProto "maybe'outputType" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MethodDescriptorProto'outputType+ (\ x__ y__ -> x__ {_MethodDescriptorProto'outputType = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField MethodDescriptorProto "options" MethodOptions where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MethodDescriptorProto'options+ (\ x__ y__ -> x__ {_MethodDescriptorProto'options = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField MethodDescriptorProto "maybe'options" (Prelude.Maybe MethodOptions) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MethodDescriptorProto'options+ (\ x__ y__ -> x__ {_MethodDescriptorProto'options = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField MethodDescriptorProto "clientStreaming" Prelude.Bool where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MethodDescriptorProto'clientStreaming+ (\ x__ y__ -> x__ {_MethodDescriptorProto'clientStreaming = y__}))+ (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField MethodDescriptorProto "maybe'clientStreaming" (Prelude.Maybe Prelude.Bool) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MethodDescriptorProto'clientStreaming+ (\ x__ y__ -> x__ {_MethodDescriptorProto'clientStreaming = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField MethodDescriptorProto "serverStreaming" Prelude.Bool where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MethodDescriptorProto'serverStreaming+ (\ x__ y__ -> x__ {_MethodDescriptorProto'serverStreaming = y__}))+ (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField MethodDescriptorProto "maybe'serverStreaming" (Prelude.Maybe Prelude.Bool) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MethodDescriptorProto'serverStreaming+ (\ x__ y__ -> x__ {_MethodDescriptorProto'serverStreaming = y__}))+ Prelude.id+instance Data.ProtoLens.Message MethodDescriptorProto where+ messageName _+ = Data.Text.pack "google.protobuf.MethodDescriptorProto"+ fieldsByTag+ = let+ name__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "name"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'name")) ::+ Data.ProtoLens.FieldDescriptor MethodDescriptorProto+ inputType__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "input_type"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'inputType")) ::+ Data.ProtoLens.FieldDescriptor MethodDescriptorProto+ outputType__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "output_type"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'outputType")) ::+ Data.ProtoLens.FieldDescriptor MethodDescriptorProto+ options__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "options"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor MethodOptions)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'options")) ::+ Data.ProtoLens.FieldDescriptor MethodDescriptorProto+ clientStreaming__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "client_streaming"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'clientStreaming")) ::+ Data.ProtoLens.FieldDescriptor MethodDescriptorProto+ serverStreaming__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "server_streaming"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'serverStreaming")) ::+ Data.ProtoLens.FieldDescriptor MethodDescriptorProto+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 1, name__field_descriptor),+ (Data.ProtoLens.Tag 2, inputType__field_descriptor),+ (Data.ProtoLens.Tag 3, outputType__field_descriptor),+ (Data.ProtoLens.Tag 4, options__field_descriptor),+ (Data.ProtoLens.Tag 5, clientStreaming__field_descriptor),+ (Data.ProtoLens.Tag 6, serverStreaming__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _MethodDescriptorProto'_unknownFields+ (\ x__ y__ -> x__ {_MethodDescriptorProto'_unknownFields = y__})+ defMessage+ = MethodDescriptorProto'_constructor+ {_MethodDescriptorProto'name = Prelude.Nothing,+ _MethodDescriptorProto'inputType = Prelude.Nothing,+ _MethodDescriptorProto'outputType = Prelude.Nothing,+ _MethodDescriptorProto'options = Prelude.Nothing,+ _MethodDescriptorProto'clientStreaming = Prelude.Nothing,+ _MethodDescriptorProto'serverStreaming = Prelude.Nothing,+ _MethodDescriptorProto'_unknownFields = []}+ parseMessage+ = let+ loop ::+ MethodDescriptorProto+ -> Data.ProtoLens.Encoding.Bytes.Parser MethodDescriptorProto+ loop x+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 10+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "name"+ loop (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)+ 18+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "input_type"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"inputType") y x)+ 26+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "output_type"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"outputType") y x)+ 34+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+ "options"+ loop (Lens.Family2.set (Data.ProtoLens.Field.field @"options") y x)+ 40+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+ "client_streaming"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"clientStreaming") y x)+ 48+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+ "server_streaming"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"serverStreaming") y x)+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do loop Data.ProtoLens.defMessage) "MethodDescriptorProto"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'name") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'inputType") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'outputType") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 26)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'options") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 34)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'clientStreaming") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 40)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ (\ b -> if b then 1 else 0)+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'serverStreaming") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 48)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ (\ b -> if b then 1 else 0)+ _v))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x)))))))+instance Control.DeepSeq.NFData MethodDescriptorProto where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_MethodDescriptorProto'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_MethodDescriptorProto'name x__)+ (Control.DeepSeq.deepseq+ (_MethodDescriptorProto'inputType x__)+ (Control.DeepSeq.deepseq+ (_MethodDescriptorProto'outputType x__)+ (Control.DeepSeq.deepseq+ (_MethodDescriptorProto'options x__)+ (Control.DeepSeq.deepseq+ (_MethodDescriptorProto'clientStreaming x__)+ (Control.DeepSeq.deepseq+ (_MethodDescriptorProto'serverStreaming x__) ()))))))+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.deprecated' @:: Lens' MethodOptions Prelude.Bool@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'deprecated' @:: Lens' MethodOptions (Prelude.Maybe Prelude.Bool)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.idempotencyLevel' @:: Lens' MethodOptions MethodOptions'IdempotencyLevel@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'idempotencyLevel' @:: Lens' MethodOptions (Prelude.Maybe MethodOptions'IdempotencyLevel)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.uninterpretedOption' @:: Lens' MethodOptions [UninterpretedOption]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'uninterpretedOption' @:: Lens' MethodOptions (Data.Vector.Vector UninterpretedOption)@ -}+data MethodOptions+ = MethodOptions'_constructor {_MethodOptions'deprecated :: !(Prelude.Maybe Prelude.Bool),+ _MethodOptions'idempotencyLevel :: !(Prelude.Maybe MethodOptions'IdempotencyLevel),+ _MethodOptions'uninterpretedOption :: !(Data.Vector.Vector UninterpretedOption),+ _MethodOptions'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show MethodOptions where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField MethodOptions "deprecated" Prelude.Bool where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MethodOptions'deprecated+ (\ x__ y__ -> x__ {_MethodOptions'deprecated = y__}))+ (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField MethodOptions "maybe'deprecated" (Prelude.Maybe Prelude.Bool) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MethodOptions'deprecated+ (\ x__ y__ -> x__ {_MethodOptions'deprecated = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField MethodOptions "idempotencyLevel" MethodOptions'IdempotencyLevel where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MethodOptions'idempotencyLevel+ (\ x__ y__ -> x__ {_MethodOptions'idempotencyLevel = y__}))+ (Data.ProtoLens.maybeLens MethodOptions'IDEMPOTENCY_UNKNOWN)+instance Data.ProtoLens.Field.HasField MethodOptions "maybe'idempotencyLevel" (Prelude.Maybe MethodOptions'IdempotencyLevel) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MethodOptions'idempotencyLevel+ (\ x__ y__ -> x__ {_MethodOptions'idempotencyLevel = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField MethodOptions "uninterpretedOption" [UninterpretedOption] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MethodOptions'uninterpretedOption+ (\ x__ y__ -> x__ {_MethodOptions'uninterpretedOption = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField MethodOptions "vec'uninterpretedOption" (Data.Vector.Vector UninterpretedOption) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _MethodOptions'uninterpretedOption+ (\ x__ y__ -> x__ {_MethodOptions'uninterpretedOption = y__}))+ Prelude.id+instance Data.ProtoLens.Message MethodOptions where+ messageName _ = Data.Text.pack "google.protobuf.MethodOptions"+ fieldsByTag+ = let+ deprecated__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "deprecated"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'deprecated")) ::+ Data.ProtoLens.FieldDescriptor MethodOptions+ idempotencyLevel__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "idempotency_level"+ (Data.ProtoLens.ScalarField Data.ProtoLens.EnumField ::+ Data.ProtoLens.FieldTypeDescriptor MethodOptions'IdempotencyLevel)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'idempotencyLevel")) ::+ Data.ProtoLens.FieldDescriptor MethodOptions+ uninterpretedOption__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "uninterpreted_option"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor UninterpretedOption)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"uninterpretedOption")) ::+ Data.ProtoLens.FieldDescriptor MethodOptions+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 33, deprecated__field_descriptor),+ (Data.ProtoLens.Tag 34, idempotencyLevel__field_descriptor),+ (Data.ProtoLens.Tag 999, uninterpretedOption__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _MethodOptions'_unknownFields+ (\ x__ y__ -> x__ {_MethodOptions'_unknownFields = y__})+ defMessage+ = MethodOptions'_constructor+ {_MethodOptions'deprecated = Prelude.Nothing,+ _MethodOptions'idempotencyLevel = Prelude.Nothing,+ _MethodOptions'uninterpretedOption = Data.Vector.Generic.empty,+ _MethodOptions'_unknownFields = []}+ parseMessage+ = let+ loop ::+ MethodOptions+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld UninterpretedOption+ -> Data.ProtoLens.Encoding.Bytes.Parser MethodOptions+ loop x mutable'uninterpretedOption+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do frozen'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'uninterpretedOption)+ (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields+ (\ !t -> Prelude.reverse t)+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'uninterpretedOption")+ frozen'uninterpretedOption+ x))+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 264+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+ "deprecated"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"deprecated") y x)+ mutable'uninterpretedOption+ 272+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.toEnum+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt))+ "idempotency_level"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"idempotencyLevel") y x)+ mutable'uninterpretedOption+ 7994+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "uninterpreted_option"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append+ mutable'uninterpretedOption y)+ loop x v+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ mutable'uninterpretedOption+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do mutable'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ loop Data.ProtoLens.defMessage mutable'uninterpretedOption)+ "MethodOptions"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'deprecated") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 264)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ (\ b -> if b then 1 else 0)+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'idempotencyLevel") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 272)+ ((Prelude..)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+ Prelude.fromEnum+ _v))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 7994)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'uninterpretedOption") _x))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x))))+instance Control.DeepSeq.NFData MethodOptions where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_MethodOptions'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_MethodOptions'deprecated x__)+ (Control.DeepSeq.deepseq+ (_MethodOptions'idempotencyLevel x__)+ (Control.DeepSeq.deepseq+ (_MethodOptions'uninterpretedOption x__) ())))+data MethodOptions'IdempotencyLevel+ = MethodOptions'IDEMPOTENCY_UNKNOWN |+ MethodOptions'NO_SIDE_EFFECTS |+ MethodOptions'IDEMPOTENT+ deriving (Prelude.Show, Prelude.Eq, Prelude.Ord)+instance Data.ProtoLens.MessageEnum MethodOptions'IdempotencyLevel where+ maybeToEnum 0 = Prelude.Just MethodOptions'IDEMPOTENCY_UNKNOWN+ maybeToEnum 1 = Prelude.Just MethodOptions'NO_SIDE_EFFECTS+ maybeToEnum 2 = Prelude.Just MethodOptions'IDEMPOTENT+ maybeToEnum _ = Prelude.Nothing+ showEnum MethodOptions'IDEMPOTENCY_UNKNOWN = "IDEMPOTENCY_UNKNOWN"+ showEnum MethodOptions'NO_SIDE_EFFECTS = "NO_SIDE_EFFECTS"+ showEnum MethodOptions'IDEMPOTENT = "IDEMPOTENT"+ readEnum k+ | (Prelude.==) k "IDEMPOTENCY_UNKNOWN"+ = Prelude.Just MethodOptions'IDEMPOTENCY_UNKNOWN+ | (Prelude.==) k "NO_SIDE_EFFECTS"+ = Prelude.Just MethodOptions'NO_SIDE_EFFECTS+ | (Prelude.==) k "IDEMPOTENT"+ = Prelude.Just MethodOptions'IDEMPOTENT+ | Prelude.otherwise+ = (Prelude.>>=) (Text.Read.readMaybe k) Data.ProtoLens.maybeToEnum+instance Prelude.Bounded MethodOptions'IdempotencyLevel where+ minBound = MethodOptions'IDEMPOTENCY_UNKNOWN+ maxBound = MethodOptions'IDEMPOTENT+instance Prelude.Enum MethodOptions'IdempotencyLevel where+ toEnum k__+ = Prelude.maybe+ (Prelude.error+ ((Prelude.++)+ "toEnum: unknown value for enum IdempotencyLevel: "+ (Prelude.show k__)))+ Prelude.id+ (Data.ProtoLens.maybeToEnum k__)+ fromEnum MethodOptions'IDEMPOTENCY_UNKNOWN = 0+ fromEnum MethodOptions'NO_SIDE_EFFECTS = 1+ fromEnum MethodOptions'IDEMPOTENT = 2+ succ MethodOptions'IDEMPOTENT+ = Prelude.error+ "MethodOptions'IdempotencyLevel.succ: bad argument MethodOptions'IDEMPOTENT. This value would be out of bounds."+ succ MethodOptions'IDEMPOTENCY_UNKNOWN+ = MethodOptions'NO_SIDE_EFFECTS+ succ MethodOptions'NO_SIDE_EFFECTS = MethodOptions'IDEMPOTENT+ pred MethodOptions'IDEMPOTENCY_UNKNOWN+ = Prelude.error+ "MethodOptions'IdempotencyLevel.pred: bad argument MethodOptions'IDEMPOTENCY_UNKNOWN. This value would be out of bounds."+ pred MethodOptions'NO_SIDE_EFFECTS+ = MethodOptions'IDEMPOTENCY_UNKNOWN+ pred MethodOptions'IDEMPOTENT = MethodOptions'NO_SIDE_EFFECTS+ enumFrom = Data.ProtoLens.Message.Enum.messageEnumFrom+ enumFromTo = Data.ProtoLens.Message.Enum.messageEnumFromTo+ enumFromThen = Data.ProtoLens.Message.Enum.messageEnumFromThen+ enumFromThenTo = Data.ProtoLens.Message.Enum.messageEnumFromThenTo+instance Data.ProtoLens.FieldDefault MethodOptions'IdempotencyLevel where+ fieldDefault = MethodOptions'IDEMPOTENCY_UNKNOWN+instance Control.DeepSeq.NFData MethodOptions'IdempotencyLevel where+ rnf x__ = Prelude.seq x__ ()+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.name' @:: Lens' OneofDescriptorProto Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'name' @:: Lens' OneofDescriptorProto (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.options' @:: Lens' OneofDescriptorProto OneofOptions@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'options' @:: Lens' OneofDescriptorProto (Prelude.Maybe OneofOptions)@ -}+data OneofDescriptorProto+ = OneofDescriptorProto'_constructor {_OneofDescriptorProto'name :: !(Prelude.Maybe Data.Text.Text),+ _OneofDescriptorProto'options :: !(Prelude.Maybe OneofOptions),+ _OneofDescriptorProto'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show OneofDescriptorProto where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField OneofDescriptorProto "name" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _OneofDescriptorProto'name+ (\ x__ y__ -> x__ {_OneofDescriptorProto'name = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField OneofDescriptorProto "maybe'name" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _OneofDescriptorProto'name+ (\ x__ y__ -> x__ {_OneofDescriptorProto'name = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField OneofDescriptorProto "options" OneofOptions where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _OneofDescriptorProto'options+ (\ x__ y__ -> x__ {_OneofDescriptorProto'options = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField OneofDescriptorProto "maybe'options" (Prelude.Maybe OneofOptions) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _OneofDescriptorProto'options+ (\ x__ y__ -> x__ {_OneofDescriptorProto'options = y__}))+ Prelude.id+instance Data.ProtoLens.Message OneofDescriptorProto where+ messageName _+ = Data.Text.pack "google.protobuf.OneofDescriptorProto"+ fieldsByTag+ = let+ name__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "name"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'name")) ::+ Data.ProtoLens.FieldDescriptor OneofDescriptorProto+ options__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "options"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor OneofOptions)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'options")) ::+ Data.ProtoLens.FieldDescriptor OneofDescriptorProto+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 1, name__field_descriptor),+ (Data.ProtoLens.Tag 2, options__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _OneofDescriptorProto'_unknownFields+ (\ x__ y__ -> x__ {_OneofDescriptorProto'_unknownFields = y__})+ defMessage+ = OneofDescriptorProto'_constructor+ {_OneofDescriptorProto'name = Prelude.Nothing,+ _OneofDescriptorProto'options = Prelude.Nothing,+ _OneofDescriptorProto'_unknownFields = []}+ parseMessage+ = let+ loop ::+ OneofDescriptorProto+ -> Data.ProtoLens.Encoding.Bytes.Parser OneofDescriptorProto+ loop x+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 10+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "name"+ loop (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)+ 18+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+ "options"+ loop (Lens.Family2.set (Data.ProtoLens.Field.field @"options") y x)+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do loop Data.ProtoLens.defMessage) "OneofDescriptorProto"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'name") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'options") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x)))+instance Control.DeepSeq.NFData OneofDescriptorProto where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_OneofDescriptorProto'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_OneofDescriptorProto'name x__)+ (Control.DeepSeq.deepseq (_OneofDescriptorProto'options x__) ()))+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.uninterpretedOption' @:: Lens' OneofOptions [UninterpretedOption]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'uninterpretedOption' @:: Lens' OneofOptions (Data.Vector.Vector UninterpretedOption)@ -}+data OneofOptions+ = OneofOptions'_constructor {_OneofOptions'uninterpretedOption :: !(Data.Vector.Vector UninterpretedOption),+ _OneofOptions'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show OneofOptions where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField OneofOptions "uninterpretedOption" [UninterpretedOption] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _OneofOptions'uninterpretedOption+ (\ x__ y__ -> x__ {_OneofOptions'uninterpretedOption = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField OneofOptions "vec'uninterpretedOption" (Data.Vector.Vector UninterpretedOption) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _OneofOptions'uninterpretedOption+ (\ x__ y__ -> x__ {_OneofOptions'uninterpretedOption = y__}))+ Prelude.id+instance Data.ProtoLens.Message OneofOptions where+ messageName _ = Data.Text.pack "google.protobuf.OneofOptions"+ fieldsByTag+ = let+ uninterpretedOption__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "uninterpreted_option"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor UninterpretedOption)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"uninterpretedOption")) ::+ Data.ProtoLens.FieldDescriptor OneofOptions+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 999, uninterpretedOption__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _OneofOptions'_unknownFields+ (\ x__ y__ -> x__ {_OneofOptions'_unknownFields = y__})+ defMessage+ = OneofOptions'_constructor+ {_OneofOptions'uninterpretedOption = Data.Vector.Generic.empty,+ _OneofOptions'_unknownFields = []}+ parseMessage+ = let+ loop ::+ OneofOptions+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld UninterpretedOption+ -> Data.ProtoLens.Encoding.Bytes.Parser OneofOptions+ loop x mutable'uninterpretedOption+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do frozen'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'uninterpretedOption)+ (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields+ (\ !t -> Prelude.reverse t)+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'uninterpretedOption")+ frozen'uninterpretedOption+ x))+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 7994+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "uninterpreted_option"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append+ mutable'uninterpretedOption y)+ loop x v+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ mutable'uninterpretedOption+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do mutable'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ loop Data.ProtoLens.defMessage mutable'uninterpretedOption)+ "OneofOptions"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 7994)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'uninterpretedOption") _x))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x))+instance Control.DeepSeq.NFData OneofOptions where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_OneofOptions'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_OneofOptions'uninterpretedOption x__) ())+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.name' @:: Lens' ServiceDescriptorProto Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'name' @:: Lens' ServiceDescriptorProto (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.method' @:: Lens' ServiceDescriptorProto [MethodDescriptorProto]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'method' @:: Lens' ServiceDescriptorProto (Data.Vector.Vector MethodDescriptorProto)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.options' @:: Lens' ServiceDescriptorProto ServiceOptions@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'options' @:: Lens' ServiceDescriptorProto (Prelude.Maybe ServiceOptions)@ -}+data ServiceDescriptorProto+ = ServiceDescriptorProto'_constructor {_ServiceDescriptorProto'name :: !(Prelude.Maybe Data.Text.Text),+ _ServiceDescriptorProto'method :: !(Data.Vector.Vector MethodDescriptorProto),+ _ServiceDescriptorProto'options :: !(Prelude.Maybe ServiceOptions),+ _ServiceDescriptorProto'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show ServiceDescriptorProto where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField ServiceDescriptorProto "name" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _ServiceDescriptorProto'name+ (\ x__ y__ -> x__ {_ServiceDescriptorProto'name = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField ServiceDescriptorProto "maybe'name" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _ServiceDescriptorProto'name+ (\ x__ y__ -> x__ {_ServiceDescriptorProto'name = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField ServiceDescriptorProto "method" [MethodDescriptorProto] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _ServiceDescriptorProto'method+ (\ x__ y__ -> x__ {_ServiceDescriptorProto'method = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField ServiceDescriptorProto "vec'method" (Data.Vector.Vector MethodDescriptorProto) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _ServiceDescriptorProto'method+ (\ x__ y__ -> x__ {_ServiceDescriptorProto'method = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField ServiceDescriptorProto "options" ServiceOptions where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _ServiceDescriptorProto'options+ (\ x__ y__ -> x__ {_ServiceDescriptorProto'options = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField ServiceDescriptorProto "maybe'options" (Prelude.Maybe ServiceOptions) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _ServiceDescriptorProto'options+ (\ x__ y__ -> x__ {_ServiceDescriptorProto'options = y__}))+ Prelude.id+instance Data.ProtoLens.Message ServiceDescriptorProto where+ messageName _+ = Data.Text.pack "google.protobuf.ServiceDescriptorProto"+ fieldsByTag+ = let+ name__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "name"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'name")) ::+ Data.ProtoLens.FieldDescriptor ServiceDescriptorProto+ method__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "method"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor MethodDescriptorProto)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"method")) ::+ Data.ProtoLens.FieldDescriptor ServiceDescriptorProto+ options__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "options"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor ServiceOptions)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'options")) ::+ Data.ProtoLens.FieldDescriptor ServiceDescriptorProto+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 1, name__field_descriptor),+ (Data.ProtoLens.Tag 2, method__field_descriptor),+ (Data.ProtoLens.Tag 3, options__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _ServiceDescriptorProto'_unknownFields+ (\ x__ y__ -> x__ {_ServiceDescriptorProto'_unknownFields = y__})+ defMessage+ = ServiceDescriptorProto'_constructor+ {_ServiceDescriptorProto'name = Prelude.Nothing,+ _ServiceDescriptorProto'method = Data.Vector.Generic.empty,+ _ServiceDescriptorProto'options = Prelude.Nothing,+ _ServiceDescriptorProto'_unknownFields = []}+ parseMessage+ = let+ loop ::+ ServiceDescriptorProto+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld MethodDescriptorProto+ -> Data.ProtoLens.Encoding.Bytes.Parser ServiceDescriptorProto+ loop x mutable'method+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do frozen'method <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'method)+ (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields+ (\ !t -> Prelude.reverse t)+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'method") frozen'method x))+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 10+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "name"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"name") y x)+ mutable'method+ 18+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "method"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append mutable'method y)+ loop x v+ 26+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len) Data.ProtoLens.parseMessage)+ "options"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"options") y x)+ mutable'method+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ mutable'method+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do mutable'method <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ loop Data.ProtoLens.defMessage mutable'method)+ "ServiceDescriptorProto"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'name") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'method") _x))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'options") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 26)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x))))+instance Control.DeepSeq.NFData ServiceDescriptorProto where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_ServiceDescriptorProto'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_ServiceDescriptorProto'name x__)+ (Control.DeepSeq.deepseq+ (_ServiceDescriptorProto'method x__)+ (Control.DeepSeq.deepseq+ (_ServiceDescriptorProto'options x__) ())))+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.deprecated' @:: Lens' ServiceOptions Prelude.Bool@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'deprecated' @:: Lens' ServiceOptions (Prelude.Maybe Prelude.Bool)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.uninterpretedOption' @:: Lens' ServiceOptions [UninterpretedOption]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'uninterpretedOption' @:: Lens' ServiceOptions (Data.Vector.Vector UninterpretedOption)@ -}+data ServiceOptions+ = ServiceOptions'_constructor {_ServiceOptions'deprecated :: !(Prelude.Maybe Prelude.Bool),+ _ServiceOptions'uninterpretedOption :: !(Data.Vector.Vector UninterpretedOption),+ _ServiceOptions'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show ServiceOptions where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField ServiceOptions "deprecated" Prelude.Bool where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _ServiceOptions'deprecated+ (\ x__ y__ -> x__ {_ServiceOptions'deprecated = y__}))+ (Data.ProtoLens.maybeLens Prelude.False)+instance Data.ProtoLens.Field.HasField ServiceOptions "maybe'deprecated" (Prelude.Maybe Prelude.Bool) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _ServiceOptions'deprecated+ (\ x__ y__ -> x__ {_ServiceOptions'deprecated = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField ServiceOptions "uninterpretedOption" [UninterpretedOption] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _ServiceOptions'uninterpretedOption+ (\ x__ y__ -> x__ {_ServiceOptions'uninterpretedOption = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField ServiceOptions "vec'uninterpretedOption" (Data.Vector.Vector UninterpretedOption) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _ServiceOptions'uninterpretedOption+ (\ x__ y__ -> x__ {_ServiceOptions'uninterpretedOption = y__}))+ Prelude.id+instance Data.ProtoLens.Message ServiceOptions where+ messageName _ = Data.Text.pack "google.protobuf.ServiceOptions"+ fieldsByTag+ = let+ deprecated__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "deprecated"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'deprecated")) ::+ Data.ProtoLens.FieldDescriptor ServiceOptions+ uninterpretedOption__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "uninterpreted_option"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor UninterpretedOption)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"uninterpretedOption")) ::+ Data.ProtoLens.FieldDescriptor ServiceOptions+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 33, deprecated__field_descriptor),+ (Data.ProtoLens.Tag 999, uninterpretedOption__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _ServiceOptions'_unknownFields+ (\ x__ y__ -> x__ {_ServiceOptions'_unknownFields = y__})+ defMessage+ = ServiceOptions'_constructor+ {_ServiceOptions'deprecated = Prelude.Nothing,+ _ServiceOptions'uninterpretedOption = Data.Vector.Generic.empty,+ _ServiceOptions'_unknownFields = []}+ parseMessage+ = let+ loop ::+ ServiceOptions+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld UninterpretedOption+ -> Data.ProtoLens.Encoding.Bytes.Parser ServiceOptions+ loop x mutable'uninterpretedOption+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do frozen'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'uninterpretedOption)+ (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields+ (\ !t -> Prelude.reverse t)+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'uninterpretedOption")+ frozen'uninterpretedOption+ x))+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 264+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+ "deprecated"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"deprecated") y x)+ mutable'uninterpretedOption+ 7994+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "uninterpreted_option"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append+ mutable'uninterpretedOption y)+ loop x v+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ mutable'uninterpretedOption+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do mutable'uninterpretedOption <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ loop Data.ProtoLens.defMessage mutable'uninterpretedOption)+ "ServiceOptions"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'deprecated") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 264)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ (\ b -> if b then 1 else 0)+ _v))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 7994)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'uninterpretedOption") _x))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x)))+instance Control.DeepSeq.NFData ServiceOptions where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_ServiceOptions'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_ServiceOptions'deprecated x__)+ (Control.DeepSeq.deepseq+ (_ServiceOptions'uninterpretedOption x__) ()))+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.location' @:: Lens' SourceCodeInfo [SourceCodeInfo'Location]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'location' @:: Lens' SourceCodeInfo (Data.Vector.Vector SourceCodeInfo'Location)@ -}+data SourceCodeInfo+ = SourceCodeInfo'_constructor {_SourceCodeInfo'location :: !(Data.Vector.Vector SourceCodeInfo'Location),+ _SourceCodeInfo'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show SourceCodeInfo where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField SourceCodeInfo "location" [SourceCodeInfo'Location] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _SourceCodeInfo'location+ (\ x__ y__ -> x__ {_SourceCodeInfo'location = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField SourceCodeInfo "vec'location" (Data.Vector.Vector SourceCodeInfo'Location) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _SourceCodeInfo'location+ (\ x__ y__ -> x__ {_SourceCodeInfo'location = y__}))+ Prelude.id+instance Data.ProtoLens.Message SourceCodeInfo where+ messageName _ = Data.Text.pack "google.protobuf.SourceCodeInfo"+ fieldsByTag+ = let+ location__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "location"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor SourceCodeInfo'Location)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"location")) ::+ Data.ProtoLens.FieldDescriptor SourceCodeInfo+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 1, location__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _SourceCodeInfo'_unknownFields+ (\ x__ y__ -> x__ {_SourceCodeInfo'_unknownFields = y__})+ defMessage+ = SourceCodeInfo'_constructor+ {_SourceCodeInfo'location = Data.Vector.Generic.empty,+ _SourceCodeInfo'_unknownFields = []}+ parseMessage+ = let+ loop ::+ SourceCodeInfo+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld SourceCodeInfo'Location+ -> Data.ProtoLens.Encoding.Bytes.Parser SourceCodeInfo+ loop x mutable'location+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do frozen'location <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'location)+ (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields+ (\ !t -> Prelude.reverse t)+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'location") frozen'location x))+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 10+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "location"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append mutable'location y)+ loop x v+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ mutable'location+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do mutable'location <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ loop Data.ProtoLens.defMessage mutable'location)+ "SourceCodeInfo"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'location") _x))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x))+instance Control.DeepSeq.NFData SourceCodeInfo where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_SourceCodeInfo'_unknownFields x__)+ (Control.DeepSeq.deepseq (_SourceCodeInfo'location x__) ())+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.path' @:: Lens' SourceCodeInfo'Location [Data.Int.Int32]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'path' @:: Lens' SourceCodeInfo'Location (Data.Vector.Unboxed.Vector Data.Int.Int32)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.span' @:: Lens' SourceCodeInfo'Location [Data.Int.Int32]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'span' @:: Lens' SourceCodeInfo'Location (Data.Vector.Unboxed.Vector Data.Int.Int32)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.leadingComments' @:: Lens' SourceCodeInfo'Location Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'leadingComments' @:: Lens' SourceCodeInfo'Location (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.trailingComments' @:: Lens' SourceCodeInfo'Location Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'trailingComments' @:: Lens' SourceCodeInfo'Location (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.leadingDetachedComments' @:: Lens' SourceCodeInfo'Location [Data.Text.Text]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'leadingDetachedComments' @:: Lens' SourceCodeInfo'Location (Data.Vector.Vector Data.Text.Text)@ -}+data SourceCodeInfo'Location+ = SourceCodeInfo'Location'_constructor {_SourceCodeInfo'Location'path :: !(Data.Vector.Unboxed.Vector Data.Int.Int32),+ _SourceCodeInfo'Location'span :: !(Data.Vector.Unboxed.Vector Data.Int.Int32),+ _SourceCodeInfo'Location'leadingComments :: !(Prelude.Maybe Data.Text.Text),+ _SourceCodeInfo'Location'trailingComments :: !(Prelude.Maybe Data.Text.Text),+ _SourceCodeInfo'Location'leadingDetachedComments :: !(Data.Vector.Vector Data.Text.Text),+ _SourceCodeInfo'Location'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show SourceCodeInfo'Location where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField SourceCodeInfo'Location "path" [Data.Int.Int32] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _SourceCodeInfo'Location'path+ (\ x__ y__ -> x__ {_SourceCodeInfo'Location'path = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField SourceCodeInfo'Location "vec'path" (Data.Vector.Unboxed.Vector Data.Int.Int32) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _SourceCodeInfo'Location'path+ (\ x__ y__ -> x__ {_SourceCodeInfo'Location'path = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField SourceCodeInfo'Location "span" [Data.Int.Int32] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _SourceCodeInfo'Location'span+ (\ x__ y__ -> x__ {_SourceCodeInfo'Location'span = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField SourceCodeInfo'Location "vec'span" (Data.Vector.Unboxed.Vector Data.Int.Int32) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _SourceCodeInfo'Location'span+ (\ x__ y__ -> x__ {_SourceCodeInfo'Location'span = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField SourceCodeInfo'Location "leadingComments" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _SourceCodeInfo'Location'leadingComments+ (\ x__ y__+ -> x__ {_SourceCodeInfo'Location'leadingComments = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField SourceCodeInfo'Location "maybe'leadingComments" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _SourceCodeInfo'Location'leadingComments+ (\ x__ y__+ -> x__ {_SourceCodeInfo'Location'leadingComments = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField SourceCodeInfo'Location "trailingComments" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _SourceCodeInfo'Location'trailingComments+ (\ x__ y__+ -> x__ {_SourceCodeInfo'Location'trailingComments = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField SourceCodeInfo'Location "maybe'trailingComments" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _SourceCodeInfo'Location'trailingComments+ (\ x__ y__+ -> x__ {_SourceCodeInfo'Location'trailingComments = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField SourceCodeInfo'Location "leadingDetachedComments" [Data.Text.Text] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _SourceCodeInfo'Location'leadingDetachedComments+ (\ x__ y__+ -> x__ {_SourceCodeInfo'Location'leadingDetachedComments = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField SourceCodeInfo'Location "vec'leadingDetachedComments" (Data.Vector.Vector Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _SourceCodeInfo'Location'leadingDetachedComments+ (\ x__ y__+ -> x__ {_SourceCodeInfo'Location'leadingDetachedComments = y__}))+ Prelude.id+instance Data.ProtoLens.Message SourceCodeInfo'Location where+ messageName _+ = Data.Text.pack "google.protobuf.SourceCodeInfo.Location"+ fieldsByTag+ = let+ path__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "path"+ (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Packed (Data.ProtoLens.Field.field @"path")) ::+ Data.ProtoLens.FieldDescriptor SourceCodeInfo'Location+ span__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "span"+ (Data.ProtoLens.ScalarField Data.ProtoLens.Int32Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int32)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Packed (Data.ProtoLens.Field.field @"span")) ::+ Data.ProtoLens.FieldDescriptor SourceCodeInfo'Location+ leadingComments__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "leading_comments"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'leadingComments")) ::+ Data.ProtoLens.FieldDescriptor SourceCodeInfo'Location+ trailingComments__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "trailing_comments"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'trailingComments")) ::+ Data.ProtoLens.FieldDescriptor SourceCodeInfo'Location+ leadingDetachedComments__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "leading_detached_comments"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked+ (Data.ProtoLens.Field.field @"leadingDetachedComments")) ::+ Data.ProtoLens.FieldDescriptor SourceCodeInfo'Location+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 1, path__field_descriptor),+ (Data.ProtoLens.Tag 2, span__field_descriptor),+ (Data.ProtoLens.Tag 3, leadingComments__field_descriptor),+ (Data.ProtoLens.Tag 4, trailingComments__field_descriptor),+ (Data.ProtoLens.Tag 6, leadingDetachedComments__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _SourceCodeInfo'Location'_unknownFields+ (\ x__ y__ -> x__ {_SourceCodeInfo'Location'_unknownFields = y__})+ defMessage+ = SourceCodeInfo'Location'_constructor+ {_SourceCodeInfo'Location'path = Data.Vector.Generic.empty,+ _SourceCodeInfo'Location'span = Data.Vector.Generic.empty,+ _SourceCodeInfo'Location'leadingComments = Prelude.Nothing,+ _SourceCodeInfo'Location'trailingComments = Prelude.Nothing,+ _SourceCodeInfo'Location'leadingDetachedComments = Data.Vector.Generic.empty,+ _SourceCodeInfo'Location'_unknownFields = []}+ parseMessage+ = let+ loop ::+ SourceCodeInfo'Location+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Text.Text+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Unboxed.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Int.Int32+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Unboxed.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.Int.Int32+ -> Data.ProtoLens.Encoding.Bytes.Parser SourceCodeInfo'Location+ loop x mutable'leadingDetachedComments mutable'path mutable'span+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do frozen'leadingDetachedComments <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze+ mutable'leadingDetachedComments)+ frozen'path <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'path)+ frozen'span <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'span)+ (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields+ (\ !t -> Prelude.reverse t)+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'leadingDetachedComments")+ frozen'leadingDetachedComments+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'path")+ frozen'path+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'span") frozen'span x))))+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 8 -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt)+ "path"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append mutable'path y)+ loop x mutable'leadingDetachedComments v mutable'span+ 10+ -> do y <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ ((let+ ploop qs+ = do packedEnd <- Data.ProtoLens.Encoding.Bytes.atEnd+ if packedEnd then+ Prelude.return qs+ else+ do !q <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt)+ "path"+ qs' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append+ qs q)+ ploop qs'+ in ploop)+ mutable'path)+ loop x mutable'leadingDetachedComments y mutable'span+ 16+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt)+ "span"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append mutable'span y)+ loop x mutable'leadingDetachedComments mutable'path v+ 18+ -> do y <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ ((let+ ploop qs+ = do packedEnd <- Data.ProtoLens.Encoding.Bytes.atEnd+ if packedEnd then+ Prelude.return qs+ else+ do !q <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt)+ "span"+ qs' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append+ qs q)+ ploop qs'+ in ploop)+ mutable'span)+ loop x mutable'leadingDetachedComments mutable'path y+ 26+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "leading_comments"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"leadingComments") y x)+ mutable'leadingDetachedComments+ mutable'path+ mutable'span+ 34+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "trailing_comments"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"trailingComments") y x)+ mutable'leadingDetachedComments+ mutable'path+ mutable'span+ 50+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "leading_detached_comments"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append+ mutable'leadingDetachedComments y)+ loop x v mutable'path mutable'span+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ mutable'leadingDetachedComments+ mutable'path+ mutable'span+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do mutable'leadingDetachedComments <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ mutable'path <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ mutable'span <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ loop+ Data.ProtoLens.defMessage+ mutable'leadingDetachedComments+ mutable'path+ mutable'span)+ "Location"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (let+ p = Lens.Family2.view (Data.ProtoLens.Field.field @"vec'path") _x+ in+ if Data.Vector.Generic.null p then+ Data.Monoid.mempty+ else+ (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+ ((\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ (Data.ProtoLens.Encoding.Bytes.runBuilder+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+ p))))+ ((Data.Monoid.<>)+ (let+ p = Lens.Family2.view (Data.ProtoLens.Field.field @"vec'span") _x+ in+ if Data.Vector.Generic.null p then+ Data.Monoid.mempty+ else+ (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+ ((\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ (Data.ProtoLens.Encoding.Bytes.runBuilder+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral)+ p))))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'leadingComments") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 26)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'trailingComments") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 34)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 50)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"vec'leadingDetachedComments") _x))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))+instance Control.DeepSeq.NFData SourceCodeInfo'Location where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_SourceCodeInfo'Location'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_SourceCodeInfo'Location'path x__)+ (Control.DeepSeq.deepseq+ (_SourceCodeInfo'Location'span x__)+ (Control.DeepSeq.deepseq+ (_SourceCodeInfo'Location'leadingComments x__)+ (Control.DeepSeq.deepseq+ (_SourceCodeInfo'Location'trailingComments x__)+ (Control.DeepSeq.deepseq+ (_SourceCodeInfo'Location'leadingDetachedComments x__) ())))))+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.name' @:: Lens' UninterpretedOption [UninterpretedOption'NamePart]@+ * 'Proto.Google.Protobuf.Descriptor_Fields.vec'name' @:: Lens' UninterpretedOption (Data.Vector.Vector UninterpretedOption'NamePart)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.identifierValue' @:: Lens' UninterpretedOption Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'identifierValue' @:: Lens' UninterpretedOption (Prelude.Maybe Data.Text.Text)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.positiveIntValue' @:: Lens' UninterpretedOption Data.Word.Word64@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'positiveIntValue' @:: Lens' UninterpretedOption (Prelude.Maybe Data.Word.Word64)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.negativeIntValue' @:: Lens' UninterpretedOption Data.Int.Int64@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'negativeIntValue' @:: Lens' UninterpretedOption (Prelude.Maybe Data.Int.Int64)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.doubleValue' @:: Lens' UninterpretedOption Prelude.Double@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'doubleValue' @:: Lens' UninterpretedOption (Prelude.Maybe Prelude.Double)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.stringValue' @:: Lens' UninterpretedOption Data.ByteString.ByteString@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'stringValue' @:: Lens' UninterpretedOption (Prelude.Maybe Data.ByteString.ByteString)@+ * 'Proto.Google.Protobuf.Descriptor_Fields.aggregateValue' @:: Lens' UninterpretedOption Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.maybe'aggregateValue' @:: Lens' UninterpretedOption (Prelude.Maybe Data.Text.Text)@ -}+data UninterpretedOption+ = UninterpretedOption'_constructor {_UninterpretedOption'name :: !(Data.Vector.Vector UninterpretedOption'NamePart),+ _UninterpretedOption'identifierValue :: !(Prelude.Maybe Data.Text.Text),+ _UninterpretedOption'positiveIntValue :: !(Prelude.Maybe Data.Word.Word64),+ _UninterpretedOption'negativeIntValue :: !(Prelude.Maybe Data.Int.Int64),+ _UninterpretedOption'doubleValue :: !(Prelude.Maybe Prelude.Double),+ _UninterpretedOption'stringValue :: !(Prelude.Maybe Data.ByteString.ByteString),+ _UninterpretedOption'aggregateValue :: !(Prelude.Maybe Data.Text.Text),+ _UninterpretedOption'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show UninterpretedOption where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField UninterpretedOption "name" [UninterpretedOption'NamePart] where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _UninterpretedOption'name+ (\ x__ y__ -> x__ {_UninterpretedOption'name = y__}))+ (Lens.Family2.Unchecked.lens+ Data.Vector.Generic.toList+ (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField UninterpretedOption "vec'name" (Data.Vector.Vector UninterpretedOption'NamePart) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _UninterpretedOption'name+ (\ x__ y__ -> x__ {_UninterpretedOption'name = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField UninterpretedOption "identifierValue" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _UninterpretedOption'identifierValue+ (\ x__ y__ -> x__ {_UninterpretedOption'identifierValue = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField UninterpretedOption "maybe'identifierValue" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _UninterpretedOption'identifierValue+ (\ x__ y__ -> x__ {_UninterpretedOption'identifierValue = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField UninterpretedOption "positiveIntValue" Data.Word.Word64 where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _UninterpretedOption'positiveIntValue+ (\ x__ y__ -> x__ {_UninterpretedOption'positiveIntValue = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField UninterpretedOption "maybe'positiveIntValue" (Prelude.Maybe Data.Word.Word64) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _UninterpretedOption'positiveIntValue+ (\ x__ y__ -> x__ {_UninterpretedOption'positiveIntValue = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField UninterpretedOption "negativeIntValue" Data.Int.Int64 where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _UninterpretedOption'negativeIntValue+ (\ x__ y__ -> x__ {_UninterpretedOption'negativeIntValue = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField UninterpretedOption "maybe'negativeIntValue" (Prelude.Maybe Data.Int.Int64) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _UninterpretedOption'negativeIntValue+ (\ x__ y__ -> x__ {_UninterpretedOption'negativeIntValue = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField UninterpretedOption "doubleValue" Prelude.Double where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _UninterpretedOption'doubleValue+ (\ x__ y__ -> x__ {_UninterpretedOption'doubleValue = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField UninterpretedOption "maybe'doubleValue" (Prelude.Maybe Prelude.Double) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _UninterpretedOption'doubleValue+ (\ x__ y__ -> x__ {_UninterpretedOption'doubleValue = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField UninterpretedOption "stringValue" Data.ByteString.ByteString where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _UninterpretedOption'stringValue+ (\ x__ y__ -> x__ {_UninterpretedOption'stringValue = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField UninterpretedOption "maybe'stringValue" (Prelude.Maybe Data.ByteString.ByteString) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _UninterpretedOption'stringValue+ (\ x__ y__ -> x__ {_UninterpretedOption'stringValue = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField UninterpretedOption "aggregateValue" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _UninterpretedOption'aggregateValue+ (\ x__ y__ -> x__ {_UninterpretedOption'aggregateValue = y__}))+ (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault)+instance Data.ProtoLens.Field.HasField UninterpretedOption "maybe'aggregateValue" (Prelude.Maybe Data.Text.Text) where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _UninterpretedOption'aggregateValue+ (\ x__ y__ -> x__ {_UninterpretedOption'aggregateValue = y__}))+ Prelude.id+instance Data.ProtoLens.Message UninterpretedOption where+ messageName _+ = Data.Text.pack "google.protobuf.UninterpretedOption"+ fieldsByTag+ = let+ name__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "name"+ (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+ Data.ProtoLens.FieldTypeDescriptor UninterpretedOption'NamePart)+ (Data.ProtoLens.RepeatedField+ Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"name")) ::+ Data.ProtoLens.FieldDescriptor UninterpretedOption+ identifierValue__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "identifier_value"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'identifierValue")) ::+ Data.ProtoLens.FieldDescriptor UninterpretedOption+ positiveIntValue__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "positive_int_value"+ (Data.ProtoLens.ScalarField Data.ProtoLens.UInt64Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Word.Word64)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'positiveIntValue")) ::+ Data.ProtoLens.FieldDescriptor UninterpretedOption+ negativeIntValue__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "negative_int_value"+ (Data.ProtoLens.ScalarField Data.ProtoLens.Int64Field ::+ Data.ProtoLens.FieldTypeDescriptor Data.Int.Int64)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'negativeIntValue")) ::+ Data.ProtoLens.FieldDescriptor UninterpretedOption+ doubleValue__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "double_value"+ (Data.ProtoLens.ScalarField Data.ProtoLens.DoubleField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Double)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'doubleValue")) ::+ Data.ProtoLens.FieldDescriptor UninterpretedOption+ stringValue__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "string_value"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::+ Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'stringValue")) ::+ Data.ProtoLens.FieldDescriptor UninterpretedOption+ aggregateValue__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "aggregate_value"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.OptionalField+ (Data.ProtoLens.Field.field @"maybe'aggregateValue")) ::+ Data.ProtoLens.FieldDescriptor UninterpretedOption+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 2, name__field_descriptor),+ (Data.ProtoLens.Tag 3, identifierValue__field_descriptor),+ (Data.ProtoLens.Tag 4, positiveIntValue__field_descriptor),+ (Data.ProtoLens.Tag 5, negativeIntValue__field_descriptor),+ (Data.ProtoLens.Tag 6, doubleValue__field_descriptor),+ (Data.ProtoLens.Tag 7, stringValue__field_descriptor),+ (Data.ProtoLens.Tag 8, aggregateValue__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _UninterpretedOption'_unknownFields+ (\ x__ y__ -> x__ {_UninterpretedOption'_unknownFields = y__})+ defMessage+ = UninterpretedOption'_constructor+ {_UninterpretedOption'name = Data.Vector.Generic.empty,+ _UninterpretedOption'identifierValue = Prelude.Nothing,+ _UninterpretedOption'positiveIntValue = Prelude.Nothing,+ _UninterpretedOption'negativeIntValue = Prelude.Nothing,+ _UninterpretedOption'doubleValue = Prelude.Nothing,+ _UninterpretedOption'stringValue = Prelude.Nothing,+ _UninterpretedOption'aggregateValue = Prelude.Nothing,+ _UninterpretedOption'_unknownFields = []}+ parseMessage+ = let+ loop ::+ UninterpretedOption+ -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld UninterpretedOption'NamePart+ -> Data.ProtoLens.Encoding.Bytes.Parser UninterpretedOption+ loop x mutable'name+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do frozen'name <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'name)+ (let missing = []+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields+ (\ !t -> Prelude.reverse t)+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"vec'name") frozen'name x))+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 18+ -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.isolate+ (Prelude.fromIntegral len)+ Data.ProtoLens.parseMessage)+ "name"+ v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ (Data.ProtoLens.Encoding.Growing.append mutable'name y)+ loop x v+ 26+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "identifier_value"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"identifierValue") y x)+ mutable'name+ 32+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ Data.ProtoLens.Encoding.Bytes.getVarInt "positive_int_value"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"positiveIntValue") y x)+ mutable'name+ 40+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Prelude.fromIntegral+ Data.ProtoLens.Encoding.Bytes.getVarInt)+ "negative_int_value"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"negativeIntValue") y x)+ mutable'name+ 49+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ Data.ProtoLens.Encoding.Bytes.wordToDouble+ Data.ProtoLens.Encoding.Bytes.getFixed64)+ "double_value"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"doubleValue") y x)+ mutable'name+ 58+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len))+ "string_value"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"stringValue") y x)+ mutable'name+ 66+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "aggregate_value"+ loop+ (Lens.Family2.set+ (Data.ProtoLens.Field.field @"aggregateValue") y x)+ mutable'name+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ mutable'name+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do mutable'name <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+ Data.ProtoLens.Encoding.Growing.new+ loop Data.ProtoLens.defMessage mutable'name)+ "UninterpretedOption"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+ (\ _v+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 18)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.ProtoLens.encodeMessage+ _v))+ (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'name") _x))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'identifierValue") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 26)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'positiveIntValue") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 32)+ (Data.ProtoLens.Encoding.Bytes.putVarInt _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'negativeIntValue") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 40)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt Prelude.fromIntegral _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'doubleValue") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 49)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putFixed64+ Data.ProtoLens.Encoding.Bytes.doubleToWord+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'stringValue") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 58)+ ((\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ _v))+ ((Data.Monoid.<>)+ (case+ Lens.Family2.view+ (Data.ProtoLens.Field.field @"maybe'aggregateValue") _x+ of+ Prelude.Nothing -> Data.Monoid.mempty+ (Prelude.Just _v)+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 66)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral+ (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ _v))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x))))))))+instance Control.DeepSeq.NFData UninterpretedOption where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_UninterpretedOption'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_UninterpretedOption'name x__)+ (Control.DeepSeq.deepseq+ (_UninterpretedOption'identifierValue x__)+ (Control.DeepSeq.deepseq+ (_UninterpretedOption'positiveIntValue x__)+ (Control.DeepSeq.deepseq+ (_UninterpretedOption'negativeIntValue x__)+ (Control.DeepSeq.deepseq+ (_UninterpretedOption'doubleValue x__)+ (Control.DeepSeq.deepseq+ (_UninterpretedOption'stringValue x__)+ (Control.DeepSeq.deepseq+ (_UninterpretedOption'aggregateValue x__) ())))))))+{- | Fields :+ + * 'Proto.Google.Protobuf.Descriptor_Fields.namePart' @:: Lens' UninterpretedOption'NamePart Data.Text.Text@+ * 'Proto.Google.Protobuf.Descriptor_Fields.isExtension' @:: Lens' UninterpretedOption'NamePart Prelude.Bool@ -}+data UninterpretedOption'NamePart+ = UninterpretedOption'NamePart'_constructor {_UninterpretedOption'NamePart'namePart :: !Data.Text.Text,+ _UninterpretedOption'NamePart'isExtension :: !Prelude.Bool,+ _UninterpretedOption'NamePart'_unknownFields :: !Data.ProtoLens.FieldSet}+ deriving (Prelude.Eq, Prelude.Ord)+instance Prelude.Show UninterpretedOption'NamePart where+ showsPrec _ __x __s+ = Prelude.showChar+ '{'+ (Prelude.showString+ (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField UninterpretedOption'NamePart "namePart" Data.Text.Text where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _UninterpretedOption'NamePart'namePart+ (\ x__ y__ -> x__ {_UninterpretedOption'NamePart'namePart = y__}))+ Prelude.id+instance Data.ProtoLens.Field.HasField UninterpretedOption'NamePart "isExtension" Prelude.Bool where+ fieldOf _+ = (Prelude..)+ (Lens.Family2.Unchecked.lens+ _UninterpretedOption'NamePart'isExtension+ (\ x__ y__+ -> x__ {_UninterpretedOption'NamePart'isExtension = y__}))+ Prelude.id+instance Data.ProtoLens.Message UninterpretedOption'NamePart where+ messageName _+ = Data.Text.pack "google.protobuf.UninterpretedOption.NamePart"+ fieldsByTag+ = let+ namePart__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "name_part"+ (Data.ProtoLens.ScalarField Data.ProtoLens.StringField ::+ Data.ProtoLens.FieldTypeDescriptor Data.Text.Text)+ (Data.ProtoLens.PlainField+ Data.ProtoLens.Required+ (Data.ProtoLens.Field.field @"namePart")) ::+ Data.ProtoLens.FieldDescriptor UninterpretedOption'NamePart+ isExtension__field_descriptor+ = Data.ProtoLens.FieldDescriptor+ "is_extension"+ (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+ Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+ (Data.ProtoLens.PlainField+ Data.ProtoLens.Required+ (Data.ProtoLens.Field.field @"isExtension")) ::+ Data.ProtoLens.FieldDescriptor UninterpretedOption'NamePart+ in+ Data.Map.fromList+ [(Data.ProtoLens.Tag 1, namePart__field_descriptor),+ (Data.ProtoLens.Tag 2, isExtension__field_descriptor)]+ unknownFields+ = Lens.Family2.Unchecked.lens+ _UninterpretedOption'NamePart'_unknownFields+ (\ x__ y__+ -> x__ {_UninterpretedOption'NamePart'_unknownFields = y__})+ defMessage+ = UninterpretedOption'NamePart'_constructor+ {_UninterpretedOption'NamePart'namePart = Data.ProtoLens.fieldDefault,+ _UninterpretedOption'NamePart'isExtension = Data.ProtoLens.fieldDefault,+ _UninterpretedOption'NamePart'_unknownFields = []}+ parseMessage+ = let+ loop ::+ UninterpretedOption'NamePart+ -> Prelude.Bool+ -> Prelude.Bool+ -> Data.ProtoLens.Encoding.Bytes.Parser UninterpretedOption'NamePart+ loop x required'isExtension required'namePart+ = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+ if end then+ do (let+ missing+ = (if required'isExtension then (:) "is_extension" else Prelude.id)+ ((if required'namePart then (:) "name_part" else Prelude.id) [])+ in+ if Prelude.null missing then+ Prelude.return ()+ else+ Prelude.fail+ ((Prelude.++)+ "Missing required fields: "+ (Prelude.show (missing :: [Prelude.String]))))+ Prelude.return+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> Prelude.reverse t) x)+ else+ do tag <- Data.ProtoLens.Encoding.Bytes.getVarInt+ case tag of+ 10+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (do value <- do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+ Data.ProtoLens.Encoding.Bytes.getBytes+ (Prelude.fromIntegral len)+ Data.ProtoLens.Encoding.Bytes.runEither+ (case Data.Text.Encoding.decodeUtf8' value of+ (Prelude.Left err)+ -> Prelude.Left (Prelude.show err)+ (Prelude.Right r) -> Prelude.Right r))+ "name_part"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"namePart") y x)+ required'isExtension+ Prelude.False+ 16+ -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+ (Prelude.fmap+ ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+ "is_extension"+ loop+ (Lens.Family2.set (Data.ProtoLens.Field.field @"isExtension") y x)+ Prelude.False+ required'namePart+ wire+ -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+ wire+ loop+ (Lens.Family2.over+ Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+ required'isExtension+ required'namePart+ in+ (Data.ProtoLens.Encoding.Bytes.<?>)+ (do loop Data.ProtoLens.defMessage Prelude.True Prelude.True)+ "NamePart"+ buildMessage+ = \ _x+ -> (Data.Monoid.<>)+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 10)+ ((Prelude..)+ (\ bs+ -> (Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt+ (Prelude.fromIntegral (Data.ByteString.length bs)))+ (Data.ProtoLens.Encoding.Bytes.putBytes bs))+ Data.Text.Encoding.encodeUtf8+ (Lens.Family2.view (Data.ProtoLens.Field.field @"namePart") _x)))+ ((Data.Monoid.<>)+ ((Data.Monoid.<>)+ (Data.ProtoLens.Encoding.Bytes.putVarInt 16)+ ((Prelude..)+ Data.ProtoLens.Encoding.Bytes.putVarInt+ (\ b -> if b then 1 else 0)+ (Lens.Family2.view+ (Data.ProtoLens.Field.field @"isExtension") _x)))+ (Data.ProtoLens.Encoding.Wire.buildFieldSet+ (Lens.Family2.view Data.ProtoLens.unknownFields _x)))+instance Control.DeepSeq.NFData UninterpretedOption'NamePart where+ rnf+ = \ x__+ -> Control.DeepSeq.deepseq+ (_UninterpretedOption'NamePart'_unknownFields x__)+ (Control.DeepSeq.deepseq+ (_UninterpretedOption'NamePart'namePart x__)+ (Control.DeepSeq.deepseq+ (_UninterpretedOption'NamePart'isExtension x__) ()))
+ app/Proto/Google/Protobuf/Descriptor_Fields.hs view
@@ -0,0 +1,1039 @@+{- This file was auto-generated from google/protobuf/descriptor.proto by the proto-lens-protoc program. -}+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies, UndecidableInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances, PatternSynonyms, MagicHash, NoImplicitPrelude, DataKinds, BangPatterns, TypeApplications#-}+{-# OPTIONS_GHC -Wno-unused-imports#-}+{-# OPTIONS_GHC -Wno-duplicate-exports#-}+{-# OPTIONS_GHC -Wno-dodgy-exports#-}+module Proto.Google.Protobuf.Descriptor_Fields where+import qualified Data.ProtoLens.Runtime.Prelude as Prelude+import qualified Data.ProtoLens.Runtime.Data.Int as Data.Int+import qualified Data.ProtoLens.Runtime.Data.Monoid as Data.Monoid+import qualified Data.ProtoLens.Runtime.Data.Word as Data.Word+import qualified Data.ProtoLens.Runtime.Data.ProtoLens as Data.ProtoLens+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Bytes as Data.ProtoLens.Encoding.Bytes+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Growing as Data.ProtoLens.Encoding.Growing+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Parser.Unsafe as Data.ProtoLens.Encoding.Parser.Unsafe+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Encoding.Wire as Data.ProtoLens.Encoding.Wire+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Field as Data.ProtoLens.Field+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Message.Enum as Data.ProtoLens.Message.Enum+import qualified Data.ProtoLens.Runtime.Data.ProtoLens.Service.Types as Data.ProtoLens.Service.Types+import qualified Data.ProtoLens.Runtime.Lens.Family2 as Lens.Family2+import qualified Data.ProtoLens.Runtime.Lens.Family2.Unchecked as Lens.Family2.Unchecked+import qualified Data.ProtoLens.Runtime.Data.Text as Data.Text+import qualified Data.ProtoLens.Runtime.Data.Map as Data.Map+import qualified Data.ProtoLens.Runtime.Data.ByteString as Data.ByteString+import qualified Data.ProtoLens.Runtime.Data.ByteString.Char8 as Data.ByteString.Char8+import qualified Data.ProtoLens.Runtime.Data.Text.Encoding as Data.Text.Encoding+import qualified Data.ProtoLens.Runtime.Data.Vector as Data.Vector+import qualified Data.ProtoLens.Runtime.Data.Vector.Generic as Data.Vector.Generic+import qualified Data.ProtoLens.Runtime.Data.Vector.Unboxed as Data.Vector.Unboxed+import qualified Data.ProtoLens.Runtime.Text.Read as Text.Read+aggregateValue ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "aggregateValue" a) =>+ Lens.Family2.LensLike' f s a+aggregateValue = Data.ProtoLens.Field.field @"aggregateValue"+allowAlias ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "allowAlias" a) =>+ Lens.Family2.LensLike' f s a+allowAlias = Data.ProtoLens.Field.field @"allowAlias"+annotation ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "annotation" a) =>+ Lens.Family2.LensLike' f s a+annotation = Data.ProtoLens.Field.field @"annotation"+begin ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "begin" a) =>+ Lens.Family2.LensLike' f s a+begin = Data.ProtoLens.Field.field @"begin"+ccEnableArenas ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "ccEnableArenas" a) =>+ Lens.Family2.LensLike' f s a+ccEnableArenas = Data.ProtoLens.Field.field @"ccEnableArenas"+ccGenericServices ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "ccGenericServices" a) =>+ Lens.Family2.LensLike' f s a+ccGenericServices = Data.ProtoLens.Field.field @"ccGenericServices"+clientStreaming ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "clientStreaming" a) =>+ Lens.Family2.LensLike' f s a+clientStreaming = Data.ProtoLens.Field.field @"clientStreaming"+csharpNamespace ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "csharpNamespace" a) =>+ Lens.Family2.LensLike' f s a+csharpNamespace = Data.ProtoLens.Field.field @"csharpNamespace"+ctype ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "ctype" a) =>+ Lens.Family2.LensLike' f s a+ctype = Data.ProtoLens.Field.field @"ctype"+defaultValue ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "defaultValue" a) =>+ Lens.Family2.LensLike' f s a+defaultValue = Data.ProtoLens.Field.field @"defaultValue"+dependency ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "dependency" a) =>+ Lens.Family2.LensLike' f s a+dependency = Data.ProtoLens.Field.field @"dependency"+deprecated ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "deprecated" a) =>+ Lens.Family2.LensLike' f s a+deprecated = Data.ProtoLens.Field.field @"deprecated"+doubleValue ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "doubleValue" a) =>+ Lens.Family2.LensLike' f s a+doubleValue = Data.ProtoLens.Field.field @"doubleValue"+end ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "end" a) =>+ Lens.Family2.LensLike' f s a+end = Data.ProtoLens.Field.field @"end"+enumType ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "enumType" a) =>+ Lens.Family2.LensLike' f s a+enumType = Data.ProtoLens.Field.field @"enumType"+extendee ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "extendee" a) =>+ Lens.Family2.LensLike' f s a+extendee = Data.ProtoLens.Field.field @"extendee"+extension ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "extension" a) =>+ Lens.Family2.LensLike' f s a+extension = Data.ProtoLens.Field.field @"extension"+extensionRange ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "extensionRange" a) =>+ Lens.Family2.LensLike' f s a+extensionRange = Data.ProtoLens.Field.field @"extensionRange"+field ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "field" a) =>+ Lens.Family2.LensLike' f s a+field = Data.ProtoLens.Field.field @"field"+file ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "file" a) =>+ Lens.Family2.LensLike' f s a+file = Data.ProtoLens.Field.field @"file"+goPackage ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "goPackage" a) =>+ Lens.Family2.LensLike' f s a+goPackage = Data.ProtoLens.Field.field @"goPackage"+idempotencyLevel ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "idempotencyLevel" a) =>+ Lens.Family2.LensLike' f s a+idempotencyLevel = Data.ProtoLens.Field.field @"idempotencyLevel"+identifierValue ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "identifierValue" a) =>+ Lens.Family2.LensLike' f s a+identifierValue = Data.ProtoLens.Field.field @"identifierValue"+inputType ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "inputType" a) =>+ Lens.Family2.LensLike' f s a+inputType = Data.ProtoLens.Field.field @"inputType"+isExtension ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "isExtension" a) =>+ Lens.Family2.LensLike' f s a+isExtension = Data.ProtoLens.Field.field @"isExtension"+javaGenerateEqualsAndHash ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "javaGenerateEqualsAndHash" a) =>+ Lens.Family2.LensLike' f s a+javaGenerateEqualsAndHash+ = Data.ProtoLens.Field.field @"javaGenerateEqualsAndHash"+javaGenericServices ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "javaGenericServices" a) =>+ Lens.Family2.LensLike' f s a+javaGenericServices+ = Data.ProtoLens.Field.field @"javaGenericServices"+javaMultipleFiles ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "javaMultipleFiles" a) =>+ Lens.Family2.LensLike' f s a+javaMultipleFiles = Data.ProtoLens.Field.field @"javaMultipleFiles"+javaOuterClassname ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "javaOuterClassname" a) =>+ Lens.Family2.LensLike' f s a+javaOuterClassname+ = Data.ProtoLens.Field.field @"javaOuterClassname"+javaPackage ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "javaPackage" a) =>+ Lens.Family2.LensLike' f s a+javaPackage = Data.ProtoLens.Field.field @"javaPackage"+javaStringCheckUtf8 ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "javaStringCheckUtf8" a) =>+ Lens.Family2.LensLike' f s a+javaStringCheckUtf8+ = Data.ProtoLens.Field.field @"javaStringCheckUtf8"+jsonName ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "jsonName" a) =>+ Lens.Family2.LensLike' f s a+jsonName = Data.ProtoLens.Field.field @"jsonName"+jstype ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "jstype" a) =>+ Lens.Family2.LensLike' f s a+jstype = Data.ProtoLens.Field.field @"jstype"+label ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "label" a) =>+ Lens.Family2.LensLike' f s a+label = Data.ProtoLens.Field.field @"label"+lazy ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "lazy" a) =>+ Lens.Family2.LensLike' f s a+lazy = Data.ProtoLens.Field.field @"lazy"+leadingComments ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "leadingComments" a) =>+ Lens.Family2.LensLike' f s a+leadingComments = Data.ProtoLens.Field.field @"leadingComments"+leadingDetachedComments ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "leadingDetachedComments" a) =>+ Lens.Family2.LensLike' f s a+leadingDetachedComments+ = Data.ProtoLens.Field.field @"leadingDetachedComments"+location ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "location" a) =>+ Lens.Family2.LensLike' f s a+location = Data.ProtoLens.Field.field @"location"+mapEntry ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "mapEntry" a) =>+ Lens.Family2.LensLike' f s a+mapEntry = Data.ProtoLens.Field.field @"mapEntry"+maybe'aggregateValue ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'aggregateValue" a) =>+ Lens.Family2.LensLike' f s a+maybe'aggregateValue+ = Data.ProtoLens.Field.field @"maybe'aggregateValue"+maybe'allowAlias ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'allowAlias" a) =>+ Lens.Family2.LensLike' f s a+maybe'allowAlias = Data.ProtoLens.Field.field @"maybe'allowAlias"+maybe'begin ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'begin" a) =>+ Lens.Family2.LensLike' f s a+maybe'begin = Data.ProtoLens.Field.field @"maybe'begin"+maybe'ccEnableArenas ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'ccEnableArenas" a) =>+ Lens.Family2.LensLike' f s a+maybe'ccEnableArenas+ = Data.ProtoLens.Field.field @"maybe'ccEnableArenas"+maybe'ccGenericServices ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'ccGenericServices" a) =>+ Lens.Family2.LensLike' f s a+maybe'ccGenericServices+ = Data.ProtoLens.Field.field @"maybe'ccGenericServices"+maybe'clientStreaming ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'clientStreaming" a) =>+ Lens.Family2.LensLike' f s a+maybe'clientStreaming+ = Data.ProtoLens.Field.field @"maybe'clientStreaming"+maybe'csharpNamespace ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'csharpNamespace" a) =>+ Lens.Family2.LensLike' f s a+maybe'csharpNamespace+ = Data.ProtoLens.Field.field @"maybe'csharpNamespace"+maybe'ctype ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'ctype" a) =>+ Lens.Family2.LensLike' f s a+maybe'ctype = Data.ProtoLens.Field.field @"maybe'ctype"+maybe'defaultValue ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'defaultValue" a) =>+ Lens.Family2.LensLike' f s a+maybe'defaultValue+ = Data.ProtoLens.Field.field @"maybe'defaultValue"+maybe'deprecated ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'deprecated" a) =>+ Lens.Family2.LensLike' f s a+maybe'deprecated = Data.ProtoLens.Field.field @"maybe'deprecated"+maybe'doubleValue ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'doubleValue" a) =>+ Lens.Family2.LensLike' f s a+maybe'doubleValue = Data.ProtoLens.Field.field @"maybe'doubleValue"+maybe'end ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'end" a) =>+ Lens.Family2.LensLike' f s a+maybe'end = Data.ProtoLens.Field.field @"maybe'end"+maybe'extendee ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'extendee" a) =>+ Lens.Family2.LensLike' f s a+maybe'extendee = Data.ProtoLens.Field.field @"maybe'extendee"+maybe'goPackage ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'goPackage" a) =>+ Lens.Family2.LensLike' f s a+maybe'goPackage = Data.ProtoLens.Field.field @"maybe'goPackage"+maybe'idempotencyLevel ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'idempotencyLevel" a) =>+ Lens.Family2.LensLike' f s a+maybe'idempotencyLevel+ = Data.ProtoLens.Field.field @"maybe'idempotencyLevel"+maybe'identifierValue ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'identifierValue" a) =>+ Lens.Family2.LensLike' f s a+maybe'identifierValue+ = Data.ProtoLens.Field.field @"maybe'identifierValue"+maybe'inputType ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'inputType" a) =>+ Lens.Family2.LensLike' f s a+maybe'inputType = Data.ProtoLens.Field.field @"maybe'inputType"+maybe'javaGenerateEqualsAndHash ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'javaGenerateEqualsAndHash" a) =>+ Lens.Family2.LensLike' f s a+maybe'javaGenerateEqualsAndHash+ = Data.ProtoLens.Field.field @"maybe'javaGenerateEqualsAndHash"+maybe'javaGenericServices ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'javaGenericServices" a) =>+ Lens.Family2.LensLike' f s a+maybe'javaGenericServices+ = Data.ProtoLens.Field.field @"maybe'javaGenericServices"+maybe'javaMultipleFiles ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'javaMultipleFiles" a) =>+ Lens.Family2.LensLike' f s a+maybe'javaMultipleFiles+ = Data.ProtoLens.Field.field @"maybe'javaMultipleFiles"+maybe'javaOuterClassname ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'javaOuterClassname" a) =>+ Lens.Family2.LensLike' f s a+maybe'javaOuterClassname+ = Data.ProtoLens.Field.field @"maybe'javaOuterClassname"+maybe'javaPackage ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'javaPackage" a) =>+ Lens.Family2.LensLike' f s a+maybe'javaPackage = Data.ProtoLens.Field.field @"maybe'javaPackage"+maybe'javaStringCheckUtf8 ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'javaStringCheckUtf8" a) =>+ Lens.Family2.LensLike' f s a+maybe'javaStringCheckUtf8+ = Data.ProtoLens.Field.field @"maybe'javaStringCheckUtf8"+maybe'jsonName ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'jsonName" a) =>+ Lens.Family2.LensLike' f s a+maybe'jsonName = Data.ProtoLens.Field.field @"maybe'jsonName"+maybe'jstype ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'jstype" a) =>+ Lens.Family2.LensLike' f s a+maybe'jstype = Data.ProtoLens.Field.field @"maybe'jstype"+maybe'label ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'label" a) =>+ Lens.Family2.LensLike' f s a+maybe'label = Data.ProtoLens.Field.field @"maybe'label"+maybe'lazy ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'lazy" a) =>+ Lens.Family2.LensLike' f s a+maybe'lazy = Data.ProtoLens.Field.field @"maybe'lazy"+maybe'leadingComments ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'leadingComments" a) =>+ Lens.Family2.LensLike' f s a+maybe'leadingComments+ = Data.ProtoLens.Field.field @"maybe'leadingComments"+maybe'mapEntry ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'mapEntry" a) =>+ Lens.Family2.LensLike' f s a+maybe'mapEntry = Data.ProtoLens.Field.field @"maybe'mapEntry"+maybe'messageSetWireFormat ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'messageSetWireFormat" a) =>+ Lens.Family2.LensLike' f s a+maybe'messageSetWireFormat+ = Data.ProtoLens.Field.field @"maybe'messageSetWireFormat"+maybe'name ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'name" a) =>+ Lens.Family2.LensLike' f s a+maybe'name = Data.ProtoLens.Field.field @"maybe'name"+maybe'negativeIntValue ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'negativeIntValue" a) =>+ Lens.Family2.LensLike' f s a+maybe'negativeIntValue+ = Data.ProtoLens.Field.field @"maybe'negativeIntValue"+maybe'noStandardDescriptorAccessor ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'noStandardDescriptorAccessor" a) =>+ Lens.Family2.LensLike' f s a+maybe'noStandardDescriptorAccessor+ = Data.ProtoLens.Field.field @"maybe'noStandardDescriptorAccessor"+maybe'number ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'number" a) =>+ Lens.Family2.LensLike' f s a+maybe'number = Data.ProtoLens.Field.field @"maybe'number"+maybe'objcClassPrefix ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'objcClassPrefix" a) =>+ Lens.Family2.LensLike' f s a+maybe'objcClassPrefix+ = Data.ProtoLens.Field.field @"maybe'objcClassPrefix"+maybe'oneofIndex ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'oneofIndex" a) =>+ Lens.Family2.LensLike' f s a+maybe'oneofIndex = Data.ProtoLens.Field.field @"maybe'oneofIndex"+maybe'optimizeFor ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'optimizeFor" a) =>+ Lens.Family2.LensLike' f s a+maybe'optimizeFor = Data.ProtoLens.Field.field @"maybe'optimizeFor"+maybe'options ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'options" a) =>+ Lens.Family2.LensLike' f s a+maybe'options = Data.ProtoLens.Field.field @"maybe'options"+maybe'outputType ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'outputType" a) =>+ Lens.Family2.LensLike' f s a+maybe'outputType = Data.ProtoLens.Field.field @"maybe'outputType"+maybe'package ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'package" a) =>+ Lens.Family2.LensLike' f s a+maybe'package = Data.ProtoLens.Field.field @"maybe'package"+maybe'packed ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'packed" a) =>+ Lens.Family2.LensLike' f s a+maybe'packed = Data.ProtoLens.Field.field @"maybe'packed"+maybe'phpClassPrefix ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'phpClassPrefix" a) =>+ Lens.Family2.LensLike' f s a+maybe'phpClassPrefix+ = Data.ProtoLens.Field.field @"maybe'phpClassPrefix"+maybe'phpGenericServices ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'phpGenericServices" a) =>+ Lens.Family2.LensLike' f s a+maybe'phpGenericServices+ = Data.ProtoLens.Field.field @"maybe'phpGenericServices"+maybe'phpMetadataNamespace ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'phpMetadataNamespace" a) =>+ Lens.Family2.LensLike' f s a+maybe'phpMetadataNamespace+ = Data.ProtoLens.Field.field @"maybe'phpMetadataNamespace"+maybe'phpNamespace ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'phpNamespace" a) =>+ Lens.Family2.LensLike' f s a+maybe'phpNamespace+ = Data.ProtoLens.Field.field @"maybe'phpNamespace"+maybe'positiveIntValue ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'positiveIntValue" a) =>+ Lens.Family2.LensLike' f s a+maybe'positiveIntValue+ = Data.ProtoLens.Field.field @"maybe'positiveIntValue"+maybe'pyGenericServices ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'pyGenericServices" a) =>+ Lens.Family2.LensLike' f s a+maybe'pyGenericServices+ = Data.ProtoLens.Field.field @"maybe'pyGenericServices"+maybe'rubyPackage ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'rubyPackage" a) =>+ Lens.Family2.LensLike' f s a+maybe'rubyPackage = Data.ProtoLens.Field.field @"maybe'rubyPackage"+maybe'serverStreaming ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'serverStreaming" a) =>+ Lens.Family2.LensLike' f s a+maybe'serverStreaming+ = Data.ProtoLens.Field.field @"maybe'serverStreaming"+maybe'sourceCodeInfo ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'sourceCodeInfo" a) =>+ Lens.Family2.LensLike' f s a+maybe'sourceCodeInfo+ = Data.ProtoLens.Field.field @"maybe'sourceCodeInfo"+maybe'sourceFile ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'sourceFile" a) =>+ Lens.Family2.LensLike' f s a+maybe'sourceFile = Data.ProtoLens.Field.field @"maybe'sourceFile"+maybe'start ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'start" a) =>+ Lens.Family2.LensLike' f s a+maybe'start = Data.ProtoLens.Field.field @"maybe'start"+maybe'stringValue ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'stringValue" a) =>+ Lens.Family2.LensLike' f s a+maybe'stringValue = Data.ProtoLens.Field.field @"maybe'stringValue"+maybe'swiftPrefix ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'swiftPrefix" a) =>+ Lens.Family2.LensLike' f s a+maybe'swiftPrefix = Data.ProtoLens.Field.field @"maybe'swiftPrefix"+maybe'syntax ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'syntax" a) =>+ Lens.Family2.LensLike' f s a+maybe'syntax = Data.ProtoLens.Field.field @"maybe'syntax"+maybe'trailingComments ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'trailingComments" a) =>+ Lens.Family2.LensLike' f s a+maybe'trailingComments+ = Data.ProtoLens.Field.field @"maybe'trailingComments"+maybe'type' ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'type'" a) =>+ Lens.Family2.LensLike' f s a+maybe'type' = Data.ProtoLens.Field.field @"maybe'type'"+maybe'typeName ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'typeName" a) =>+ Lens.Family2.LensLike' f s a+maybe'typeName = Data.ProtoLens.Field.field @"maybe'typeName"+maybe'weak ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "maybe'weak" a) =>+ Lens.Family2.LensLike' f s a+maybe'weak = Data.ProtoLens.Field.field @"maybe'weak"+messageSetWireFormat ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "messageSetWireFormat" a) =>+ Lens.Family2.LensLike' f s a+messageSetWireFormat+ = Data.ProtoLens.Field.field @"messageSetWireFormat"+messageType ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "messageType" a) =>+ Lens.Family2.LensLike' f s a+messageType = Data.ProtoLens.Field.field @"messageType"+method ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "method" a) =>+ Lens.Family2.LensLike' f s a+method = Data.ProtoLens.Field.field @"method"+name ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "name" a) =>+ Lens.Family2.LensLike' f s a+name = Data.ProtoLens.Field.field @"name"+namePart ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "namePart" a) =>+ Lens.Family2.LensLike' f s a+namePart = Data.ProtoLens.Field.field @"namePart"+negativeIntValue ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "negativeIntValue" a) =>+ Lens.Family2.LensLike' f s a+negativeIntValue = Data.ProtoLens.Field.field @"negativeIntValue"+nestedType ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "nestedType" a) =>+ Lens.Family2.LensLike' f s a+nestedType = Data.ProtoLens.Field.field @"nestedType"+noStandardDescriptorAccessor ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "noStandardDescriptorAccessor" a) =>+ Lens.Family2.LensLike' f s a+noStandardDescriptorAccessor+ = Data.ProtoLens.Field.field @"noStandardDescriptorAccessor"+number ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "number" a) =>+ Lens.Family2.LensLike' f s a+number = Data.ProtoLens.Field.field @"number"+objcClassPrefix ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "objcClassPrefix" a) =>+ Lens.Family2.LensLike' f s a+objcClassPrefix = Data.ProtoLens.Field.field @"objcClassPrefix"+oneofDecl ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "oneofDecl" a) =>+ Lens.Family2.LensLike' f s a+oneofDecl = Data.ProtoLens.Field.field @"oneofDecl"+oneofIndex ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "oneofIndex" a) =>+ Lens.Family2.LensLike' f s a+oneofIndex = Data.ProtoLens.Field.field @"oneofIndex"+optimizeFor ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "optimizeFor" a) =>+ Lens.Family2.LensLike' f s a+optimizeFor = Data.ProtoLens.Field.field @"optimizeFor"+options ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "options" a) =>+ Lens.Family2.LensLike' f s a+options = Data.ProtoLens.Field.field @"options"+outputType ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "outputType" a) =>+ Lens.Family2.LensLike' f s a+outputType = Data.ProtoLens.Field.field @"outputType"+package ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "package" a) =>+ Lens.Family2.LensLike' f s a+package = Data.ProtoLens.Field.field @"package"+packed ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "packed" a) =>+ Lens.Family2.LensLike' f s a+packed = Data.ProtoLens.Field.field @"packed"+path ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "path" a) =>+ Lens.Family2.LensLike' f s a+path = Data.ProtoLens.Field.field @"path"+phpClassPrefix ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "phpClassPrefix" a) =>+ Lens.Family2.LensLike' f s a+phpClassPrefix = Data.ProtoLens.Field.field @"phpClassPrefix"+phpGenericServices ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "phpGenericServices" a) =>+ Lens.Family2.LensLike' f s a+phpGenericServices+ = Data.ProtoLens.Field.field @"phpGenericServices"+phpMetadataNamespace ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "phpMetadataNamespace" a) =>+ Lens.Family2.LensLike' f s a+phpMetadataNamespace+ = Data.ProtoLens.Field.field @"phpMetadataNamespace"+phpNamespace ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "phpNamespace" a) =>+ Lens.Family2.LensLike' f s a+phpNamespace = Data.ProtoLens.Field.field @"phpNamespace"+positiveIntValue ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "positiveIntValue" a) =>+ Lens.Family2.LensLike' f s a+positiveIntValue = Data.ProtoLens.Field.field @"positiveIntValue"+publicDependency ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "publicDependency" a) =>+ Lens.Family2.LensLike' f s a+publicDependency = Data.ProtoLens.Field.field @"publicDependency"+pyGenericServices ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "pyGenericServices" a) =>+ Lens.Family2.LensLike' f s a+pyGenericServices = Data.ProtoLens.Field.field @"pyGenericServices"+reservedName ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "reservedName" a) =>+ Lens.Family2.LensLike' f s a+reservedName = Data.ProtoLens.Field.field @"reservedName"+reservedRange ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "reservedRange" a) =>+ Lens.Family2.LensLike' f s a+reservedRange = Data.ProtoLens.Field.field @"reservedRange"+rubyPackage ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "rubyPackage" a) =>+ Lens.Family2.LensLike' f s a+rubyPackage = Data.ProtoLens.Field.field @"rubyPackage"+serverStreaming ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "serverStreaming" a) =>+ Lens.Family2.LensLike' f s a+serverStreaming = Data.ProtoLens.Field.field @"serverStreaming"+service ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "service" a) =>+ Lens.Family2.LensLike' f s a+service = Data.ProtoLens.Field.field @"service"+sourceCodeInfo ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "sourceCodeInfo" a) =>+ Lens.Family2.LensLike' f s a+sourceCodeInfo = Data.ProtoLens.Field.field @"sourceCodeInfo"+sourceFile ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "sourceFile" a) =>+ Lens.Family2.LensLike' f s a+sourceFile = Data.ProtoLens.Field.field @"sourceFile"+span ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "span" a) =>+ Lens.Family2.LensLike' f s a+span = Data.ProtoLens.Field.field @"span"+start ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "start" a) =>+ Lens.Family2.LensLike' f s a+start = Data.ProtoLens.Field.field @"start"+stringValue ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "stringValue" a) =>+ Lens.Family2.LensLike' f s a+stringValue = Data.ProtoLens.Field.field @"stringValue"+swiftPrefix ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "swiftPrefix" a) =>+ Lens.Family2.LensLike' f s a+swiftPrefix = Data.ProtoLens.Field.field @"swiftPrefix"+syntax ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "syntax" a) =>+ Lens.Family2.LensLike' f s a+syntax = Data.ProtoLens.Field.field @"syntax"+trailingComments ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "trailingComments" a) =>+ Lens.Family2.LensLike' f s a+trailingComments = Data.ProtoLens.Field.field @"trailingComments"+type' ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "type'" a) =>+ Lens.Family2.LensLike' f s a+type' = Data.ProtoLens.Field.field @"type'"+typeName ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "typeName" a) =>+ Lens.Family2.LensLike' f s a+typeName = Data.ProtoLens.Field.field @"typeName"+uninterpretedOption ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "uninterpretedOption" a) =>+ Lens.Family2.LensLike' f s a+uninterpretedOption+ = Data.ProtoLens.Field.field @"uninterpretedOption"+value ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "value" a) =>+ Lens.Family2.LensLike' f s a+value = Data.ProtoLens.Field.field @"value"+vec'annotation ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'annotation" a) =>+ Lens.Family2.LensLike' f s a+vec'annotation = Data.ProtoLens.Field.field @"vec'annotation"+vec'dependency ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'dependency" a) =>+ Lens.Family2.LensLike' f s a+vec'dependency = Data.ProtoLens.Field.field @"vec'dependency"+vec'enumType ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'enumType" a) =>+ Lens.Family2.LensLike' f s a+vec'enumType = Data.ProtoLens.Field.field @"vec'enumType"+vec'extension ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'extension" a) =>+ Lens.Family2.LensLike' f s a+vec'extension = Data.ProtoLens.Field.field @"vec'extension"+vec'extensionRange ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'extensionRange" a) =>+ Lens.Family2.LensLike' f s a+vec'extensionRange+ = Data.ProtoLens.Field.field @"vec'extensionRange"+vec'field ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'field" a) =>+ Lens.Family2.LensLike' f s a+vec'field = Data.ProtoLens.Field.field @"vec'field"+vec'file ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'file" a) =>+ Lens.Family2.LensLike' f s a+vec'file = Data.ProtoLens.Field.field @"vec'file"+vec'leadingDetachedComments ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'leadingDetachedComments" a) =>+ Lens.Family2.LensLike' f s a+vec'leadingDetachedComments+ = Data.ProtoLens.Field.field @"vec'leadingDetachedComments"+vec'location ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'location" a) =>+ Lens.Family2.LensLike' f s a+vec'location = Data.ProtoLens.Field.field @"vec'location"+vec'messageType ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'messageType" a) =>+ Lens.Family2.LensLike' f s a+vec'messageType = Data.ProtoLens.Field.field @"vec'messageType"+vec'method ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'method" a) =>+ Lens.Family2.LensLike' f s a+vec'method = Data.ProtoLens.Field.field @"vec'method"+vec'name ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'name" a) =>+ Lens.Family2.LensLike' f s a+vec'name = Data.ProtoLens.Field.field @"vec'name"+vec'nestedType ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'nestedType" a) =>+ Lens.Family2.LensLike' f s a+vec'nestedType = Data.ProtoLens.Field.field @"vec'nestedType"+vec'oneofDecl ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'oneofDecl" a) =>+ Lens.Family2.LensLike' f s a+vec'oneofDecl = Data.ProtoLens.Field.field @"vec'oneofDecl"+vec'path ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'path" a) =>+ Lens.Family2.LensLike' f s a+vec'path = Data.ProtoLens.Field.field @"vec'path"+vec'publicDependency ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'publicDependency" a) =>+ Lens.Family2.LensLike' f s a+vec'publicDependency+ = Data.ProtoLens.Field.field @"vec'publicDependency"+vec'reservedName ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'reservedName" a) =>+ Lens.Family2.LensLike' f s a+vec'reservedName = Data.ProtoLens.Field.field @"vec'reservedName"+vec'reservedRange ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'reservedRange" a) =>+ Lens.Family2.LensLike' f s a+vec'reservedRange = Data.ProtoLens.Field.field @"vec'reservedRange"+vec'service ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'service" a) =>+ Lens.Family2.LensLike' f s a+vec'service = Data.ProtoLens.Field.field @"vec'service"+vec'span ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'span" a) =>+ Lens.Family2.LensLike' f s a+vec'span = Data.ProtoLens.Field.field @"vec'span"+vec'uninterpretedOption ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'uninterpretedOption" a) =>+ Lens.Family2.LensLike' f s a+vec'uninterpretedOption+ = Data.ProtoLens.Field.field @"vec'uninterpretedOption"+vec'value ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'value" a) =>+ Lens.Family2.LensLike' f s a+vec'value = Data.ProtoLens.Field.field @"vec'value"+vec'weakDependency ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "vec'weakDependency" a) =>+ Lens.Family2.LensLike' f s a+vec'weakDependency+ = Data.ProtoLens.Field.field @"vec'weakDependency"+weak ::+ forall f s a.+ (Prelude.Functor f, Data.ProtoLens.Field.HasField s "weak" a) =>+ Lens.Family2.LensLike' f s a+weak = Data.ProtoLens.Field.field @"weak"+weakDependency ::+ forall f s a.+ (Prelude.Functor f,+ Data.ProtoLens.Field.HasField s "weakDependency" a) =>+ Lens.Family2.LensLike' f s a+weakDependency = Data.ProtoLens.Field.field @"weakDependency"
app/protoc-gen-haskell.hs view
@@ -4,13 +4,17 @@ -- license that can be found in the LICENSE file or at -- https://developers.google.com/open-source/licenses/bsd +{-# LANGUAGE CPP #-}+{-# LANGUAGE OverloadedLabels #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE PatternSynonyms #-} module Main where import qualified Data.ByteString as B import Data.Map.Strict ((!))-import Data.Monoid ((<>))+#if !MIN_VERSION_base(4,11,0)+import Data.Semigroup ((<>))+#endif import qualified Data.Set as Set import qualified Data.Text as T import Data.Text (Text, pack)@@ -24,79 +28,71 @@ ( CodeGeneratorRequest , CodeGeneratorResponse )-import Proto.Google.Protobuf.Compiler.Plugin_Fields- ( content- , file- , fileToGenerate- , parameter- , protoFile- ) import Proto.Google.Protobuf.Descriptor (FileDescriptorProto)-import Proto.Google.Protobuf.Descriptor_Fields (name, dependency) import System.Environment (getProgName) import System.Exit (exitWith, ExitCode(..)) import System.IO as IO -import Data.ProtoLens.Compiler.Combinators- ( prettyPrint- , prettyPrintModule- , getModuleName- )+import Data.ProtoLens.Compiler.Generate.Commented (CommentedModule, getModuleName) import Data.ProtoLens.Compiler.Generate import Data.ProtoLens.Compiler.Plugin +import DynFlags (DynFlags, getDynFlags)+import GHC (runGhc)+import GhcMonad (liftIO)+import GHC.Paths (libdir)+import GHC.SourceGen.Pretty (showPpr)+ main :: IO () main = do contents <- B.getContents progName <- getProgName case decodeMessage contents of Left e -> IO.hPutStrLn stderr e >> exitWith (ExitFailure 1)- Right x -> B.putStr $ encodeMessage $ makeResponse progName x+ Right x -> runGhc (Just libdir) $ do+ dflags <- getDynFlags+ liftIO $ B.putStr $ encodeMessage $+ makeResponse dflags progName x -makeResponse :: String -> CodeGeneratorRequest -> CodeGeneratorResponse-makeResponse prog request = let- useRuntime = case T.unpack $ request ^. parameter of- "" -> reexported- "no-runtime" -> id- p -> error $ "Error reading parameter: " ++ show p- outputFiles = generateFiles useRuntime header- (request ^. protoFile)- (request ^. fileToGenerate)+makeResponse :: DynFlags -> String -> CodeGeneratorRequest -> CodeGeneratorResponse+makeResponse dflags prog request = let+ outputFiles = generateFiles dflags header+ (request ^. #protoFile)+ (request ^. #fileToGenerate) header :: FileDescriptorProto -> Text header f = "{- This file was auto-generated from "- <> (f ^. name)+ <> (f ^. #name) <> " by the " <> pack prog <> " program. -}\n" in defMessage- & file .~ [ defMessage- & name .~ outputName- & content .~ outputContent+ & #file .~ [ defMessage+ & #name .~ outputName+ & #content .~ outputContent | (outputName, outputContent) <- outputFiles ] -generateFiles :: ModifyImports -> (FileDescriptorProto -> Text)+generateFiles :: DynFlags -> (FileDescriptorProto -> Text) -> [FileDescriptorProto] -> [ProtoFileName] -> [(Text, Text)]-generateFiles modifyImports header files toGenerate = let- modulePrefix = "Proto"- filesByName = analyzeProtoFiles modulePrefix files+generateFiles dflags header files toGenerate = let+ filesByName = analyzeProtoFiles files -- The contents of the generated Haskell file for a given .proto file.+ modulesToBuild :: ProtoFile -> [CommentedModule] modulesToBuild f = let- deps = descriptor f ^. dependency+ deps = descriptor f ^. #dependency imports = Set.toAscList $ Set.fromList- [ haskellModule (filesByName ! exportName)- | dep <- deps- , exportName <- exports (filesByName ! dep)- ]+ $ map (haskellModule . (filesByName !)) deps in generateModule (haskellModule f) imports- modifyImports+ (publicImports f) (definitions f) (collectEnvFromDeps deps filesByName) (services f)- in [ ( outputFilePath $ prettyPrint $ getModuleName modul- , header (descriptor f) <> pack (prettyPrintModule modul)+ in [ ( moduleFilePath $ pack $ showPpr dflags (getModuleName modul)+ , header (descriptor f) <> pack (showPpr dflags modul) ) | fileName <- toGenerate , let f = filesByName ! fileName , modul <- modulesToBuild f ] +moduleFilePath :: Text -> Text+moduleFilePath n = T.replace "." "/" n <> ".hs"
proto-lens-protoc.cabal view
@@ -1,13 +1,13 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.31.1.+-- This file has been generated from package.yaml by hpack version 0.31.2. -- -- see: https://github.com/sol/hpack ----- hash: e145fd43ae4afd8f47db892dc65ea8f96de237631a8d9299638fbe34a9c43a5a+-- hash: b83c1bee48d610ca9d51aadc42916775c24fa81838d58cc5ebda6ce2d0797418 name: proto-lens-protoc-version: 0.5.0.0+version: 0.6.0.0 synopsis: Protocol buffer compiler for the proto-lens library. description: Turn protocol buffer files (.proto) into Haskell files (.hs) which can be used with the proto-lens package. The library component of this package contains compiler code (namely Data.ProtoLens.Compiler.*) is not guaranteed to have stable APIs.'@@ -30,39 +30,44 @@ library exposed-modules:- Data.ProtoLens.Compiler.Combinators- Data.ProtoLens.Compiler.Definitions- Data.ProtoLens.Compiler.Generate- Data.ProtoLens.Compiler.Plugin+ Data.ProtoLens.Compiler.ModuleName other-modules:- Data.ProtoLens.Compiler.Generate.Encoding- Data.ProtoLens.Compiler.Generate.Field Paths_proto_lens_protoc hs-source-dirs: src build-depends:- base >=4.9 && <4.13- , containers >=0.5 && <0.7+ base >=4.9 && <4.14 , filepath >=1.4 && <1.6- , haskell-src-exts >=1.18 && <1.22- , lens-family ==1.2.*- , pretty ==1.1.*- , proto-lens ==0.5.*- , text ==1.2.* default-language: Haskell2010 executable proto-lens-protoc main-is: protoc-gen-haskell.hs other-modules:+ Data.ProtoLens.Compiler.Definitions+ Data.ProtoLens.Compiler.Generate+ Data.ProtoLens.Compiler.Generate.Commented+ Data.ProtoLens.Compiler.Generate.Encoding+ Data.ProtoLens.Compiler.Generate.Field+ Data.ProtoLens.Compiler.Plugin+ Proto.Google.Protobuf.Compiler.Plugin+ Proto.Google.Protobuf.Compiler.Plugin_Fields+ Proto.Google.Protobuf.Descriptor+ Proto.Google.Protobuf.Descriptor_Fields Paths_proto_lens_protoc hs-source-dirs: app build-depends:- base >=4.9 && <4.13+ base >=4.9 && <4.14 , bytestring ==0.10.* , containers >=0.5 && <0.7- , lens-family ==1.2.*- , proto-lens ==0.5.*+ , filepath >=1.4 && <1.6+ , ghc >=8.2 && <8.10+ , ghc-paths ==0.1.*+ , ghc-source-gen ==0.3.*+ , lens-family >=1.2 && <2.1+ , pretty ==1.1.*+ , proto-lens ==0.6.* , proto-lens-protoc+ , proto-lens-runtime ==0.6.* , text ==1.2.* default-language: Haskell2010
− src/Data/ProtoLens/Compiler/Combinators.hs
@@ -1,462 +0,0 @@--- Copyright 2016 Google Inc. All Rights Reserved.------ Use of this source code is governed by a BSD-style--- license that can be found in the LICENSE file or at--- https://developers.google.com/open-source/licenses/bsd--{-# OPTIONS_GHC -fno-warn-orphans #-}-{-# LANGUAGE CPP #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE OverloadedStrings #-}--- | Some utility functions, classes and instances for nicer code generation.------ Re-exports simpler versions of the types and constructors from--- @haskell-src-exts@.------ We define orphan instances of IsString for various syntax--- datatypes, with some intelligence about Haskell names. For example, @"foo"--- :: Exp@ is treated as a variable and @"Foo" :: Exp@ is treated as a--- constructor.-module Data.ProtoLens.Compiler.Combinators- ( module Data.ProtoLens.Compiler.Combinators- -- Since ImportDecl is a record type, for simplicity we just export it- -- directly.- , Syntax.ImportDecl(..)- ) where--import Data.Char (isAlphaNum, isUpper)-import Data.String (IsString(..))-import qualified Language.Haskell.Exts.Syntax as Syntax-import qualified Language.Haskell.Exts.Pretty as Pretty-import Text.PrettyPrint (($+$), (<+>), render, text, vcat, Doc)--prettyPrint :: Pretty.Pretty a => a -> String-prettyPrint = Pretty.prettyPrint--prettyPrim :: Pretty.Pretty a => a -> Doc-prettyPrim = Pretty.prettyPrim--type Asst = Syntax.Asst ()--classA :: QName -> [Type] -> Asst-classA = Syntax.ClassA ()--equalP :: Type -> Type -> Asst-equalP = Syntax.EqualP ()---type ConDecl = Syntax.ConDecl ()--conDecl :: Name -> [Type] -> ConDecl-conDecl constructorName paramTypes- = Syntax.ConDecl () constructorName $- fmap tyBang paramTypes--recDecl :: Name -> [(Name, Type)] -> ConDecl-recDecl dataName fields- = Syntax.RecDecl () dataName- [Syntax.FieldDecl () [n] (tyBang t) | (n,t) <- fields]---type Decl = Syntax.Decl ()--patSynSig :: Name -> Type -> Decl-#if MIN_VERSION_haskell_src_exts(1,21,0)-patSynSig n t = Syntax.PatSynSig () [n] Nothing Nothing Nothing Nothing t-#elif MIN_VERSION_haskell_src_exts(1,20,0)-patSynSig n t = Syntax.PatSynSig () [n] Nothing Nothing Nothing t-#else-patSynSig n t = Syntax.PatSynSig () n Nothing Nothing Nothing t-#endif--patSyn :: Pat -> Pat -> Decl-patSyn p1 p2 = Syntax.PatSyn () p1 p2 Syntax.ImplicitBidirectional--dataDecl :: Name -> [ConDecl] -> Deriving -> Decl-dataDecl = dataDeclHelper $ Syntax.DataType ()--newtypeDecl :: Name -> Type -> Deriving -> Decl-newtypeDecl name wrappedType- = dataDeclHelper (Syntax.NewType ()) name- [Syntax.ConDecl () name [wrappedType]]--dataDeclHelper :: Syntax.DataOrNew () -> Name -> [ConDecl] -> Deriving -> Decl-dataDeclHelper dataOrNew name conDecls derives- = Syntax.DataDecl () dataOrNew Nothing- (Syntax.DHead () name)- [Syntax.QualConDecl () Nothing Nothing q | q <- conDecls]-#if MIN_VERSION_haskell_src_exts(1,20,0)- [derives]-#else- $ Just derives-#endif--type Deriving = Syntax.Deriving ()--deriving' :: [QName] -> Deriving-deriving' classes = Syntax.Deriving ()-#if MIN_VERSION_haskell_src_exts(1,20,0)- Nothing-#endif- [ Syntax.IRule () Nothing Nothing (Syntax.IHCon () c)- | c <- classes- ]--funBind :: [Match] -> Decl-funBind = Syntax.FunBind ()--patBind :: Pat -> Exp -> Decl-patBind p e = Syntax.PatBind () p (Syntax.UnGuardedRhs () e) Nothing--instType :: Type -> Type -> Syntax.InstDecl ()-instType = Syntax.InsType ()--instMatch :: [Match] -> Syntax.InstDecl ()-instMatch m = Syntax.InsDecl () $ funBind m--instDeclWithTypes :: [Asst] -> InstHead -> [Syntax.InstDecl ()] -> Decl-instDeclWithTypes ctx instHead decls- = Syntax.InstDecl () Nothing- (Syntax.IRule () Nothing ctx' instHead)- $ Just decls- where- ctx' = case ctx of- [] -> Nothing- [c] -> Just $ Syntax.CxSingle () c- cs -> Just $ Syntax.CxTuple () cs--instDecl :: [Asst] -> InstHead -> [[Match]] -> Decl-instDecl ctx instHead = instDeclWithTypes ctx instHead . fmap instMatch--typeSig :: [Name] -> Type -> Decl-typeSig = Syntax.TypeSig ()---type Exp = Syntax.Exp ()--let' :: [Decl] -> Exp -> Exp-let' ds e = Syntax.Let () (Syntax.BDecls () ds) e--type Alt = Syntax.Alt ()--case' :: Exp -> [Alt] -> Exp-case' = Syntax.Case ()--(-->) :: Pat -> Exp -> Alt-p --> e = Syntax.Alt () p (Syntax.UnGuardedRhs () e) Nothing-infixl 1 -->--stringExp :: String -> Exp-stringExp = Syntax.Lit () . string--charExp :: Char -> Exp-charExp = Syntax.Lit () . char--tuple :: [Exp] -> Exp-tuple = Syntax.Tuple () Syntax.Boxed--lambda :: [Pat] -> Exp -> Exp-lambda ps e = Syntax.Paren () $ Syntax.Lambda () ps e--(@::@) :: Exp -> Type -> Exp-(@::@) = Syntax.ExpTypeSig ()-infixl 2 @::@--recConstr :: QName -> [FieldUpdate] -> Exp-recConstr = Syntax.RecConstr ()--recUpdate :: Exp -> [FieldUpdate] -> Exp-recUpdate = Syntax.RecUpdate ()--var, con :: QName -> Exp-var = Syntax.Var ()-con = Syntax.Con ()--list :: [Exp] -> Exp-list = Syntax.List ()--if' :: Exp -> Exp -> Exp -> Exp-if' = Syntax.If ()---- | The ":" constructor.-cons :: Exp-cons = var $ Syntax.Special () $ Syntax.Cons ()---- | The "[]" constructor.-emptyList :: Exp-emptyList = var $ Syntax.Special () $ Syntax.ListCon ()---- | The "()" constructor.-unit :: Exp-unit = var $ Syntax.Special () $ Syntax.UnitCon ()--typeApp :: Type -> Exp-typeApp = Syntax.TypeApp ()--type Stmt = Syntax.Stmt ()--do' :: [Stmt] -> Exp-do' = Syntax.Do ()--(<--) :: Pat -> Exp -> Stmt-(<--) = Syntax.Generator ()-infixl 1 <----stmt :: Exp -> Stmt-stmt = Syntax.Qualifier ()--letStmt :: [Decl] -> Stmt-letStmt = Syntax.LetStmt () . Syntax.BDecls ()--type FieldUpdate = Syntax.FieldUpdate ()--fieldUpdate :: QName -> Exp -> FieldUpdate-fieldUpdate = Syntax.FieldUpdate ()--type InstHead = Syntax.InstHead ()--ihApp :: InstHead -> [Type] -> InstHead-ihApp = foldl (Syntax.IHApp ())--tyParen :: Type -> Type-tyParen = Syntax.TyParen ()--tyFun :: Type -> Type -> Type-tyFun = Syntax.TyFun ()--type Match = Syntax.Match ()---- | A simple clause of a function binding.-match :: Name -> [Pat] -> Exp -> Match-match n ps e = Syntax.Match () n ps (Syntax.UnGuardedRhs () e) Nothing--guardedMatch :: Name -> [Pat] -> [(Exp, Exp)] -> Match-guardedMatch n ps gs =- Syntax.Match () n ps- (Syntax.GuardedRhss ()- $ map (\g -> Syntax.GuardedRhs () [Syntax.Qualifier () $ fst g]- (snd g)) gs)- Nothing---- | A hand-rolled type for modules, which allows comments on top-level--- declarations.-data Module = Module ModuleName (Maybe [ExportSpec]) [ModulePragma]- [Syntax.ImportDecl ()]- [CommentedDecl]---- | A declaration, along with an optional comment.-data CommentedDecl = CommentedDecl (Maybe String) Decl--uncommented :: Decl -> CommentedDecl-uncommented = CommentedDecl Nothing--commented :: String -> Decl -> CommentedDecl-commented = CommentedDecl . Just--prettyPrintModule :: Module -> String-prettyPrintModule (Module modName exports pragmas imports decls) =- render $- vcat (map prettyPrim pragmas)- $+$ prettyPrim (Syntax.ModuleHead () modName- -- no warning text- Nothing- (Syntax.ExportSpecList () <$> exports))- $+$ vcat (map prettyPrim imports)- $+$ ""- $+$ vcat (map pprintDecl decls)- where- pprintDecl (CommentedDecl Nothing d) = prettyPrim d- pprintDecl (CommentedDecl (Just c) d)- = "{- |" <+> text c <+> "-}" $+$ prettyPrim d--type ExportSpec = Syntax.ExportSpec ()--getModuleName :: Module -> ModuleName-getModuleName (Module name _ _ _ _) = name--type ModuleName = Syntax.ModuleName ()-type ModulePragma = Syntax.ModulePragma ()--languagePragma :: [Name] -> ModulePragma-languagePragma = Syntax.LanguagePragma ()--optionsGhcPragma :: String -> ModulePragma-optionsGhcPragma = Syntax.OptionsPragma () (Just Syntax.GHC)--exportVar :: QName -> ExportSpec-exportVar = Syntax.EVar ()--exportAll :: QName -> ExportSpec-exportAll q = Syntax.EThingWith () (Syntax.EWildcard () 0) q []--exportWith :: QName -> [Name] -> ExportSpec-exportWith q = Syntax.EThingWith ()- (Syntax.NoWildcard ())- q- . map (Syntax.ConName ())--type Name = Syntax.Name ()--type Pat = Syntax.Pat ()--pApp :: QName -> [Pat] -> Pat-pApp = Syntax.PApp ()--pVar :: Name -> Pat-pVar = Syntax.PVar ()--pWildCard :: Pat-pWildCard = Syntax.PWildCard ()--stringPat :: String -> Pat-stringPat = Syntax.PLit () (Syntax.Signless ()) . string--bangPat :: Pat -> Pat-bangPat = Syntax.PBangPat ()--patTypeSig :: Pat -> Type -> Pat-patTypeSig = Syntax.PatTypeSig ()--type QName = Syntax.QName ()--qual :: ModuleName -> Name -> QName-qual = Syntax.Qual ()--unQual :: Name -> QName-unQual = Syntax.UnQual ()---type TyVarBind = Syntax.TyVarBind ()-type Type = Syntax.Type ()--tyCon :: QName -> Type-tyCon = Syntax.TyCon ()--tyList :: Type -> Type-tyList = Syntax.TyList ()--tyPromotedList :: [Type] -> Type-tyPromotedList ts = Syntax.TyPromoted () $ Syntax.PromotedList () True ts--tyPromotedString :: String -> Type-tyPromotedString s = Syntax.TyPromoted () $ Syntax.PromotedString () s s--type Promoted = Syntax.Promoted ()--tyPromotedCon :: Promoted -> Type-tyPromotedCon = Syntax.TyPromoted ()--instance IsString Promoted where- fromString = Syntax.PromotedCon () True . fromString--tyForAll :: [TyVarBind] -> [Asst] -> Type -> Type-tyForAll vars ctx t = Syntax.TyForall () (Just vars)- (Just $ Syntax.CxTuple () ctx)- t--tyBang :: Type -> Type-tyBang = Syntax.TyBang () (Syntax.BangedTy ()) (Syntax.NoUnpackPragma ())--tyWildCard :: Type-tyWildCard = Syntax.TyWildCard () Nothing---- | Application of a Haskell type or expression to an argument.--- For example, to represent @f x y@, you can write------ > "f" @@ "x" @@ "y"-class App a where- (@@) :: a -> a -> a- infixl 2 @@--instance App Type where- (@@) = Syntax.TyApp ()--instance App Exp where- Syntax.App () (Syntax.Con () v) x @@ y- -- For readability, print fully-applied operators infix, i.e., "x OP y"- -- rather than "(OP) x y".- | isSymbol v- = Syntax.InfixApp () (Syntax.Paren () x) (Syntax.QVarOp () v) y- where- isSymbol (Syntax.Qual () _ (Syntax.Symbol () _)) = True- isSymbol (Syntax.UnQual () (Syntax.Symbol () _)) = True- isSymbol _ = False- x @@ y = Syntax.App () x y--instance IsString Name where- fromString s- -- TODO: better handle the case of mixed ident and symbol characters.- | all isIdentChar s = Syntax.Ident () s- | otherwise = Syntax.Symbol () s---- | Whether this character belongs to an Ident (e.g., "foo") or a symbol--- (e.g., "<$>").-isIdentChar :: Char -> Bool-isIdentChar c = isAlphaNum c || c `elem` ("_'" :: String)--instance IsString ModuleName where- fromString = Syntax.ModuleName ()--instance IsString QName where- fromString f- -- TODO: support qualified operators (e.g., "Control.Applicative.<$>")- -- Currently we ignore them due to edge-cases- -- like the composition operator "Prelude.."- | isIdentChar (last f), '.' `elem` f- -- Split "Foo.Bar.baz" into ("Foo.Bar", "baz")- , (f', '.':f'') <- span (/='.') (reverse f)- = Syntax.Qual () (fromString $ reverse f'') (fromString $ reverse f')- | otherwise = Syntax.UnQual () $ fromString f--instance IsString Type where- fromString fs@(f:_)- | isUpper f = Syntax.TyCon () $ fromString fs- fromString fs = Syntax.TyVar () $ fromString fs--instance IsString Exp where- fromString fs@(f:_)- -- TODO: this logic isn't correct for qualified names (since the module is- -- capitalized). However, it doesn't matter in practice if we're just- -- generating code.- | isUpper f = Syntax.Con () $ fromString fs- fromString fs = Syntax.Var () $ fromString fs--instance IsString Pat where- fromString = Syntax.PVar () . fromString--instance IsString TyVarBind where- fromString = Syntax.UnkindedVar () . fromString--instance IsString InstHead where- fromString = Syntax.IHCon () . fromString---- Helper functions for literal numbers, since haskell-src-exts doesn't--- put parentheses around negative numbers automatically.--litInt :: Integer -> Exp-litInt n- | n >= 0 = Syntax.Lit () $ Syntax.Int () n (show n)- | otherwise = Syntax.NegApp () $ litInt $ negate n--litFrac :: Rational -> Exp-litFrac x- | x >= 0 = Syntax.Lit () $ Syntax.Frac () x (show x)- | otherwise = Syntax.NegApp () $ litFrac $ negate x--pLitInt :: Integer -> Pat-pLitInt n = Syntax.PLit () sign $ Syntax.Int () n' (show n')- where- (n', sign)- | n >= 0 = (n, Syntax.Signless ())- | otherwise = (negate n, Syntax.Negative ())--string :: String -> Syntax.Literal ()-string s = Syntax.String () s (show s)--char :: Char -> Syntax.Literal ()-char c = Syntax.Char () c [c]--modifyModuleName :: (String -> String) -> ModuleName -> ModuleName-modifyModuleName f (Syntax.ModuleName _ unpacked) =- Syntax.ModuleName () $ f unpacked-
− src/Data/ProtoLens/Compiler/Definitions.hs
@@ -1,650 +0,0 @@--- Copyright 2016 Google Inc. All Rights Reserved.------ Use of this source code is governed by a BSD-style--- license that can be found in the LICENSE file or at--- https://developers.google.com/open-source/licenses/bsd---- | This module takes care of collecting all the definitions in a .proto file--- and assigning Haskell names to all of the defined things (messages, enums--- and field names).-{-# LANGUAGE CPP #-}-{-# LANGUAGE DeriveFunctor #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE OverloadedStrings #-}-module Data.ProtoLens.Compiler.Definitions- ( Env- , Definition(..)- , MessageInfo(..)- , ServiceInfo(..)- , MethodInfo(..)- , PlainFieldInfo(..)- , FieldInfo(..)- , FieldKind(..)- , FieldPacking(..)- , MapEntryInfo(..)- , OneofInfo(..)- , OneofCase(..)- , FieldName(..)- , Symbol- , nameFromSymbol- , promoteSymbol- , EnumInfo(..)- , EnumValueInfo(..)- , EnumUnrecognizedInfo(..)- , qualifyEnv- , unqualifyEnv- , collectDefinitions- , collectServices- , definedFieldType- , definedType- , camelCase- , overloadedFieldName- ) where--import Control.Applicative (liftA2)-import Data.Char (isUpper, toUpper)-import Data.Int (Int32)-import Data.List (mapAccumL)-import qualified Data.Map as Map-import Data.Maybe (fromMaybe)-#if !MIN_VERSION_base(4,11,0)-import Data.Monoid ((<>))-#endif-import qualified Data.Semigroup as Semigroup-import qualified Data.Set as Set-import Data.String (IsString(..))-import Data.Text (Text, cons, splitOn, toLower, uncons, unpack)-import qualified Data.Text as T-import Data.Tree- ( Tree(..)- , Forest- , flatten- )-import Lens.Family2 ((^.), (^..), toListOf)-import Proto.Google.Protobuf.Descriptor- ( DescriptorProto- , EnumDescriptorProto- , EnumValueDescriptorProto- , FieldDescriptorProto- , FieldDescriptorProto'Label(..)- , FieldDescriptorProto'Type(..)- , FileDescriptorProto- , MethodDescriptorProto- , ServiceDescriptorProto- )-import Proto.Google.Protobuf.Descriptor_Fields- ( clientStreaming- , enumType- , field- , inputType- , label- , mapEntry- , maybe'oneofIndex- , maybe'packed- , messageType- , method- , name- , nestedType- , number- , oneofDecl- , options- , outputType- , package- , serverStreaming- , service- , syntax- , type'- , typeName- , value- )--import Data.ProtoLens.Compiler.Combinators- ( Name- , QName- , ModuleName- , Type- , qual- , tyPromotedString- , unQual- )---- | 'Env' contains a mapping of proto names (as specified in the .proto file)--- to Haskell names. The keys are fully-qualified names, for example,--- ".package.Message.Submessage". (The protocol_compiler tool emits all--- message field types in this form, even if they refer to local definitions.)------ The type 'n' can be either a 'Name' (when talking about definitions within--- the current file) or a (qualified) 'QName' (when talking about definitions--- either from this or another file).-type Env n = Map.Map Text (Definition n)--data SyntaxType = Proto2 | Proto3- deriving (Show, Eq)--fileSyntaxType :: FileDescriptorProto -> SyntaxType-fileSyntaxType f = case f ^. syntax of- "proto2" -> Proto2- "proto3" -> Proto3- "" -> Proto2 -- The proto compiler doesn't set syntax for proto2 files.- s -> error $ "Unknown syntax type " ++ show s--data Definition n = Message (MessageInfo n) | Enum (EnumInfo n)- deriving Functor---- | All the information needed to define or use a proto message type.-data MessageInfo n = MessageInfo- { messageName :: n -- ^ Haskell type name- , messageDescriptor :: DescriptorProto- , messageFields :: [PlainFieldInfo] -- ^ Fields not belonging to a oneof.- , messageOneofFields :: [OneofInfo]- -- ^ The oneofs in this message, associated with the fields that- -- belong to them.- , messageUnknownFields :: Name- -- ^ The name of the Haskell field in this message that holds the- -- unknown fields.- , groupFieldNumber :: Maybe Int32- -- ^ The number of the field that holds this message, if it is a group.- } deriving Functor--data ServiceInfo = ServiceInfo- { serviceName :: Text- , servicePackage :: Text- , serviceMethods :: [MethodInfo]- }--data MethodInfo = MethodInfo- { methodName :: Text- , methodIdent :: Text- , methodInput :: Text- , methodOutput :: Text- , methodClientStreaming :: Bool- , methodServerStreaming :: Bool- }---- | Information about a single field of a proto message,--- associated with how it is stored.-data PlainFieldInfo = PlainFieldInfo- { plainFieldKind :: FieldKind- , plainFieldInfo :: FieldInfo- }---- | Information about a single field of a proto message.-data FieldInfo = FieldInfo- { fieldDescriptor :: FieldDescriptorProto- , fieldName :: FieldName- }---- | How a field is stored inside of the proto message.-data FieldKind- = RequiredField- -- ^ A proto2 required field. Stored internally as a value.- | OptionalValueField- -- ^ A proto3 optional scalar field. Stored internally as a- -- value, and defaults to corresponding instance of fieldDefault.- | OptionalMaybeField- -- ^ An optional field where the "unset" and "defaulT" values- -- are distinguishable. Stored internally as a Maybe.- -- In particular: proto2 optional fields, proto3 messages,- -- and "oneof" fields.- | RepeatedField FieldPacking- -- ^ A field containing a sequence of values.- -- Stored internally as either a list or a map, depending on- -- whether the field's FieldDescriptorProto of the field has- -- options.map_entry set.- | MapField MapEntryInfo- -- ^ A field containing a map of keys to values.- -- Serialized as a repeated field of an autogenerated "entry"- -- proto type, each instance of which contains a key-value pair.--data FieldPacking- = NotPackable -- ^ Cannot be packed (e.g., strings or messages).- | Packable -- ^ Can be decoded as packed, but should not be not be- -- encoded as packed by default.- | Packed -- ^ Can be decoded as packed, and should be encoded- -- as packed by default.- deriving Eq--data OneofInfo = OneofInfo- { oneofFieldName :: FieldName- , oneofTypeName :: Name- -- ^ The name of the sum type corresponding to this oneof.- , oneofCases :: [OneofCase]- -- ^ The individual fields that make up this oneof.- }--data OneofCase = OneofCase- { caseField :: FieldInfo- , caseConstructorName :: Name- -- ^ The constructor for building a 'oneofTypeName' from the- -- value in this field.- , casePrismName :: Name- -- ^ The name for building 'Prism' definition.- }---- | The "entry" type for a map field is a proto message, autogenerated by--- protoc, that has two fields: a key and a value. The map field should be--- serialized like a repeated field of the entry messages.-data MapEntryInfo = MapEntryInfo- { mapEntryTypeName :: Name- -- ^ The Haskell name for this type.- , keyField :: FieldInfo- -- ^ The field of the entry type corresponding to the map key.- , valueField :: FieldInfo- -- ^ The field of the entry type corresponding to the map value.- }--data FieldName = FieldName- { overloadedName :: Symbol- -- ^ The overloaded name of lenses that access this field.- -- For example, if the field is called "foo_bar" in the .proto- -- then @overloadedName == "fooBar"@ and we might generate- -- @fooBar@ and/or @maybe'fooBar@ lenses to access the data.- --- -- May be shared between two different message data types in the same- -- module.- , haskellRecordFieldName :: Name- -- ^ The Haskell name of this internal record field; for example,- -- "_Foo'Bar'baz. Unique within each module.- }---- | A string that refers to the name (in Haskell) of a lens that accesses a--- field.------ For example, in the signature of the overloaded lens------ @--- foo :: HasLens "foo" ... => Lens ...--- @------ a 'Symbol' is used to construct both the type-level argument to--- @HasLens@ and the name of the function @foo@.-newtype Symbol = Symbol String- deriving (Eq, Ord, IsString, Semigroup.Semigroup, Monoid)--nameFromSymbol :: Symbol -> Name-nameFromSymbol (Symbol s) = fromString s---- | Construct a promoted, type-level string.-promoteSymbol :: Symbol -> Type-promoteSymbol (Symbol s) = tyPromotedString s---- | All the information needed to define or use a proto enum type.-data EnumInfo n = EnumInfo- { enumName :: n- , enumUnrecognized :: Maybe EnumUnrecognizedInfo- , enumDescriptor :: EnumDescriptorProto- , enumValues :: [EnumValueInfo n]- } deriving Functor---- | Information about the "unrecognized" case of an enum.-data EnumUnrecognizedInfo = EnumUnrecognizedInfo- { unrecognizedName :: Name- , unrecognizedValueName :: Name- }---- | Information about a single value case of a proto enum.-data EnumValueInfo n = EnumValueInfo- { enumValueName :: n- , enumValueDescriptor :: EnumValueDescriptorProto- , enumAliasOf :: Maybe Name- -- ^ If 'Nothing', we turn value into a normal constructor of the enum.- -- If @'Just' n@, we're treating it as an alias of the constructor @n@- -- (a PatternSynonym in Haskell). This mirrors the behavior of the- -- Java API.- } deriving Functor--mapEnv :: (n -> n') -> Env n -> Env n'-mapEnv f = fmap $ fmap f---- Lift a set of local definitions into references to a specific module.-qualifyEnv :: ModuleName -> Env Name -> Env QName-qualifyEnv m = mapEnv (qual m)---- Lift a set of local definitions into references to the current module.-unqualifyEnv :: Env Name -> Env QName-unqualifyEnv = mapEnv unQual---- | Look up the Haskell name for the type of a given field (message or enum).-definedFieldType :: FieldDescriptorProto -> Env QName -> Definition QName-definedFieldType fd env = fromMaybe err $ Map.lookup (fd ^. typeName) env- where- err = error $ "definedFieldType: Field type " ++ unpack (fd ^. typeName)- ++ " not found in environment."---- | Look up the Haskell name for the type of a given type.-definedType :: Text -> Env QName -> Definition QName-definedType ty = fromMaybe err . Map.lookup ty- where- err = error $ "definedType: Type " ++ unpack ty- ++ " not found in environment."---- | Collect all the definitions in the given file (including definitions--- nested in other messages), and assign Haskell names to them.-collectDefinitions :: FileDescriptorProto -> Env Name-collectDefinitions fd = let- protoPrefix = case fd ^. package of- "" -> "."- p -> "." <> p <> "."- hsPrefix = ""- in Map.fromList $ concatMap flatten $- messageAndEnumDefs (fileSyntaxType fd)- protoPrefix hsPrefix Map.empty- (fd ^. messageType) (fd ^. enumType)--collectServices :: FileDescriptorProto -> [ServiceInfo]-collectServices fd = fmap (toServiceInfo $ fd ^. package) $ fd ^. service- where- toServiceInfo :: Text -> ServiceDescriptorProto -> ServiceInfo- toServiceInfo pkg sd =- ServiceInfo- { serviceName = sd ^. name- , servicePackage = pkg- , serviceMethods = fmap toMethodInfo $ sd ^. method- }-- toMethodInfo :: MethodDescriptorProto -> MethodInfo- toMethodInfo md =- MethodInfo- { methodName = md ^. name- , methodIdent = camelCase $ md ^. name- , methodInput = fromString . T.unpack $ md ^. inputType- , methodOutput = fromString . T.unpack $ md ^. outputType- , methodClientStreaming = md ^. clientStreaming- , methodServerStreaming = md ^. serverStreaming- }--messageAndEnumDefs ::- SyntaxType -> Text -> String- -> GroupMap- -- ^ Group fields of the parent message (if any).- -> [DescriptorProto]- -> [EnumDescriptorProto]- -> Forest (Text, Definition Name)- -- ^ Organized as a list of trees, to make it possible for callers- -- to get the immediate child nested types.-messageAndEnumDefs syntaxType protoPrefix hsPrefix groups messages enums- = map (messageDefs syntaxType protoPrefix hsPrefix groups) messages- ++ map- (flip Node [] -- Enums have no sub-definitions- . enumDef syntaxType protoPrefix hsPrefix)- enums---- | Generate the definitions for a message and its nested types (if any).-messageDefs :: SyntaxType -> Text -> String -> GroupMap -> DescriptorProto- -> Tree (Text, Definition Name)-messageDefs syntaxType protoPrefix hsPrefix groups d- = Node (protoName, thisDef) subDefs- where- protoName = protoPrefix <> d ^. name- hsPrefix' = hsPrefix ++ hsName (d ^. name) ++ "'"- allFields = groupFieldsByOneofIndex (d ^. field)- thisDef =- Message MessageInfo- { messageName = fromString $ hsPrefix ++ hsName (d ^. name)- , messageDescriptor = d- , messageFields =- map (liftA2 PlainFieldInfo- (fieldKind syntaxType mapEntries) (fieldInfo hsPrefix'))- $ Map.findWithDefault [] Nothing allFields- , messageOneofFields = collectOneofFields hsPrefix' d allFields- , messageUnknownFields =- fromString $ "_" ++ hsPrefix' ++ "_unknownFields"- , groupFieldNumber = Map.lookup protoName groups- }- subDefs = messageAndEnumDefs- syntaxType- (protoName <> ".")- hsPrefix'- (collectGroupFields $ d ^. field)- (d ^. nestedType)- (d ^. enumType)- -- For efficiency, only look for map entries within the immediate- -- nested types, rather than recursively searching through all of them.- mapEntries = collectMapEntries $ map rootLabel subDefs---- | If this type is a map entry, retrieves the relevant information--- along with the proto name of this type.-mapEntryInfo :: Definition Name -> Maybe MapEntryInfo-mapEntryInfo (Message m)- | messageDescriptor m ^. options . mapEntry- , [keyFd, valueFd] <- messageFields m- = Just MapEntryInfo- { mapEntryTypeName = messageName m- , keyField = plainFieldInfo keyFd- , valueField = plainFieldInfo valueFd- }-mapEntryInfo _ = Nothing---- | Returns a map whose keys are the proto type name of the entry message.-collectMapEntries :: [(Text, Definition Name)] -> Map.Map Text MapEntryInfo-collectMapEntries defs =- Map.fromList- [(protoName, e) | (protoName, d) <- defs, Just e <- [mapEntryInfo d]]---- | A map whose keys are the proto type names of the groups in a message,--- and values are the field numbers for those groups.--- (Every group corresponds to exactly one message field.)-type GroupMap = Map.Map Text Int32--collectGroupFields :: [FieldDescriptorProto] -> GroupMap-collectGroupFields fs = Map.fromList- [ (f ^. typeName, f ^. number)- | f <- fs- , f ^. type' == FieldDescriptorProto'TYPE_GROUP- ]--fieldInfo :: String -> FieldDescriptorProto -> FieldInfo-fieldInfo hsPrefix f = FieldInfo- { fieldDescriptor = f- , fieldName = mkFieldName hsPrefix $ f ^. name- }--fieldKind ::- SyntaxType -> Map.Map Text MapEntryInfo -> FieldDescriptorProto- -> FieldKind-fieldKind syntaxType mapEntries f = case f ^. label of- FieldDescriptorProto'LABEL_OPTIONAL- | syntaxType == Proto3- && f ^. type' /= FieldDescriptorProto'TYPE_MESSAGE- -> OptionalValueField- | otherwise -> OptionalMaybeField- FieldDescriptorProto'LABEL_REQUIRED -> RequiredField- FieldDescriptorProto'LABEL_REPEATED- | Just entryInfo <- Map.lookup (f ^. typeName) mapEntries- -> MapField entryInfo- | otherwise -> RepeatedField packed- where- packed- | f ^. type' `elem` unpackableTypes = NotPackable- | packedByDefault = Packed- | otherwise = Packable- -- If the "packed" attribute isn't set, then default to packed if proto3.- -- Unfortunately, protoc doesn't implement this logic for us automatically.- packedByDefault = fromMaybe (syntaxType == Proto3)- $ f ^. options . maybe'packed- unpackableTypes =- [ FieldDescriptorProto'TYPE_MESSAGE- , FieldDescriptorProto'TYPE_GROUP- , FieldDescriptorProto'TYPE_STRING- , FieldDescriptorProto'TYPE_BYTES- ]--collectOneofFields- :: String -> DescriptorProto -> Map.Map (Maybe Int32) [FieldDescriptorProto]- -> [OneofInfo]-collectOneofFields hsPrefix d allFields- = zipWith oneofInfo [0..] $ d ^.. oneofDecl . traverse . name- where- oneofInfo idx n = OneofInfo- { oneofFieldName = mkFieldName hsPrefix n- , oneofTypeName = fromString $ hsPrefix ++ hsNameUnique subdefTypes n- , oneofCases = map oneofCase- $ Map.findWithDefault [] (Just idx)- allFields- }- oneofCase f =- let consName = hsPrefix ++ hsNameUnique subdefCons (f ^. name)- in OneofCase- { caseField = fieldInfo hsPrefix f- , caseConstructorName =- -- Note: oneof case constructors aren't prefixed- -- by the oneof name; field names (even inside- -- of a oneof) are unique within a message.- fromString consName- , casePrismName =- fromString $ "_" ++ consName- }- -- Make a name that doesn't overlap with those already defined by submessages- -- or subenums.- hsNameUnique ns n- | n' `elem` ns = n' ++ "'"- | otherwise = n'- where- n' = hsName $ camelCase n- -- The Haskell "type" namespace- subdefTypes = Set.fromList $ map hsName- $ toListOf (nestedType . traverse . name) d- ++ toListOf (enumType . traverse . name) d- -- The Haskell "expression" namespace (i.e., constructors)- subdefCons = Set.fromList $ map hsName- $ toListOf (nestedType . traverse . name) d- ++ toListOf (enumType . traverse . value . traverse . name) d---- | Group fields by the index of the oneof field that they belong to.--- (Or 'Nothing' if they don't belong to a oneof.)-groupFieldsByOneofIndex- :: [FieldDescriptorProto] -> Map.Map (Maybe Int32) [FieldDescriptorProto]-groupFieldsByOneofIndex =- fmap reverse- . Map.fromListWith (++)- . fmap (\f -> (f ^. maybe'oneofIndex, [f]))--hsName :: Text -> String-hsName = unpack . capitalize--mkFieldName :: String -> Text -> FieldName-mkFieldName hsPrefix n = FieldName- { overloadedName = fromString n'- , haskellRecordFieldName = fromString $ "_" ++ hsPrefix ++ n'- }- where- n' = fieldBaseName n---- | Get the name in Haskell of a proto field, taking care of camel casing and--- clashes with language keywords. Doesn't handle the name prefix of the--- containing type.-fieldBaseName :: Text -> String-fieldBaseName = unpack . disambiguate . camelCase- where- disambiguate s- | s `Set.member` reservedKeywords = s <> "'"- | otherwise = s--camelCase :: Text -> Text-camelCase s =- -- Preserve any initial underlines (e.g., "_foo_bar" -> "_fooBar").- let (underlines, rest) = T.span (== '_') s- in case splitOn "_" rest of- -- splitOn always returns a list with at least one element.- [] -> error $ "camelCase: splitOn returned empty list: "- ++ show rest- [""] -> error $ "camelCase: name consists only of underscores: "- ++ show s- s':ss -> T.concat $ underlines : lowerInitialChars s' : map capitalize ss---- | Lower-case all initial upper-case characters.--- For example: "Foo" -> "foo", "FooBar" -> "fooBar", "FOObar" -> "foobar"-lowerInitialChars :: Text -> Text-lowerInitialChars s = toLower pre <> post- where (pre, post) = T.span isUpper s---- | A list of reserved keywords that aren't valid as variable names.-reservedKeywords :: Set.Set Text-reservedKeywords = Set.fromList $- -- Haskell2010 keywords:- -- https://www.haskell.org/onlinereport/haskell2010/haskellch2.html#x7-180002.4- -- We don't include keywords that are allowed to be variable names,- -- in particular: "as", "forall", and "hiding".- [ "case"- , "class"- , "data"- , "default"- , "deriving"- , "do"- , "else"- , "foreign"- , "if"- , "import"- , "in"- , "infix"- , "infixl"- , "infixr"- , "instance"- , "let"- , "module"- , "newtype"- , "of"- , "then"- , "type"- , "where"- ]- ++ -- Nonstandard extensions- [ "mdo" -- RecursiveDo- , "rec" -- Arrows, RecursiveDo- , "pattern" -- PatternSynonyms- , "proc" -- Arrows- ]---- | Generate the definition for an enum type.-enumDef :: SyntaxType -> Text -> String -> EnumDescriptorProto- -> (Text, Definition Name)-enumDef syntaxType protoPrefix hsPrefix d = let- mkText n = protoPrefix <> n- mkHsName n = fromString $ hsPrefix ++ case hsName n of- ('_':xs) -> 'X':xs- xs -> xs- in (mkText (d ^. name)- , Enum EnumInfo- { enumName = mkHsName (d ^. name)- , enumUnrecognized = if syntaxType == Proto2- then Nothing- else Just EnumUnrecognizedInfo- { unrecognizedName- = mkHsName (d ^. name <> "'Unrecognized")- , unrecognizedValueName- = mkHsName (d ^. name <> "'UnrecognizedValue")- }- , enumDescriptor = d- , enumValues = collectEnumValues mkHsName $ d ^. value- })---- | Generate the definitions for each enum value. In particular, decide--- whether it's a true constructor or a PatternSynonym to another--- constructor.------ Like Java, we treat the first case of each numeric value as the "real"--- constructor, and subsequent cases as synonyms.-collectEnumValues :: (Text -> Name) -> [EnumValueDescriptorProto]- -> [EnumValueInfo Name]-collectEnumValues mkHsName = snd . mapAccumL helper Map.empty- where- helper :: Map.Map Int32 Name -> EnumValueDescriptorProto- -> (Map.Map Int32 Name, EnumValueInfo Name)- helper seenNames v- | Just n' <- Map.lookup k seenNames = (seenNames, mkValue (Just n'))- | otherwise = (Map.insert k n seenNames, mkValue Nothing)- where- mkValue = EnumValueInfo n v- n = mkHsName (v ^. name)- k = v ^. number---- Haskell types must start with an uppercase letter, so we capitalize message--- and enum names.--- Name collisions will show up as build errors in the generated haskell file.-capitalize :: Text -> Text-capitalize s- | Just (c, s') <- uncons s = cons (toUpper c) s'- | otherwise = s--overloadedFieldName :: FieldInfo -> Symbol-overloadedFieldName = overloadedName . fieldName
− src/Data/ProtoLens/Compiler/Generate.hs
@@ -1,1030 +0,0 @@--- Copyright 2016 Google Inc. All Rights Reserved.------ Use of this source code is governed by a BSD-style--- license that can be found in the LICENSE file or at--- https://developers.google.com/open-source/licenses/bsd---- | This module builds the actual, generated Haskell file--- for a given input .proto file.-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE OverloadedStrings #-}-module Data.ProtoLens.Compiler.Generate(- generateModule,- ModifyImports,- reexported,- ) where---import Control.Arrow (second)-import qualified Data.Foldable as F-import qualified Data.List as List-import qualified Data.Map as Map-import Data.Maybe (isJust)-import Data.Monoid ((<>))-import Data.Ord (comparing)-import qualified Data.Set as Set-import Data.String (fromString)-import Data.Text (unpack)-import qualified Data.Text as T-import Data.Tuple (swap)-import Lens.Family2 ((^.))-import Text.Printf (printf)--import Proto.Google.Protobuf.Descriptor- ( EnumValueDescriptorProto- , FieldDescriptorProto- , FieldDescriptorProto'Type(..)- )-import Proto.Google.Protobuf.Descriptor_Fields- ( defaultValue- , name- , number- , type'- , typeName- )--import Data.ProtoLens.Compiler.Combinators-import Data.ProtoLens.Compiler.Definitions-import Data.ProtoLens.Compiler.Generate.Encoding-import Data.ProtoLens.Compiler.Generate.Field- ( hsFieldType- , hsFieldVectorType- )---- Whether to import the "Runtime" modules or the originals;--- e.g., Data.ProtoLens.Runtime.Data.Map vs Data.Map.-data UseRuntime = UseRuntime | UseOriginal- deriving (Eq, Read)---- | Generate a Haskell module for the given input file(s).--- input contains all defined names, incl. those in this module-generateModule :: ModuleName- -> [ModuleName] -- ^ The imported modules- -> ModifyImports- -> Env Name -- ^ Definitions in this file- -> Env QName -- ^ Definitions in the imported modules- -> [ServiceInfo]- -> [Module]-generateModule modName imports modifyImport definitions importedEnv services- = [ Module modName- (Just $ (serviceExports ++) $ concatMap generateExports $ Map.elems definitions)- pragmas- (mainImports ++ sharedImports)- $ (concatMap generateDecls $ Map.toList definitions)- ++ map uncommented (concatMap (generateServiceDecls env) services)- , Module fieldModName- Nothing- pragmas- sharedImports- . map uncommented- $ concatMap generateFieldDecls allLensNames- ]- where- fieldModName = modifyModuleName (++ "_Fields") modName- pragmas =- [ languagePragma $ map fromString- ["ScopedTypeVariables", "DataKinds", "TypeFamilies",- "UndecidableInstances", "GeneralizedNewtypeDeriving",- "MultiParamTypeClasses", "FlexibleContexts", "FlexibleInstances",- "PatternSynonyms", "MagicHash", "NoImplicitPrelude",- "DataKinds", "BangPatterns", "TypeApplications"]- -- Allow unused imports in case we don't import anything from- -- Data.Text, Data.Int, etc.- , optionsGhcPragma "-fno-warn-unused-imports"- -- haskell-src-exts doesn't support exporting `Foo(..., A, B)`- -- in a single entry, so we use two: `Foo(..)` and `Foo(A, B)`.- , optionsGhcPragma "-fno-warn-duplicate-exports"- ]- mainImports = map (modifyImport . importSimple)- [ "Control.DeepSeq", "Data.ProtoLens.Prism" ]- sharedImports = map (modifyImport . importSimple)- [ "Prelude", "Data.Int", "Data.Monoid", "Data.Word"- , "Data.ProtoLens"- , "Data.ProtoLens.Encoding.Bytes"- , "Data.ProtoLens.Encoding.Growing"- , "Data.ProtoLens.Encoding.Parser.Unsafe"- , "Data.ProtoLens.Encoding.Wire"- , "Data.ProtoLens.Field"- , "Data.ProtoLens.Message.Enum"- , "Data.ProtoLens.Service.Types"- , "Lens.Family2", "Lens.Family2.Unchecked"- , "Data.Text", "Data.Map", "Data.ByteString", "Data.ByteString.Char8"- , "Data.Text.Encoding"- , "Data.Vector"- , "Data.Vector.Generic"- , "Data.Vector.Unboxed"- , "Text.Read"- ]- ++ map importSimple imports- env = Map.union (unqualifyEnv definitions) importedEnv- generateDecls (protoName, Message m)- = generateMessageDecls fieldModName env (stripDotPrefix protoName) m- ++ map uncommented (concatMap (generatePrisms env) (messageOneofFields m))- generateDecls (_, Enum e) = map uncommented $ generateEnumDecls e- generateExports (Message m) = generateMessageExports m- ++ concatMap generatePrismExports (messageOneofFields m)- generateExports (Enum e) = generateEnumExports e- serviceExports = fmap generateServiceExports services- allLensNames = F.toList $ Set.fromList- [ lensSymbol inst- | Message m <- Map.elems definitions- , info <- allMessageFields env m- , inst <- recordFieldLenses info- ]- -- The Env uses the convention that Message names are prefixed with '.'- -- (since that's how the FileDescriptorProto refers to them).- -- Strip that off when defining MessageDescriptor.messageName.- stripDotPrefix s- | Just ('.', s') <- T.uncons s = s'- | otherwise = s--allMessageFields :: Env QName -> MessageInfo Name -> [RecordField]-allMessageFields env info =- map (plainRecordField env) (messageFields info)- ++ map (oneofRecordField env) (messageOneofFields info)--importSimple :: ModuleName -> ImportDecl ()-importSimple m = ImportDecl- { importAnn = ()- , importModule = m- -- Import qualified to avoid clashes with names defined in this module.- , importQualified = True- , importSrc = False- , importSafe = False- , importPkg = Nothing- , importAs = Nothing- , importSpecs = Nothing- }--type ModifyImports = ImportDecl () -> ImportDecl ()--reexported :: ModifyImports-reexported imp@ImportDecl {importModule = m}- = imp { importAs = Just m, importModule = m' }- where- m' = fromString $ "Data.ProtoLens.Runtime." ++ prettyPrint m--messageComment :: ModuleName -> Name -> [RecordField] -> String-messageComment fieldModName n fields = unlines- $ ["Fields :", ""]- ++ map item (concatMap recordFieldLenses fields)- where- item :: LensInstance -> String- item l = (printf " * '%s.%s' @:: %s@"- (prettyPrint fieldModName)- (prettyPrint $ nameFromSymbol $ lensSymbol l)- (prettyPrint $ "Lens'" @@ t @@ (lensFieldType l)))- t = tyCon (unQual n)--generateMessageExports :: MessageInfo Name -> [ExportSpec]-generateMessageExports m =- -- Hide the message contructor, but expose "oneof" case constructors.- exportWith (unQual $ messageName m) []- : map (exportAll . unQual . oneofTypeName)- (messageOneofFields m)--generateServiceDecls :: Env QName -> ServiceInfo -> [Decl]-generateServiceDecls env si =- -- data MyService = MyService- [ dataDecl serverDataName- [ recDecl serverDataName []- ]- $ deriving' []- ] ++- -- instance Data.ProtoLens.Service.Types.Service MyService where- -- type ServiceName MyService = "myService"- -- type ServicePackage MyService = "some.package"- -- type ServiceMethods MyService = '["normalMethod", "streamingMethod"]- [ instDeclWithTypes [] ("Data.ProtoLens.Service.Types.Service" `ihApp` [serverRecordType])- [ instType ("ServiceName" @@ serverRecordType)- . tyPromotedString . T.unpack $ serviceName si- , instType ("ServicePackage" @@ serverRecordType)- . tyPromotedString . T.unpack $ servicePackage si- , instType ("ServiceMethods" @@ serverRecordType)- $ tyPromotedList- [ tyPromotedString . T.unpack $ methodIdent m- | m <- List.sortBy (comparing methodIdent) $ serviceMethods si- ]- ]- ] ++- -- instance Data.ProtoLens.Service.Types.HasMethodImpl MyService "normalMethod" where- -- type MethodInput MyService "normalMethod" = Foo- -- type MethodOutput MyService "normalMethod" = Bar- -- type IsClientStreaming MyService "normalMethod" = 'False- -- type IsServerStreaming MyService "normalMethod" = 'False- [ instDeclWithTypes [] ("Data.ProtoLens.Service.Types.HasMethodImpl" `ihApp` [serverRecordType, instanceHead])- [ instType ("MethodName" @@ serverRecordType @@ instanceHead)- . tyPromotedString . T.unpack $ methodName m- , instType ("MethodInput" @@ serverRecordType @@ instanceHead)- . lookupType $ methodInput m- , instType ("MethodOutput" @@ serverRecordType @@ instanceHead)- . lookupType $ methodOutput m- , instType ("MethodStreamingType" @@ serverRecordType @@ instanceHead)- . tyPromotedCon- $ case (methodClientStreaming m, methodServerStreaming m) of- (False, False) -> "Data.ProtoLens.Service.Types.NonStreaming"- (True, False) -> "Data.ProtoLens.Service.Types.ClientStreaming"- (False, True) -> "Data.ProtoLens.Service.Types.ServerStreaming"- (True, True) -> "Data.ProtoLens.Service.Types.BiDiStreaming"- ]- | m <- serviceMethods si- , let instanceHead = tyPromotedString (T.unpack $ methodIdent m)- ]- where- serverDataName = fromString . T.unpack $ serviceName si- serverRecordType = tyCon $ unQual serverDataName-- lookupType t = case definedType t env of- Message msg -> tyCon $ messageName msg- Enum _ -> error "Service must have a message type"---generateMessageDecls :: ModuleName -> Env QName -> T.Text -> MessageInfo Name -> [CommentedDecl]-generateMessageDecls fieldModName env protoName info =- -- data Bar = Bar {- -- foo :: Baz- -- }- [ commented (messageComment fieldModName (messageName info) allFields)- $ dataDecl dataName- [recDecl dataName $- [ (recordFieldName f, recordFieldType f)- | f <- allFields- ]- ++ [(messageUnknownFields info, "Data.ProtoLens.FieldSet")]- ]- $ deriving' ["Prelude.Eq", "Prelude.Ord"]- -- instance Show Bar where- -- showsPrec __x __s = showChar '{' (showString (showMessageShort __x) (showChar '}' s))- , uncommented $- instDecl [] ("Prelude.Show" `ihApp` [dataType])- [[match "showsPrec" ["_", "__x", "__s"]- $ "Prelude.showChar" @@ charExp '{'- @@ ("Prelude.showString" @@ ("Data.ProtoLens.showMessageShort" @@ "__x")- @@ ("Prelude.showChar" @@ charExp '}' @@ "__s"))]]- ] ++- -- oneof field data type declarations- -- proto: message Foo {- -- oneof bar {- -- float c = 1;- -- Sub s = 2;- -- }- -- }- -- haskell: data Foo'Bar = Foo'Bar'c !Prelude.Float- -- | Foo'Bar's !Sub- [ uncommented $ dataDecl (oneofTypeName oneofInfo)- [ conDecl consName [hsFieldType env f]- | c <- oneofCases oneofInfo- , let f = caseField c- , let consName = caseConstructorName c- ]- $ deriving' ["Prelude.Show", "Prelude.Eq", "Prelude.Ord"]- | oneofInfo <- messageOneofFields info- ] ++- -- instance HasField Foo "foo" Bar- -- fieldOf _ = ...- -- Note: for optional fields, this generates an instance both for "foo" and- -- for "maybe'foo" (see plainRecordField below).- [ uncommented $ instDecl []- ("Data.ProtoLens.Field.HasField" `ihApp`- [dataType, sym, tyParen t])- [[match "fieldOf" [pWildCard] $- "Prelude.."- @@ rawFieldAccessor (unQual $ recordFieldName li)- @@ lensExp i]]- | li <- allFields- , i <- recordFieldLenses li- , let t = lensFieldType i- , let sym = promoteSymbol $ lensSymbol i- ]- ++- -- instance Message.Message Bar where- [ uncommented $ instDecl [] ("Data.ProtoLens.Message" `ihApp` [dataType])- $ messageInstance env protoName info- -- instance NFData Bar where- , uncommented $ instDecl [] ("Control.DeepSeq.NFData" `ihApp` [dataType])- [[match "rnf" [] $ messageRnfExpr info]]- ] ++- -- instance NFData Foo'Bar where- [ uncommented $- instDecl [] ("Control.DeepSeq.NFData" `ihApp`- [tyCon $ unQual $ oneofTypeName o])- [map oneofRnfMatch $ oneofCases o]- | o <- messageOneofFields info- ]- where- dataType = tyCon $ unQual dataName- dataName = messageName info- allFields = allMessageFields env info---- oneof Prism declarations--- proto: message Foo {--- oneof bar {--- float c = 1;--- Sub s = 2;--- }--- }--- haskell: _Foo'C :: Prism' Bar'C Float--- _Foo'S :: Prism' Bar'S Sub------ example of the function definition for _Foo'C:--- _Foo'C :: Prism' Bar'C Float--- _Foo'C--- = prism' Bar'C--- (\ p__ ->--- case p__ of--- Bar'C p__val -> Prelude.Just p__val--- _otherwise -> Prelude.Nothing)-generatePrisms :: Env QName -> OneofInfo -> [Decl]-generatePrisms env oneofInfo =- if length cases > 1- then concatMap (generatePrism altOtherwise) cases- else concatMap (generatePrism mempty) cases- where- cases = oneofCases oneofInfo- altOtherwise = [ "_otherwise" --> "Prelude.Nothing" ]-- -- Generate type signature- -- e.g. Prism' Bar'C Float- generateTypeSig f funName =- typeSig [funName] $ "Data.ProtoLens.Prism.Prism'"- -- The oneof sum type name- @@ (tyCon . unQual $ oneofTypeName oneofInfo)- -- The field contained in the sum- @@ (hsFieldType env f)- -- Generate function definition- -- Prism' is constructed with Constructor for building value- -- and Deconstructor and wrapping in Just for getting value- generateFunDef otherwiseCase consName =- "Data.ProtoLens.Prism.prism'"- -- Sum type constructor- @@ con (unQual consName)- -- Case deconstruction- @@ (lambda ["p__"] $- case' "p__" $- [ pApp (unQual consName) ["p__val"]- --> "Prelude.Just" @@ "p__val"- ]- -- We want to generate the otherwise case- -- depending on the amount of sum type cases there are- ++ otherwiseCase- )- generatePrism :: [Alt] -> OneofCase -> [Decl]- generatePrism otherwiseCase oneofCase =- let consName = caseConstructorName oneofCase- prismName = casePrismName oneofCase- in [ generateTypeSig (caseField oneofCase) prismName- , funBind [ match prismName [] $ generateFunDef otherwiseCase consName ]- ]--generatePrismExports :: OneofInfo -> [ExportSpec]-generatePrismExports = map (exportVar . unQual . casePrismName) . oneofCases--generateEnumExports :: EnumInfo Name -> [ExportSpec]-generateEnumExports e = [exportAll n, exportWith n aliases] ++ proto3NewType- where- n = unQual $ enumName e- aliases = [enumValueName v | v <- enumValues e, needsManualExport v]- needsManualExport v = isJust (enumAliasOf v)- proto3NewType = case enumUnrecognized e of- Just u -> [exportVar . unQual $ unrecognizedValueName u]- Nothing -> []--generateServiceExports :: ServiceInfo -> ExportSpec-generateServiceExports si = exportAll $ unQual $ fromString $ T.unpack $ serviceName si--generateEnumDecls :: EnumInfo Name -> [Decl]-generateEnumDecls info =- -- Proto3-only:- -- newtype FooEnum'UnrecognizedValue = FooEnum'UnrecognizedValue Data.Int.Int32- -- deriving (Prelude.Eq, Prelude.Ord, Prelude.Show, Prelude.Read)- [ newtypeDecl (unrecognizedValueName u)- "Data.Int.Int32"- $ deriving' ["Prelude.Eq", "Prelude.Ord", "Prelude.Show"]- | Just u <- [unrecognized]- ]- ++-- -- data FooEnum- -- = Enum1- -- | Enum2- -- | FooEnum'Unrecognized !FooEnum'UnrecognizedValue- -- deriving (Prelude.Show, Prelude.Eq, Prelude.Ord, Prelude.Read)- [ dataDecl dataName- ( (flip conDecl [] <$> constructorNames)- ++ [ conDecl (unrecognizedName u) [tyCon $ unQual (unrecognizedValueName u)]- | Just u <- [unrecognized]- ]- )- $ deriving' ["Prelude.Show", "Prelude.Eq", "Prelude.Ord"]-- -- instance Data.ProtoLens.MessageEnum FooEnum where- -- maybeToEnum 0 = Prelude.Just Enum1- -- maybeToEnum 3 = Prelude.Just Enum2- -- maybeToEnum k- -- -- Proto3:- -- = Prelude.Just- -- (FooEnum'Unrecognized- -- (FooEnum'UnrecognizedValue (Prelude.fromIntegral k)))- -- -- Proto2:- -- = Nothing- --- -- showEnum Foo'Enum2 = "Enum2"- -- showEnum Foo'Enum1 = "Enum1"- -- showEnum (FooEnum'Unrecognized (FooEnum'UnrecognizedValue k))- -- = Prelude.show k- --- -- readEnum k- -- | k == "Enum2a" = Prelude.Just Enum2a -- alias- -- | k == "Enum2" = Prelude.Just Enum2- -- | k == "Enum1" = Prelude.Just Enum1- -- readEnum k = Text.Read.readMaybe k >>= maybeToEnum- , instDecl [] ("Data.ProtoLens.MessageEnum" `ihApp` [dataType])- [ [ match "maybeToEnum" [pLitInt k] $ "Prelude.Just" @@ con (unQual c)- | (c, k) <- constructorNumbers- ]- ++- [ case enumUnrecognized info of- Nothing -> match "maybeToEnum" [pWildCard] "Prelude.Nothing"- Just u -> match "maybeToEnum" ["k"]- $ "Prelude.Just" @@- (con (unQual $ unrecognizedName u)- @@ (con (unQual $ unrecognizedValueName u)- @@ ("Prelude.fromIntegral" @@ "k")- )- )- ]- , [ match "showEnum" [pApp (unQual n) []]- $ stringExp pn- | v <- filter (null . enumAliasOf) $ enumValues info- , let n = enumValueName v- , let pn = T.unpack $ enumValueDescriptor v ^. name- ] ++- [ match "showEnum" [pApp (unQual $ unrecognizedName u)- [pApp (unQual $ unrecognizedValueName u) [pVar "k"]]- ]- $ "Prelude.show" @@ "k"- | Just u <- [unrecognized]- ]- , [ guardedMatch "readEnum" [pVar "k"]- [ ("Prelude.==" @@ "k" @@ stringExp pn, "Prelude.Just" @@ con (unQual n))- | v <- enumValues info- , let n = enumValueName v- , let pn = T.unpack $ enumValueDescriptor v ^. name- ]- , match "readEnum" [pVar "k"] $ "Prelude.>>="- @@ ("Text.Read.readMaybe" @@ "k")- @@ "Data.ProtoLens.maybeToEnum"]- ]-- -- instance Bounded Foo where- -- minBound = Foo1- -- maxBound = FooN- , instDecl [] ("Prelude.Bounded" `ihApp` [dataType])- [[ match "minBound" [] $ con $ unQual minBoundName- , match "maxBound" [] $ con $ unQual maxBoundName- ]]-- -- instance Enum Foo where- -- toEnum k = maybe (error ("Foo.toEnum: unknown argument for enum Foo: "- -- ++ show k))- -- id (maybeToEnum k)- -- fromEnum Foo1 = 1- -- fromEnum Foo2 = 2- -- ..- -- succ FooN = error "Foo.succ: bad argument FooN."- -- succ Foo1 = Foo2- -- succ Foo2 = Foo3- -- ..- -- pred Foo1 = error "Foo.succ: bad argument Foo1."- -- pred Foo2 = Foo1- -- pred Foo3 = Foo2- -- ..- -- enumFrom = messageEnumFrom- -- enumFromTo = messageEnumFromTo- -- enumFromThen = messageEnumFromThen- -- enumFromThenTo = messageEnumFromThenTo- , instDecl [] ("Prelude.Enum" `ihApp` [dataType])- [[match "toEnum" ["k__"]- $ "Prelude.maybe" @@ errorMessageExpr @@ "Prelude.id"- @@ ("Data.ProtoLens.maybeToEnum" @@ "k__")]- , [ match "fromEnum" [pApp (unQual c) []] $ litInt k- | (c, k) <- constructorNumbers- ]- ++- [ match "fromEnum" [pApp (unQual $ unrecognizedName u)- [pApp (unQual $ unrecognizedValueName u) [pVar "k"]]- ]- $ "Prelude.fromIntegral" @@ "k"- | Just u <- [unrecognized]- ]- , succDecl "succ" maxBoundName succPairs- , succDecl "pred" minBoundName $ map swap succPairs- , alias "enumFrom" "Data.ProtoLens.Message.Enum.messageEnumFrom"- , alias "enumFromTo" "Data.ProtoLens.Message.Enum.messageEnumFromTo"- , alias "enumFromThen" "Data.ProtoLens.Message.Enum.messageEnumFromThen"- , alias "enumFromThenTo"- "Data.ProtoLens.Message.Enum.messageEnumFromThenTo"- ]-- -- instance Data.ProtoLens.FieldDefault Foo where- -- fieldDefault = FirstEnumValue- , instDecl [] ("Data.ProtoLens.FieldDefault" `ihApp` [dataType])- [[match "fieldDefault" [] defaultCon]]-- -- instance NFData Foo where- -- rnf x__ = seq x__ ()- -- (Trivial since enum types are already strict)- , instDecl [] ("Control.DeepSeq.NFData" `ihApp` [dataType])- [[ match "rnf" ["x__"] $ "Prelude.seq" @@ "x__" @@ "()" ]]- ] ++-- -- pattern Enum2a :: FooEnum- -- pattern Enum2a = Enum2- concat- [ [ patSynSig aliasName dataType- , patSyn (pVar aliasName) (pVar originalName)- ]- | EnumValueInfo- { enumValueName = aliasName- , enumAliasOf = Just originalName- } <- enumValues info- ]-- where- EnumInfo { enumName = dataName- , enumUnrecognized = unrecognized- , enumDescriptor = ed- } = info- errorMessage = "toEnum: unknown value for enum " ++ unpack (ed ^. name)- ++ ": "-- errorMessageExpr = "Prelude.error"- @@ ("Prelude.++" @@ stringExp errorMessage- @@ ("Prelude.show" @@ "k__"))- alias funName implName = [match funName [] implName]-- dataType = tyCon $ unQual dataName-- constructors :: [(Name, EnumValueDescriptorProto)]- constructors = List.sortBy (comparing ((^. number) . snd))- [(n, d) | EnumValueInfo- { enumValueName = n- , enumValueDescriptor = d- , enumAliasOf = Nothing- } <- enumValues info- ]- constructorNames = map fst constructors-- defaultCon = con $ unQual $ head constructorNames-- minBoundName = head constructorNames- maxBoundName = last constructorNames-- constructorNumbers = map (second (fromIntegral . (^. number))) constructors-- succPairs = zip constructorNames $ tail constructorNames- succDecl funName boundName thePairs =- match funName [pApp (unQual boundName) []]- ("Prelude.error" @@ stringExp (concat- [ prettyPrint dataName, ".", prettyPrint funName, ": bad argument "- , prettyPrint boundName, ". This value would be out of bounds."- ]))- :- [ match funName [pApp (unQual from) []] $ con $ unQual to- | (from, to) <- thePairs- ]- ++- [ match funName [pApp (unQual $ unrecognizedName u) [pWildCard]]- ("Prelude.error" @@ stringExp (concat- [ prettyPrint dataName, ".", prettyPrint funName, ": bad argument: unrecognized value"- ]))- | Just u <- [unrecognized]- ]--generateFieldDecls :: Symbol -> [Decl]-generateFieldDecls xStr =- -- foo :: forall f s a- -- . (Functor f, HasLens s x a) => LensLike' f s a- -- foo = fieldOf @s- [ typeSig [x]- $ tyForAll ["f", "s", "a"]- [classA "Prelude.Functor" ["f"],- classA "Data.ProtoLens.Field.HasField" ["s", xSym, "a"]]- $ "Lens.Family2.LensLike'" @@ "f" @@ "s" @@ "a"- , funBind [match x [] $ fieldOfExp xStr]- ]- where- x = nameFromSymbol xStr- xSym = promoteSymbol xStr------------------------------------------------ | An individual field of the Haskell type corresponding to a proto message.-data RecordField = RecordField- { recordFieldName :: Name -- ^ The Haskell name of this field (unique- -- within the module).- , recordFieldType :: Type -- ^ Internal type in the record- , recordFieldLenses :: [LensInstance]- -- ^ All of the (overloaded) lenses accessing this record field.- }---- | An instance of HasLens' for a particular field.-data LensInstance = LensInstance- { lensSymbol :: Symbol- -- ^ The overloaded name for this lens.- , lensFieldType :: Type- -- ^ The type pointed to from this lens.- , lensExp :: Exp- -- ^ A lens from the recordFieldType to the lensFieldType; i.e.,- -- from how it's actually stored in the Haskell record to how the- -- lens views it.- }---- | Compile information about the record field type and type/class instances--- for this particular field.------ Used for "plain" record fields that are not part of a oneof.-plainRecordField :: Env QName -> PlainFieldInfo -> RecordField-plainRecordField env (PlainFieldInfo kind f) = case kind of- -- data Foo = Foo { _Foo_bar :: Bar }- -- type instance Field "bar" Foo = Bar- RequiredField- -> recordField baseType- [LensInstance- { lensSymbol = baseName- , lensFieldType = baseType- , lensExp = rawAccessor- }]- OptionalValueField- -> recordField baseType- [LensInstance- { lensSymbol = baseName- , lensFieldType = baseType- , lensExp = rawAccessor- }]- -- data Foo = Foo { _Foo_bar :: Maybe Bar }- -- type instance Field "bar" Foo = Bar- -- type instance Field "maybe'bar" Foo = Maybe Bar- OptionalMaybeField ->- recordField maybeType- [LensInstance- { lensSymbol = baseName- , lensFieldType = baseType- , lensExp = maybeAccessor- }- , LensInstance- { lensSymbol = "maybe'" <> baseName- , lensFieldType = maybeType- , lensExp = rawAccessor- }- ]- -- data Foo = Foo { _Foo_bar :: Map Bar Baz }- -- type instance Field "foo" Foo = Map Bar Baz- MapField entry ->- let mapType = "Data.Map.Map"- @@ hsFieldType env (keyField entry)- @@ hsFieldType env (valueField entry)- in recordField mapType- [LensInstance- { lensSymbol = baseName- , lensFieldType = mapType- , lensExp = rawAccessor- }]- -- data Foo = Foo { _Foo_bar :: [Bar] }- -- type instance Field "bar" Foo = [Bar]- RepeatedField {} ->- recordField vectorType- [ LensInstance- { lensSymbol = baseName- , lensFieldType = listType- , lensExp = vectorAccessor- }- , LensInstance- { lensSymbol = "vec'" <> baseName- , lensFieldType = vectorType- , lensExp = rawAccessor- }- ]- where- recordField = RecordField (haskellRecordFieldName $ fieldName f)- baseName = overloadedName $ fieldName f- fd = fieldDescriptor f- baseType = hsFieldType env f- maybeType = "Prelude.Maybe" @@ baseType- listType = tyList baseType- vectorType = hsFieldVectorType f @@ baseType- rawAccessor = "Prelude.id"- maybeAccessor = "Data.ProtoLens.maybeLens"- @@ hsFieldValueDefault env fd--vectorAccessor :: Exp-vectorAccessor = "Lens.Family2.Unchecked.lens" @@ getter @@ setter- where- getter = "Data.Vector.Generic.toList"- setter = lambda ["_", "y__"]- $ "Data.Vector.Generic.fromList" @@ "y__"--oneofRecordField :: Env QName -> OneofInfo -> RecordField-oneofRecordField env oneofInfo- = RecordField- { recordFieldName = haskellRecordFieldName $ oneofFieldName oneofInfo- , recordFieldType =- "Prelude.Maybe" @@ tyCon (unQual $ oneofTypeName oneofInfo)- , recordFieldLenses = lenses- }- where- lenses =- -- Only generate a "maybe" version of this lens,- -- since oneofs don't have a notion of a "default" case.- -- data Foo = Foo { _Foo'bar = Maybe Foo'Bar }- -- type instance Field "maybe'bar" Foo = Maybe Foo'Bar- [LensInstance- { lensSymbol = "maybe'" <> overloadedName- (oneofFieldName oneofInfo)- , lensFieldType =- "Prelude.Maybe" @@ tyCon (unQual $ oneofTypeName oneofInfo)- , lensExp = "Prelude.id"- }- ]- ++ concat- -- Generate the same lenses for each sub-field of the oneof- -- as if they were proto2 optional fields.- -- type instance Field "bar" Foo = Bar- -- type instance Field "maybe'bar" Foo = Maybe Bar- [ [ LensInstance- { lensSymbol = maybeName- , lensFieldType = "Prelude.Maybe" @@ baseType- , lensExp = oneofFieldAccessor c- }- , LensInstance- { lensSymbol = baseName- , lensFieldType = baseType- , lensExp = "Prelude.."- @@ oneofFieldAccessor c- @@ ("Data.ProtoLens.maybeLens"- @@ hsFieldValueDefault env- (fieldDescriptor f))- }- ]- | c <- oneofCases oneofInfo- , let f = caseField c- , let baseName = overloadedName $ fieldName f- , let baseType = hsFieldType env f- , let maybeName = "maybe'" <> baseName- ]--hsFieldDefault :: Env QName -> PlainFieldInfo -> Exp-hsFieldDefault env f = case plainFieldKind f of- RequiredField -> hsFieldValueDefault env fd- OptionalValueField -> hsFieldValueDefault env fd- OptionalMaybeField -> "Prelude.Nothing"- MapField {} -> "Data.Map.empty"- RepeatedField {} -> "Data.Vector.Generic.empty"- where- fd = fieldDescriptor (plainFieldInfo f)--hsFieldValueDefault :: Env QName -> FieldDescriptorProto -> Exp-hsFieldValueDefault env fd = case fd ^. type' of- FieldDescriptorProto'TYPE_MESSAGE -> "Data.ProtoLens.defMessage"- FieldDescriptorProto'TYPE_GROUP -> "Data.ProtoLens.defMessage"- FieldDescriptorProto'TYPE_ENUM- | T.null def -> "Data.ProtoLens.fieldDefault"- | Enum e <- definedFieldType fd env- , Just v <- List.lookup def [ (enumValueDescriptor v ^. name, enumValueName v)- | v <- enumValues e- ]- -> con v- | otherwise -> errorMessage "enum"- -- The rest of the cases are for scalar fields that have a fieldDefault- -- instance.- _ | T.null def -> "Data.ProtoLens.fieldDefault"- FieldDescriptorProto'TYPE_BOOL- | def == "true" -> "Prelude.True"- | def == "false" -> "Prelude.False"- | otherwise -> errorMessage "bool"- FieldDescriptorProto'TYPE_STRING- -> "Data.Text.pack" @@ stringExp (T.unpack def)- FieldDescriptorProto'TYPE_BYTES- -> "Data.ByteString.pack"- @@ list ((mkByte . fromEnum) <$> T.unpack def)- where mkByte c- | c > 0 && c < 255 = litInt $ fromIntegral c- | otherwise = errorMessage "bytes"- FieldDescriptorProto'TYPE_FLOAT -> defaultFrac $ T.unpack def- FieldDescriptorProto'TYPE_DOUBLE -> defaultFrac $ T.unpack def- -- Otherwise, assume it's an integral field:- _ -> defaultInt $ T.unpack def- where- def = fd ^. defaultValue- errorMessage fieldType- = error $ "Bad default value " ++ show (T.unpack def)- ++ " in default value for " ++ fieldType ++ " field "- ++ unpack (fd ^. name)- -- float/double fields can use nan, inf and -inf as default values.- -- The Prelude doesn't provide names for them, so we implement- -- them as division by zero.- defaultFrac "nan" = "Prelude./" @@ litFrac 0 @@ litFrac 0- defaultFrac "inf" = "Prelude./" @@ litFrac 1 @@ litFrac 0- defaultFrac "-inf" = "Prelude./" @@ litFrac (negate 1) @@ litFrac 0- defaultFrac s = case reads s of- [(x, "")] -> litFrac $ toRational (x :: Double)- _ -> errorMessage "fractional"- defaultInt s = case reads s of- [(x, "")] -> litInt x- _ -> errorMessage "integral"---- | A lens to access an internal field.------ lens _Foo_bar (\x__ y__ -> x__ { _Foo_bar = y__ })-rawFieldAccessor :: QName -> Exp-rawFieldAccessor f = "Lens.Family2.Unchecked.lens" @@ getter @@ setter- where- getter = var f- setter = lambda ["x__", "y__"]- $ recUpdate "x__" [fieldUpdate f "y__"]---- | A lens that maps from a oneof sum type to one of its individual cases.------ For example, with--- data Foo = Bar Int32 | Baz Int64------ this will generate a lens of type @Lens' (Maybe Foo) (Maybe Int32)@.------ (Recall that oneofs are stored in a proto message as @Maybe Foo@, where--- 'Nothing' means that it's either set to an unknown value or unset.)------ lens--- (\ x__ -> case x__ of--- Prelude.Just (Foo'c x__val) -> Prelude.Just x__val--- otherwise -> Prelude.Nothing)--- (\ _ y__ -> fmap Foo'c y__-oneofFieldAccessor :: OneofCase -> Exp-oneofFieldAccessor o- = "Lens.Family2.Unchecked.lens" @@ getter @@ setter- where- consName = caseConstructorName o- getter = lambda ["x__"] $- case' "x__"- [ pApp "Prelude.Just" [pApp (unQual consName) ["x__val"]]- --> "Prelude.Just" @@ "x__val"- , "_otherwise" --> "Prelude.Nothing"- ]- setter = lambda ["_", "y__"]- $ "Prelude.fmap" @@ con (unQual consName) @@ "y__"--messageInstance :: Env QName -> T.Text -> MessageInfo Name -> [[Match]]-messageInstance env protoName m =- [ [ match "messageName" [pWildCard] $- "Data.Text.pack" @@ stringExp (T.unpack protoName)]- , [ match "fieldsByTag" [] $- let' (map (fieldDescriptorVarBind $ messageName m) $ fields)- $ "Data.Map.fromList" @@ list fieldsByTag ]- , [ match "unknownFields" [] $ rawFieldAccessor (unQual $ messageUnknownFields m) ]- , [ match "defMessage" []- $ recConstr (unQual $ messageName m) $- [ fieldUpdate (unQual $ haskellRecordFieldName- $ fieldName $ plainFieldInfo f)- (hsFieldDefault env f)- | f <- messageFields m- ] ++- [ fieldUpdate (unQual $ haskellRecordFieldName $ oneofFieldName o)- "Prelude.Nothing"- | o <- messageOneofFields m- ] ++- [ fieldUpdate (unQual $ messageUnknownFields m)- "[]"]- ]- , [ match "parseMessage" [] $ generatedParser env m ]- , [ match "buildMessage" [] $ generatedBuilder m ]- ]- where- fieldsByTag =- [tuple- [ t, fieldDescriptorVar f ]- | f <- fields- , let t = "Data.ProtoLens.Tag"- @@ litInt (fromIntegral- $ fieldDescriptor (plainFieldInfo f) ^. number)- ]- fieldDescriptorVar = var . unQual . fieldDescriptorName- fieldDescriptorName f- = nameFromSymbol $ overloadedName (fieldName . plainFieldInfo $ f)- <> "__field_descriptor"- fieldDescriptorVarBind n f- = funBind- [match (fieldDescriptorName f) []- $ fieldDescriptorExpr env n f- ]- fields = messageFields m- ++ (messageOneofFields m >>= fmap casePlainField . oneofCases)- -- The cases of an optional are always treated like proto2 "maybe" fields.- casePlainField = PlainFieldInfo OptionalMaybeField . caseField---- | Get the name of the field when used in a text format proto. Groups are--- special because their text format field name is the name of their type,--- not the name of the field in the descriptor (e.g. "Foo", not "foo").-textFormatFieldName :: Env QName -> FieldDescriptorProto -> T.Text-textFormatFieldName env descr = case descr ^. type' of- FieldDescriptorProto'TYPE_GROUP- | Message msg <- definedFieldType descr env- -> messageDescriptor msg ^. name- | otherwise -> error $ "expected TYPE_GROUP for type name"- ++ T.unpack (descr ^. typeName)- _ -> descr ^. name--fieldDescriptorExpr :: Env QName -> Name -> PlainFieldInfo- -> Exp-fieldDescriptorExpr env n f =- ("Data.ProtoLens.FieldDescriptor"- -- Record the original .proto name for text format- @@ stringExp (T.unpack $ textFormatFieldName env fd)- -- Force the type signature since it can't be inferred for Map entry- -- types.- @@ (fieldTypeDescriptorExpr (fd ^. type')- @::@- ("Data.ProtoLens.FieldTypeDescriptor"- @@ hsFieldType env (plainFieldInfo f)))- @@ fieldAccessorExpr f)- -- TODO: why is this type sig needed?- @::@- ("Data.ProtoLens.FieldDescriptor" @@ tyCon (unQual n))- where- fd = fieldDescriptor $ plainFieldInfo f--fieldAccessorExpr :: PlainFieldInfo -> Exp--- (PlainField Required foo), (OptionalField foo), etc...-fieldAccessorExpr (PlainFieldInfo kind f) = accessorCon @@ fieldOfExp hsFieldName-- where- accessorCon = case kind of- RequiredField- -> "Data.ProtoLens.PlainField" @@ "Data.ProtoLens.Required"- OptionalValueField- -> "Data.ProtoLens.PlainField" @@ "Data.ProtoLens.Optional"- OptionalMaybeField- -> "Data.ProtoLens.OptionalField"- MapField entry- -> "Data.ProtoLens.MapField"- @@ fieldOfExp (overloadedField $ keyField entry)- @@ fieldOfExp (overloadedField $ valueField entry)- RepeatedField packed -> - "Data.ProtoLens.RepeatedField"- @@ if packed == Packed- then "Data.ProtoLens.Packed"- else "Data.ProtoLens.Unpacked"- hsFieldName- = case kind of- OptionalMaybeField -> "maybe'" <> overloadedField f- _ -> overloadedField f--fieldOfExp :: Symbol -> Exp-fieldOfExp sym = "Data.ProtoLens.Field.field" @@ typeApp (promoteSymbol sym)--overloadedField :: FieldInfo -> Symbol-overloadedField = overloadedName . fieldName--fieldTypeDescriptorExpr :: FieldDescriptorProto'Type -> Exp-fieldTypeDescriptorExpr = \case- FieldDescriptorProto'TYPE_DOUBLE -> mk "ScalarField" "DoubleField"- FieldDescriptorProto'TYPE_FLOAT -> mk "ScalarField" "FloatField"- FieldDescriptorProto'TYPE_INT64 -> mk "ScalarField" "Int64Field"- FieldDescriptorProto'TYPE_UINT64 -> mk "ScalarField" "UInt64Field"- FieldDescriptorProto'TYPE_INT32 -> mk "ScalarField" "Int32Field"- FieldDescriptorProto'TYPE_FIXED64 -> mk "ScalarField" "Fixed64Field"- FieldDescriptorProto'TYPE_FIXED32 -> mk "ScalarField" "Fixed32Field"- FieldDescriptorProto'TYPE_BOOL -> mk "ScalarField" "BoolField"- FieldDescriptorProto'TYPE_STRING -> mk "ScalarField" "StringField"- FieldDescriptorProto'TYPE_GROUP -> mk "MessageField" "GroupType"- FieldDescriptorProto'TYPE_MESSAGE -> mk "MessageField" "MessageType"- FieldDescriptorProto'TYPE_BYTES -> mk "ScalarField" "BytesField"- FieldDescriptorProto'TYPE_UINT32 -> mk "ScalarField" "UInt32Field"- FieldDescriptorProto'TYPE_ENUM -> mk "ScalarField" "EnumField"- FieldDescriptorProto'TYPE_SFIXED32 -> mk "ScalarField" "SFixed32Field"- FieldDescriptorProto'TYPE_SFIXED64 -> mk "ScalarField" "SFixed64Field"- FieldDescriptorProto'TYPE_SINT32 -> mk "ScalarField" "SInt32Field"- FieldDescriptorProto'TYPE_SINT64 -> mk "ScalarField" "SInt64Field"- where- mk x y = fromString ("Data.ProtoLens." ++ x)- @@ fromString ("Data.ProtoLens." ++ y)---- | Generate the implementation of NFData.rnf for the given message.------ instance NFData Bar where--- rnf = \x -> deepseq (_Bar'foo x) (deepseq (_Bar'bar x) ())-messageRnfExpr :: MessageInfo Name -> Exp-messageRnfExpr msg = lambda ["x__"] $ foldr (@@) "()" (map seqField fieldNames)- where- fieldNames = messageUnknownFields msg- : map (haskellRecordFieldName . fieldName . plainFieldInfo)- (messageFields msg)- ++ map (haskellRecordFieldName . oneofFieldName)- (messageOneofFields msg)- seqField :: Name -> Exp- seqField f = "Control.DeepSeq.deepseq" @@ (var (unQual f) @@ "x__")---- instance NFData Bar where--- rnf (Foo'a x__) = rnf x__--- rnf (Bar'b x__) = rnf x__-oneofRnfMatch :: OneofCase -> Match-oneofRnfMatch c = match "rnf" [unQual (caseConstructorName c) `pApp` ["x__"]]- $ "Control.DeepSeq.rnf" @@ "x__"
− src/Data/ProtoLens/Compiler/Generate/Encoding.hs
@@ -1,638 +0,0 @@--- | This module generates code for decoding and encoding protocol buffer messages.------ Upstream docs: <https://developers.google.com/protocol-buffers/docs/encoding>-{-# LANGUAGE DeriveFunctor #-}-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE NoMonomorphismRestriction #-}-{-# LANGUAGE OverloadedStrings #-}-module Data.ProtoLens.Compiler.Generate.Encoding- ( generatedParser- , generatedBuilder- ) where--import Data.Int (Int32)-import qualified Data.Map as Map-import Data.Semigroup ((<>))-import qualified Data.Text as Text-import Lens.Family2 (view, (^.))--import Data.ProtoLens.Compiler.Combinators-import Data.ProtoLens.Compiler.Definitions-import Data.ProtoLens.Compiler.Generate.Field-import Data.ProtoLens.Encoding.Wire (joinTypeAndTag)--import Proto.Google.Protobuf.Descriptor_Fields- ( name- , number- , type'- )--generatedParser :: Env QName -> MessageInfo Name -> Exp-generatedParser env m =- {- let loop :: T -> Bool -> Bool -> ...- -> MVector RealWorld Int32 -> MVector RealWorld Float -> ...- -> Parser T- loop x required'a required'b ... mutable'a mutable'b ... = ...- in "package.T" <?> do- mutable'a <- unsafeLiftIO new- mutable'b <- unsafeLiftIO new- ...- loop defMessage True True ... mutable'a mutable'b ...- -}- let' [typeSig [loop] loopSig- , funBind [match loop (fmap pVar $ loopArgs names) loopExpr]- ]- $ "Data.ProtoLens.Encoding.Bytes.<?>"- @@ do' (startStmts ++ [stmt $ continue startExp])- @@ stringExp msgName- where- ty = tyCon (unQual $ messageName m)- msgName = Text.unpack (messageDescriptor m ^. name)- loopSig = foldr tyFun- ("Data.ProtoLens.Encoding.Bytes.Parser" @@ ty)- (loopArgs $ parseStateTypes env m)-- names = parseStateNames m- exprs = fmap (var . unQual) names- tag = "tag"- end = "end"- loop = "loop"-- (startStmts, startExp) = startParse names-- continue :: ParseState Exp -> Exp- continue s = foldl (@@) loop (loopArgs s)-- loopExpr- {- Group:- do- tag <- getVarInt- case tag of- {groupEndTag} -> {finish}- ... -- Regular message fields-- TODO(#282): fail the parse if we find a group-end tag- with an incorrect field number.- -}- | Just g <- groupFieldNumber m = do'- [ tag <-- getVarInt'- , stmt $ case' tag $- (pLitInt (groupEndTag g) --> finish m exprs)- : parseTagCases continue exprs m- ]- {- Regular message type:- do- end <- atEnd- if end- then {finish}- else do- tag <- getVarInt- case tag of ...- -}- | otherwise = do'- [ end <-- "Data.ProtoLens.Encoding.Bytes.atEnd"- , stmt $- if' end (finish m exprs)- $ do'- [ tag <-- getVarInt'- , stmt $ case' tag $ parseTagCases continue exprs m- ]- ]---- | A Parser expression that finalizes the message.-finish :: MessageInfo Name -> ParseState Exp -> Exp-finish m s = do' $- {- do- frozen'a <- unsafeLiftIO $ unsafeFreeze mutable'a- frozen'b <- unsafeLiftIO $ unsafeFreeze mutable'b- ...- {checkMissingFields}- over unknownFields reverse- $ set field @"vec'a" frozen'a- $ set field @"vec'b" frozen'b- ...- $ {partialMessage}- -}- [ pVar frozen <-- unsafeLiftIO' @@- ("Data.ProtoLens.Encoding.Growing.unsafeFreeze"- @@ mutable)- | (frozen, mutable) <- Map.elems $ Map.intersectionWith (,)- frozenNames (repeatedFieldMVectors s)- ]- ++- [ stmt $ checkMissingFields s- , stmt $ "Prelude.return" @@- (over' unknownFields' "Prelude.reverse"- @@(foldr (@@)- (partialMessage s)- (Map.intersectionWith- (\finfo frozen ->- "Lens.Family2.set"- @@ fieldOfVector finfo- @@ var (unQual frozen))- repeatedInfos frozenNames)))- ]-- where- repeatedInfos = repeatedFields m- frozenNames = (\f -> nameFromSymbol $ "frozen'" <> overloadedFieldName f)- <$> repeatedInfos---- | The state of the parsing loop. Each instance of @v@ corresponds--- to an argument of the loop function.-data ParseState v = ParseState- { partialMessage :: v- -- ^ The message that we're parsing.- , requiredFieldsUnset :: Map.Map FieldId v- -- ^ The required fields of the message, each corresponding to- -- a @Bool@ argument of the loop.- , repeatedFieldMVectors :: Map.Map FieldId v- -- ^ The repeated fields of the message, each corresponding to- -- an @MVector@ argument of the loop.- } deriving Functor---- | Returns a sequence of all arguments of the loop function.-loopArgs :: ParseState v -> [v]-loopArgs s = partialMessage s : Map.elems (requiredFieldsUnset s)- ++ Map.elems (repeatedFieldMVectors s)---- | The proto name of the field.-newtype FieldId = FieldId Text.Text- deriving (Eq, Ord)--fieldId :: PlainFieldInfo -> FieldId-fieldId f = FieldId $ fieldDescriptor (plainFieldInfo f) ^. name---- | The names of the loop arguments.-parseStateNames :: MessageInfo Name -> ParseState Name-parseStateNames m = ParseState- { partialMessage = "x"- , requiredFieldsUnset = Map.fromList- [ (fieldId f, nameFromSymbol $ "required'" <> n)- | f <- messageFields m- , let info = plainFieldInfo f- , let n = overloadedFieldName info- , RequiredField <- [plainFieldKind f]- ]- , repeatedFieldMVectors =- (\f -> nameFromSymbol $ "mutable'" <> overloadedFieldName f)- <$> repeatedFields m- }--repeatedFields :: MessageInfo Name -> Map.Map FieldId FieldInfo-repeatedFields m = Map.fromList- [ (fieldId f, plainFieldInfo f)- | f <- messageFields m- , RepeatedField{} <- [plainFieldKind f]- ]---- | Intialize the values of the loop arguments.-startParse :: ParseState Name -> ([Stmt], ParseState Exp)-startParse names =- ([ pVar n <-- unsafeLiftIO' @@ "Data.ProtoLens.Encoding.Growing.new"- | n <- Map.elems mvectorNames- ]- , ParseState- { partialMessage = "Data.ProtoLens.defMessage"- , requiredFieldsUnset = const "Prelude.True"- <$> requiredFieldsUnset names- , repeatedFieldMVectors = var . unQual <$> mvectorNames- }- )- where- mvectorNames = repeatedFieldMVectors names---- | The types of the loop arguments.-parseStateTypes :: Env QName -> MessageInfo Name -> ParseState Type-parseStateTypes env m = ParseState- { partialMessage = tyCon (unQual $ messageName m)- , requiredFieldsUnset = fmap (const "Prelude.Bool")- $ requiredFieldsUnset- $ parseStateNames m- , repeatedFieldMVectors = growingType env <$> repeatedFields m- }---- | Transform the loop arguments by applying a given function--- to the intermediate message value.-updateParseState ::- Exp -- ^ An expression of type @msg -> msg@- -> ParseState Exp- -> ParseState Exp-updateParseState f s = s { partialMessage = f @@ (partialMessage s) }---- | Transform the loop arguments by marking a required field--- as having been set.-markRequiredField :: FieldId -> ParseState Exp -> ParseState Exp-markRequiredField f s =- s { requiredFieldsUnset = Map.insert f "Prelude.False"- $ requiredFieldsUnset s }---- | Append to the given repeated field.-appendToRepeated :: FieldId -> Exp -> ParseState Exp -> (Stmt, ParseState Exp)-appendToRepeated f x s =- ( v <-- unsafeLiftIO'- @@ ("Data.ProtoLens.Encoding.Growing.append"- @@ (repeatedFieldMVectors s Map.! f)- @@ x)- , s { repeatedFieldMVectors =- Map.insert f (var $ unQual v)- $ repeatedFieldMVectors s- }- )- where- v = "v"---- | Returns an Exp of type @Parser ()@--- which fails if any of the missing fields aren't set.-checkMissingFields :: ParseState Exp -> Exp-checkMissingFields s =- {- let missing = (if required'a then ("a":) else id)- ((if required'b then ("b":) else id)- ... [])- in if null missing then return ()- else fail ("Missing required fields: " ++ show missing)- -}- let' [patBind missing allMissingFields]- $ if' ("Prelude.null" @@ missing) ("Prelude.return" @@ unit)- $ "Prelude.fail"- @@ ("Prelude.++"- @@ stringExp "Missing required fields: "- @@ ("Prelude.show" @@ (missing @::@ "[Prelude.String]")))- where- missing = "missing"- allMissingFields = Map.foldrWithKey consIfMissing emptyList (requiredFieldsUnset s)- consIfMissing (FieldId f) e rest =- (if' e (cons @@ stringExp (Text.unpack f)) "Prelude.id") @@ rest---- | A list case alternatives for the fields of a message.------ The exact structure of each case differs based on the field type. However, it--- generally looks like:------ @--- {N} -> do--- {VALUE} <- {PARSE}--- loop (set {FIELD} {VALUE} x) required'a False required'c ...--- @------ where:--- - {N} is an integer representing the wire type + field number,--- - {VALUE} is an expression of type "V", which is the type of the field,--- - {PARSE} is an expression of the form "Parser V",--- - and "loop" and "x" are as in @generatedParser@.-parseTagCases ::- (ParseState Exp -> Exp)- -- ^ loop continuation, equivalent to "msg -> Bool -> ... -> Bool -> Parser msg".- -- It continues the loop with the given new value of the message, keeping track- -- of whether the required fields are still needed.- -> ParseState Exp -- ^ Previous value of the message and required field states- -> MessageInfo Name- -> [Alt]-parseTagCases loop x info =- concatMap (parseFieldCase loop x) allFields- -- TODO: currently we ignore unknown fields.- ++ [unknownFieldCase info loop x]- where- allFields = messageFields info- -- Cases of a oneof are decoded like optional oneof fields.- ++ [ PlainFieldInfo OptionalMaybeField (caseField c)- | o <- messageOneofFields info- , c <- oneofCases o- ]---- | A particular parsing case. See @parseTagCases@ for details.-parseFieldCase ::- (ParseState Exp -> Exp) -> ParseState Exp -> PlainFieldInfo -> [Alt]-parseFieldCase loop x f = case plainFieldKind f of- MapField entryInfo -> [mapCase entryInfo]- RepeatedField p- | p == NotPackable -> [unpackedCase]- | otherwise -> [unpackedCase, packedCase]- RequiredField -> [requiredCase]- _ -> [valueCase]- where- y = "y"- entry = "entry"- info = plainFieldInfo f- valueCase = pLitInt (fieldTag info) --> do'- [ y <-- parseField info- , stmt . loop . updateParseState (setField info @@ y)- $ x- ]- requiredCase = pLitInt (fieldTag info) --> do'- [ y <-- parseField info- , stmt . loop- . updateParseState (setField info @@ y)- . markRequiredField (fieldId f)- $ x- ]- unpackedCase = pLitInt (fieldTag info) -->- let (appendStmt, x') = appendToRepeated (fieldId f) y x- in do'- [ bangPat y <-- parseField info- , appendStmt- , stmt . loop $ x'- ]- packedCase = pLitInt (packedFieldTag info) --> do'- [ y <-- isolatedLengthy (parsePackedField info- @@ repeatedFieldMVectors x Map.! fieldId f)- , stmt $ loop x { repeatedFieldMVectors =- Map.insert (fieldId f) (var $ unQual y)- $ repeatedFieldMVectors x }- ]- mapCase entryInfo = pLitInt (fieldTag info) --> do'- [ bangPat (entry `patTypeSig` tyCon (unQual $ mapEntryTypeName entryInfo))- <-- parseField info- , stmt . let' [ patBind "key"- $ view' @@ fieldOf (keyField entryInfo)- @@ entry- , patBind "value"- $ view' @@ fieldOf (valueField entryInfo)- @@ entry- ]- . loop- . updateParseState- (overField info- ("Data.Map.insert" @@ "key" @@ "value"))- $ x- ]--unknownFieldCase ::- MessageInfo Name -> (ParseState Exp -> Exp) -> ParseState Exp -> Alt-{-- wire -> do- !y <- parseTaggedValueFromWire wire- -- Omitted if not a group:- case y of- TaggedValue utag EndGroup- -> fail ("Mismatched group-end tag number " ++ show utag)- _ -> return ()- loop (over unknownFields (\!t -> y:t) x) ...--}-unknownFieldCase info loop x = wire --> (do' $- [ bangPat y <-- "Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire" @@ wire- ]- ++- [ stmt $ case' y- [ pApp "Data.ProtoLens.Encoding.Wire.TaggedValue"- [utag, "Data.ProtoLens.Encoding.Wire.EndGroup"]- --> "Prelude.fail" @@- ("Prelude.++"- @@ stringExp "Mismatched group-end tag number "- @@ ("Prelude.show" @@ utag))- , pWildCard --> "Prelude.return" @@ unit- ]- | Just _ <- [groupFieldNumber info]- ]- ++- [ stmt . loop . updateParseState (over' unknownFields' (cons @@ y))- $ x- ])- where- wire = "wire"- y = "y"- utag = "utag"---- | An expression of type "b -> a -> a", corresponding to a Lens a b--- for this field.-setField :: FieldInfo -> Exp-setField f = "Lens.Family2.set" @@ fieldOf f---- | An expression of type "(b -> b) -> a -> a", corresponding to a--- Lens a b for this field.-overField :: FieldInfo -> Exp -> Exp-overField f = over' (fieldOf f)---- | An expression of type "(b -> b) -> a -> a".------ Specifically, this renders to:--- over f (\!z -> g z) x--- The extra strictness prevents a space leak due to lists being lazy.-over' :: Exp -> Exp -> Exp-over' f g = "Lens.Family2.over"- @@ f- @@ lambda [bangPat t] (g @@ t)- where- t = "t"---- | A "Growing v RealWorld a -> Parser (Growing v RealWorld a)"--- for a field that can be packed.-parsePackedField :: FieldInfo -> Exp-{- let ploop qs = do- packedEnd <- atEnd- if packedEnd- then return qs- else do- !q <- {PARSE FIELD}- qs' <- append qs q- ploop qs'- in ploop--}-parsePackedField info = let' [funBind [match ploop [qs] ploopExp]]- ploop- where- ploop = "ploop"- q = "q"- qs = "qs"- qs' = "qs'"- packedEnd = "packedEnd"- ploopExp = do'- [ packedEnd <-- "Data.ProtoLens.Encoding.Bytes.atEnd"- , stmt $- if' packedEnd- ("Prelude.return" @@ qs)- $ do'- [ bangPat q <-- parseField info- , qs' <-- unsafeLiftIO' @@- ("Data.ProtoLens.Encoding.Growing.append"- @@ qs @@ q)- , stmt $ ploop @@ qs'- ]- ]--generatedBuilder :: MessageInfo Name -> Exp-generatedBuilder m =- lambda [x] $ foldMapExp $ map (buildPlainField x) (messageFields m)- ++ map (buildOneofField x) (messageOneofFields m)- ++ [buildUnknown x]- ++ buildGroupEnd- where- x = "_x" -- TODO: rename to "x" once it's always used- -- If this is a group, finish by emitting the end-group tag.- buildGroupEnd = [ putVarInt' @@ litInt (groupEndTag g)- | Just g <- [groupFieldNumber m]- ]--buildUnknown :: Exp -> Exp-buildUnknown x- = "Data.ProtoLens.Encoding.Wire.buildFieldSet"- @@ (view' @@ unknownFields' @@ x)---- | Concatenate a list of Monoids into a single value.--- For example, foldMapExp [a,b,c] will be transformed into--- the (unrolled) expression a <> b <> c.-foldMapExp :: [Exp] -> Exp-foldMapExp [] = mempty'-foldMapExp [x] = x-foldMapExp (x:xs) = "Data.Monoid.<>" @@ x @@ foldMapExp xs---- | An expression of type @Builder@ which encodes the field value--- @x@ based on the kind and type of the field @f@.-buildPlainField :: Exp -> PlainFieldInfo -> Exp-buildPlainField x f = case plainFieldKind f of- RequiredField -> buildTaggedField info fieldValue- OptionalMaybeField -> case' maybeFieldValue- ["Prelude.Nothing" --> mempty'- , "Prelude.Just" `pApp` [v]- --> buildTaggedField info v- ]- OptionalValueField -> let' [patBind v fieldValue]- $ if' ("Prelude.==" @@ v @@ "Data.ProtoLens.fieldDefault")- mempty'- (buildTaggedField info v)- MapField entryInfo- -> "Data.Monoid.mconcat"- @@ ("Prelude.map"- @@ lambda [v] (buildEntry entryInfo v)- @@ ("Data.Map.toList" @@ fieldValue))- RepeatedField Packed -> buildPackedField info vectorFieldValue- RepeatedField _ -> "Data.ProtoLens.Encoding.Bytes.foldMapBuilder"- @@ lambda [v]- (buildTaggedField info v)- @@ vectorFieldValue- where- info = plainFieldInfo f- v = "_v"- fieldValue = view'- @@ fieldOf info- @@ x- maybeFieldValue = view'- @@ fieldOfMaybe info- @@ x- vectorFieldValue = view'- @@ fieldOfVector info- @@ x- {- Builds a value of the given map entry type- from the given key/value pair kv.-- ... set (fieldOf {KEY}) (fst kv)- (set (fieldOf {VALUE}) (snd kv)- (defMessage :: Foo'Entry)- -}- buildEntry entry kv- = buildTaggedField info- $ set'- @@ fieldOf (keyField entry)- @@ ("Prelude.fst" @@ kv)- @@ (set' @@ fieldOf (valueField entry)- @@ ("Prelude.snd" @@ kv)- @@ ("Data.ProtoLens.defMessage"- @::@ tyCon (unQual $ mapEntryTypeName entry)))--fieldOf :: FieldInfo -> Exp-fieldOf = fieldOfExp . overloadedFieldName--fieldOfMaybe :: FieldInfo -> Exp-fieldOfMaybe = fieldOfExp . ("maybe'" <>) . overloadedFieldName--fieldOfOneof :: OneofInfo -> Exp-fieldOfOneof =- fieldOfExp . ("maybe'" <>) . overloadedName . oneofFieldName--fieldOfVector :: FieldInfo -> Exp-fieldOfVector = fieldOfExp . ("vec'" <>) . overloadedFieldName---- | Build a field along with its tag.-buildTaggedField :: FieldInfo -> Exp -> Exp-buildTaggedField f x = foldMapExp- [ putVarInt' @@ litInt (fieldTag f)- , buildField f @@ x- ]---- | Encodes a packed field as a byte string, along with--- its wire type+number.-buildPackedField :: FieldInfo -> Exp -> Exp-{-- let p = x -- where x might be a complicated expression- in if null p then mempty- else putVarInt {TAG}- <> ... (runBuilder (mconcat (map {BUILD_ELT} p)))--}-buildPackedField f x = let' [patBind p x]- $ if' ("Data.Vector.Generic.null" @@ p) mempty'- $ "Data.Monoid.<>"- @@ (putVarInt' @@ litInt (packedFieldTag f))- @@ (buildFieldType lengthy- @@ ("Data.ProtoLens.Encoding.Bytes.runBuilder"- @@ ("Data.ProtoLens.Encoding.Bytes.foldMapBuilder"- @@ buildField f- @@ p)))- where- p = "p"--buildOneofField :: Exp -> OneofInfo -> Exp-buildOneofField x info = case' (view' @@ fieldOfOneof info @@ x) $- ("Prelude.Nothing" --> mempty')- : [ pApp "Prelude.Just" [pApp (unQual $ caseConstructorName c)- [v]]- --> buildTaggedField (caseField c) v- | c <- oneofCases info- ]- where- v = "v"---- | Compute the proto encoding's representation of the wire type--- and field number.------ The last three bits of the number store the wire type, and the--- rest store the field number as a varint.-makeTag :: Int32 -> FieldEncoding -> Integer-makeTag num enc = fromIntegral $ joinTypeAndTag (fromIntegral num) (wireType enc)--fieldTag :: FieldInfo -> Integer-fieldTag f = makeTag (fieldDescriptor f ^. number) $ fieldInfoEncoding f--packedFieldTag :: FieldInfo -> Integer-packedFieldTag f = makeTag (fieldDescriptor f ^. number) lengthy--groupEndTag :: Int32 -> Integer-groupEndTag num = makeTag num groupEnd---- | An expression that selects the overloaded field lens of this name.------ field @"fieldName"-fieldOfExp :: Symbol -> Exp-fieldOfExp sym = "Data.ProtoLens.Field.field" @@ typeApp (promoteSymbol sym)---- | Some functions that are used in multiple places in the generated code.-getVarInt', putVarInt', mempty', view', set', unknownFields', unsafeLiftIO'- :: Exp-getVarInt' = "Data.ProtoLens.Encoding.Bytes.getVarInt"-putVarInt' = "Data.ProtoLens.Encoding.Bytes.putVarInt"-mempty' = "Data.Monoid.mempty"-view' = "Lens.Family2.view"-set' = "Lens.Family2.set"-unknownFields' = "Data.ProtoLens.unknownFields"-unsafeLiftIO' = "Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO"---- | Returns an expression of type @Parser a@ for the given field.-parseField :: FieldInfo -> Exp-parseField f = "Data.ProtoLens.Encoding.Bytes.<?>"- @@ (parseFieldType $ fieldInfoEncoding f)- @@ stringExp n- where- n = Text.unpack (fieldDescriptor f ^. name)---- | Returns a function corresponding to `a -> Builder`:-buildField :: FieldInfo -> Exp-buildField = buildFieldType . fieldInfoEncoding--fieldInfoEncoding :: FieldInfo -> FieldEncoding-fieldInfoEncoding = fieldEncoding . view type' . fieldDescriptor--growingType :: Env QName -> FieldInfo -> Type-growingType env f- = "Data.ProtoLens.Encoding.Growing.Growing"- @@ hsFieldVectorType f- @@ "Data.ProtoLens.Encoding.Growing.RealWorld"- @@ hsFieldType env f
− src/Data/ProtoLens/Compiler/Generate/Field.hs
@@ -1,260 +0,0 @@-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE NoMonomorphismRestriction #-}-{-# LANGUAGE OverloadedStrings #-}--- | This module generates the code for decoding and encoding--- individual field types.------ Upstream docs:--- <https://developers.google.com/protocol-buffers/docs/encoding#structure>-module Data.ProtoLens.Compiler.Generate.Field- ( hsFieldType- , hsFieldVectorType- , FieldEncoding(..)- , fieldEncoding- , lengthy- , groupEnd- , isolatedLengthy- ) where--import Data.Text (unpack)-import Data.Word (Word8)-import Lens.Family2-import Proto.Google.Protobuf.Descriptor (FieldDescriptorProto'Type(..))-import Proto.Google.Protobuf.Descriptor_Fields (type', typeName)--import Data.ProtoLens.Compiler.Combinators-import Data.ProtoLens.Compiler.Definitions--hsFieldType :: Env QName -> FieldInfo -> Type-hsFieldType env f = let- fd = fieldDescriptor f- in case fd ^. type' of- FieldDescriptorProto'TYPE_DOUBLE -> "Prelude.Double"- FieldDescriptorProto'TYPE_FLOAT -> "Prelude.Float"- FieldDescriptorProto'TYPE_INT64 -> "Data.Int.Int64"- FieldDescriptorProto'TYPE_UINT64 -> "Data.Word.Word64"- FieldDescriptorProto'TYPE_INT32 -> "Data.Int.Int32"- FieldDescriptorProto'TYPE_FIXED64 -> "Data.Word.Word64"- FieldDescriptorProto'TYPE_FIXED32 -> "Data.Word.Word32"- FieldDescriptorProto'TYPE_BOOL -> "Prelude.Bool"- FieldDescriptorProto'TYPE_STRING -> "Data.Text.Text"- FieldDescriptorProto'TYPE_GROUP- | Message m <- definedFieldType fd env -> tyCon $ messageName m- | otherwise -> error $ "expected TYPE_GROUP for type name"- ++ unpack (fd ^. typeName)- FieldDescriptorProto'TYPE_MESSAGE- | Message m <- definedFieldType fd env -> tyCon $ messageName m- | otherwise -> error $ "expected TYPE_MESSAGE for type name"- ++ unpack (fd ^. typeName)- FieldDescriptorProto'TYPE_BYTES -> "Data.ByteString.ByteString"- FieldDescriptorProto'TYPE_UINT32 -> "Data.Word.Word32"- FieldDescriptorProto'TYPE_ENUM- | Enum e <- definedFieldType fd env -> tyCon $ enumName e- | otherwise -> error $ "expected TYPE_ENUM for type name"- ++ unpack (fd ^. typeName)- FieldDescriptorProto'TYPE_SFIXED32 -> "Data.Int.Int32"- FieldDescriptorProto'TYPE_SFIXED64 -> "Data.Int.Int64"- FieldDescriptorProto'TYPE_SINT32 -> "Data.Int.Int32"- FieldDescriptorProto'TYPE_SINT64 -> "Data.Int.Int64"--hsFieldVectorType :: FieldInfo -> Type-hsFieldVectorType f = case fieldDescriptor f ^. type' of- FieldDescriptorProto'TYPE_MESSAGE -> boxed- -- TODO: store enums in unboxed fields.- FieldDescriptorProto'TYPE_ENUM -> boxed- FieldDescriptorProto'TYPE_GROUP -> boxed- FieldDescriptorProto'TYPE_STRING -> boxed- FieldDescriptorProto'TYPE_BYTES -> boxed- _ -> unboxed- where- boxed = "Data.Vector.Vector"- unboxed = "Data.Vector.Unboxed.Vector"---- | A representation for how to encode and decode a particular field type.-data FieldEncoding = FieldEncoding- { buildFieldType :: Exp -- ^ :: a -> Builder- , parseFieldType :: Exp -- ^ :: Parser a- , wireType :: Word8- }---- | A variable-length integer, decoded as an unsigned Word64.-varint :: FieldEncoding-varint = FieldEncoding- { wireType = 0- , buildFieldType = putVarInt'- , parseFieldType = getVarInt'- }---- | A fixed-length integer (Word64).-fixed64 :: FieldEncoding-fixed64 = FieldEncoding- { wireType = 1- , buildFieldType = "Data.ProtoLens.Encoding.Bytes.putFixed64"- , parseFieldType = "Data.ProtoLens.Encoding.Bytes.getFixed64"- }---- | A fixed-length integer (Word32).-fixed32 :: FieldEncoding-fixed32 = FieldEncoding- { wireType = 5- , buildFieldType = "Data.ProtoLens.Encoding.Bytes.putFixed32"- , parseFieldType = "Data.ProtoLens.Encoding.Bytes.getFixed32"- }---- | A ByteString, prefixed by its length (which is encoded as a varint).-lengthy :: FieldEncoding-lengthy = FieldEncoding- { wireType = 2- , buildFieldType = buildLengthy- , parseFieldType = parseLengthy- }- where- bs = "bs"- len = "len"- buildLengthy =- -- Bind x since it may be a nontrivial expression:- lambda [bs]- $ "Data.Monoid.<>"- @@ (putVarInt'- @@ (fromIntegral'- @@ ("Data.ByteString.length" @@ bs)))- @@ ("Data.ProtoLens.Encoding.Bytes.putBytes" @@ bs)- parseLengthy = do'- [ len <-- getVarInt'- , stmt $ "Data.ProtoLens.Encoding.Bytes.getBytes"- @@ (fromIntegral' @@ len)- ]--group :: FieldEncoding-group = FieldEncoding- { wireType = 3- , buildFieldType = "Data.ProtoLens.buildMessage"- , parseFieldType = "Data.ProtoLens.parseMessage"- }--groupEnd :: FieldEncoding-groupEnd = FieldEncoding- { wireType = 4- , buildFieldType = "Prelude.const" @@ "Data.Monoid.mempty"- , parseFieldType = "Prelude.return" @@ unit- }---- Wrap a field encoding with Haskell functions that should always succeed.-bijectField :: Exp -> Exp -> FieldEncoding -> FieldEncoding-bijectField buildF parseF f = FieldEncoding- { buildFieldType = "Prelude.." @@ buildFieldType f @@ buildF- , parseFieldType = "Prelude.fmap" @@ parseF @@ parseFieldType f- , wireType = wireType f- }---- | Wrap a field encoding with Haskell functions that may fail during parsing.-partialField :: Exp -> (Exp -> Exp) -> FieldEncoding -> FieldEncoding-partialField buildF parseF f = FieldEncoding- { buildFieldType = "Prelude.." @@ buildFieldType f @@ buildF- -- do- -- value <- ...- -- runEither $ {parseF} value- , parseFieldType = do'- [ value <-- parseFieldType f- , stmt $ runEither @@ parseF value- ]- , wireType = wireType f- }- where- value = "value"- runEither = "Data.ProtoLens.Encoding.Bytes.runEither"---- | Convert a field of one integral type to another.-integralField :: FieldEncoding -> FieldEncoding-integralField = bijectField fromIntegral' fromIntegral'--fieldEncoding :: FieldDescriptorProto'Type -> FieldEncoding-fieldEncoding = \case- FieldDescriptorProto'TYPE_INT64 -> integralField varint- FieldDescriptorProto'TYPE_UINT64 -> varint- FieldDescriptorProto'TYPE_INT32 -> integralField varint- FieldDescriptorProto'TYPE_UINT32 -> integralField varint- FieldDescriptorProto'TYPE_FIXED64 -> fixed64- FieldDescriptorProto'TYPE_FIXED32 -> fixed32- FieldDescriptorProto'TYPE_SFIXED64 -> integralField fixed64- FieldDescriptorProto'TYPE_SFIXED32 -> integralField fixed32- FieldDescriptorProto'TYPE_DOUBLE ->- bijectField- "Data.ProtoLens.Encoding.Bytes.doubleToWord"- "Data.ProtoLens.Encoding.Bytes.wordToDouble"- fixed64- FieldDescriptorProto'TYPE_FLOAT ->- bijectField- "Data.ProtoLens.Encoding.Bytes.floatToWord"- "Data.ProtoLens.Encoding.Bytes.wordToFloat"- fixed32- FieldDescriptorProto'TYPE_BOOL ->- bijectField- (lambda ["b"] $ if' "b" (litInt 1) (litInt 0))- ("Prelude./=" @@ litInt 0)- varint- FieldDescriptorProto'TYPE_ENUM ->- -- TODO: don't throw an exception on unknown proto2 enums.- bijectField "Prelude.fromEnum" "Prelude.toEnum"- $ integralField varint- FieldDescriptorProto'TYPE_SINT64 ->- bijectField- "Data.ProtoLens.Encoding.Bytes.signedInt64ToWord"- "Data.ProtoLens.Encoding.Bytes.wordToSignedInt64"- $ integralField varint- FieldDescriptorProto'TYPE_SINT32 ->- bijectField- "Data.ProtoLens.Encoding.Bytes.signedInt32ToWord"- "Data.ProtoLens.Encoding.Bytes.wordToSignedInt32"- $ integralField varint- FieldDescriptorProto'TYPE_BYTES -> lengthy- FieldDescriptorProto'TYPE_STRING -> stringField- FieldDescriptorProto'TYPE_MESSAGE -> message- FieldDescriptorProto'TYPE_GROUP -> group---- | A string, represented as Data.Text.Text.-stringField :: FieldEncoding-stringField = partialField "Data.Text.Encoding.encodeUtf8" decodeUtf8P lengthy- where- {- Translates to:- case decodeUtf8' bytes of- Left err -> Left (show err)- Right r -> r- Equivalently:- first show $ decodeUtf8' bytes- but avoids dragging in Data.Bifunctors.- -}- decodeUtf8P bytes =- case' ("Data.Text.Encoding.decodeUtf8'" @@ bytes )- [ "Prelude.Left" `pApp` ["err"]- --> "Prelude.Left" @@ ("Prelude.show" @@ "err")- , "Prelude.Right" `pApp` ["r"]- --> "Prelude.Right" @@ "r"- ]---- | A protobuf message type.-message :: FieldEncoding-message = lengthy- { buildFieldType = "Prelude.." @@- buildFieldType lengthy @@- "Data.ProtoLens.encodeMessage"- , parseFieldType = isolatedLengthy "Data.ProtoLens.parseMessage"- }---- | Takes a @Parser a@, reads a varint and then runs the parser--- isolated to the given length.-isolatedLengthy :: Exp -> Exp-isolatedLengthy parser = do'- [ len <-- getVarInt'- , stmt $ "Data.ProtoLens.Encoding.Bytes.isolate"- @@ (fromIntegral' @@ len)- @@ parser- ]- where- len = "len"---- | Some functions that are used in multiple places in the generated code.-getVarInt', putVarInt', fromIntegral' :: Exp-getVarInt' = "Data.ProtoLens.Encoding.Bytes.getVarInt"-putVarInt' = "Data.ProtoLens.Encoding.Bytes.putVarInt"-fromIntegral' = "Prelude.fromIntegral"
+ src/Data/ProtoLens/Compiler/ModuleName.hs view
@@ -0,0 +1,24 @@+module Data.ProtoLens.Compiler.ModuleName+ ( protoModuleName ) where++import Data.Char (toUpper)+import Data.List (intercalate)+import System.FilePath++-- | Get the Haskell module name corresponding to a given .proto file.+protoModuleName :: FilePath -> String+protoModuleName path = fixModuleName rawModuleName+ where+ fixModuleName "" = ""+ -- Characters allowed in Bazel filenames but not in module names:+ fixModuleName ('.':c:cs) = '.' : toUpper c : fixModuleName cs+ fixModuleName ('_':c:cs) = toUpper c : fixModuleName cs+ fixModuleName ('-':c:cs) = toUpper c : fixModuleName cs+ fixModuleName (c:cs) = c : fixModuleName cs+ rawModuleName = intercalate "."+ . (prefix :)+ . splitDirectories $ dropExtension+ $ path++prefix :: String+prefix = "Proto"
− src/Data/ProtoLens/Compiler/Plugin.hs
@@ -1,130 +0,0 @@--- Copyright 2016 Google Inc. All Rights Reserved.------ Use of this source code is governed by a BSD-style--- license that can be found in the LICENSE file or at--- https://developers.google.com/open-source/licenses/bsd------ Code for writing protocol compiler plugins.--{-# LANGUAGE OverloadedStrings #-}-module Data.ProtoLens.Compiler.Plugin- ( ProtoFileName- , ProtoFile(..)- , analyzeProtoFiles- , collectEnvFromDeps- , outputFilePath- , moduleName- , moduleNameStr- ) where--import Data.Char (toUpper)-import Data.List (foldl', intercalate)-import qualified Data.Map.Strict as Map-import Data.Map.Strict (Map, unions, (!))-import Data.Monoid ((<>))-import Data.String (fromString)-import qualified Data.Text as T-import Data.Text (Text)-import Lens.Family2-import Proto.Google.Protobuf.Descriptor (FileDescriptorProto)-import Proto.Google.Protobuf.Descriptor_Fields (name, dependency, publicDependency)-import System.FilePath (dropExtension, splitDirectories)---import Data.ProtoLens.Compiler.Definitions-import Data.ProtoLens.Compiler.Combinators (ModuleName, Name, QName)---- | The filename of an input .proto file.-type ProtoFileName = Text--data ProtoFile = ProtoFile- { descriptor :: FileDescriptorProto- , haskellModule :: ModuleName- , definitions :: Env Name- , services :: [ServiceInfo]- -- | The names of proto files exported (transitively, via "import public"- -- decl) by this file.- , exports :: [ProtoFileName]- , exportedEnv :: Env QName- }---- Given a list of FileDescriptorProtos, collect information about each file--- into a map of 'ProtoFile's keyed by 'ProtoFileName'.-analyzeProtoFiles :: Text -> [FileDescriptorProto] -> Map ProtoFileName ProtoFile-analyzeProtoFiles modulePrefix files =- Map.fromList [ (f ^. name, ingestFile f) | f <- files ]- where- filesByName = Map.fromList [(f ^. name, f) | f <- files]- moduleNames = fmap (moduleName modulePrefix) filesByName- -- The definitions in each input proto file, indexed by filename.- definitionsByName = fmap collectDefinitions filesByName- servicesByName = fmap collectServices filesByName- -- The exports from each .proto file (including any "public import"- -- dependencies), as they appear to other modules that are importing them;- -- i.e., qualified by module name.- exportsByName = transitiveExports files- localExports = Map.intersectionWith qualifyEnv moduleNames definitionsByName- exportedEnvs = fmap (\es -> unions [localExports ! e | e <- es]) exportsByName-- ingestFile f = ProtoFile- { descriptor = f- , haskellModule = moduleNames ! n- , definitions = definitionsByName ! n- , services = servicesByName ! n- , exports = exportsByName ! n- , exportedEnv = exportedEnvs ! n- }- where- n = f ^. name--collectEnvFromDeps :: [ProtoFileName] -> Map ProtoFileName ProtoFile -> Env QName-collectEnvFromDeps deps filesByName =- unions $ fmap (exportedEnv . (filesByName !)) deps---- | Get the output file path (for CodeGeneratorResponse.File) for a Haskell--- ModuleName.-outputFilePath :: String -> Text-outputFilePath n = T.replace "." "/" (T.pack n) <> ".hs"---- | Get the Haskell 'ModuleName' corresponding to a given .proto file.-moduleName :: Text -> FileDescriptorProto -> ModuleName-moduleName modulePrefix fd- = fromString $ moduleNameStr (T.unpack modulePrefix) (T.unpack $ fd ^. name)---- | Get the Haskell module name corresponding to a given .proto file.-moduleNameStr :: String -> FilePath -> String-moduleNameStr prefix path = fixModuleName rawModuleName- where- fixModuleName "" = ""- -- Characters allowed in Bazel filenames but not in module names:- fixModuleName ('.':c:cs) = '.' : toUpper c : fixModuleName cs- fixModuleName ('_':c:cs) = toUpper c : fixModuleName cs- fixModuleName ('-':c:cs) = toUpper c : fixModuleName cs- fixModuleName (c:cs) = c : fixModuleName cs- rawModuleName = intercalate "."- . (prefix :)- . splitDirectories $ dropExtension- $ path---- | Given a list of .proto files (topologically sorted), determine which--- files' definitions are exported by which files.------ Files only export their own definitions, along with the definitions exported--- by any "import public" declarations.-transitiveExports :: [FileDescriptorProto] -> Map ProtoFileName [ProtoFileName]--- Accumulate the transitive dependencies by folding over the files in--- topological order.-transitiveExports = foldl' setExportsFromFile Map.empty- where- setExportsFromFile :: Map ProtoFileName [ProtoFileName]- -> FileDescriptorProto- -> Map ProtoFileName [ProtoFileName]- setExportsFromFile prevExports fd- = flip (Map.insert n) prevExports $- n : concat [ prevExports ! ((fd ^. dependency) !! fromIntegral i)- -- Note that publicDependency is a list of indices into- -- the dependency list.- | i <- fd ^. publicDependency- ]- where n = fd ^. name-