use authz::AllowRequest; use authz::ability_client::AbilityClient; use hello_world::HelloRequest; use hello_world::greeter_client::GreeterClient; pub mod authz { tonic::include_proto!("authz.rpc"); } pub mod hello_world { tonic::include_proto!("helloworld"); } #[tokio::main] async fn main() -> Result<(), Box> { { let mut client = GreeterClient::connect("http://[::1]:50051").await?; let request = tonic::Request::new(HelloRequest { name: "Tonic".into(), }); let response = client.say_hello(request).await?; println!("RESPONSE={:?}", response); } { let request = tonic::Request::new(AllowRequest { subject: "gid://example/User/1".into(), permission: "gid://example/Permission/1".into(), resource: "gid://example/Project/1".into(), }); let mut client = AbilityClient::connect("http://[::1]:50051").await?; let response = client.allowed(request).await?; println!("RESPONSE={:?}", response); } Ok(()) }