use generated::hello::{ FILE_DESCRIPTOR_SET, HelloReply, HelloRequest, greeter_server::{Greeter, GreeterServer}, }; mod generated { pub mod hello { include!("generated/hello/hello.rs"); } } #[derive(Debug, Default)] struct GreeterService; #[tonic::async_trait] impl Greeter for GreeterService { async fn say_hello( &self, request: tonic::Request, ) -> Result, tonic::Status> { let name = request.into_inner().name; let reply = HelloReply { message: format!("Hello, {}!", name), }; Ok(tonic::Response::new(reply)) } } #[tokio::main] async fn main() -> Result<(), Box> { let addr = "[::1]:50051".parse()?; let reflection = tonic_reflection::server::Builder::configure() .register_encoded_file_descriptor_set(FILE_DESCRIPTOR_SET) .build_v1()?; tonic::transport::Server::builder() .add_service(reflection) .add_service(GreeterServer::new(GreeterService::default())) .serve(addr) .await?; return Ok(()); }