refactor(tvix/castore/directorysvc): return Box, not Arc

While we currently mostly use it in an Arc, as we need to clone it
inside PathInfoService, there might be other usecases not requiring it
to be Clone.

Change-Id: Ia05bb370340792a048e2036be30e285ef1e63870
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10483
Autosubmit: flokli <flokli@flokli.de>
Reviewed-by: raitobezarius <tvl@lahfa.xyz>
Tested-by: BuildkiteCI
This commit is contained in:
Florian Klink 2023-12-31 16:26:02 +02:00 committed by clbot
parent 9ca1353122
commit 41935fab70
3 changed files with 26 additions and 11 deletions

View file

@ -14,6 +14,7 @@ use tracing_subscriber::prelude::*;
use tvix_castore::blobservice;
use tvix_castore::blobservice::BlobService;
use tvix_castore::directoryservice;
use tvix_castore::directoryservice::DirectoryService;
use tvix_castore::import;
use tvix_castore::proto::blob_service_server::BlobServiceServer;
use tvix_castore::proto::directory_service_server::DirectoryServiceServer;
@ -197,7 +198,10 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
// initialize stores
let blob_service: Arc<dyn BlobService> =
blobservice::from_addr(&blob_service_addr).await?.into();
let directory_service = directoryservice::from_addr(&directory_service_addr).await?;
let directory_service: Arc<dyn DirectoryService> =
directoryservice::from_addr(&directory_service_addr)
.await?
.into();
let path_info_service = pathinfoservice::from_addr(
&path_info_service_addr,
blob_service.clone(),
@ -253,7 +257,10 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
// FUTUREWORK: allow flat for single files?
let blob_service: Arc<dyn BlobService> =
blobservice::from_addr(&blob_service_addr).await?.into();
let directory_service = directoryservice::from_addr(&directory_service_addr).await?;
let directory_service: Arc<dyn DirectoryService> =
directoryservice::from_addr(&directory_service_addr)
.await?
.into();
let path_info_service = pathinfoservice::from_addr(
&path_info_service_addr,
blob_service.clone(),
@ -356,7 +363,10 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
} => {
let blob_service: Arc<dyn BlobService> =
blobservice::from_addr(&blob_service_addr).await?.into();
let directory_service = directoryservice::from_addr(&directory_service_addr).await?;
let directory_service: Arc<dyn DirectoryService> =
directoryservice::from_addr(&directory_service_addr)
.await?
.into();
let path_info_service = pathinfoservice::from_addr(
&path_info_service_addr,
blob_service.clone(),
@ -401,7 +411,10 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
} => {
let blob_service: Arc<dyn BlobService> =
blobservice::from_addr(&blob_service_addr).await?.into();
let directory_service = directoryservice::from_addr(&directory_service_addr).await?;
let directory_service: Arc<dyn DirectoryService> =
directoryservice::from_addr(&directory_service_addr)
.await?
.into();
let path_info_service = pathinfoservice::from_addr(
&path_info_service_addr,
blob_service.clone(),