use crate::pb::*; use super::{GitksService, into_status, into_stream, resolve}; #[tonic::async_trait] impl archive_service_server::ArchiveService for GitksService { type GetArchiveStream = tokio_stream::wrappers::ReceiverStream>; async fn get_archive( &self, request: tonic::Request, ) -> Result, tonic::Status> { let inner = request.into_inner(); let gb = resolve(inner.repository.as_ref())?; let chunks = gb.get_archive(inner).map_err(into_status)?; Ok(tonic::Response::new(into_stream(chunks))) } async fn list_archive_entries( &self, request: tonic::Request, ) -> Result, tonic::Status> { let inner = request.into_inner(); let gb = resolve(inner.repository.as_ref())?; let resp = gb.list_archive_entries(inner).map_err(into_status)?; Ok(tonic::Response::new(resp)) } }