Add client, client codegen, helloworld and routeguide client examples

This commit is contained in:
Lucio Franco
2019-08-17 23:31:32 -04:00
parent 3951bcf7fe
commit 2ebad2d778
26 changed files with 883 additions and 364 deletions
+13 -14
View File
@@ -3,19 +3,22 @@
mod data;
use futures::{Stream, StreamExt};
use tokio::{net::TcpListener, sync::{mpsc, Lock}};
use tonic::{Request, Response, Status};
use tower_h2::Server;
use std::sync::Arc;
use std::collections::HashMap;
use std::hash::{Hash, Hasher};
use std::sync::Arc;
use std::time::Instant;
use tokio::{
net::TcpListener,
sync::{mpsc, Lock},
};
use tonic::{Request, Response, Status};
use tower_h2::Server;
pub mod routeguide {
include!(concat!(env!("OUT_DIR"), "/routeguide.rs"));
}
use routeguide::{Point, Rectangle, Feature, RouteNote, RouteSummary};
use routeguide::{Feature, Point, Rectangle, RouteNote, RouteSummary};
#[derive(Debug)]
pub struct RouteGuide {
@@ -51,7 +54,7 @@ impl RouteGuide {
&self,
request: Request<Rectangle>,
) -> Result<Response<mpsc::Receiver<Result<Feature, Status>>>, Status> {
use std::thread;
use std::thread;
println!("ListFeatures = {:?}", request);
@@ -70,22 +73,20 @@ impl RouteGuide {
println!(" /// done sending");
});
Ok(Response::new(rx))
}
pub async fn record_route(
&self,
request: Request<impl Stream<Item = Result<Point, Status>>>,
) -> Result<Response<RouteSummary>, Status>
{
) -> Result<Response<RouteSummary>, Status> {
println!("RecordRoute");
let stream = request.into_inner();
// Pin the inbound stream to the stack so that we can call next on it
// Pin the inbound stream to the stack so that we can call next on it
futures::pin_mut!(stream);
let mut summary = RouteSummary::default();
let mut last_point = None;
let now = Instant::now();
@@ -127,8 +128,6 @@ impl RouteGuide {
let stream = request.into_inner();
let mut state = self.state.clone();
let output = async_stream::try_stream! {
futures::pin_mut!(stream);