use crate::pb::*; use super::{GitksService, into_status, into_stream, resolve}; #[tonic::async_trait] impl diff_service_server::DiffService for GitksService { type GetPatchStream = tokio_stream::wrappers::ReceiverStream>; async fn get_diff( &self, request: tonic::Request, ) -> Result, tonic::Status> { let inner = request.into_inner(); let gb = resolve(inner.repository.as_ref())?; let resp = gb.get_diff(inner).map_err(into_status)?; Ok(tonic::Response::new(resp)) } async fn get_commit_diff( &self, request: tonic::Request, ) -> Result, tonic::Status> { let inner = request.into_inner(); let gb = resolve(inner.repository.as_ref())?; let resp = gb.get_commit_diff(inner).map_err(into_status)?; Ok(tonic::Response::new(resp)) } async fn get_patch( &self, request: tonic::Request, ) -> Result, tonic::Status> { let inner = request.into_inner(); let gb = resolve(inner.repository.as_ref())?; let items = gb.get_patch(inner).map_err(into_status)?; Ok(tonic::Response::new(into_stream(items))) } async fn get_diff_stats( &self, request: tonic::Request, ) -> Result, tonic::Status> { let inner = request.into_inner(); let gb = resolve(inner.repository.as_ref())?; let resp = gb.get_diff_stats(inner).map_err(into_status)?; Ok(tonic::Response::new(resp)) } }