refactor(tvix/store): use Box<dyn DirectoryService>

Once we support configuring services at runtime, we don't know what
DirectoryService we're using at compile time.

This also means, we can't explicitly use the is_closed method from
GRPCPutter, without making it part of the DirectoryPutter itself.

Change-Id: Icd2a1ec4fc5649a6cd15c9cc7db4c2b473630431
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8727
Autosubmit: flokli <flokli@flokli.de>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
This commit is contained in:
Florian Klink 2023-06-09 12:26:34 +03:00 committed by clbot
parent 6f85dbfc06
commit 7725eb53ad
18 changed files with 144 additions and 126 deletions

View file

@ -8,13 +8,13 @@ pub fn gen_blob_service() -> Box<dyn BlobService> {
Box::new(MemoryBlobService::default())
}
pub fn gen_directory_service() -> impl DirectoryService + Send + Sync + Clone + 'static {
MemoryDirectoryService::default()
pub fn gen_directory_service() -> Box<dyn DirectoryService> {
Box::new(MemoryDirectoryService::default())
}
pub fn gen_pathinfo_service<DS: DirectoryService + Clone>(
pub fn gen_pathinfo_service(
blob_service: Box<dyn BlobService>,
directory_service: DS,
directory_service: Box<dyn DirectoryService>,
) -> impl PathInfoService {
MemoryPathInfoService::new(blob_service, directory_service)
}