feat: add __rpc

This commit is contained in:
2022-10-28 00:50:48 +08:00
parent 6873d68129
commit cb12afd2da
9 changed files with 1646 additions and 0 deletions

View 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(),
}))
}
}