Files
simple-rust-tests/__rpc/dubbo-rust/src/greeter/server.rs
2022-10-28 00:50:48 +08:00

47 lines
1.1 KiB
Rust

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<GreeterRequest>,
) -> Result<Response<GreeterReply>, dubbo::status::Status> {
println!("GreeterServer::greet {:?}", request.metadata);
Ok(Response::new(GreeterReply {
message: "hello, dubbo-rust".to_string(),
}))
}
}