mirror of
https://github.com/unclechu/gRPC-haskell.git
synced 2024-11-26 21:19:43 +01:00
Build against latest proto3-suite
(#56)
This reflects the latest changes in generating `ToSchema` instances
This commit is contained in:
parent
3ee4dabc2d
commit
55f51eaa24
3 changed files with 89 additions and 29 deletions
40
examples/echo/echo-hs/Echo.hs
generated
40
examples/echo/echo-hs/Echo.hs
generated
|
@ -1,10 +1,11 @@
|
||||||
{-# LANGUAGE DeriveGeneric #-}
|
{-# LANGUAGE DeriveGeneric #-}
|
||||||
{-# LANGUAGE DataKinds #-}
|
{-# LANGUAGE DataKinds #-}
|
||||||
{-# LANGUAGE GADTs #-}
|
{-# LANGUAGE GADTs #-}
|
||||||
{-# LANGUAGE OverloadedStrings #-}
|
{-# LANGUAGE OverloadedStrings #-}
|
||||||
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
|
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
|
||||||
{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
|
{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
|
||||||
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
|
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
|
||||||
|
|
||||||
-- | Generated by Haskell protocol buffer compiler. DO NOT EDIT!
|
-- | Generated by Haskell protocol buffer compiler. DO NOT EDIT!
|
||||||
module Echo where
|
module Echo where
|
||||||
import qualified Prelude as Hs
|
import qualified Prelude as Hs
|
||||||
|
@ -15,6 +16,7 @@ import qualified Proto3.Suite.JSONPB as HsJSONPB
|
||||||
import Proto3.Suite.JSONPB ((.=), (.:))
|
import Proto3.Suite.JSONPB ((.=), (.:))
|
||||||
import qualified Proto3.Wire as HsProtobuf
|
import qualified Proto3.Wire as HsProtobuf
|
||||||
import Control.Applicative ((<*>), (<|>), (<$>))
|
import Control.Applicative ((<*>), (<|>), (<$>))
|
||||||
|
import qualified Control.Applicative as Hs
|
||||||
import qualified Control.Monad as Hs
|
import qualified Control.Monad as Hs
|
||||||
import qualified Data.Text.Lazy as Hs (Text)
|
import qualified Data.Text.Lazy as Hs (Text)
|
||||||
import qualified Data.ByteString as Hs
|
import qualified Data.ByteString as Hs
|
||||||
|
@ -22,6 +24,7 @@ import qualified Data.String as Hs (fromString)
|
||||||
import qualified Data.Vector as Hs (Vector)
|
import qualified Data.Vector as Hs (Vector)
|
||||||
import qualified Data.Int as Hs (Int16, Int32, Int64)
|
import qualified Data.Int as Hs (Int16, Int32, Int64)
|
||||||
import qualified Data.Word as Hs (Word16, Word32, Word64)
|
import qualified Data.Word as Hs (Word16, Word32, Word64)
|
||||||
|
import qualified Data.Proxy as Proxy
|
||||||
import qualified GHC.Generics as Hs
|
import qualified GHC.Generics as Hs
|
||||||
import qualified GHC.Enum as Hs
|
import qualified GHC.Enum as Hs
|
||||||
import Network.GRPC.HighLevel.Generated as HsGRPC
|
import Network.GRPC.HighLevel.Generated as HsGRPC
|
||||||
|
@ -29,7 +32,6 @@ import Network.GRPC.HighLevel.Client as HsGRPC
|
||||||
import Network.GRPC.HighLevel.Server as HsGRPC hiding (serverLoop)
|
import Network.GRPC.HighLevel.Server as HsGRPC hiding (serverLoop)
|
||||||
import Network.GRPC.HighLevel.Server.Unregistered as HsGRPC
|
import Network.GRPC.HighLevel.Server.Unregistered as HsGRPC
|
||||||
(serverLoop)
|
(serverLoop)
|
||||||
import Network.GRPC.LowLevel.Call as HsGRPC
|
|
||||||
|
|
||||||
data Echo request response = Echo{echoDoEcho ::
|
data Echo request response = Echo{echoDoEcho ::
|
||||||
request 'HsGRPC.Normal Echo.EchoRequest Echo.EchoResponse ->
|
request 'HsGRPC.Normal Echo.EchoRequest Echo.EchoResponse ->
|
||||||
|
@ -104,7 +106,20 @@ instance HsJSONPB.FromJSON EchoRequest where
|
||||||
parseJSON = HsJSONPB.parseJSONPB
|
parseJSON = HsJSONPB.parseJSONPB
|
||||||
|
|
||||||
instance HsJSONPB.ToSchema EchoRequest where
|
instance HsJSONPB.ToSchema EchoRequest where
|
||||||
declareNamedSchema = HsJSONPB.genericDeclareNamedSchemaJSONPB
|
declareNamedSchema _
|
||||||
|
= do let declare_message = HsJSONPB.declareSchemaRef
|
||||||
|
echoRequestMessage <- declare_message Proxy.Proxy
|
||||||
|
let _ = Hs.pure EchoRequest <*> HsJSONPB.asProxy declare_message
|
||||||
|
Hs.return
|
||||||
|
(HsJSONPB.NamedSchema{HsJSONPB._namedSchemaName =
|
||||||
|
Hs.Just "EchoRequest",
|
||||||
|
HsJSONPB._namedSchemaSchema =
|
||||||
|
Hs.mempty{HsJSONPB._schemaParamSchema =
|
||||||
|
Hs.mempty{HsJSONPB._paramSchemaType =
|
||||||
|
HsJSONPB.SwaggerObject},
|
||||||
|
HsJSONPB._schemaProperties =
|
||||||
|
HsJSONPB.insOrdFromList
|
||||||
|
[("message", echoRequestMessage)]}})
|
||||||
|
|
||||||
data EchoResponse = EchoResponse{echoResponseMessage :: Hs.Text}
|
data EchoResponse = EchoResponse{echoResponseMessage :: Hs.Text}
|
||||||
deriving (Hs.Show, Hs.Eq, Hs.Ord, Hs.Generic)
|
deriving (Hs.Show, Hs.Eq, Hs.Ord, Hs.Generic)
|
||||||
|
@ -146,4 +161,17 @@ instance HsJSONPB.FromJSON EchoResponse where
|
||||||
parseJSON = HsJSONPB.parseJSONPB
|
parseJSON = HsJSONPB.parseJSONPB
|
||||||
|
|
||||||
instance HsJSONPB.ToSchema EchoResponse where
|
instance HsJSONPB.ToSchema EchoResponse where
|
||||||
declareNamedSchema = HsJSONPB.genericDeclareNamedSchemaJSONPB
|
declareNamedSchema _
|
||||||
|
= do let declare_message = HsJSONPB.declareSchemaRef
|
||||||
|
echoResponseMessage <- declare_message Proxy.Proxy
|
||||||
|
let _ = Hs.pure EchoResponse <*> HsJSONPB.asProxy declare_message
|
||||||
|
Hs.return
|
||||||
|
(HsJSONPB.NamedSchema{HsJSONPB._namedSchemaName =
|
||||||
|
Hs.Just "EchoResponse",
|
||||||
|
HsJSONPB._namedSchemaSchema =
|
||||||
|
Hs.mempty{HsJSONPB._schemaParamSchema =
|
||||||
|
Hs.mempty{HsJSONPB._paramSchemaType =
|
||||||
|
HsJSONPB.SwaggerObject},
|
||||||
|
HsJSONPB._schemaProperties =
|
||||||
|
HsJSONPB.insOrdFromList
|
||||||
|
[("message", echoResponseMessage)]}})
|
42
examples/tutorial/Arithmetic.hs
generated
42
examples/tutorial/Arithmetic.hs
generated
|
@ -1,10 +1,11 @@
|
||||||
{-# LANGUAGE DeriveGeneric #-}
|
{-# LANGUAGE DeriveGeneric #-}
|
||||||
{-# LANGUAGE DataKinds #-}
|
{-# LANGUAGE DataKinds #-}
|
||||||
{-# LANGUAGE GADTs #-}
|
{-# LANGUAGE GADTs #-}
|
||||||
{-# LANGUAGE OverloadedStrings #-}
|
{-# LANGUAGE OverloadedStrings #-}
|
||||||
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
|
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
|
||||||
{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
|
{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
|
||||||
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
|
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
|
||||||
|
|
||||||
-- | Generated by Haskell protocol buffer compiler. DO NOT EDIT!
|
-- | Generated by Haskell protocol buffer compiler. DO NOT EDIT!
|
||||||
module Arithmetic where
|
module Arithmetic where
|
||||||
import qualified Prelude as Hs
|
import qualified Prelude as Hs
|
||||||
|
@ -15,6 +16,7 @@ import qualified Proto3.Suite.JSONPB as HsJSONPB
|
||||||
import Proto3.Suite.JSONPB ((.=), (.:))
|
import Proto3.Suite.JSONPB ((.=), (.:))
|
||||||
import qualified Proto3.Wire as HsProtobuf
|
import qualified Proto3.Wire as HsProtobuf
|
||||||
import Control.Applicative ((<*>), (<|>), (<$>))
|
import Control.Applicative ((<*>), (<|>), (<$>))
|
||||||
|
import qualified Control.Applicative as Hs
|
||||||
import qualified Control.Monad as Hs
|
import qualified Control.Monad as Hs
|
||||||
import qualified Data.Text.Lazy as Hs (Text)
|
import qualified Data.Text.Lazy as Hs (Text)
|
||||||
import qualified Data.ByteString as Hs
|
import qualified Data.ByteString as Hs
|
||||||
|
@ -22,6 +24,7 @@ import qualified Data.String as Hs (fromString)
|
||||||
import qualified Data.Vector as Hs (Vector)
|
import qualified Data.Vector as Hs (Vector)
|
||||||
import qualified Data.Int as Hs (Int16, Int32, Int64)
|
import qualified Data.Int as Hs (Int16, Int32, Int64)
|
||||||
import qualified Data.Word as Hs (Word16, Word32, Word64)
|
import qualified Data.Word as Hs (Word16, Word32, Word64)
|
||||||
|
import qualified Data.Proxy as Proxy
|
||||||
import qualified GHC.Generics as Hs
|
import qualified GHC.Generics as Hs
|
||||||
import qualified GHC.Enum as Hs
|
import qualified GHC.Enum as Hs
|
||||||
import Network.GRPC.HighLevel.Generated as HsGRPC
|
import Network.GRPC.HighLevel.Generated as HsGRPC
|
||||||
|
@ -29,7 +32,6 @@ import Network.GRPC.HighLevel.Client as HsGRPC
|
||||||
import Network.GRPC.HighLevel.Server as HsGRPC hiding (serverLoop)
|
import Network.GRPC.HighLevel.Server as HsGRPC hiding (serverLoop)
|
||||||
import Network.GRPC.HighLevel.Server.Unregistered as HsGRPC
|
import Network.GRPC.HighLevel.Server.Unregistered as HsGRPC
|
||||||
(serverLoop)
|
(serverLoop)
|
||||||
import Network.GRPC.LowLevel.Call as HsGRPC
|
|
||||||
|
|
||||||
data Arithmetic request response = Arithmetic{arithmeticAdd ::
|
data Arithmetic request response = Arithmetic{arithmeticAdd ::
|
||||||
request 'HsGRPC.Normal Arithmetic.TwoInts
|
request 'HsGRPC.Normal Arithmetic.TwoInts
|
||||||
|
@ -134,7 +136,23 @@ instance HsJSONPB.FromJSON TwoInts where
|
||||||
parseJSON = HsJSONPB.parseJSONPB
|
parseJSON = HsJSONPB.parseJSONPB
|
||||||
|
|
||||||
instance HsJSONPB.ToSchema TwoInts where
|
instance HsJSONPB.ToSchema TwoInts where
|
||||||
declareNamedSchema = HsJSONPB.genericDeclareNamedSchemaJSONPB
|
declareNamedSchema _
|
||||||
|
= do let declare_x = HsJSONPB.declareSchemaRef
|
||||||
|
twoIntsX <- declare_x Proxy.Proxy
|
||||||
|
let declare_y = HsJSONPB.declareSchemaRef
|
||||||
|
twoIntsY <- declare_y Proxy.Proxy
|
||||||
|
let _ = Hs.pure TwoInts <*> HsJSONPB.asProxy declare_x <*>
|
||||||
|
HsJSONPB.asProxy declare_y
|
||||||
|
Hs.return
|
||||||
|
(HsJSONPB.NamedSchema{HsJSONPB._namedSchemaName =
|
||||||
|
Hs.Just "TwoInts",
|
||||||
|
HsJSONPB._namedSchemaSchema =
|
||||||
|
Hs.mempty{HsJSONPB._schemaParamSchema =
|
||||||
|
Hs.mempty{HsJSONPB._paramSchemaType =
|
||||||
|
HsJSONPB.SwaggerObject},
|
||||||
|
HsJSONPB._schemaProperties =
|
||||||
|
HsJSONPB.insOrdFromList
|
||||||
|
[("x", twoIntsX), ("y", twoIntsY)]}})
|
||||||
|
|
||||||
data OneInt = OneInt{oneIntResult :: Hs.Int32}
|
data OneInt = OneInt{oneIntResult :: Hs.Int32}
|
||||||
deriving (Hs.Show, Hs.Eq, Hs.Ord, Hs.Generic)
|
deriving (Hs.Show, Hs.Eq, Hs.Ord, Hs.Generic)
|
||||||
|
@ -175,4 +193,16 @@ instance HsJSONPB.FromJSON OneInt where
|
||||||
parseJSON = HsJSONPB.parseJSONPB
|
parseJSON = HsJSONPB.parseJSONPB
|
||||||
|
|
||||||
instance HsJSONPB.ToSchema OneInt where
|
instance HsJSONPB.ToSchema OneInt where
|
||||||
declareNamedSchema = HsJSONPB.genericDeclareNamedSchemaJSONPB
|
declareNamedSchema _
|
||||||
|
= do let declare_result = HsJSONPB.declareSchemaRef
|
||||||
|
oneIntResult <- declare_result Proxy.Proxy
|
||||||
|
let _ = Hs.pure OneInt <*> HsJSONPB.asProxy declare_result
|
||||||
|
Hs.return
|
||||||
|
(HsJSONPB.NamedSchema{HsJSONPB._namedSchemaName = Hs.Just "OneInt",
|
||||||
|
HsJSONPB._namedSchemaSchema =
|
||||||
|
Hs.mempty{HsJSONPB._schemaParamSchema =
|
||||||
|
Hs.mempty{HsJSONPB._paramSchemaType =
|
||||||
|
HsJSONPB.SwaggerObject},
|
||||||
|
HsJSONPB._schemaProperties =
|
||||||
|
HsJSONPB.insOrdFromList
|
||||||
|
[("result", oneIntResult)]}})
|
|
@ -1,27 +1,29 @@
|
||||||
{ mkDerivation, aeson, aeson-pretty, attoparsec, base
|
{ mkDerivation, aeson, aeson-pretty, attoparsec, base
|
||||||
, base64-bytestring, bytestring, cereal, containers, deepseq
|
, base64-bytestring, binary, bytestring, cereal, containers
|
||||||
, doctest, fetchgit, foldl, haskell-src, lens, mtl
|
, deepseq, doctest, fetchgit, foldl, hashable, haskell-src
|
||||||
, neat-interpolation, optparse-generic, parsec, parsers, pretty
|
, insert-ordered-containers, lens, mtl, neat-interpolation
|
||||||
, pretty-show, proto3-wire, QuickCheck, range-set-list, safe
|
, optparse-generic, parsec, parsers, pretty, pretty-show
|
||||||
, semigroups, stdenv, swagger2, system-filepath, tasty, tasty-hunit
|
, proto3-wire, QuickCheck, range-set-list, safe, semigroups, stdenv
|
||||||
, tasty-quickcheck, text, transformers, turtle, vector
|
, swagger2, system-filepath, tasty, tasty-hunit, tasty-quickcheck
|
||||||
|
, text, transformers, turtle, vector
|
||||||
}:
|
}:
|
||||||
mkDerivation {
|
mkDerivation {
|
||||||
pname = "proto3-suite";
|
pname = "proto3-suite";
|
||||||
version = "0.1.0.0";
|
version = "0.2.0.0";
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = "https://github.com/awakenetworks/proto3-suite";
|
url = "https://github.com/awakesecurity/proto3-suite.git";
|
||||||
sha256 = "1q7fyavirkb5lh8qic4sc67jbakafr8msj6k2i29drzfpv2gbvzq";
|
sha256 = "1khix03a4hwaqc192s523rjlsk1iq923ndmrj5myh61fr1fpcbaq";
|
||||||
rev = "bb66853dcaa7372ef061cf83f39e4ba5193898de";
|
rev = "c103a8c6d3c16515fe2e9ea7f932d54729db2f5f";
|
||||||
};
|
};
|
||||||
isLibrary = true;
|
isLibrary = true;
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
|
enableSeparateDataOutput = true;
|
||||||
libraryHaskellDepends = [
|
libraryHaskellDepends = [
|
||||||
aeson aeson-pretty attoparsec base base64-bytestring bytestring
|
aeson aeson-pretty attoparsec base base64-bytestring binary
|
||||||
cereal containers deepseq foldl haskell-src lens mtl
|
bytestring cereal containers deepseq foldl hashable haskell-src
|
||||||
neat-interpolation parsec parsers pretty pretty-show proto3-wire
|
insert-ordered-containers lens mtl neat-interpolation parsec
|
||||||
QuickCheck safe semigroups swagger2 system-filepath text
|
parsers pretty pretty-show proto3-wire QuickCheck safe semigroups
|
||||||
transformers turtle vector
|
swagger2 system-filepath text transformers turtle vector
|
||||||
];
|
];
|
||||||
executableHaskellDepends = [
|
executableHaskellDepends = [
|
||||||
base containers optparse-generic proto3-wire range-set-list
|
base containers optparse-generic proto3-wire range-set-list
|
||||||
|
@ -29,8 +31,8 @@ mkDerivation {
|
||||||
];
|
];
|
||||||
testHaskellDepends = [
|
testHaskellDepends = [
|
||||||
aeson attoparsec base base64-bytestring bytestring cereal doctest
|
aeson attoparsec base base64-bytestring bytestring cereal doctest
|
||||||
pretty-show proto3-wire QuickCheck semigroups tasty tasty-hunit
|
pretty-show proto3-wire QuickCheck semigroups swagger2 tasty
|
||||||
tasty-quickcheck text transformers turtle vector
|
tasty-hunit tasty-quickcheck text transformers turtle vector
|
||||||
];
|
];
|
||||||
description = "A low level library for writing out data in the Protocol Buffers wire format";
|
description = "A low level library for writing out data in the Protocol Buffers wire format";
|
||||||
license = stdenv.lib.licenses.asl20;
|
license = stdenv.lib.licenses.asl20;
|
||||||
|
|
Loading…
Reference in a new issue