{-# language AllowAmbiguousTypes #-}
{-# language DataKinds #-}
{-# language FlexibleContexts #-}
{-# language GADTs #-}
{-# language MultiParamTypeClasses #-}
{-# language PolyKinds #-}
{-# language ScopedTypeVariables #-}
{-# language TypeApplications #-}
{-# language TypeOperators #-}
module Mu.GRpc.Client.TyApps (
GrpcClient
, GrpcClientConfig
, grpcClientConfigSimple
, setupGrpcClient'
, gRpcCall
, GRpcMessageProtocol(..)
, CompressMode(..)
, GRpcReply(..)
) where
import Network.GRPC.Client (CompressMode (..))
import Network.GRPC.Client.Helpers
import Mu.Rpc
import Mu.Schema
import Mu.GRpc.Bridge
import Mu.GRpc.Client.Internal
gRpcCall :: forall (pro :: GRpcMessageProtocol) s methodName h.
(GRpcServiceMethodCall pro s (s :-->: methodName) h)
=> GrpcClient -> h
gRpcCall :: GrpcClient -> h
gRpcCall = Proxy pro
-> Proxy s -> Proxy (s :-->: methodName) -> GrpcClient -> h
forall snm mnm (p :: GRpcMessageProtocol) (s :: Service snm mnm)
(m :: Method mnm) h.
GRpcServiceMethodCall p s m h =>
Proxy p -> Proxy s -> Proxy m -> GrpcClient -> h
gRpcServiceMethodCall (Proxy pro
forall k (t :: k). Proxy t
Proxy @pro) (Proxy s
forall k (t :: k). Proxy t
Proxy @s) (Proxy (s :-->: methodName)
forall k (t :: k). Proxy t
Proxy @(s :-->: methodName))