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:
parent
6f85dbfc06
commit
7725eb53ad
18 changed files with 144 additions and 126 deletions
|
@ -73,12 +73,18 @@ fn interpret(code: &str, path: Option<PathBuf>, args: &Args, explain: bool) -> b
|
|||
|
||||
let blob_service = MemoryBlobService::default();
|
||||
let directory_service = MemoryDirectoryService::default();
|
||||
let path_info_service =
|
||||
MemoryPathInfoService::new(Box::new(blob_service.clone()), directory_service.clone());
|
||||
let path_info_service = MemoryPathInfoService::new(
|
||||
Box::new(blob_service.clone()),
|
||||
Box::new(directory_service.clone()),
|
||||
);
|
||||
|
||||
eval.io_handle = Box::new(tvix_io::TvixIO::new(
|
||||
known_paths.clone(),
|
||||
tvix_store::TvixStoreIO::new(Box::new(blob_service), directory_service, path_info_service),
|
||||
tvix_store::TvixStoreIO::new(
|
||||
Box::new(blob_service),
|
||||
Box::new(directory_service),
|
||||
path_info_service,
|
||||
),
|
||||
));
|
||||
|
||||
// bundle fetchurl.nix (used in nixpkgs) by resolving <nix> to
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue