feat: add __rpc
This commit is contained in:
46
__rpc/dubbo-rust/src/greeter/server.rs
Normal file
46
__rpc/dubbo-rust/src/greeter/server.rs
Normal file
@@ -0,0 +1,46 @@
|
||||
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(),
|
||||
}))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user