Trait svc_pricing_client_grpc::service::Client
source · pub trait Client<T>where
Self: Sized + Client<T> + ClientConnect<T>,
T: Send + Clone,{
type ReadyRequest;
type ReadyResponse;
type PricingRequests;
type PricingResponse;
fn is_ready<'life0, 'async_trait>(
&'life0 self,
request: Self::ReadyRequest
) -> Pin<Box<dyn Future<Output = Result<Response<Self::ReadyResponse>, Status>> + Send + 'async_trait>>
where
Self: 'async_trait,
'life0: 'async_trait;
fn get_pricing<'life0, 'async_trait>(
&'life0 self,
request: Self::PricingRequests
) -> Pin<Box<dyn Future<Output = Result<Response<Self::PricingResponse>, Status>> + Send + 'async_trait>>
where
Self: 'async_trait,
'life0: 'async_trait;
}
Expand description
gRPC object traits to provide wrappers for grpc functions
Required Associated Types§
sourcetype ReadyRequest
type ReadyRequest
The type expected for ReadyRequest structs.
sourcetype ReadyResponse
type ReadyResponse
The type expected for ReadyResponse structs.
sourcetype PricingRequests
type PricingRequests
The type expected for PricingRequests structs.
sourcetype PricingResponse
type PricingResponse
The type expected for PricingResponse structs.
Required Methods§
sourcefn is_ready<'life0, 'async_trait>(
&'life0 self,
request: Self::ReadyRequest
) -> Pin<Box<dyn Future<Output = Result<Response<Self::ReadyResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn is_ready<'life0, 'async_trait>(
&'life0 self,
request: Self::ReadyRequest
) -> Pin<Box<dyn Future<Output = Result<Response<Self::ReadyResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Returns a tonic::Response
containing a ReadyResponse
Takes an ReadyRequest
.
Errors
Returns tonic::Status
with Code::Unknown
if
the server is not ready.
Examples
use lib_common::grpc::get_endpoint_from_env;
use svc_pricing_client_grpc::client::{ReadyRequest, RpcServiceClient};
use svc_pricing_client_grpc::{Client, GrpcClient};
use svc_pricing_client_grpc::service::Client as ServiceClient;
use tonic::transport::Channel;
async fn example () -> Result<(), Box<dyn std::error::Error>> {
let (host, port) = get_endpoint_from_env("SERVER_HOSTNAME", "SERVER_PORT_GRPC");
let connection = GrpcClient::<RpcServiceClient<Channel>>::new_client(&host, port, "pricing");
let response = connection
.is_ready(ReadyRequest {})
.await?;
println!("RESPONSE={:?}", response.into_inner());
Ok(())
}
sourcefn get_pricing<'life0, 'async_trait>(
&'life0 self,
request: Self::PricingRequests
) -> Pin<Box<dyn Future<Output = Result<Response<Self::PricingResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_pricing<'life0, 'async_trait>(
&'life0 self,
request: Self::PricingRequests
) -> Pin<Box<dyn Future<Output = Result<Response<Self::PricingResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Returns a tonic::Response
containing a PricingResponse
Takes an PricingRequests
.
Errors
Returns tonic::Status
with Code::Internal
if
no pricing could be determined.
Examples
use lib_common::grpc::get_endpoint_from_env;
use svc_pricing_client_grpc::client::{PricingRequests, PricingRequest, RpcServiceClient};
use svc_pricing_client_grpc::{Client, GrpcClient};
use svc_pricing_client_grpc::service::Client as ServiceClient;
use tonic::transport::Channel;
async fn example () -> Result<(), Box<dyn std::error::Error>> {
let (host, port) = get_endpoint_from_env("SERVER_HOSTNAME", "SERVER_PORT_GRPC");
let connection = GrpcClient::<RpcServiceClient<Channel>>::new_client(&host, port, "pricing");
let query = PricingRequests {
requests: vec![PricingRequest {
service_type: 0,
weight_kg: 100.0,
distance_km: 100.0,
}]
};
let response = connection.get_pricing(query).await?;
println!("RESPONSE={:?}", response.into_inner());
Ok(())
}