pub struct FileStore { /* private fields */ }Expand description
A content-addressable store backed by a local directory (the file://
backend).
Construct one with FileStore::new (parsing a file:// URL or a bare
path) or FileStore::from_root (an already-resolved directory).
Implementations§
Source§impl FileStore
impl FileStore
Sourcepub fn new(store: &str) -> Self
pub fn new(store: &str) -> Self
Builds a store from a store URL or path, matching the oracle’s
_snapdir_file_store_get_store_dir.
Accepts file:///abs/path, file://localhost/abs/path, file://
followed by an absolute path, or a bare absolute path. A leading
file: scheme (with any number of slashes, optionally localhost) is
rewritten to a single leading /, and a trailing slash is dropped.
Sourcepub fn new_with_config(store: &str, config: TransferConfig) -> Self
pub fn new_with_config(store: &str, config: TransferConfig) -> Self
Like new, but carries a TransferConfig for
concurrency / bandwidth control.
Sourcepub fn from_root(root: impl Into<PathBuf>) -> Self
pub fn from_root(root: impl Into<PathBuf>) -> Self
Builds a store rooted at an already-resolved directory.
Sourcepub fn from_root_with_config(
root: impl Into<PathBuf>,
config: TransferConfig,
) -> Self
pub fn from_root_with_config( root: impl Into<PathBuf>, config: TransferConfig, ) -> Self
Like from_root, but carries a TransferConfig for
concurrency / bandwidth control. from_root and
new delegate here with TransferConfig::default.
Sourcepub fn with_meter(self, meter: Option<Arc<Meter>>) -> Self
pub fn with_meter(self, meter: Option<Arc<Meter>>) -> Self
Sourcepub fn transfer_config(&self) -> &TransferConfig
pub fn transfer_config(&self) -> &TransferConfig
The TransferConfig (concurrency / bandwidth) this store was built
with. Consumed by the transfer loops in later gates.
Trait Implementations§
Source§impl Store for FileStore
impl Store for FileStore
Source§fn get_manifest(&self, id: &str) -> Result<Manifest, StoreError>
fn get_manifest(&self, id: &str) -> Result<Manifest, StoreError>
id’s sharded path,
verifying that its bytes hash back to id before returning it. Read moreSource§fn fetch_files(
&self,
manifest: &Manifest,
dest: &Path,
) -> Result<(), StoreError>
fn fetch_files( &self, manifest: &Manifest, dest: &Path, ) -> Result<(), StoreError>
manifest under dest, pulling each
referenced object from the store and reconstructing the directory tree
(files, directories, permissions) rooted at dest. Read moreSource§impl StreamStore for FileStore
impl StreamStore for FileStore
Source§fn has_object(&self, checksum: &str) -> Result<bool, StoreError>
fn has_object(&self, checksum: &str) -> Result<bool, StoreError>
true if an object with this content-address already exists in
the store. Read moreSource§fn get_object(&self, checksum: &str) -> Result<Vec<u8>, StoreError>
fn get_object(&self, checksum: &str) -> Result<Vec<u8>, StoreError>
checksum, verifying its bytes
hash (BLAKE3) back to checksum before returning them. Read moreSource§fn put_object(&self, checksum: &str, bytes: Vec<u8>) -> Result<(), StoreError>
fn put_object(&self, checksum: &str, bytes: Vec<u8>) -> Result<(), StoreError>
bytes hash
(BLAKE3) to checksum before storing anything. Read moreSource§fn put_manifest(&self, id: &str, manifest: &Manifest) -> Result<(), StoreError>
fn put_manifest(&self, id: &str, manifest: &Manifest) -> Result<(), StoreError>
id, verifying the manifest’s bytes hash
back to id before storing it. Read moreAuto Trait Implementations§
impl Freeze for FileStore
impl RefUnwindSafe for FileStore
impl Send for FileStore
impl Sync for FileStore
impl Unpin for FileStore
impl UnsafeUnpin for FileStore
impl UnwindSafe for FileStore
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request