pub struct L1CacheStore { /* private fields */ }Expand description
An ObjectStore adapter fronting origin with a RAM-backed RangeCache.
get_opts/get_ranges are served from the cache (falling back to
origin on any cache error, mirroring CacheClientStore’s
graceful-degradation contract); everything else – put, list,
delete, copy, and preconditioned or head gets – passes straight
through to origin, which is never itself cached by this store.
Implementations§
Source§impl L1CacheStore
impl L1CacheStore
pub fn new( origin: Arc<dyn ObjectStore>, backend: Arc<dyn RangeCacheBackend>, ns: String, ) -> L1CacheStore
Trait Implementations§
Source§impl Debug for L1CacheStore
impl Debug for L1CacheStore
Source§impl Display for L1CacheStore
impl Display for L1CacheStore
Source§impl ObjectStore for L1CacheStore
impl ObjectStore for L1CacheStore
Source§fn put_opts<'life0, 'life1, 'async_trait>(
&'life0 self,
location: &'life1 Path,
payload: PutPayload,
opts: PutOptions,
) -> Pin<Box<dyn Future<Output = Result<PutResult, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
L1CacheStore: 'async_trait,
fn put_opts<'life0, 'life1, 'async_trait>(
&'life0 self,
location: &'life1 Path,
payload: PutPayload,
opts: PutOptions,
) -> Pin<Box<dyn Future<Output = Result<PutResult, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
L1CacheStore: 'async_trait,
Source§fn put_multipart_opts<'life0, 'life1, 'async_trait>(
&'life0 self,
location: &'life1 Path,
opts: PutMultipartOptions,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn MultipartUpload>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
L1CacheStore: 'async_trait,
fn put_multipart_opts<'life0, 'life1, 'async_trait>(
&'life0 self,
location: &'life1 Path,
opts: PutMultipartOptions,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn MultipartUpload>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
L1CacheStore: 'async_trait,
Perform a multipart upload with options Read more
Source§fn get_opts<'life0, 'life1, 'async_trait>(
&'life0 self,
location: &'life1 Path,
options: GetOptions,
) -> Pin<Box<dyn Future<Output = Result<GetResult, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
L1CacheStore: 'async_trait,
fn get_opts<'life0, 'life1, 'async_trait>(
&'life0 self,
location: &'life1 Path,
options: GetOptions,
) -> Pin<Box<dyn Future<Output = Result<GetResult, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
L1CacheStore: 'async_trait,
Perform a get request with options Read more
Source§fn get_ranges<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
location: &'life1 Path,
ranges: &'life2 [Range<u64>],
) -> Pin<Box<dyn Future<Output = Result<Vec<Bytes>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
L1CacheStore: 'async_trait,
fn get_ranges<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
location: &'life1 Path,
ranges: &'life2 [Range<u64>],
) -> Pin<Box<dyn Future<Output = Result<Vec<Bytes>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
L1CacheStore: 'async_trait,
Return the bytes that are stored at the specified location
in the given byte ranges
Source§fn delete_stream(
&self,
locations: Pin<Box<dyn Stream<Item = Result<Path, Error>> + Send>>,
) -> Pin<Box<dyn Stream<Item = Result<Path, Error>> + Send>>
fn delete_stream( &self, locations: Pin<Box<dyn Stream<Item = Result<Path, Error>> + Send>>, ) -> Pin<Box<dyn Stream<Item = Result<Path, Error>> + Send>>
Delete all the objects at the specified locations Read more
Source§fn list(
&self,
prefix: Option<&Path>,
) -> Pin<Box<dyn Stream<Item = Result<ObjectMeta, Error>> + Send>>
fn list( &self, prefix: Option<&Path>, ) -> Pin<Box<dyn Stream<Item = Result<ObjectMeta, Error>> + Send>>
List all the objects with the given prefix. Read more
Source§fn list_with_delimiter<'life0, 'life1, 'async_trait>(
&'life0 self,
prefix: Option<&'life1 Path>,
) -> Pin<Box<dyn Future<Output = Result<ListResult, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
L1CacheStore: 'async_trait,
fn list_with_delimiter<'life0, 'life1, 'async_trait>(
&'life0 self,
prefix: Option<&'life1 Path>,
) -> Pin<Box<dyn Future<Output = Result<ListResult, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
L1CacheStore: 'async_trait,
List objects with the given prefix and an implementation specific
delimiter. Returns common prefixes (directories) in addition to object
metadata. Read more
Source§fn copy_opts<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
from: &'life1 Path,
to: &'life2 Path,
options: CopyOptions,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
L1CacheStore: 'async_trait,
fn copy_opts<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
from: &'life1 Path,
to: &'life2 Path,
options: CopyOptions,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
L1CacheStore: 'async_trait,
Copy an object from one path to another in the same object store.
§fn list_with_offset(
&self,
prefix: Option<&Path>,
offset: &Path,
) -> Pin<Box<dyn Stream<Item = Result<ObjectMeta, Error>> + Send>>
fn list_with_offset( &self, prefix: Option<&Path>, offset: &Path, ) -> Pin<Box<dyn Stream<Item = Result<ObjectMeta, Error>> + Send>>
List all the objects with the given prefix and a location greater than
offset Read more§fn rename_opts<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
from: &'life1 Path,
to: &'life2 Path,
options: RenameOptions,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn rename_opts<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
from: &'life1 Path,
to: &'life2 Path,
options: RenameOptions,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Move an object from one path to another in the same object store. Read more
Auto Trait Implementations§
impl Freeze for L1CacheStore
impl !RefUnwindSafe for L1CacheStore
impl Send for L1CacheStore
impl Sync for L1CacheStore
impl Unpin for L1CacheStore
impl UnsafeUnpin for L1CacheStore
impl !UnwindSafe for L1CacheStore
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
Mutably borrows from an owned value. Read more
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
Converts
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>
Converts
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 more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].§impl<T> ObjectStoreExt for Twhere
T: ObjectStore + ?Sized,
impl<T> ObjectStoreExt for Twhere
T: ObjectStore + ?Sized,
§async fn put(
&self,
location: &Path,
payload: PutPayload,
) -> Result<PutResult, Error>
async fn put( &self, location: &Path, payload: PutPayload, ) -> Result<PutResult, Error>
Save the provided bytes to the specified location Read more
§async fn put_multipart(
&self,
location: &Path,
) -> Result<Box<dyn MultipartUpload>, Error>
async fn put_multipart( &self, location: &Path, ) -> Result<Box<dyn MultipartUpload>, Error>
Perform a multipart upload Read more
§async fn get(&self, location: &Path) -> Result<GetResult, Error>
async fn get(&self, location: &Path) -> Result<GetResult, Error>
Return the bytes that are stored at the specified location. Read more
§async fn get_range(
&self,
location: &Path,
range: Range<u64>,
) -> Result<Bytes, Error>
async fn get_range( &self, location: &Path, range: Range<u64>, ) -> Result<Bytes, Error>
Return the bytes that are stored at the specified location
in the given byte range. Read more
§async fn head(&self, location: &Path) -> Result<ObjectMeta, Error>
async fn head(&self, location: &Path) -> Result<ObjectMeta, Error>
Return the metadata for the specified location
§async fn delete(&self, location: &Path) -> Result<(), Error>
async fn delete(&self, location: &Path) -> Result<(), Error>
Delete the object at the specified location.
§async fn copy(&self, from: &Path, to: &Path) -> Result<(), Error>
async fn copy(&self, from: &Path, to: &Path) -> Result<(), Error>
Copy an object from one path to another in the same object store. Read more
§async fn copy_if_not_exists(&self, from: &Path, to: &Path) -> Result<(), Error>
async fn copy_if_not_exists(&self, from: &Path, to: &Path) -> Result<(), Error>
Copy an object from one path to another, only if destination is empty. Read more
§async fn rename(&self, from: &Path, to: &Path) -> Result<(), Error>
async fn rename(&self, from: &Path, to: &Path) -> Result<(), Error>
Move an object from one path to another in the same object store. Read more
§async fn rename_if_not_exists(
&self,
from: &Path,
to: &Path,
) -> Result<(), Error>
async fn rename_if_not_exists( &self, from: &Path, to: &Path, ) -> Result<(), Error>
Move an object from one path to another in the same object store. Read more