diff options
author | Florian Klink <flokli@flokli.de> | 2023-06-11T21·04+0300 |
---|---|---|
committer | clbot <clbot@tvl.fyi> | 2023-06-14T23·15+0000 |
commit | 35bff2bda69d5189d9a439cd2032b86ebb4e6e41 (patch) | |
tree | a5b22053e83463e8d87ff6edca7e29a31c2606d3 /tvix/store/src/pathinfoservice/mod.rs | |
parent | bb7c76739a30d2f312693799d8237eb0eb2da28d (diff) |
refactor(tvix/store/pathinfosvc): add from_addr r/6304
Change-Id: I24e822351a837fce2aed568a647d009099ef32ec Reviewed-on: https://cl.tvl.fyi/c/depot/+/8747 Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
Diffstat (limited to 'tvix/store/src/pathinfoservice/mod.rs')
-rw-r--r-- | tvix/store/src/pathinfoservice/mod.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tvix/store/src/pathinfoservice/mod.rs b/tvix/store/src/pathinfoservice/mod.rs index 937d8f2a1119..191e8dbd602e 100644 --- a/tvix/store/src/pathinfoservice/mod.rs +++ b/tvix/store/src/pathinfoservice/mod.rs @@ -1,9 +1,15 @@ +mod from_addr; mod grpc; mod memory; mod sled; +use std::sync::Arc; + +use crate::blobservice::BlobService; +use crate::directoryservice::DirectoryService; use crate::{proto, Error}; +pub use self::from_addr::from_addr; pub use self::grpc::GRPCPathInfoService; pub use self::memory::MemoryPathInfoService; pub use self::sled::SledPathInfoService; @@ -11,6 +17,17 @@ pub use self::sled::SledPathInfoService; /// The base trait all PathInfo services need to implement. /// This is a simple get and put of [proto::Directory], returning their digest. pub trait PathInfoService: Send + Sync { + /// Create a new instance by passing in a connection URL, as well + /// as instances of a [PathInfoService] and [DirectoryService] (as the + /// [PathInfoService] needs to talk to them). + fn from_url( + url: &url::Url, + blob_service: Arc<dyn BlobService>, + directory_service: Arc<dyn DirectoryService>, + ) -> Result<Self, Error> + where + Self: Sized; + /// Retrieve a PathInfo message by the output digest. fn get(&self, digest: [u8; 20]) -> Result<Option<proto::PathInfo>, Error>; |