use dubbo::codegen::{Request, Response}; use dubbo::Dubbo; use dubbo_config::RootConfig; use crate::sample::greeter_server::{Greeter, register_server}; use crate::sample::{GreeterReply, GreeterRequest}; mod sample; #[tokio::main] async fn main() { register_server(GreeterServerImpl { name: "greeter".to_string(), }); Dubbo::new() .with_config({ let r = RootConfig::new(); match r.load() { Ok(config) => config, Err(_err) => panic!("err: {:?}", _err), // response was droped } }) .start() .await; } #[allow(dead_code)] #[derive(Default, Clone)] struct GreeterServerImpl { name: String, } #[async_trait::async_trait] impl Greeter for GreeterServerImpl { async fn greet( &self, request: Request, ) -> Result, dubbo::status::Status> { println!("GreeterServer::greet {:?}", request.metadata); Ok(Response::new(GreeterReply { message: "hello, dubbo-rust".to_string(), })) } }