signable 0.1 → 0.2
raw patch · 10 files changed
+1790/−257 lines, 10 files
Files
- ChangeLog.md +10/−0
- signable.cabal +7/−3
- src/Data/Signable.hs +4/−5
- src/Data/Signable/Class.hs +26/−12
- src/Data/Signable/Util.hs +4/−0
- test/Proto/RepeatedMsg.hs +314/−0
- test/Proto/RepeatedMsg_Fields.hs +44/−0
- test/Proto/ReservedKeyword.hs +754/−0
- test/Proto/ReservedKeyword_Fields.hs +105/−0
- test/Proto/SignableOrphan.hs +522/−237
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.&))