pub struct InMemoryBackend { /* private fields */ }Expand description
Implementations§
Source§impl InMemoryBackend
impl InMemoryBackend
Sourcepub fn new(name: &'static str) -> Self
pub fn new(name: &'static str) -> Self
Creates a new InMemoryBackend with the given diagnostic name.
Sourcepub fn with_change_stream(self, change_stream: Arc<dyn ChangeStream>) -> Self
pub fn with_change_stream(self, change_stream: Arc<dyn ChangeStream>) -> Self
Publishes this backend’s changes to change_stream.
Sourcepub fn get(&self, id: &ObjectId) -> Entry
pub fn get(&self, id: &ObjectId) -> Entry
Returns the stored entry for id, for direct inspection in tests.
Trait Implementations§
Source§impl Backend for InMemoryBackend
impl Backend for InMemoryBackend
Source§fn as_multipart_upload_backend(&self) -> Result<&dyn MultipartUploadBackend>
fn as_multipart_upload_backend(&self) -> Result<&dyn MultipartUploadBackend>
Borrows this backend as a
MultipartUploadBackend if supported. Read moreSource§fn put_object<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
metadata: &'life2 Metadata,
stream: ClientStream,
_access_time: Timestamp,
) -> Pin<Box<dyn Future<Output = Result<PutResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn put_object<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
metadata: &'life2 Metadata,
stream: ClientStream,
_access_time: Timestamp,
) -> Pin<Box<dyn Future<Output = Result<PutResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Stores an object at the given path with the given metadata.
Source§fn get_object<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
access_time: Timestamp,
range: Option<ByteRange>,
) -> Pin<Box<dyn Future<Output = Result<GetResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_object<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
access_time: Timestamp,
range: Option<ByteRange>,
) -> Pin<Box<dyn Future<Output = Result<GetResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Retrieves (part of) an object at the given path, returning its metadata, a description of
the part being returned, and the payload.
Source§fn set_expiry<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
expire_at: Timestamp,
access_time: Timestamp,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn set_expiry<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
expire_at: Timestamp,
access_time: Timestamp,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Extends the deadline of an existing object with expiration policy. Read more
Source§fn delete_object<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
_access_time: Timestamp,
) -> Pin<Box<dyn Future<Output = Result<DeleteResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_object<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
_access_time: Timestamp,
) -> Pin<Box<dyn Future<Output = Result<DeleteResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Deletes the object at the given path.
Source§fn join<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn join<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Waits for any outstanding background operations to complete before shutdown. Read more
Source§fn get_metadata<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
access_time: Timestamp,
) -> Pin<Box<dyn Future<Output = Result<MetadataResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_metadata<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
access_time: Timestamp,
) -> Pin<Box<dyn Future<Output = Result<MetadataResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Retrieves only the metadata for an object, without the payload.
Source§fn create_upload_session<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
metadata: &'life2 Metadata,
total_length: NonZeroU64,
) -> Pin<Box<dyn Future<Output = Result<Option<BackendToken>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn create_upload_session<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
metadata: &'life2 Metadata,
total_length: NonZeroU64,
) -> Pin<Box<dyn Future<Output = Result<Option<BackendToken>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Creates a resumable upload session for the object at
id. Read moreSource§fn put_chunk<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
token: &'life2 BackendToken,
offset: u64,
content_length: u64,
stream: ClientStream,
) -> Pin<Box<dyn Future<Output = Result<UploadProgress>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn put_chunk<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
token: &'life2 BackendToken,
offset: u64,
content_length: u64,
stream: ClientStream,
) -> Pin<Box<dyn Future<Output = Result<UploadProgress>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn upload_offset<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
token: &'life2 BackendToken,
) -> Pin<Box<dyn Future<Output = Result<UploadProgress>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn upload_offset<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
token: &'life2 BackendToken,
) -> Pin<Box<dyn Future<Output = Result<UploadProgress>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Reports how far the session has progressed. Read more
Source§fn cancel_upload<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
token: &'life2 BackendToken,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn cancel_upload<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
token: &'life2 BackendToken,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Cancels an upload session, discarding whatever was uploaded. Read more
Source§impl Clone for InMemoryBackend
impl Clone for InMemoryBackend
Source§fn clone(&self) -> InMemoryBackend
fn clone(&self) -> InMemoryBackend
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for InMemoryBackend
impl Debug for InMemoryBackend
Source§impl HighVolumeBackend for InMemoryBackend
impl HighVolumeBackend for InMemoryBackend
Source§fn put_non_tombstone<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
metadata: &'life2 Metadata,
payload: Bytes,
access_time: Timestamp,
) -> Pin<Box<dyn Future<Output = Result<Option<Tombstone>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn put_non_tombstone<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
metadata: &'life2 Metadata,
payload: Bytes,
access_time: Timestamp,
) -> Pin<Box<dyn Future<Output = Result<Option<Tombstone>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Writes the object only if NO redirect tombstone exists at this key. Read more
Source§fn get_tiered_object<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
access_time: Timestamp,
range: Option<ByteRange>,
) -> Pin<Box<dyn Future<Output = Result<TieredGet>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_tiered_object<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
access_time: Timestamp,
range: Option<ByteRange>,
) -> Pin<Box<dyn Future<Output = Result<TieredGet>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Retrieves (part of) an object with explicit tombstone awareness. Read more
Source§fn get_tiered_metadata<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
access_time: Timestamp,
) -> Pin<Box<dyn Future<Output = Result<TieredMetadata>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_tiered_metadata<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
access_time: Timestamp,
) -> Pin<Box<dyn Future<Output = Result<TieredMetadata>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Retrieves only metadata with explicit tombstone awareness. Read more
Source§fn delete_non_tombstone<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
access_time: Timestamp,
) -> Pin<Box<dyn Future<Output = Result<Option<Tombstone>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_non_tombstone<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
access_time: Timestamp,
) -> Pin<Box<dyn Future<Output = Result<Option<Tombstone>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Deletes the object only if it is NOT a redirect tombstone. Read more
Source§fn compare_and_update<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
current: Option<&'life2 ObjectId>,
update: TieredUpdate,
access_time: Timestamp,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn compare_and_update<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
current: Option<&'life2 ObjectId>,
update: TieredUpdate,
access_time: Timestamp,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Atomically updates an existing row if its kind and redirect target match. Read more
Source§fn compare_and_write<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
current: Option<&'life2 ObjectId>,
write: TieredWrite,
access_time: Timestamp,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn compare_and_write<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
current: Option<&'life2 ObjectId>,
write: TieredWrite,
access_time: Timestamp,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Atomically mutates the row if the current redirect state matches. Read more
Source§impl MultipartUploadBackend for InMemoryBackend
impl MultipartUploadBackend for InMemoryBackend
Source§fn initiate_multipart<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
metadata: &'life2 Metadata,
) -> Pin<Box<dyn Future<Output = Result<InitiateMultipartResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn initiate_multipart<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
metadata: &'life2 Metadata,
) -> Pin<Box<dyn Future<Output = Result<InitiateMultipartResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Initiates a new multipart upload at
id with the given metadata.Source§fn upload_part<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
upload_id: &'life2 UploadId,
part_number: PartNumber,
_content_length: u64,
_content_md5: Option<&'life3 str>,
body: ClientStream,
) -> Pin<Box<dyn Future<Output = Result<UploadPartResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn upload_part<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
upload_id: &'life2 UploadId,
part_number: PartNumber,
_content_length: u64,
_content_md5: Option<&'life3 str>,
body: ClientStream,
) -> Pin<Box<dyn Future<Output = Result<UploadPartResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Uploads a single part of the upload identified by
(id, upload_id).Source§fn list_parts<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
upload_id: &'life2 UploadId,
max_parts: Option<u32>,
part_number_marker: Option<PartNumber>,
) -> Pin<Box<dyn Future<Output = Result<ListPartsResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn list_parts<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
upload_id: &'life2 UploadId,
max_parts: Option<u32>,
part_number_marker: Option<PartNumber>,
) -> Pin<Box<dyn Future<Output = Result<ListPartsResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Lists the parts uploaded so far for
(id, upload_id).Source§fn abort_multipart<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
upload_id: &'life2 UploadId,
) -> Pin<Box<dyn Future<Output = Result<AbortMultipartResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn abort_multipart<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
upload_id: &'life2 UploadId,
) -> Pin<Box<dyn Future<Output = Result<AbortMultipartResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Aborts the upload identified by
(id, upload_id).Source§fn complete_multipart<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
upload_id: &'life2 UploadId,
parts: Vec<CompletedPart>,
_access_time: Timestamp,
) -> Pin<Box<dyn Future<Output = Result<CompleteMultipartResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn complete_multipart<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ObjectId,
upload_id: &'life2 UploadId,
parts: Vec<CompletedPart>,
_access_time: Timestamp,
) -> Pin<Box<dyn Future<Output = Result<CompleteMultipartResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Finalizes the upload identified by
(id, upload_id) with the given
ordered list of parts. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for InMemoryBackend
impl !UnwindSafe for InMemoryBackend
impl Freeze for InMemoryBackend
impl Send for InMemoryBackend
impl Sync for InMemoryBackend
impl Unpin for InMemoryBackend
impl UnsafeUnpin for InMemoryBackend
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<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,
§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].