feat(tvix/store/proto): use Bytes instead of Vec<u8>
Makes use of https://github.com/tokio-rs/prost/pull/341, which makes our bytes field cheaper to clone. It's a bit annoying to configure due to https://github.com/hyperium/tonic/issues/908, but the workaround does get the job done. Change-Id: I25714600b041bb5432d3adf5859b151e72b12778 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8975 Reviewed-by: raitobezarius <tvl@lahfa.xyz> Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: flokli <flokli@flokli.de>
This commit is contained in:
parent
7971d7d9ff
commit
432222f098
34 changed files with 216 additions and 164 deletions
|
|
@ -91,13 +91,12 @@ impl DirectoryService for GRPCDirectoryService {
|
|||
fn get(&self, digest: &B3Digest) -> Result<Option<crate::proto::Directory>, crate::Error> {
|
||||
// Get a new handle to the gRPC client, and copy the digest.
|
||||
let mut grpc_client = self.grpc_client.clone();
|
||||
|
||||
let digest_as_vec = digest.to_vec();
|
||||
let digest_cpy = digest.clone();
|
||||
let task = self.tokio_handle.spawn(async move {
|
||||
let mut s = grpc_client
|
||||
.get(proto::GetDirectoryRequest {
|
||||
recursive: false,
|
||||
by_what: Some(ByWhat::Digest(digest_as_vec)),
|
||||
by_what: Some(ByWhat::Digest(digest_cpy.into())),
|
||||
})
|
||||
.await?
|
||||
.into_inner();
|
||||
|
|
@ -160,13 +159,15 @@ impl DirectoryService for GRPCDirectoryService {
|
|||
) -> Box<dyn Iterator<Item = Result<proto::Directory, Error>> + Send> {
|
||||
let mut grpc_client = self.grpc_client.clone();
|
||||
|
||||
let root_directory_digest_as_vec = root_directory_digest.to_vec();
|
||||
// clone so we can move it
|
||||
let root_directory_digest_cpy = root_directory_digest.clone();
|
||||
|
||||
let task: tokio::task::JoinHandle<Result<Streaming<proto::Directory>, Status>> =
|
||||
self.tokio_handle.spawn(async move {
|
||||
let s = grpc_client
|
||||
.get(proto::GetDirectoryRequest {
|
||||
recursive: true,
|
||||
by_what: Some(ByWhat::Digest(root_directory_digest_as_vec)),
|
||||
by_what: Some(ByWhat::Digest(root_directory_digest_cpy.into())),
|
||||
})
|
||||
.await?
|
||||
.into_inner();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue