47 lines
1.1 KiB
Rust
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(),
|
|
}))
|
|
}
|
|
}
|
|
|