Trait tonic::client::GrpcService

source ·
pub trait GrpcService<ReqBody> {
    type ResponseBody: Body;
    type Error: Into<Box<dyn Error + Send + Sync>>;
    type Future: Future<Output = Result<Response<Self::ResponseBody>, Self::Error>>;

    // Required methods
    fn poll_ready(
        &mut self,
        cx: &mut Context<'_>
    ) -> Poll<Result<(), Self::Error>>;
    fn call(&mut self, request: Request<ReqBody>) -> Self::Future;
Expand description

Definition of the gRPC trait alias for tower_service.

This trait enforces that all tower services provided to Grpc implements the correct traits.

Required Associated Types§


type ResponseBody: Body

Responses body given by the service.


type Error: Into<Box<dyn Error + Send + Sync>>

Errors produced by the service.


type Future: Future<Output = Result<Response<Self::ResponseBody>, Self::Error>>

The future response value.

Required Methods§


fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>>

Returns Ready when the service is able to process requests.

Reference Service::poll_ready.


fn call(&mut self, request: Request<ReqBody>) -> Self::Future

Process the request and return the response asynchronously.

Reference Service::call.



impl<T, ReqBody, ResBody> GrpcService<ReqBody> for T
where T: Service<Request<ReqBody>, Response = Response<ResBody>>, T::Error: Into<Box<dyn Error + Send + Sync>>, ResBody: Body, <ResBody as Body>::Error: Into<Box<dyn Error + Send + Sync>>,


type ResponseBody = ResBody


type Error = <T as Service<Request<ReqBody>>>::Error


type Future = <T as Service<Request<ReqBody>>>::Future