use crate::pb::*; use super::{GitksService, into_status, into_stream, resolve}; #[tonic::async_trait] impl tree_service_server::TreeService for GitksService { type GetRawBlobStream = tokio_stream::wrappers::ReceiverStream>; async fn list_tree( &self, request: tonic::Request, ) -> Result, tonic::Status> { let inner = request.into_inner(); let gb = resolve(inner.repository.as_ref())?; let resp = gb.list_tree(inner).map_err(into_status)?; Ok(tonic::Response::new(resp)) } async fn get_tree( &self, request: tonic::Request, ) -> Result, tonic::Status> { let inner = request.into_inner(); let gb = resolve(inner.repository.as_ref())?; let resp = gb.get_tree(inner).map_err(into_status)?; Ok(tonic::Response::new(resp)) } async fn get_blob( &self, request: tonic::Request, ) -> Result, tonic::Status> { let inner = request.into_inner(); let gb = resolve(inner.repository.as_ref())?; let resp = gb.get_blob(inner).map_err(into_status)?; Ok(tonic::Response::new(resp)) } async fn get_raw_blob( &self, request: tonic::Request, ) -> Result, tonic::Status> { let inner = request.into_inner(); let gb = resolve(inner.repository.as_ref())?; let items = gb.get_raw_blob(inner).map_err(into_status)?; Ok(tonic::Response::new(into_stream(items))) } async fn get_file_metadata( &self, request: tonic::Request, ) -> Result, tonic::Status> { let inner = request.into_inner(); let gb = resolve(inner.repository.as_ref())?; let resp = gb.get_file_metadata(inner).map_err(into_status)?; Ok(tonic::Response::new(resp)) } async fn find_files( &self, request: tonic::Request, ) -> Result, tonic::Status> { let inner = request.into_inner(); let gb = resolve(inner.repository.as_ref())?; let resp = gb.find_files(inner).map_err(into_status)?; Ok(tonic::Response::new(resp)) } }