fix(build): Allow creating multiple services in the same package (#173)
BREAKING CHANGE: Build will now generate each service client and server into their own modules.
This commit is contained in:
@@ -3,7 +3,7 @@ pub mod pb {
|
||||
}
|
||||
|
||||
use http::header::HeaderValue;
|
||||
use pb::{client::EchoClient, EchoRequest};
|
||||
use pb::{echo_client::EchoClient, EchoRequest};
|
||||
use tonic::transport::Channel;
|
||||
|
||||
#[tokio::main]
|
||||
|
||||
@@ -15,7 +15,7 @@ type ResponseStream = Pin<Box<dyn Stream<Item = Result<EchoResponse, Status>> +
|
||||
pub struct EchoServer;
|
||||
|
||||
#[tonic::async_trait]
|
||||
impl pb::server::Echo for EchoServer {
|
||||
impl pb::echo_server::Echo for EchoServer {
|
||||
async fn unary_echo(&self, request: Request<EchoRequest>) -> EchoResult<EchoResponse> {
|
||||
let message = request.into_inner().message;
|
||||
Ok(Response::new(EchoResponse { message }))
|
||||
@@ -79,7 +79,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
}
|
||||
}
|
||||
})
|
||||
.add_service(pb::server::EchoServer::new(server))
|
||||
.add_service(pb::echo_server::EchoServer::new(server))
|
||||
.serve(addr)
|
||||
.await?;
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ pub mod api {
|
||||
tonic::include_proto!("google.pubsub.v1");
|
||||
}
|
||||
|
||||
use api::{client::PublisherClient, ListTopicsRequest};
|
||||
use api::{publisher_client::PublisherClient, ListTopicsRequest};
|
||||
use http::header::HeaderValue;
|
||||
use tonic::{
|
||||
transport::{Certificate, Channel, ClientTlsConfig},
|
||||
|
||||
@@ -2,7 +2,7 @@ pub mod hello_world {
|
||||
tonic::include_proto!("helloworld");
|
||||
}
|
||||
|
||||
use hello_world::{client::GreeterClient, HelloRequest};
|
||||
use hello_world::{greeter_client::GreeterClient, HelloRequest};
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
|
||||
@@ -5,7 +5,7 @@ pub mod hello_world {
|
||||
}
|
||||
|
||||
use hello_world::{
|
||||
server::{Greeter, GreeterServer},
|
||||
greeter_server::{Greeter, GreeterServer},
|
||||
HelloReply, HelloRequest,
|
||||
};
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ pub mod pb {
|
||||
tonic::include_proto!("grpc.examples.echo");
|
||||
}
|
||||
|
||||
use pb::{client::EchoClient, EchoRequest};
|
||||
use pb::{echo_client::EchoClient, EchoRequest};
|
||||
use tonic::transport::Channel;
|
||||
|
||||
#[tokio::main]
|
||||
|
||||
@@ -19,7 +19,7 @@ pub struct EchoServer {
|
||||
}
|
||||
|
||||
#[tonic::async_trait]
|
||||
impl pb::server::Echo for EchoServer {
|
||||
impl pb::echo_server::Echo for EchoServer {
|
||||
async fn unary_echo(&self, request: Request<EchoRequest>) -> EchoResult<EchoResponse> {
|
||||
let message = format!("{} (from {})", request.into_inner().message, self.addr);
|
||||
|
||||
@@ -64,7 +64,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
|
||||
let server = EchoServer { addr };
|
||||
let serve = Server::builder()
|
||||
.add_service(pb::server::EchoServer::new(server))
|
||||
.add_service(pb::echo_server::EchoServer::new(server))
|
||||
.serve(addr);
|
||||
|
||||
tokio::spawn(async move {
|
||||
|
||||
@@ -6,8 +6,8 @@ pub mod echo {
|
||||
tonic::include_proto!("grpc.examples.echo");
|
||||
}
|
||||
|
||||
use echo::{client::EchoClient, EchoRequest};
|
||||
use hello_world::{client::GreeterClient, HelloRequest};
|
||||
use echo::{echo_client::EchoClient, EchoRequest};
|
||||
use hello_world::{greeter_client::GreeterClient, HelloRequest};
|
||||
use tonic::transport::Endpoint;
|
||||
|
||||
#[tokio::main]
|
||||
|
||||
@@ -11,12 +11,12 @@ pub mod echo {
|
||||
}
|
||||
|
||||
use hello_world::{
|
||||
server::{Greeter, GreeterServer},
|
||||
greeter_server::{Greeter, GreeterServer},
|
||||
HelloReply, HelloRequest,
|
||||
};
|
||||
|
||||
use echo::{
|
||||
server::{Echo, EchoServer},
|
||||
echo_server::{Echo, EchoServer},
|
||||
EchoRequest, EchoResponse,
|
||||
};
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ pub mod route_guide {
|
||||
tonic::include_proto!("routeguide");
|
||||
}
|
||||
|
||||
use route_guide::client::RouteGuideClient;
|
||||
use route_guide::routeguide_client::RouteGuideClient;
|
||||
|
||||
async fn print_features(client: &mut RouteGuideClient<Channel>) -> Result<(), Box<dyn Error>> {
|
||||
let rectangle = Rectangle {
|
||||
|
||||
@@ -14,7 +14,7 @@ pub mod routeguide {
|
||||
tonic::include_proto!("routeguide");
|
||||
}
|
||||
|
||||
use routeguide::{server, Feature, Point, Rectangle, RouteNote, RouteSummary};
|
||||
use routeguide::{routeguide_server, Feature, Point, Rectangle, RouteNote, RouteSummary};
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct RouteGuide {
|
||||
@@ -22,7 +22,7 @@ pub struct RouteGuide {
|
||||
}
|
||||
|
||||
#[tonic::async_trait]
|
||||
impl server::RouteGuide for RouteGuide {
|
||||
impl routeguide_server::RouteGuide for RouteGuide {
|
||||
async fn get_feature(&self, request: Request<Point>) -> Result<Response<Feature>, Status> {
|
||||
println!("GetFeature = {:?}", request);
|
||||
|
||||
@@ -154,7 +154,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
features: Arc::new(data::load()),
|
||||
};
|
||||
|
||||
let svc = server::RouteGuideServer::new(route_guide);
|
||||
let svc = routeguide_server::RouteGuideServer::new(route_guide);
|
||||
|
||||
Server::builder().add_service(svc).serve(addr).await?;
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ pub mod pb {
|
||||
tonic::include_proto!("/grpc.examples.echo");
|
||||
}
|
||||
|
||||
use pb::{client::EchoClient, EchoRequest};
|
||||
use pb::{echo_client::EchoClient, EchoRequest};
|
||||
use tonic::transport::{Certificate, Channel, ClientTlsConfig};
|
||||
|
||||
#[tokio::main]
|
||||
|
||||
@@ -17,7 +17,7 @@ type ResponseStream = Pin<Box<dyn Stream<Item = Result<EchoResponse, Status>> +
|
||||
pub struct EchoServer;
|
||||
|
||||
#[tonic::async_trait]
|
||||
impl pb::server::Echo for EchoServer {
|
||||
impl pb::echo_server::Echo for EchoServer {
|
||||
async fn unary_echo(&self, request: Request<EchoRequest>) -> EchoResult<EchoResponse> {
|
||||
let message = request.into_inner().message;
|
||||
Ok(Response::new(EchoResponse { message }))
|
||||
@@ -61,7 +61,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
|
||||
Server::builder()
|
||||
.tls_config(ServerTlsConfig::with_rustls().identity(identity))
|
||||
.add_service(pb::server::EchoServer::new(server))
|
||||
.add_service(pb::echo_server::EchoServer::new(server))
|
||||
.serve(addr)
|
||||
.await?;
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ pub mod pb {
|
||||
tonic::include_proto!("grpc.examples.echo");
|
||||
}
|
||||
|
||||
use pb::{client::EchoClient, EchoRequest};
|
||||
use pb::{echo_client::EchoClient, EchoRequest};
|
||||
use tonic::transport::{Certificate, Channel, ClientTlsConfig, Identity};
|
||||
|
||||
#[tokio::main]
|
||||
|
||||
@@ -15,7 +15,7 @@ type ResponseStream = Pin<Box<dyn Stream<Item = Result<EchoResponse, Status>> +
|
||||
pub struct EchoServer;
|
||||
|
||||
#[tonic::async_trait]
|
||||
impl pb::server::Echo for EchoServer {
|
||||
impl pb::echo_server::Echo for EchoServer {
|
||||
async fn unary_echo(&self, request: Request<EchoRequest>) -> EchoResult<EchoResponse> {
|
||||
let message = request.into_inner().message;
|
||||
Ok(Response::new(EchoResponse { message }))
|
||||
@@ -43,7 +43,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
|
||||
Server::builder()
|
||||
.tls_config(tls)
|
||||
.add_service(pb::server::EchoServer::new(server))
|
||||
.add_service(pb::echo_server::EchoServer::new(server))
|
||||
.serve(addr)
|
||||
.await?;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user