From 7b4881a7a47bc898c3a65ec34f9488cf947c0dfa Mon Sep 17 00:00:00 2001 From: Jun Wu Date: Wed, 6 Oct 2021 17:12:12 -0700 Subject: [PATCH] revisionstore: drop dep on EdenApiBlocking Summary: `EdenApiBlocking` was there to provide some convenience for non-async code to use edenapi. Now a lot of places actually use async Rust properly, and calling async Rust from non-async Rust is not a great practice. So let's plan for `EdenApiBlocking` removal. To unblock it, drop `EdenApiBlocking` usage in revisionstore. Reviewed By: yancouto Differential Revision: D31407282 fbshipit-source-id: 70a6e9468606176cf5cf119418547e694e229ec4 --- eden/scm/lib/edenapi/src/response.rs | 2 +- eden/scm/lib/revisionstore/src/edenapi/mod.rs | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/eden/scm/lib/edenapi/src/response.rs b/eden/scm/lib/edenapi/src/response.rs index 7693258658..500093dca6 100644 --- a/eden/scm/lib/edenapi/src/response.rs +++ b/eden/scm/lib/edenapi/src/response.rs @@ -23,7 +23,7 @@ pub struct BlockingResponse { } impl BlockingResponse { - pub(crate) fn from_async(fetch: F) -> Result + pub fn from_async(fetch: F) -> Result where F: Future, EdenApiError>>, { diff --git a/eden/scm/lib/revisionstore/src/edenapi/mod.rs b/eden/scm/lib/revisionstore/src/edenapi/mod.rs index 38405899fd..52e59b046b 100644 --- a/eden/scm/lib/revisionstore/src/edenapi/mod.rs +++ b/eden/scm/lib/revisionstore/src/edenapi/mod.rs @@ -10,7 +10,7 @@ use std::sync::Arc; use async_trait::async_trait; -use edenapi::{BlockingResponse, EdenApi, EdenApiBlocking, EdenApiError, Response}; +use edenapi::{BlockingResponse, EdenApi, EdenApiError, Response}; use edenapi_types::{EdenApiServerError, FileEntry, FileSpec, TreeAttributes, TreeEntry}; use progress::{NullProgressFactory, ProgressFactory}; use types::Key; @@ -126,14 +126,14 @@ impl EdenApiFileStore { &self, keys: Vec, ) -> Result, EdenApiError> { - self.client.files_blocking(self.repo.clone(), keys) + BlockingResponse::from_async(self.client.files(self.repo.clone(), keys)) } pub fn files_attrs_blocking( &self, reqs: Vec, ) -> Result, EdenApiError> { - self.client.files_attrs_blocking(self.repo.clone(), reqs) + BlockingResponse::from_async(self.client.files_attrs(self.repo.clone(), reqs)) } } @@ -143,8 +143,7 @@ impl EdenApiTreeStore { keys: Vec, attributes: Option, ) -> Result>, EdenApiError> { - self.client - .trees_blocking(self.repo.clone(), keys, attributes) + BlockingResponse::from_async(self.client.trees(self.repo.clone(), keys, attributes)) } }