packages feed

signable 0.1 → 0.2

raw patch · 10 files changed

+1790/−257 lines, 10 files

Files

ChangeLog.md view
@@ -1,3 +1,13 @@+# Version 0.2++- Field indexes of any unset field (message/repeated/oneof) are ignored in serialized payload to make possible rolling upgrades **BREAKING CHANGE**++- Fully qualified names are used in generated Signable class instances source code to prevent possible shadowing issues (bugfix)++- Signable class instances source code is generated in eta-reduced form to prevent possible shadowing issues (bugfix)++- Provided code for special cases where protobuf field is named as Haskell keyword like `data`, `class`, `instance` etc (bugfix)+ # Version 0.1  - Initial version.
signable.cabal view
@@ -4,12 +4,12 @@ -- -- see: https://github.com/sol/hpack ----- hash: 311dca41f71b08d906b034cedb1f0ad7e69aeaf71f0848717e5ca917085dcc1b+-- hash: 96e4ab3b538617261b6805fe5eadfa87a8bffa2b67f0f684e7942568405df0e8  name:           signable-version:        0.1+version:        0.2 synopsis:       Deterministic serialisation and signatures with proto-lens support-description:    You can find documentation at <http://hackage.haskell.org/package/signable/docs/Data-Signable.html hackage>+description:    You can find documentation at <https://hackage.haskell.org/package/signable/docs/Data-Signable.html hackage> category:       Data, Cryptography homepage:       https://github.com/coingaming/signable#readme bug-reports:    https://github.com/coingaming/signable/issues@@ -71,6 +71,10 @@       Proto.GoogleProtobuf_Fields       Proto.Number       Proto.Number_Fields+      Proto.RepeatedMsg+      Proto.RepeatedMsg_Fields+      Proto.ReservedKeyword+      Proto.ReservedKeyword_Fields       Proto.SignableOrphan       Proto.Text       Proto.Text_Fields
src/Data/Signable.hs view
@@ -2,10 +2,9 @@ -- One of the main difficulties of digital signature usage -- is necessity of determenistic data serialization agreement. -- This library provides `Signable` class which represents--- the idea of such agreement.------ Also worth mentioning generic <https://hackage.haskell.org/package/proto-lens proto-lens> compatible implementation--- of serialization/signing algorithm described <https://github.com/coingaming/signable/blob/master/README.md here>.+-- the idea of such agreement. Also worth mentioning generic+-- <https://hackage.haskell.org/package/proto-lens proto-lens> compatible implementation+-- of serialization\/signing algorithm described <https://github.com/coingaming/signable/blob/master/README.md here>. -- It's implemented as separate protoc plugin <https://hackage.haskell.org/package/signable-haskell-protoc signable-haskell-protoc> -- which generates `Signable` class instances for given proto-lens messages and enums. module Data.Signable@@ -14,4 +13,4 @@ where  import Data.Signable.Class as X-import Data.Signable.Util as X (safeFromIntegral)+import Data.Signable.Util as X (ifThenElse, safeFromIntegral)
src/Data/Signable/Class.hs view
@@ -7,11 +7,13 @@   ( -- * Key     PubKey,     PrvKey,-    importPubKeyRaw,+    importPubKeyDer,     importPubKeyPem,+    exportPubKeyDer,     derivePubKey,     importPrvKeyRaw,     importPrvKeyPem,+    exportPrvKeyRaw,     newRandomPrvKey,      -- * Sha256@@ -27,7 +29,8 @@      -- * Misc     Alg (..),-    SE (..),+    SignableError (..),+    ECPointFormat (..),   ) where @@ -49,17 +52,22 @@ data Alg = AlgSecp256k1   deriving (Show) -data SE+data SignableError   = InvalidPem   | TooFewPemChunks   | TooManyPemChunks   | InvalidAsn1   | TooFewAsn1Chunks   | TooManyAsn1Chunks-  | InvalidPubKeyRaw+  | InvalidPubKeyDer   | InvalidPrvKeyRaw   deriving (Show) +data ECPointFormat+  = ECPointCompressed+  | ECPointUncompressed+  deriving (Eq, Show)+ newtype PubKey = PubKeySecp256k1 C.PubKey  newtype PrvKey = PrvKeySecp256k1 C.SecKey@@ -77,26 +85,29 @@ -- TODO : add KeyKind argument later -- when we will have more algorithms ---importPubKeyRaw :: Alg -> ByteString -> Maybe PubKey-importPubKeyRaw AlgSecp256k1 = (PubKeySecp256k1 <$>) . C.importPubKey+importPubKeyDer :: Alg -> ByteString -> Maybe PubKey+importPubKeyDer AlgSecp256k1 = (PubKeySecp256k1 <$>) . C.importPubKey -importPubKeyPem :: Alg -> ByteString -> Either SE PubKey+importPubKeyPem :: Alg -> ByteString -> Either SignableError PubKey importPubKeyPem AlgSecp256k1 x0 =   case parsePEM x0     >>= parseASN1 (\case BitString (BitArray _ x) -> [x]; _ -> []) of     Left e -> Left e     Right x ->-      case importPubKeyRaw AlgSecp256k1 x of-        Nothing -> Left InvalidPubKeyRaw+      case importPubKeyDer AlgSecp256k1 x of+        Nothing -> Left InvalidPubKeyDer         Just k -> Right k +exportPubKeyDer :: ECPointFormat -> PubKey -> ByteString+exportPubKeyDer f (PubKeySecp256k1 x) = C.exportPubKey (f == ECPointCompressed) x+ derivePubKey :: PrvKey -> PubKey derivePubKey (PrvKeySecp256k1 x) = PubKeySecp256k1 $ C.derivePubKey x  importPrvKeyRaw :: Alg -> ByteString -> Maybe PrvKey importPrvKeyRaw AlgSecp256k1 = (PrvKeySecp256k1 <$>) . C.secKey -importPrvKeyPem :: Alg -> ByteString -> Either SE PrvKey+importPrvKeyPem :: Alg -> ByteString -> Either SignableError PrvKey importPrvKeyPem AlgSecp256k1 x0 =   case parsePEM x0     >>= parseASN1 (\case OctetString x -> [x]; _ -> []) of@@ -106,6 +117,9 @@         Nothing -> Left InvalidPrvKeyRaw         Just k -> Right k +exportPrvKeyRaw :: PrvKey -> ByteString+exportPrvKeyRaw (PrvKeySecp256k1 x) = C.getSecKey x+ newRandomPrvKey :: (MonadIO m, MonadFail m) => Alg -> m PrvKey newRandomPrvKey AlgSecp256k1 = do   r <- liftIO $ getRandomBytes 32@@ -123,7 +137,7 @@ exportSigDer :: Sig -> ByteString exportSigDer (SigSecp256k1 x) = C.exportSig x -parsePEM :: ByteString -> Either SE PEM+parsePEM :: ByteString -> Either SignableError PEM parsePEM x0 =   case pemParseBS x0 of     Left _ -> Left InvalidPem@@ -131,7 +145,7 @@     Right [x] -> Right x     Right _ -> Left TooManyPemChunks -parseASN1 :: (ASN1 -> [ByteString]) -> PEM -> Either SE ByteString+parseASN1 :: (ASN1 -> [ByteString]) -> PEM -> Either SignableError ByteString parseASN1 f p = do   xs0 <-     first (const InvalidAsn1) $
src/Data/Signable/Util.hs view
@@ -1,6 +1,7 @@ module Data.Signable.Util   ( safeFromIntegral,     liftEither,+    ifThenElse,   ) where @@ -21,3 +22,6 @@ liftEither = \case   Left x -> fail $ show x   Right x -> return x++ifThenElse :: (a -> Bool) -> (a -> b) -> (a -> b) -> a -> b+ifThenElse p t f x = if p x then t x else f x
+ test/Proto/RepeatedMsg.hs view
@@ -0,0 +1,314 @@+{- This file was auto-generated from repeated_msg.proto by the proto-lens-protoc program. -}+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies, UndecidableInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances, PatternSynonyms, MagicHash, NoImplicitPrelude, DataKinds, BangPatterns, TypeApplications, OverloadedStrings, DerivingStrategies#-}+{-# OPTIONS_GHC -Wno-unused-imports#-}+{-# OPTIONS_GHC -Wno-duplicate-exports#-}+{-# OPTIONS_GHC -Wno-dodgy-exports#-}+module Proto.RepeatedMsg (+        Payload(), Payload'Msg()+    ) 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.RepeatedMsg_Fields.msg' @:: Lens' Payload [Payload'Msg]@+         * 'Proto.RepeatedMsg_Fields.vec'msg' @:: Lens' Payload (Data.Vector.Vector Payload'Msg)@ -}+data Payload+  = Payload'_constructor {_Payload'msg :: !(Data.Vector.Vector Payload'Msg),+                          _Payload'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show Payload where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField Payload "msg" [Payload'Msg] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _Payload'msg (\ x__ y__ -> x__ {_Payload'msg = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField Payload "vec'msg" (Data.Vector.Vector Payload'Msg) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _Payload'msg (\ x__ y__ -> x__ {_Payload'msg = y__}))+        Prelude.id+instance Data.ProtoLens.Message Payload where+  messageName _ = Data.Text.pack "RepeatedMsg.Payload"+  packedMessageDescriptor _+    = "\n\+      \\aPayload\DC2*\n\+      \\ETXmsg\CAN\SOH \ETX(\v2\CAN.RepeatedMsg.Payload.MsgR\ETXmsg\SUB\DC3\n\+      \\ETXMsg\DC2\f\n\+      \\SOHx\CAN\SOH \SOH(\rR\SOHx"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        msg__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "msg"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor Payload'Msg)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"msg")) ::+              Data.ProtoLens.FieldDescriptor Payload+      in+        Data.Map.fromList [(Data.ProtoLens.Tag 1, msg__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _Payload'_unknownFields+        (\ x__ y__ -> x__ {_Payload'_unknownFields = y__})+  defMessage+    = Payload'_constructor+        {_Payload'msg = Data.Vector.Generic.empty,+         _Payload'_unknownFields = []}+  parseMessage+    = let+        loop ::+          Payload+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Payload'Msg+             -> Data.ProtoLens.Encoding.Bytes.Parser Payload+        loop x mutable'msg+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do frozen'msg <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                      (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'msg)+                      (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'msg") frozen'msg 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)+                                        "msg"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append mutable'msg 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'msg+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do mutable'msg <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                               Data.ProtoLens.Encoding.Growing.new+              loop Data.ProtoLens.defMessage mutable'msg)+          "Payload"+  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'msg") _x))+             (Data.ProtoLens.Encoding.Wire.buildFieldSet+                (Lens.Family2.view Data.ProtoLens.unknownFields _x))+instance Control.DeepSeq.NFData Payload where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_Payload'_unknownFields x__)+             (Control.DeepSeq.deepseq (_Payload'msg x__) ())+{- | Fields :+     +         * 'Proto.RepeatedMsg_Fields.x' @:: Lens' Payload'Msg Data.Word.Word32@ -}+data Payload'Msg+  = Payload'Msg'_constructor {_Payload'Msg'x :: !Data.Word.Word32,+                              _Payload'Msg'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show Payload'Msg where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField Payload'Msg "x" Data.Word.Word32 where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _Payload'Msg'x (\ x__ y__ -> x__ {_Payload'Msg'x = y__}))+        Prelude.id+instance Data.ProtoLens.Message Payload'Msg where+  messageName _ = Data.Text.pack "RepeatedMsg.Payload.Msg"+  packedMessageDescriptor _+    = "\n\+      \\ETXMsg\DC2\f\n\+      \\SOHx\CAN\SOH \SOH(\rR\SOHx"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        x__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "x"+              (Data.ProtoLens.ScalarField Data.ProtoLens.UInt32Field ::+                 Data.ProtoLens.FieldTypeDescriptor Data.Word.Word32)+              (Data.ProtoLens.PlainField+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"x")) ::+              Data.ProtoLens.FieldDescriptor Payload'Msg+      in Data.Map.fromList [(Data.ProtoLens.Tag 1, x__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _Payload'Msg'_unknownFields+        (\ x__ y__ -> x__ {_Payload'Msg'_unknownFields = y__})+  defMessage+    = Payload'Msg'_constructor+        {_Payload'Msg'x = Data.ProtoLens.fieldDefault,+         _Payload'Msg'_unknownFields = []}+  parseMessage+    = let+        loop ::+          Payload'Msg -> Data.ProtoLens.Encoding.Bytes.Parser Payload'Msg+        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)+                                       "x"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"x") 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) "Msg"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"x") _x+              in+                if (Prelude.==) _v Data.ProtoLens.fieldDefault then+                    Data.Monoid.mempty+                else+                    (Data.Monoid.<>)+                      (Data.ProtoLens.Encoding.Bytes.putVarInt 8)+                      ((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 Payload'Msg where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_Payload'Msg'_unknownFields x__)+             (Control.DeepSeq.deepseq (_Payload'Msg'x x__) ())+packedFileDescriptor :: Data.ByteString.ByteString+packedFileDescriptor+  = "\n\+    \\DC2repeated_msg.proto\DC2\vRepeatedMsg\"J\n\+    \\aPayload\DC2*\n\+    \\ETXmsg\CAN\SOH \ETX(\v2\CAN.RepeatedMsg.Payload.MsgR\ETXmsg\SUB\DC3\n\+    \\ETXMsg\DC2\f\n\+    \\SOHx\CAN\SOH \SOH(\rR\SOHxJ\229\SOH\n\+    \\ACK\DC2\EOT\NUL\NUL\b\SOH\n\+    \\b\n\+    \\SOH\f\DC2\ETX\NUL\NUL\DC2\n\+    \\b\n\+    \\SOH\STX\DC2\ETX\SOH\NUL\DC4\n\+    \\n\+    \\n\+    \\STX\EOT\NUL\DC2\EOT\ETX\NUL\b\SOH\n\+    \\n\+    \\n\+    \\ETX\EOT\NUL\SOH\DC2\ETX\ETX\b\SI\n\+    \\v\n\+    \\EOT\EOT\NUL\STX\NUL\DC2\ETX\EOT\STX\ETB\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\NUL\EOT\DC2\ETX\EOT\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\NUL\ACK\DC2\ETX\EOT\v\SO\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\NUL\SOH\DC2\ETX\EOT\SI\DC2\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\NUL\ETX\DC2\ETX\EOT\NAK\SYN\n\+    \\f\n\+    \\EOT\EOT\NUL\ETX\NUL\DC2\EOT\ENQ\STX\a\ETX\n\+    \\f\n\+    \\ENQ\EOT\NUL\ETX\NUL\SOH\DC2\ETX\ENQ\n\+    \\r\n\+    \\r\n\+    \\ACK\EOT\NUL\ETX\NUL\STX\NUL\DC2\ETX\ACK\EOT\DC1\n\+    \\SI\n\+    \\a\EOT\NUL\ETX\NUL\STX\NUL\EOT\DC2\EOT\ACK\EOT\ENQ\SI\n\+    \\SO\n\+    \\a\EOT\NUL\ETX\NUL\STX\NUL\ENQ\DC2\ETX\ACK\EOT\n\+    \\n\+    \\SO\n\+    \\a\EOT\NUL\ETX\NUL\STX\NUL\SOH\DC2\ETX\ACK\v\f\n\+    \\SO\n\+    \\a\EOT\NUL\ETX\NUL\STX\NUL\ETX\DC2\ETX\ACK\SI\DLEb\ACKproto3"
+ test/Proto/RepeatedMsg_Fields.hs view
@@ -0,0 +1,44 @@+{- This file was auto-generated from repeated_msg.proto by the proto-lens-protoc program. -}+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies, UndecidableInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances, PatternSynonyms, MagicHash, NoImplicitPrelude, DataKinds, BangPatterns, TypeApplications, OverloadedStrings, DerivingStrategies#-}+{-# OPTIONS_GHC -Wno-unused-imports#-}+{-# OPTIONS_GHC -Wno-duplicate-exports#-}+{-# OPTIONS_GHC -Wno-dodgy-exports#-}+module Proto.RepeatedMsg_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+msg ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "msg" a) =>+  Lens.Family2.LensLike' f s a+msg = Data.ProtoLens.Field.field @"msg"+vec'msg ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "vec'msg" a) =>+  Lens.Family2.LensLike' f s a+vec'msg = Data.ProtoLens.Field.field @"vec'msg"+x ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "x" a) =>+  Lens.Family2.LensLike' f s a+x = Data.ProtoLens.Field.field @"x"
+ test/Proto/ReservedKeyword.hs view
@@ -0,0 +1,754 @@+{- This file was auto-generated from reserved_keyword.proto by the proto-lens-protoc program. -}+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies, UndecidableInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances, PatternSynonyms, MagicHash, NoImplicitPrelude, DataKinds, BangPatterns, TypeApplications, OverloadedStrings, DerivingStrategies#-}+{-# OPTIONS_GHC -Wno-unused-imports#-}+{-# OPTIONS_GHC -Wno-duplicate-exports#-}+{-# OPTIONS_GHC -Wno-dodgy-exports#-}+module Proto.ReservedKeyword (+        Payload(), Payload'List(), Payload'List'Either(..),+        _Payload'List'X, _Payload'List'Xs+    ) 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.ReservedKeyword_Fields.module'' @:: Lens' Payload Data.ByteString.ByteString@+         * 'Proto.ReservedKeyword_Fields.data'' @:: Lens' Payload [Payload'List]@+         * 'Proto.ReservedKeyword_Fields.vec'data'' @:: Lens' Payload (Data.Vector.Vector Payload'List)@+         * 'Proto.ReservedKeyword_Fields.type'' @:: Lens' Payload [Data.ByteString.ByteString]@+         * 'Proto.ReservedKeyword_Fields.vec'type'' @:: Lens' Payload (Data.Vector.Vector Data.ByteString.ByteString)@+         * 'Proto.ReservedKeyword_Fields.class'' @:: Lens' Payload Payload'List@+         * 'Proto.ReservedKeyword_Fields.maybe'class'' @:: Lens' Payload (Prelude.Maybe Payload'List)@+         * 'Proto.ReservedKeyword_Fields.instance'' @:: Lens' Payload Data.ByteString.ByteString@+         * 'Proto.ReservedKeyword_Fields.if'' @:: Lens' Payload Prelude.Bool@ -}+data Payload+  = Payload'_constructor {_Payload'module' :: !Data.ByteString.ByteString,+                          _Payload'data' :: !(Data.Vector.Vector Payload'List),+                          _Payload'type' :: !(Data.Vector.Vector Data.ByteString.ByteString),+                          _Payload'class' :: !(Prelude.Maybe Payload'List),+                          _Payload'instance' :: !Data.ByteString.ByteString,+                          _Payload'if' :: !Prelude.Bool,+                          _Payload'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show Payload where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+instance Data.ProtoLens.Field.HasField Payload "module'" Data.ByteString.ByteString where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _Payload'module' (\ x__ y__ -> x__ {_Payload'module' = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField Payload "data'" [Payload'List] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _Payload'data' (\ x__ y__ -> x__ {_Payload'data' = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField Payload "vec'data'" (Data.Vector.Vector Payload'List) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _Payload'data' (\ x__ y__ -> x__ {_Payload'data' = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField Payload "type'" [Data.ByteString.ByteString] where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _Payload'type' (\ x__ y__ -> x__ {_Payload'type' = y__}))+        (Lens.Family2.Unchecked.lens+           Data.Vector.Generic.toList+           (\ _ y__ -> Data.Vector.Generic.fromList y__))+instance Data.ProtoLens.Field.HasField Payload "vec'type'" (Data.Vector.Vector Data.ByteString.ByteString) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _Payload'type' (\ x__ y__ -> x__ {_Payload'type' = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField Payload "class'" Payload'List where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _Payload'class' (\ x__ y__ -> x__ {_Payload'class' = y__}))+        (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage)+instance Data.ProtoLens.Field.HasField Payload "maybe'class'" (Prelude.Maybe Payload'List) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _Payload'class' (\ x__ y__ -> x__ {_Payload'class' = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField Payload "instance'" Data.ByteString.ByteString where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _Payload'instance' (\ x__ y__ -> x__ {_Payload'instance' = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField Payload "if'" Prelude.Bool where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _Payload'if' (\ x__ y__ -> x__ {_Payload'if' = y__}))+        Prelude.id+instance Data.ProtoLens.Message Payload where+  messageName _ = Data.Text.pack "ReservedKeyword.Payload"+  packedMessageDescriptor _+    = "\n\+      \\aPayload\DC2\SYN\n\+      \\ACKmodule\CAN\SOH \SOH(\fR\ACKmodule\DC21\n\+      \\EOTdata\CAN\STX \ETX(\v2\GS.ReservedKeyword.Payload.ListR\EOTdata\DC2\DC2\n\+      \\EOTtype\CAN\ETX \ETX(\fR\EOTtype\DC23\n\+      \\ENQclass\CAN\EOT \SOH(\v2\GS.ReservedKeyword.Payload.ListR\ENQclass\DC2\SUB\n\+      \\binstance\CAN\ENQ \SOH(\fR\binstance\DC2\SO\n\+      \\STXif\CAN\ACK \SOH(\bR\STXif\SUBQ\n\+      \\EOTList\DC2\SO\n\+      \\SOHx\CAN\SOH \SOH(\fH\NULR\SOHx\DC2/\n\+      \\STXxs\CAN\STX \SOH(\v2\GS.ReservedKeyword.Payload.ListH\NULR\STXxsB\b\n\+      \\ACKeither"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        module'__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "module"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)+              (Data.ProtoLens.PlainField+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"module'")) ::+              Data.ProtoLens.FieldDescriptor Payload+        data'__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "data"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor Payload'List)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"data'")) ::+              Data.ProtoLens.FieldDescriptor Payload+        type'__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "type"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)+              (Data.ProtoLens.RepeatedField+                 Data.ProtoLens.Unpacked (Data.ProtoLens.Field.field @"type'")) ::+              Data.ProtoLens.FieldDescriptor Payload+        class'__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "class"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor Payload'List)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'class'")) ::+              Data.ProtoLens.FieldDescriptor Payload+        instance'__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "instance"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)+              (Data.ProtoLens.PlainField+                 Data.ProtoLens.Optional+                 (Data.ProtoLens.Field.field @"instance'")) ::+              Data.ProtoLens.FieldDescriptor Payload+        if'__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "if"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BoolField ::+                 Data.ProtoLens.FieldTypeDescriptor Prelude.Bool)+              (Data.ProtoLens.PlainField+                 Data.ProtoLens.Optional (Data.ProtoLens.Field.field @"if'")) ::+              Data.ProtoLens.FieldDescriptor Payload+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, module'__field_descriptor),+           (Data.ProtoLens.Tag 2, data'__field_descriptor),+           (Data.ProtoLens.Tag 3, type'__field_descriptor),+           (Data.ProtoLens.Tag 4, class'__field_descriptor),+           (Data.ProtoLens.Tag 5, instance'__field_descriptor),+           (Data.ProtoLens.Tag 6, if'__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _Payload'_unknownFields+        (\ x__ y__ -> x__ {_Payload'_unknownFields = y__})+  defMessage+    = Payload'_constructor+        {_Payload'module' = Data.ProtoLens.fieldDefault,+         _Payload'data' = Data.Vector.Generic.empty,+         _Payload'type' = Data.Vector.Generic.empty,+         _Payload'class' = Prelude.Nothing,+         _Payload'instance' = Data.ProtoLens.fieldDefault,+         _Payload'if' = Data.ProtoLens.fieldDefault,+         _Payload'_unknownFields = []}+  parseMessage+    = let+        loop ::+          Payload+          -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Payload'List+             -> Data.ProtoLens.Encoding.Growing.Growing Data.Vector.Vector Data.ProtoLens.Encoding.Growing.RealWorld Data.ByteString.ByteString+                -> Data.ProtoLens.Encoding.Bytes.Parser Payload+        loop x mutable'data' mutable'type'+          = do end <- Data.ProtoLens.Encoding.Bytes.atEnd+               if end then+                   do frozen'data' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'data')+                      frozen'type' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                        (Data.ProtoLens.Encoding.Growing.unsafeFreeze mutable'type')+                      (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'data'")+                              frozen'data'+                              (Lens.Family2.set+                                 (Data.ProtoLens.Field.field @"vec'type'") frozen'type' 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.getBytes+                                             (Prelude.fromIntegral len))+                                       "module"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"module'") y x)+                                  mutable'data'+                                  mutable'type'+                        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)+                                        "data"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append mutable'data' y)+                                loop x v mutable'type'+                        26+                          -> do !y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                        (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                            Data.ProtoLens.Encoding.Bytes.getBytes+                                              (Prelude.fromIntegral len))+                                        "type"+                                v <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                       (Data.ProtoLens.Encoding.Growing.append mutable'type' y)+                                loop x mutable'data' v+                        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)+                                       "class"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"class'") y x)+                                  mutable'data'+                                  mutable'type'+                        42+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (do len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getBytes+                                             (Prelude.fromIntegral len))+                                       "instance"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"instance'") y x)+                                  mutable'data'+                                  mutable'type'+                        48+                          -> do y <- (Data.ProtoLens.Encoding.Bytes.<?>)+                                       (Prelude.fmap+                                          ((Prelude./=) 0) Data.ProtoLens.Encoding.Bytes.getVarInt)+                                       "if"+                                loop+                                  (Lens.Family2.set (Data.ProtoLens.Field.field @"if'") y x)+                                  mutable'data'+                                  mutable'type'+                        wire+                          -> do !y <- Data.ProtoLens.Encoding.Wire.parseTaggedValueFromWire+                                        wire+                                loop+                                  (Lens.Family2.over+                                     Data.ProtoLens.unknownFields (\ !t -> (:) y t) x)+                                  mutable'data'+                                  mutable'type'+      in+        (Data.ProtoLens.Encoding.Bytes.<?>)+          (do mutable'data' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                 Data.ProtoLens.Encoding.Growing.new+              mutable'type' <- Data.ProtoLens.Encoding.Parser.Unsafe.unsafeLiftIO+                                 Data.ProtoLens.Encoding.Growing.new+              loop Data.ProtoLens.defMessage mutable'data' mutable'type')+          "Payload"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (let+                _v = Lens.Family2.view (Data.ProtoLens.Field.field @"module'") _x+              in+                if (Prelude.==) _v Data.ProtoLens.fieldDefault 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))+                         _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'data'") _x))+                ((Data.Monoid.<>)+                   (Data.ProtoLens.Encoding.Bytes.foldMapBuilder+                      (\ _v+                         -> (Data.Monoid.<>)+                              (Data.ProtoLens.Encoding.Bytes.putVarInt 26)+                              ((\ bs+                                  -> (Data.Monoid.<>)+                                       (Data.ProtoLens.Encoding.Bytes.putVarInt+                                          (Prelude.fromIntegral (Data.ByteString.length bs)))+                                       (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                 _v))+                      (Lens.Family2.view (Data.ProtoLens.Field.field @"vec'type'") _x))+                   ((Data.Monoid.<>)+                      (case+                           Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'class'") _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.<>)+                         (let+                            _v = Lens.Family2.view (Data.ProtoLens.Field.field @"instance'") _x+                          in+                            if (Prelude.==) _v Data.ProtoLens.fieldDefault then+                                Data.Monoid.mempty+                            else+                                (Data.Monoid.<>)+                                  (Data.ProtoLens.Encoding.Bytes.putVarInt 42)+                                  ((\ bs+                                      -> (Data.Monoid.<>)+                                           (Data.ProtoLens.Encoding.Bytes.putVarInt+                                              (Prelude.fromIntegral (Data.ByteString.length bs)))+                                           (Data.ProtoLens.Encoding.Bytes.putBytes bs))+                                     _v))+                         ((Data.Monoid.<>)+                            (let _v = Lens.Family2.view (Data.ProtoLens.Field.field @"if'") _x+                             in+                               if (Prelude.==) _v Data.ProtoLens.fieldDefault then+                                   Data.Monoid.mempty+                               else+                                   (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 Payload where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_Payload'_unknownFields x__)+             (Control.DeepSeq.deepseq+                (_Payload'module' x__)+                (Control.DeepSeq.deepseq+                   (_Payload'data' x__)+                   (Control.DeepSeq.deepseq+                      (_Payload'type' x__)+                      (Control.DeepSeq.deepseq+                         (_Payload'class' x__)+                         (Control.DeepSeq.deepseq+                            (_Payload'instance' x__)+                            (Control.DeepSeq.deepseq (_Payload'if' x__) ()))))))+{- | Fields :+     +         * 'Proto.ReservedKeyword_Fields.maybe'either' @:: Lens' Payload'List (Prelude.Maybe Payload'List'Either)@+         * 'Proto.ReservedKeyword_Fields.maybe'x' @:: Lens' Payload'List (Prelude.Maybe Data.ByteString.ByteString)@+         * 'Proto.ReservedKeyword_Fields.x' @:: Lens' Payload'List Data.ByteString.ByteString@+         * 'Proto.ReservedKeyword_Fields.maybe'xs' @:: Lens' Payload'List (Prelude.Maybe Payload'List)@+         * 'Proto.ReservedKeyword_Fields.xs' @:: Lens' Payload'List Payload'List@ -}+data Payload'List+  = Payload'List'_constructor {_Payload'List'either :: !(Prelude.Maybe Payload'List'Either),+                               _Payload'List'_unknownFields :: !Data.ProtoLens.FieldSet}+  deriving stock (Prelude.Eq, Prelude.Ord)+instance Prelude.Show Payload'List where+  showsPrec _ __x __s+    = Prelude.showChar+        '{'+        (Prelude.showString+           (Data.ProtoLens.showMessageShort __x) (Prelude.showChar '}' __s))+data Payload'List'Either+  = Payload'List'X !Data.ByteString.ByteString |+    Payload'List'Xs !Payload'List+  deriving stock (Prelude.Show, Prelude.Eq, Prelude.Ord)+instance Data.ProtoLens.Field.HasField Payload'List "maybe'either" (Prelude.Maybe Payload'List'Either) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _Payload'List'either+           (\ x__ y__ -> x__ {_Payload'List'either = y__}))+        Prelude.id+instance Data.ProtoLens.Field.HasField Payload'List "maybe'x" (Prelude.Maybe Data.ByteString.ByteString) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _Payload'List'either+           (\ x__ y__ -> x__ {_Payload'List'either = y__}))+        (Lens.Family2.Unchecked.lens+           (\ x__+              -> case x__ of+                   (Prelude.Just (Payload'List'X x__val)) -> Prelude.Just x__val+                   _otherwise -> Prelude.Nothing)+           (\ _ y__ -> Prelude.fmap Payload'List'X y__))+instance Data.ProtoLens.Field.HasField Payload'List "x" Data.ByteString.ByteString where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _Payload'List'either+           (\ x__ y__ -> x__ {_Payload'List'either = y__}))+        ((Prelude..)+           (Lens.Family2.Unchecked.lens+              (\ x__+                 -> case x__ of+                      (Prelude.Just (Payload'List'X x__val)) -> Prelude.Just x__val+                      _otherwise -> Prelude.Nothing)+              (\ _ y__ -> Prelude.fmap Payload'List'X y__))+           (Data.ProtoLens.maybeLens Data.ProtoLens.fieldDefault))+instance Data.ProtoLens.Field.HasField Payload'List "maybe'xs" (Prelude.Maybe Payload'List) where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _Payload'List'either+           (\ x__ y__ -> x__ {_Payload'List'either = y__}))+        (Lens.Family2.Unchecked.lens+           (\ x__+              -> case x__ of+                   (Prelude.Just (Payload'List'Xs x__val)) -> Prelude.Just x__val+                   _otherwise -> Prelude.Nothing)+           (\ _ y__ -> Prelude.fmap Payload'List'Xs y__))+instance Data.ProtoLens.Field.HasField Payload'List "xs" Payload'List where+  fieldOf _+    = (Prelude..)+        (Lens.Family2.Unchecked.lens+           _Payload'List'either+           (\ x__ y__ -> x__ {_Payload'List'either = y__}))+        ((Prelude..)+           (Lens.Family2.Unchecked.lens+              (\ x__+                 -> case x__ of+                      (Prelude.Just (Payload'List'Xs x__val)) -> Prelude.Just x__val+                      _otherwise -> Prelude.Nothing)+              (\ _ y__ -> Prelude.fmap Payload'List'Xs y__))+           (Data.ProtoLens.maybeLens Data.ProtoLens.defMessage))+instance Data.ProtoLens.Message Payload'List where+  messageName _ = Data.Text.pack "ReservedKeyword.Payload.List"+  packedMessageDescriptor _+    = "\n\+      \\EOTList\DC2\SO\n\+      \\SOHx\CAN\SOH \SOH(\fH\NULR\SOHx\DC2/\n\+      \\STXxs\CAN\STX \SOH(\v2\GS.ReservedKeyword.Payload.ListH\NULR\STXxsB\b\n\+      \\ACKeither"+  packedFileDescriptor _ = packedFileDescriptor+  fieldsByTag+    = let+        x__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "x"+              (Data.ProtoLens.ScalarField Data.ProtoLens.BytesField ::+                 Data.ProtoLens.FieldTypeDescriptor Data.ByteString.ByteString)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'x")) ::+              Data.ProtoLens.FieldDescriptor Payload'List+        xs__field_descriptor+          = Data.ProtoLens.FieldDescriptor+              "xs"+              (Data.ProtoLens.MessageField Data.ProtoLens.MessageType ::+                 Data.ProtoLens.FieldTypeDescriptor Payload'List)+              (Data.ProtoLens.OptionalField+                 (Data.ProtoLens.Field.field @"maybe'xs")) ::+              Data.ProtoLens.FieldDescriptor Payload'List+      in+        Data.Map.fromList+          [(Data.ProtoLens.Tag 1, x__field_descriptor),+           (Data.ProtoLens.Tag 2, xs__field_descriptor)]+  unknownFields+    = Lens.Family2.Unchecked.lens+        _Payload'List'_unknownFields+        (\ x__ y__ -> x__ {_Payload'List'_unknownFields = y__})+  defMessage+    = Payload'List'_constructor+        {_Payload'List'either = Prelude.Nothing,+         _Payload'List'_unknownFields = []}+  parseMessage+    = let+        loop ::+          Payload'List -> Data.ProtoLens.Encoding.Bytes.Parser Payload'List+        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 len <- Data.ProtoLens.Encoding.Bytes.getVarInt+                                           Data.ProtoLens.Encoding.Bytes.getBytes+                                             (Prelude.fromIntegral len))+                                       "x"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"x") 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)+                                       "xs"+                                loop (Lens.Family2.set (Data.ProtoLens.Field.field @"xs") 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) "List"+  buildMessage+    = \ _x+        -> (Data.Monoid.<>)+             (case+                  Lens.Family2.view (Data.ProtoLens.Field.field @"maybe'either") _x+              of+                Prelude.Nothing -> Data.Monoid.mempty+                (Prelude.Just (Payload'List'X v))+                  -> (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))+                          v)+                (Prelude.Just (Payload'List'Xs 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 Payload'List where+  rnf+    = \ x__+        -> Control.DeepSeq.deepseq+             (_Payload'List'_unknownFields x__)+             (Control.DeepSeq.deepseq (_Payload'List'either x__) ())+instance Control.DeepSeq.NFData Payload'List'Either where+  rnf (Payload'List'X x__) = Control.DeepSeq.rnf x__+  rnf (Payload'List'Xs x__) = Control.DeepSeq.rnf x__+_Payload'List'X ::+  Data.ProtoLens.Prism.Prism' Payload'List'Either Data.ByteString.ByteString+_Payload'List'X+  = Data.ProtoLens.Prism.prism'+      Payload'List'X+      (\ p__+         -> case p__ of+              (Payload'List'X p__val) -> Prelude.Just p__val+              _otherwise -> Prelude.Nothing)+_Payload'List'Xs ::+  Data.ProtoLens.Prism.Prism' Payload'List'Either Payload'List+_Payload'List'Xs+  = Data.ProtoLens.Prism.prism'+      Payload'List'Xs+      (\ p__+         -> case p__ of+              (Payload'List'Xs p__val) -> Prelude.Just p__val+              _otherwise -> Prelude.Nothing)+packedFileDescriptor :: Data.ByteString.ByteString+packedFileDescriptor+  = "\n\+    \\SYNreserved_keyword.proto\DC2\SIReservedKeyword\"\156\STX\n\+    \\aPayload\DC2\SYN\n\+    \\ACKmodule\CAN\SOH \SOH(\fR\ACKmodule\DC21\n\+    \\EOTdata\CAN\STX \ETX(\v2\GS.ReservedKeyword.Payload.ListR\EOTdata\DC2\DC2\n\+    \\EOTtype\CAN\ETX \ETX(\fR\EOTtype\DC23\n\+    \\ENQclass\CAN\EOT \SOH(\v2\GS.ReservedKeyword.Payload.ListR\ENQclass\DC2\SUB\n\+    \\binstance\CAN\ENQ \SOH(\fR\binstance\DC2\SO\n\+    \\STXif\CAN\ACK \SOH(\bR\STXif\SUBQ\n\+    \\EOTList\DC2\SO\n\+    \\SOHx\CAN\SOH \SOH(\fH\NULR\SOHx\DC2/\n\+    \\STXxs\CAN\STX \SOH(\v2\GS.ReservedKeyword.Payload.ListH\NULR\STXxsB\b\n\+    \\ACKeitherJ\144\ENQ\n\+    \\ACK\DC2\EOT\NUL\NUL\DC1\SOH\n\+    \\b\n\+    \\SOH\f\DC2\ETX\NUL\NUL\DC2\n\+    \\b\n\+    \\SOH\STX\DC2\ETX\SOH\NUL\CAN\n\+    \\n\+    \\n\+    \\STX\EOT\NUL\DC2\EOT\ETX\NUL\DC1\SOH\n\+    \\n\+    \\n\+    \\ETX\EOT\NUL\SOH\DC2\ETX\ETX\b\SI\n\+    \\v\n\+    \\EOT\EOT\NUL\STX\NUL\DC2\ETX\EOT\STX\DC3\n\+    \\r\n\+    \\ENQ\EOT\NUL\STX\NUL\EOT\DC2\EOT\EOT\STX\ETX\DC1\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\NUL\ENQ\DC2\ETX\EOT\STX\a\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\NUL\SOH\DC2\ETX\EOT\b\SO\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\NUL\ETX\DC2\ETX\EOT\DC1\DC2\n\+    \\v\n\+    \\EOT\EOT\NUL\STX\SOH\DC2\ETX\ENQ\STX\EM\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\SOH\EOT\DC2\ETX\ENQ\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\SOH\ACK\DC2\ETX\ENQ\v\SI\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\SOH\SOH\DC2\ETX\ENQ\DLE\DC4\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\SOH\ETX\DC2\ETX\ENQ\ETB\CAN\n\+    \\v\n\+    \\EOT\EOT\NUL\STX\STX\DC2\ETX\ACK\STX\SUB\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\STX\EOT\DC2\ETX\ACK\STX\n\+    \\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\STX\ENQ\DC2\ETX\ACK\v\DLE\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\STX\SOH\DC2\ETX\ACK\DC1\NAK\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\STX\ETX\DC2\ETX\ACK\CAN\EM\n\+    \\v\n\+    \\EOT\EOT\NUL\STX\ETX\DC2\ETX\a\STX\DC1\n\+    \\r\n\+    \\ENQ\EOT\NUL\STX\ETX\EOT\DC2\EOT\a\STX\ACK\SUB\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\ETX\ACK\DC2\ETX\a\STX\ACK\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\ETX\SOH\DC2\ETX\a\a\f\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\ETX\ETX\DC2\ETX\a\SI\DLE\n\+    \\v\n\+    \\EOT\EOT\NUL\STX\EOT\DC2\ETX\b\STX\NAK\n\+    \\r\n\+    \\ENQ\EOT\NUL\STX\EOT\EOT\DC2\EOT\b\STX\a\DC1\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\EOT\ENQ\DC2\ETX\b\STX\a\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\EOT\SOH\DC2\ETX\b\b\DLE\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\EOT\ETX\DC2\ETX\b\DC3\DC4\n\+    \\v\n\+    \\EOT\EOT\NUL\STX\ENQ\DC2\ETX\t\STX\SO\n\+    \\r\n\+    \\ENQ\EOT\NUL\STX\ENQ\EOT\DC2\EOT\t\STX\b\NAK\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\ENQ\ENQ\DC2\ETX\t\STX\ACK\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\ENQ\SOH\DC2\ETX\t\a\t\n\+    \\f\n\+    \\ENQ\EOT\NUL\STX\ENQ\ETX\DC2\ETX\t\f\r\n\+    \\f\n\+    \\EOT\EOT\NUL\ETX\NUL\DC2\EOT\v\STX\DLE\ETX\n\+    \\f\n\+    \\ENQ\EOT\NUL\ETX\NUL\SOH\DC2\ETX\v\n\+    \\SO\n\+    \\SO\n\+    \\ACK\EOT\NUL\ETX\NUL\b\NUL\DC2\EOT\f\EOT\SI\ENQ\n\+    \\SO\n\+    \\a\EOT\NUL\ETX\NUL\b\NUL\SOH\DC2\ETX\f\n\+    \\DLE\n\+    \\r\n\+    \\ACK\EOT\NUL\ETX\NUL\STX\NUL\DC2\ETX\r\ACK\DC2\n\+    \\SO\n\+    \\a\EOT\NUL\ETX\NUL\STX\NUL\ENQ\DC2\ETX\r\ACK\v\n\+    \\SO\n\+    \\a\EOT\NUL\ETX\NUL\STX\NUL\SOH\DC2\ETX\r\f\r\n\+    \\SO\n\+    \\a\EOT\NUL\ETX\NUL\STX\NUL\ETX\DC2\ETX\r\DLE\DC1\n\+    \\r\n\+    \\ACK\EOT\NUL\ETX\NUL\STX\SOH\DC2\ETX\SO\ACK\DC2\n\+    \\SO\n\+    \\a\EOT\NUL\ETX\NUL\STX\SOH\ACK\DC2\ETX\SO\ACK\n\+    \\n\+    \\SO\n\+    \\a\EOT\NUL\ETX\NUL\STX\SOH\SOH\DC2\ETX\SO\v\r\n\+    \\SO\n\+    \\a\EOT\NUL\ETX\NUL\STX\SOH\ETX\DC2\ETX\SO\DLE\DC1b\ACKproto3"
+ test/Proto/ReservedKeyword_Fields.hs view
@@ -0,0 +1,105 @@+{- This file was auto-generated from reserved_keyword.proto by the proto-lens-protoc program. -}+{-# LANGUAGE ScopedTypeVariables, DataKinds, TypeFamilies, UndecidableInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, FlexibleContexts, FlexibleInstances, PatternSynonyms, MagicHash, NoImplicitPrelude, DataKinds, BangPatterns, TypeApplications, OverloadedStrings, DerivingStrategies#-}+{-# OPTIONS_GHC -Wno-unused-imports#-}+{-# OPTIONS_GHC -Wno-duplicate-exports#-}+{-# OPTIONS_GHC -Wno-dodgy-exports#-}+module Proto.ReservedKeyword_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+class' ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "class'" a) =>+  Lens.Family2.LensLike' f s a+class' = Data.ProtoLens.Field.field @"class'"+data' ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "data'" a) =>+  Lens.Family2.LensLike' f s a+data' = Data.ProtoLens.Field.field @"data'"+if' ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "if'" a) =>+  Lens.Family2.LensLike' f s a+if' = Data.ProtoLens.Field.field @"if'"+instance' ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "instance'" a) =>+  Lens.Family2.LensLike' f s a+instance' = Data.ProtoLens.Field.field @"instance'"+maybe'class' ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'class'" a) =>+  Lens.Family2.LensLike' f s a+maybe'class' = Data.ProtoLens.Field.field @"maybe'class'"+maybe'either ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'either" a) =>+  Lens.Family2.LensLike' f s a+maybe'either = Data.ProtoLens.Field.field @"maybe'either"+maybe'x ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "maybe'x" a) =>+  Lens.Family2.LensLike' f s a+maybe'x = Data.ProtoLens.Field.field @"maybe'x"+maybe'xs ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "maybe'xs" a) =>+  Lens.Family2.LensLike' f s a+maybe'xs = Data.ProtoLens.Field.field @"maybe'xs"+module' ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "module'" a) =>+  Lens.Family2.LensLike' f s a+module' = Data.ProtoLens.Field.field @"module'"+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'"+vec'data' ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'data'" a) =>+  Lens.Family2.LensLike' f s a+vec'data' = Data.ProtoLens.Field.field @"vec'data'"+vec'type' ::+  forall f s a.+  (Prelude.Functor f,+   Data.ProtoLens.Field.HasField s "vec'type'" a) =>+  Lens.Family2.LensLike' f s a+vec'type' = Data.ProtoLens.Field.field @"vec'type'"+x ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "x" a) =>+  Lens.Family2.LensLike' f s a+x = Data.ProtoLens.Field.field @"x"+xs ::+  forall f s a.+  (Prelude.Functor f, Data.ProtoLens.Field.HasField s "xs" a) =>+  Lens.Family2.LensLike' f s a+xs = Data.ProtoLens.Field.field @"xs"
test/Proto/SignableOrphan.hs view
@@ -1,242 +1,527 @@ {- This file was auto-generated by the signable-haskell-protoc program. -} {-# OPTIONS_GHC -fno-warn-orphans #-}+{-# LANGUAGE NoImplicitPrelude #-}  module Proto.SignableOrphan (     ) where-import Universum-import Data.Signable-import Proto.GoogleProtobuf-import Proto.GoogleProtobuf_Fields-import Proto.Basic-import Proto.Basic_Fields-import Proto.Coins-import Proto.Coins_Fields-import Proto.EmbeddedSchema-import Proto.EmbeddedSchema_Fields-import Proto.Number-import Proto.Number_Fields-import Proto.Text-import Proto.Text_Fields-instance Signable Proto.GoogleProtobuf.DoubleValue where-  toBinary x-    = mconcat-        [toBinary (1 :: Int32)-           <> toBinary (view Proto.GoogleProtobuf_Fields.value x)]-instance Signable Proto.GoogleProtobuf.FloatValue where-  toBinary x-    = mconcat-        [toBinary (1 :: Int32)-           <> toBinary (view Proto.GoogleProtobuf_Fields.value x)]-instance Signable Proto.GoogleProtobuf.Int64Value where-  toBinary x-    = mconcat-        [toBinary (1 :: Int32)-           <> toBinary (view Proto.GoogleProtobuf_Fields.value x)]-instance Signable Proto.GoogleProtobuf.UInt64Value where-  toBinary x-    = mconcat-        [toBinary (1 :: Int32)-           <> toBinary (view Proto.GoogleProtobuf_Fields.value x)]-instance Signable Proto.GoogleProtobuf.Int32Value where-  toBinary x-    = mconcat-        [toBinary (1 :: Int32)-           <> toBinary (view Proto.GoogleProtobuf_Fields.value x)]-instance Signable Proto.GoogleProtobuf.UInt32Value where-  toBinary x-    = mconcat-        [toBinary (1 :: Int32)-           <> toBinary (view Proto.GoogleProtobuf_Fields.value x)]-instance Signable Proto.GoogleProtobuf.BoolValue where-  toBinary x-    = mconcat-        [toBinary (1 :: Int32)-           <> toBinary (view Proto.GoogleProtobuf_Fields.value x)]-instance Signable Proto.GoogleProtobuf.StringValue where-  toBinary x-    = mconcat-        [toBinary (1 :: Int32)-           <> toBinary (view Proto.GoogleProtobuf_Fields.value x)]-instance Signable Proto.GoogleProtobuf.BytesValue where-  toBinary x-    = mconcat-        [toBinary (1 :: Int32)-           <> toBinary (view Proto.GoogleProtobuf_Fields.value x)]-instance Signable Proto.GoogleProtobuf.Timestamp where-  toBinary x-    = mconcat-        [toBinary (1 :: Int32)-           <> toBinary (view Proto.GoogleProtobuf_Fields.seconds x),-         toBinary (2 :: Int32)-           <> toBinary (view Proto.GoogleProtobuf_Fields.nanos x)]-instance Signable Proto.Basic.CurrencyCode where-  toBinary x-    = case safeFromIntegral (fromEnum x) :: (Maybe Int32) of-        (Just v) -> toBinary v-        Nothing -> error "ENUM_OVERFLOW"-instance Signable Proto.Basic.RequestType where-  toBinary x-    = case safeFromIntegral (fromEnum x) :: (Maybe Int32) of-        (Just v) -> toBinary v-        Nothing -> error "ENUM_OVERFLOW"-instance Signable Proto.Basic.Payload where-  toBinary x-    = mconcat-        [toBinary (1 :: Int32)-           <> toBinary (view Proto.Basic_Fields.userIdFrom x),-         case view Proto.Basic_Fields.maybe'amount x of-           (Just v) -> toBinary (2 :: Int32) <> toBinary v-           Nothing -> toBinary (2 :: Int32),-         toBinary (3 :: Int32)-           <> toBinary (view Proto.Basic_Fields.requestType x),-         toBinary (4 :: Int32)-           <> toBinary (view Proto.Basic_Fields.addFee x),-         toBinary (5 :: Int32)-           <> toBinary (view Proto.Basic_Fields.comments x),-         case view Proto.Basic_Fields.maybe'userIdTo x of-           (Just v) -> toBinary (6 :: Int32) <> toBinary v-           Nothing -> toBinary (6 :: Int32),-         case view Proto.Basic_Fields.maybe'merchantIdTo x of-           (Just v) -> toBinary (7 :: Int32) <> toBinary v-           Nothing -> toBinary (7 :: Int32),-         case view Proto.Basic_Fields.maybe'invoiceTo x of-           (Just v) -> toBinary (8 :: Int32) <> toBinary v-           Nothing -> toBinary (8 :: Int32)]-instance Signable Proto.Basic.UMoney where-  toBinary x-    = mconcat-        [toBinary (1 :: Int32)-           <> toBinary (view Proto.Basic_Fields.amount x),-         case view Proto.Basic_Fields.maybe'currencyCode x of-           (Just v) -> toBinary (2 :: Int32) <> toBinary v-           Nothing -> toBinary (2 :: Int32)]-instance Signable Proto.Basic.CurrencyCodeValue where-  toBinary x-    = mconcat-        [toBinary (1 :: Int32)-           <> toBinary (view Proto.Basic_Fields.value x)]-instance Signable Proto.Coins.InvoiceType where-  toBinary x-    = case safeFromIntegral (fromEnum x) :: (Maybe Int32) of-        (Just v) -> toBinary v-        Nothing -> error "ENUM_OVERFLOW"-instance Signable Proto.Coins.CurrencyCode where-  toBinary x-    = case safeFromIntegral (fromEnum x) :: (Maybe Int32) of-        (Just v) -> toBinary v-        Nothing -> error "ENUM_OVERFLOW"-instance Signable Proto.Coins.Request where-  toBinary x-    = mconcat-        [case view Proto.Coins_Fields.maybe'ledgerTransferRequest x of-           (Just v) -> toBinary (1 :: Int32) <> toBinary v-           Nothing -> toBinary (1 :: Int32),-         toBinary (2 :: Int32)-           <> toBinary (view Proto.Coins_Fields.ledgerSignature x)]-instance Signable Proto.Coins.Request'LedgerTransferRequest where-  toBinary x-    = mconcat-        [case view Proto.Coins_Fields.maybe'userTransferRequest x of-           (Just v) -> toBinary (1 :: Int32) <> toBinary v-           Nothing -> toBinary (1 :: Int32),-         toBinary (2 :: Int32)-           <> toBinary (view Proto.Coins_Fields.userSignature x),-         case view Proto.Coins_Fields.maybe'invoice x of-           (Just v) -> toBinary (3 :: Int32) <> toBinary v-           Nothing -> toBinary (3 :: Int32)]-instance Signable Proto.Coins.Request'UserTransferRequest where-  toBinary x-    = mconcat-        [case view Proto.Coins_Fields.maybe'userRequest x of-           (Just v) -> toBinary (1 :: Int32) <> toBinary v-           Nothing -> toBinary (1 :: Int32),-         case view Proto.Coins_Fields.maybe'merchantIdTo x of-           (Just v) -> toBinary (2 :: Int32) <> toBinary v-           Nothing -> toBinary (2 :: Int32),-         case view Proto.Coins_Fields.maybe'invoice x of-           (Just v) -> toBinary (3 :: Int32) <> toBinary v-           Nothing -> toBinary (3 :: Int32)]-instance Signable Proto.Coins.LightningInvoice where-  toBinary x-    = mconcat-        [toBinary (1 :: Int32)-           <> toBinary (view Proto.Coins_Fields.rHash x),-         toBinary (2 :: Int32)-           <> toBinary (view Proto.Coins_Fields.paymentRequest x),-         toBinary (3 :: Int32)-           <> toBinary (view Proto.Coins_Fields.invoiceType x)]-instance Signable Proto.Coins.UserRequest where-  toBinary x-    = mconcat-        [toBinary (1 :: Int32)-           <> toBinary (view Proto.Coins_Fields.pubKeyUidFrom x),-         case view Proto.Coins_Fields.maybe'amount x of-           (Just v) -> toBinary (2 :: Int32) <> toBinary v-           Nothing -> toBinary (2 :: Int32),-         toBinary (3 :: Int32)-           <> toBinary (view Proto.Coins_Fields.requestId x)]-instance Signable Proto.Coins.UMoney where-  toBinary x-    = mconcat-        [case view Proto.Coins_Fields.maybe'amount x of-           (Just v) -> toBinary (1 :: Int32) <> toBinary v-           Nothing -> toBinary (1 :: Int32),-         case view Proto.Coins_Fields.maybe'currencyCode x of-           (Just v) -> toBinary (2 :: Int32) <> toBinary v-           Nothing -> toBinary (2 :: Int32)]-instance Signable Proto.Coins.UDecimal where-  toBinary x-    = mconcat-        [toBinary (1 :: Int32)-           <> toBinary (view Proto.Coins_Fields.coef x),-         toBinary (2 :: Int32) <> toBinary (view Proto.Coins_Fields.exp x)]-instance Signable Proto.Coins.CurrencyCodeValue where-  toBinary x-    = mconcat-        [toBinary (1 :: Int32)-           <> toBinary (view Proto.Coins_Fields.value x)]-instance Signable Proto.EmbeddedSchema.Enum where-  toBinary x-    = case safeFromIntegral (fromEnum x) :: (Maybe Int32) of-        (Just v) -> toBinary v-        Nothing -> error "ENUM_OVERFLOW"-instance Signable Proto.EmbeddedSchema.Embedded where-  toBinary x-    = mconcat-        [case view Proto.EmbeddedSchema_Fields.maybe'msgField x of-           (Just v) -> toBinary (1 :: Int32) <> toBinary v-           Nothing -> toBinary (1 :: Int32)]-instance Signable Proto.EmbeddedSchema.Embedded'Msg where-  toBinary x-    = mconcat-        [toBinary (1 :: Int32)-           <> toBinary (view Proto.EmbeddedSchema_Fields.enumField x)]-instance Signable Proto.EmbeddedSchema.Embedded'Msg'Enum where-  toBinary x-    = case safeFromIntegral (fromEnum x) :: (Maybe Int32) of-        (Just v) -> toBinary v-        Nothing -> error "ENUM_OVERFLOW"-instance Signable Proto.EmbeddedSchema.Msg where-  toBinary x-    = mconcat-        [toBinary (1 :: Int32)-           <> toBinary (view Proto.EmbeddedSchema_Fields.enumField x)]-instance Signable Proto.EmbeddedSchema.Msg'Enum where-  toBinary x-    = case safeFromIntegral (fromEnum x) :: (Maybe Int32) of-        (Just v) -> toBinary v-        Nothing -> error "ENUM_OVERFLOW"-instance Signable Proto.Number.Payload where-  toBinary x-    = mconcat-        [toBinary (1 :: Int32)-           <> toBinary (view Proto.Number_Fields.one x),-         toBinary (2 :: Int32) <> toBinary (view Proto.Number_Fields.two x),-         toBinary (3 :: Int32)-           <> toBinary (view Proto.Number_Fields.three x),-         toBinary (4 :: Int32)-           <> toBinary (view Proto.Number_Fields.four x)]-instance Signable Proto.Text.Payload where-  toBinary x-    = mconcat-        [toBinary (1 :: Int32) <> toBinary (view Proto.Text_Fields.text x)]+import qualified Universum+import qualified Data.Signable+import qualified GHC.List+import qualified Proto.GoogleProtobuf+import qualified Proto.GoogleProtobuf_Fields+import qualified Proto.Basic+import qualified Proto.Basic_Fields+import qualified Proto.Coins+import qualified Proto.Coins_Fields+import qualified Proto.EmbeddedSchema+import qualified Proto.EmbeddedSchema_Fields+import qualified Proto.Number+import qualified Proto.Number_Fields+import qualified Proto.RepeatedMsg+import qualified Proto.RepeatedMsg_Fields+import qualified Proto.ReservedKeyword+import qualified Proto.ReservedKeyword_Fields+import qualified Proto.Text+import qualified Proto.Text_Fields+instance Data.Signable.Signable Proto.GoogleProtobuf.DoubleValue where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [(Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.GoogleProtobuf_Fields.value)]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.GoogleProtobuf.FloatValue where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [(Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.GoogleProtobuf_Fields.value)]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.GoogleProtobuf.Int64Value where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [(Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.GoogleProtobuf_Fields.value)]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.GoogleProtobuf.UInt64Value where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [(Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.GoogleProtobuf_Fields.value)]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.GoogleProtobuf.Int32Value where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [(Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.GoogleProtobuf_Fields.value)]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.GoogleProtobuf.UInt32Value where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [(Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.GoogleProtobuf_Fields.value)]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.GoogleProtobuf.BoolValue where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [(Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.GoogleProtobuf_Fields.value)]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.GoogleProtobuf.StringValue where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [(Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.GoogleProtobuf_Fields.value)]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.GoogleProtobuf.BytesValue where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [(Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.GoogleProtobuf_Fields.value)]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.GoogleProtobuf.Timestamp where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [(Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.GoogleProtobuf_Fields.seconds),+              (Universum.<>) (Data.Signable.toBinary (2 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.GoogleProtobuf_Fields.nanos)]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.Basic.CurrencyCode where+  toBinary+    = Universum.maybe+        (Universum.error "ENUM_OVERFLOW") Data.Signable.toBinary+        Universum..+          ((Data.Signable.safeFromIntegral ::+              Universum.Int -> Universum.Maybe Universum.Int32)+             Universum.. Universum.fromEnum)+instance Data.Signable.Signable Proto.Basic.RequestType where+  toBinary+    = Universum.maybe+        (Universum.error "ENUM_OVERFLOW") Data.Signable.toBinary+        Universum..+          ((Data.Signable.safeFromIntegral ::+              Universum.Int -> Universum.Maybe Universum.Int32)+             Universum.. Universum.fromEnum)+instance Data.Signable.Signable Proto.Basic.Payload where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [(Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.Basic_Fields.userIdFrom),+              Universum.maybe+                Universum.mempty+                ((Universum.<>) (Data.Signable.toBinary (2 :: Universum.Int32))+                   Universum.. Data.Signable.toBinary)+                Universum.. Universum.view Proto.Basic_Fields.maybe'amount,+              (Universum.<>) (Data.Signable.toBinary (3 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.Basic_Fields.requestType),+              (Universum.<>) (Data.Signable.toBinary (4 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.Basic_Fields.addFee),+              Data.Signable.ifThenElse+                GHC.List.null+                (Universum.const Universum.mempty)+                ((Universum.<>) (Data.Signable.toBinary (5 :: Universum.Int32))+                   Universum.. Data.Signable.toBinary)+                Universum.. Universum.view Proto.Basic_Fields.comments,+              Universum.maybe+                Universum.mempty+                ((Universum.<>) (Data.Signable.toBinary (6 :: Universum.Int32))+                   Universum.. Data.Signable.toBinary)+                Universum.. Universum.view Proto.Basic_Fields.maybe'userIdTo,+              Universum.maybe+                Universum.mempty+                ((Universum.<>) (Data.Signable.toBinary (7 :: Universum.Int32))+                   Universum.. Data.Signable.toBinary)+                Universum.. Universum.view Proto.Basic_Fields.maybe'merchantIdTo,+              Universum.maybe+                Universum.mempty+                ((Universum.<>) (Data.Signable.toBinary (8 :: Universum.Int32))+                   Universum.. Data.Signable.toBinary)+                Universum.. Universum.view Proto.Basic_Fields.maybe'invoiceTo]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.Basic.UMoney where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [(Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.Basic_Fields.amount),+              Universum.maybe+                Universum.mempty+                ((Universum.<>) (Data.Signable.toBinary (2 :: Universum.Int32))+                   Universum.. Data.Signable.toBinary)+                Universum.. Universum.view Proto.Basic_Fields.maybe'currencyCode]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.Basic.CurrencyCodeValue where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [(Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.Basic_Fields.value)]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.Coins.InvoiceType where+  toBinary+    = Universum.maybe+        (Universum.error "ENUM_OVERFLOW") Data.Signable.toBinary+        Universum..+          ((Data.Signable.safeFromIntegral ::+              Universum.Int -> Universum.Maybe Universum.Int32)+             Universum.. Universum.fromEnum)+instance Data.Signable.Signable Proto.Coins.CurrencyCode where+  toBinary+    = Universum.maybe+        (Universum.error "ENUM_OVERFLOW") Data.Signable.toBinary+        Universum..+          ((Data.Signable.safeFromIntegral ::+              Universum.Int -> Universum.Maybe Universum.Int32)+             Universum.. Universum.fromEnum)+instance Data.Signable.Signable Proto.Coins.Request where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [Universum.maybe+                Universum.mempty+                ((Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                   Universum.. Data.Signable.toBinary)+                Universum..+                  Universum.view Proto.Coins_Fields.maybe'ledgerTransferRequest,+              (Universum.<>) (Data.Signable.toBinary (2 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.Coins_Fields.ledgerSignature)]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.Coins.Request'LedgerTransferRequest where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [Universum.maybe+                Universum.mempty+                ((Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                   Universum.. Data.Signable.toBinary)+                Universum..+                  Universum.view Proto.Coins_Fields.maybe'userTransferRequest,+              (Universum.<>) (Data.Signable.toBinary (2 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.Coins_Fields.userSignature),+              Universum.maybe+                Universum.mempty+                ((Universum.<>) (Data.Signable.toBinary (3 :: Universum.Int32))+                   Universum.. Data.Signable.toBinary)+                Universum.. Universum.view Proto.Coins_Fields.maybe'invoice]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.Coins.Request'UserTransferRequest where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [Universum.maybe+                Universum.mempty+                ((Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                   Universum.. Data.Signable.toBinary)+                Universum.. Universum.view Proto.Coins_Fields.maybe'userRequest,+              Universum.maybe+                Universum.mempty+                ((Universum.<>) (Data.Signable.toBinary (2 :: Universum.Int32))+                   Universum.. Data.Signable.toBinary)+                Universum.. Universum.view Proto.Coins_Fields.maybe'merchantIdTo,+              Universum.maybe+                Universum.mempty+                ((Universum.<>) (Data.Signable.toBinary (3 :: Universum.Int32))+                   Universum.. Data.Signable.toBinary)+                Universum.. Universum.view Proto.Coins_Fields.maybe'invoice]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.Coins.LightningInvoice where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [(Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.Coins_Fields.rHash),+              (Universum.<>) (Data.Signable.toBinary (2 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.Coins_Fields.paymentRequest),+              (Universum.<>) (Data.Signable.toBinary (3 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.Coins_Fields.invoiceType)]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.Coins.UserRequest where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [(Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.Coins_Fields.pubKeyUidFrom),+              Universum.maybe+                Universum.mempty+                ((Universum.<>) (Data.Signable.toBinary (2 :: Universum.Int32))+                   Universum.. Data.Signable.toBinary)+                Universum.. Universum.view Proto.Coins_Fields.maybe'amount,+              (Universum.<>) (Data.Signable.toBinary (3 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.Coins_Fields.requestId)]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.Coins.UMoney where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [Universum.maybe+                Universum.mempty+                ((Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                   Universum.. Data.Signable.toBinary)+                Universum.. Universum.view Proto.Coins_Fields.maybe'amount,+              Universum.maybe+                Universum.mempty+                ((Universum.<>) (Data.Signable.toBinary (2 :: Universum.Int32))+                   Universum.. Data.Signable.toBinary)+                Universum.. Universum.view Proto.Coins_Fields.maybe'currencyCode]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.Coins.UDecimal where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [(Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.Coins_Fields.coef),+              (Universum.<>) (Data.Signable.toBinary (2 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.Coins_Fields.exp)]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.Coins.CurrencyCodeValue where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [(Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.Coins_Fields.value)]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.EmbeddedSchema.Enum where+  toBinary+    = Universum.maybe+        (Universum.error "ENUM_OVERFLOW") Data.Signable.toBinary+        Universum..+          ((Data.Signable.safeFromIntegral ::+              Universum.Int -> Universum.Maybe Universum.Int32)+             Universum.. Universum.fromEnum)+instance Data.Signable.Signable Proto.EmbeddedSchema.Embedded where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [Universum.maybe+                Universum.mempty+                ((Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                   Universum.. Data.Signable.toBinary)+                Universum..+                  Universum.view Proto.EmbeddedSchema_Fields.maybe'msgField]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.EmbeddedSchema.Embedded'Msg where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [(Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.EmbeddedSchema_Fields.enumField)]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.EmbeddedSchema.Embedded'Msg'Enum where+  toBinary+    = Universum.maybe+        (Universum.error "ENUM_OVERFLOW") Data.Signable.toBinary+        Universum..+          ((Data.Signable.safeFromIntegral ::+              Universum.Int -> Universum.Maybe Universum.Int32)+             Universum.. Universum.fromEnum)+instance Data.Signable.Signable Proto.EmbeddedSchema.Msg where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [(Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.EmbeddedSchema_Fields.enumField)]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.EmbeddedSchema.Msg'Enum where+  toBinary+    = Universum.maybe+        (Universum.error "ENUM_OVERFLOW") Data.Signable.toBinary+        Universum..+          ((Data.Signable.safeFromIntegral ::+              Universum.Int -> Universum.Maybe Universum.Int32)+             Universum.. Universum.fromEnum)+instance Data.Signable.Signable Proto.Number.Payload where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [(Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.Number_Fields.one),+              (Universum.<>) (Data.Signable.toBinary (2 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.Number_Fields.two),+              (Universum.<>) (Data.Signable.toBinary (3 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.Number_Fields.three),+              (Universum.<>) (Data.Signable.toBinary (4 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.Number_Fields.four)]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.RepeatedMsg.Payload where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [Data.Signable.ifThenElse+                GHC.List.null+                (Universum.const Universum.mempty)+                ((Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                   Universum.. Data.Signable.toBinary)+                Universum.. Universum.view Proto.RepeatedMsg_Fields.msg]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.RepeatedMsg.Payload'Msg where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [(Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.RepeatedMsg_Fields.x)]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.ReservedKeyword.Payload where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [(Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.ReservedKeyword_Fields.module'),+              Data.Signable.ifThenElse+                GHC.List.null+                (Universum.const Universum.mempty)+                ((Universum.<>) (Data.Signable.toBinary (2 :: Universum.Int32))+                   Universum.. Data.Signable.toBinary)+                Universum.. Universum.view Proto.ReservedKeyword_Fields.data',+              Data.Signable.ifThenElse+                GHC.List.null+                (Universum.const Universum.mempty)+                ((Universum.<>) (Data.Signable.toBinary (3 :: Universum.Int32))+                   Universum.. Data.Signable.toBinary)+                Universum.. Universum.view Proto.ReservedKeyword_Fields.type',+              Universum.maybe+                Universum.mempty+                ((Universum.<>) (Data.Signable.toBinary (4 :: Universum.Int32))+                   Universum.. Data.Signable.toBinary)+                Universum..+                  Universum.view Proto.ReservedKeyword_Fields.maybe'class',+              (Universum.<>) (Data.Signable.toBinary (5 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.ReservedKeyword_Fields.instance'),+              (Universum.<>) (Data.Signable.toBinary (6 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.ReservedKeyword_Fields.if')]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.ReservedKeyword.Payload'List where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [Universum.maybe+                Universum.mempty+                ((Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                   Universum.. Data.Signable.toBinary)+                Universum.. Universum.view Proto.ReservedKeyword_Fields.maybe'x,+              Universum.maybe+                Universum.mempty+                ((Universum.<>) (Data.Signable.toBinary (2 :: Universum.Int32))+                   Universum.. Data.Signable.toBinary)+                Universum.. Universum.view Proto.ReservedKeyword_Fields.maybe'xs]+             Universum.. (Universum.&))+instance Data.Signable.Signable Proto.Text.Payload where+  toBinary+    = Universum.mconcat+        Universum..+          ((Universum.<&>)+             [(Universum.<>) (Data.Signable.toBinary (1 :: Universum.Int32))+                Universum..+                  (Data.Signable.toBinary+                     Universum.. Universum.view Proto.Text_Fields.text)]+             Universum.. (Universum.&))