pub struct MemoryProvider { /* private fields */ }Expand description
In-memory native calls used beneath the shared storage connection.
Trait Implementations§
Source§impl Clone for MemoryProvider
impl Clone for MemoryProvider
Source§fn clone(&self) -> MemoryProvider
fn clone(&self) -> MemoryProvider
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl ProviderOps for MemoryProvider
impl ProviderOps for MemoryProvider
Source§fn folder_label<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<FolderLabel, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn folder_label<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<FolderLabel, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
A Dropbox shared folder’s or a OneDrive folder’s address is under
storage.example.test, after its id.
Source§fn leave<'life0, 'life1, 'async_trait>(
&'life0 self,
invitation: &'life1 StorageInvitation,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn leave<'life0, 'life1, 'async_trait>(
&'life0 self,
invitation: &'life1 StorageInvitation,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
As Dropbox’s unmount, the only provider undo: a mounted recipient goes back to invited; one not joined, or no longer shared, is done. Other providers’ acceptance stays, as theirs does.
Source§fn create_location_marker<'life0, 'async_trait>(
&'life0 self,
store: StoreId,
_device: DeviceId,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn create_location_marker<'life0, 'async_trait>(
&'life0 self,
store: StoreId,
_device: DeviceId,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Create D10’s location marker at the location’s root with the
provider’s create-once request. Only first setup at a location that
holds one store calls this operation. Anything it stages sits in
device’s reserved folder (D10).Source§fn read_location_marker<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn read_location_marker<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Read the complete location marker, bounded to D10’s UUID byte count.
Only a location that holds one store calls this operation. A marker
read that finds nothing confirms the location is still there first.
Source§fn account<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<String, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn account<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<String, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Signed-in account; coven shares nothing on S3, so it has none.
Source§fn set_s3_credentials<'life0, 'async_trait>(
&'life0 self,
credentials: S3Credentials,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn set_s3_credentials<'life0, 'async_trait>(
&'life0 self,
credentials: S3Credentials,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Replace the S3 signing key after credential custody commits it.
Source§fn config(&self) -> StorageConfig
fn config(&self) -> StorageConfig
This provider’s location.
Source§fn set_oauth_tokens<'life0, 'async_trait>(
&'life0 self,
tokens: OAuthTokens,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn set_oauth_tokens<'life0, 'async_trait>(
&'life0 self,
tokens: OAuthTokens,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Replace tokens after credential custody commits them.
Source§fn single_request_limit(&self) -> u64
fn single_request_limit(&self) -> u64
Largest complete body accepted by
create or replace.Source§fn read_part_size(&self) -> Option<NonZeroU64>
fn read_part_size(&self) -> Option<NonZeroU64>
The size of the parts a ranged read moves whole
(
crate::Storage::read_part_size); None when a range moves only
its own bytes.Source§fn create<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
publication: &'life1 PublicationRequest,
path: &'life2 ObjectPath,
bytes: &'life3 [u8],
sent: &'life4 ByteProgress,
_device: DeviceId,
) -> Pin<Box<dyn Future<Output = Result<Option<StoredObject>, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn create<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
publication: &'life1 PublicationRequest,
path: &'life2 ObjectPath,
bytes: &'life3 [u8],
sent: &'life4 ByteProgress,
_device: DeviceId,
) -> Pin<Box<dyn Future<Output = Result<Option<StoredObject>, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Create in one request, telling
sent the body’s bytes as the
provider’s client hands them over. A temporary it stages sits in
device’s reserved folder (D10).
Returns the created object’s metadata when the reply carries it.Source§fn replace<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
publication: &'life1 PublicationRequest,
previous: &'life2 StoredObject,
bytes: &'life3 [u8],
_device: DeviceId,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn replace<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
publication: &'life1 PublicationRequest,
previous: &'life2 StoredObject,
bytes: &'life3 [u8],
_device: DeviceId,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Replace the observed object in one atomic conditional publication. A
temporary it stages sits in
device’s reserved folder (D10).Source§fn status<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 ObjectPath,
) -> Pin<Box<dyn Future<Output = Result<Option<StoredObject>, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn status<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 ObjectPath,
) -> Pin<Box<dyn Future<Output = Result<Option<StoredObject>, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Exact native lookup; only a confirmed missing object returns None.
Source§fn stream_object<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 ObjectPath,
range: Option<ByteRange>,
_received: &'life2 ByteProgress,
) -> Pin<Box<dyn Future<Output = Result<ObjectStream<'_>, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn stream_object<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 ObjectPath,
range: Option<ByteRange>,
_received: &'life2 ByteProgress,
) -> Pin<Box<dyn Future<Output = Result<ObjectStream<'_>, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Read complete bytes or a range, retaining metadata for those exact bytes.
The connection hears the stream’s reads itself; a client that fetches
bytes before the stream yields them tells
received how far through
the object they reach as they arrive, counted from the object’s start.Source§fn list<'life0, 'life1, 'async_trait>(
&'life0 self,
listing: &'life1 mut ObjectListing,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn list<'life0, 'life1, 'async_trait>(
&'life0 self,
listing: &'life1 mut ObjectListing,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Consume native pages into the connection’s checked listing.
Source§fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 ObjectPath,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 ObjectPath,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Delete, accepting an already absent object.
Source§fn grant_access<'life0, 'life1, 'async_trait>(
&'life0 self,
account: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<AccessGrant, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn grant_access<'life0, 'life1, 'async_trait>(
&'life0 self,
account: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<AccessGrant, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Grant account access, or return S3’s console instructions.
Source§fn join<'life0, 'life1, 'async_trait>(
&'life0 self,
invitation: &'life1 StorageInvitation,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn join<'life0, 'life1, 'async_trait>(
&'life0 self,
invitation: &'life1 StorageInvitation,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Accept native sharing material. The connection checks location and reads
the exact floor status afterwards to verify readability.
Source§fn revoke_access<'life0, 'life1, 'async_trait>(
&'life0 self,
account: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<RetainedAccess>, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn revoke_access<'life0, 'life1, 'async_trait>(
&'life0 self,
account: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<RetainedAccess>, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Remove exclusive grants and return grants that still reach the account.
Source§fn begin_upload<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
publication: &'life1 PublicationRequest,
target: &'life2 UploadTarget,
total: u64,
device: DeviceId,
) -> Pin<Box<dyn Future<Output = Result<UploadSession, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn begin_upload<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
publication: &'life1 PublicationRequest,
target: &'life2 UploadTarget,
total: u64,
device: DeviceId,
) -> Pin<Box<dyn Future<Output = Result<UploadSession, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Begin a nonempty upload with its original publication condition, for
device, whose reserved folder holds its temporaries (D10).Source§fn device_uploads<'life0, 'async_trait>(
&'life0 self,
store: StoreId,
device: DeviceId,
) -> Pin<Box<dyn Future<Output = Result<Vec<LeftUpload>, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn device_uploads<'life0, 'async_trait>(
&'life0 self,
store: StoreId,
device: DeviceId,
) -> Pin<Box<dyn Future<Output = Result<Vec<LeftUpload>, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
The uploads
device left in store that this sign-in can see: the
sessions and temporaries in its reserved folder (D10), and, where the
provider puts a session at its destination, those under the device’s
file and snapshot folders. Every page of each listing is followed.Source§fn settled_claim_uploads<'life0, 'async_trait>(
&'life0 self,
store: StoreId,
through: u64,
) -> Pin<Box<dyn Future<Output = Result<Vec<LeftUpload>, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn settled_claim_uploads<'life0, 'async_trait>(
&'life0 self,
store: StoreId,
through: u64,
) -> Pin<Box<dyn Future<Output = Result<Vec<LeftUpload>, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
The unfinished sessions at slots 1 to
through of store, whoever
began them: where a claim’s session sits at its slot’s path, one at
a slot this device has applied can never publish, since create-once
refuses it there. A provider that puts no session at a slot’s path
returns none.Source§fn dates_floor_sessions(&self) -> bool
fn dates_floor_sessions(&self) -> bool
Whether this provider dates an unfinished floor session’s start so
that one begun before the current floor’s publication can be told
apart (Appendix E.10). Asking sends nothing.
Source§fn superseded_floor_uploads<'life0, 'life1, 'async_trait>(
&'life0 self,
floor: &'life1 StoredObject,
) -> Pin<Box<dyn Future<Output = Result<Vec<LeftUpload>, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn superseded_floor_uploads<'life0, 'life1, 'async_trait>(
&'life0 self,
floor: &'life1 StoredObject,
) -> Pin<Box<dyn Future<Output = Result<Vec<LeftUpload>, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
The unfinished sessions at the floor’s path begun before
floor, the
current floor, was published: each observed an older revision, so
none can publish. Asked only where Self::dates_floor_sessions.Source§fn end_left_upload<'life0, 'life1, 'async_trait>(
&'life0 self,
upload: &'life1 LeftUpload,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn end_left_upload<'life0, 'life1, 'async_trait>(
&'life0 self,
upload: &'life1 LeftUpload,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
End one upload another device left, as this provider listed it: abort
the session, or delete what it staged. One already ended succeeds,
and a published object is never touched.
Source§fn resume_upload<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
publication: &'life1 PublicationRequest,
session: &'life2 mut UploadSession,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn resume_upload<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
publication: &'life1 PublicationRequest,
session: &'life2 mut UploadSession,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Recover native progress of a validated, incomplete session.
Source§fn upload_part<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
publication: &'life1 PublicationRequest,
session: &'life2 mut UploadSession,
bytes: &'life3 [u8],
end: u64,
sent: &'life4 ByteProgress,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn upload_part<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
publication: &'life1 PublicationRequest,
session: &'life2 mut UploadSession,
bytes: &'life3 [u8],
end: u64,
sent: &'life4 ByteProgress,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Send a checked part ending at
end. The connection validates its length,
boundary and session; implementations enforce the native protocol.
sent already counts from the part’s start in the object.Source§fn send_independent_part<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
publication: &'life1 PublicationRequest,
session: &'life2 UploadSession,
offset: u64,
bytes: &'life3 [u8],
sent: &'life4 ByteProgress,
) -> Pin<Box<dyn Future<Output = Result<ConfirmedPart, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn send_independent_part<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
publication: &'life1 PublicationRequest,
session: &'life2 UploadSession,
offset: u64,
bytes: &'life3 [u8],
sent: &'life4 ByteProgress,
) -> Pin<Box<dyn Future<Output = Result<ConfirmedPart, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Send part
offset.. of a session whose parts are independent
(UploadSession::parts_independent), leaving the session as it
is: the provider’s confirmation of the part comes back, for the
caller to add. Several may be in flight at once. The connection
checks the part is a whole one the session lacks; sent already
counts from the part’s start in the object. A provider whose parts
go in order has none to send this way.Source§fn finish_upload<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
publication: &'life1 PublicationRequest,
session: &'life2 mut UploadSession,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn finish_upload<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
publication: &'life1 PublicationRequest,
session: &'life2 mut UploadSession,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Publish an incomplete session, checking native progress where required.
Source§fn abort_upload<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
publication: &'life1 PublicationRequest,
session: &'life2 UploadSession,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn abort_upload<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
publication: &'life1 PublicationRequest,
session: &'life2 UploadSession,
) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Abandon an incomplete session without deleting published bytes.
Source§fn read_object<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 ObjectPath,
range: Option<ByteRange>,
) -> Pin<Box<dyn Future<Output = Result<ObjectRead, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn read_object<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 ObjectPath,
range: Option<ByteRange>,
) -> Pin<Box<dyn Future<Output = Result<ObjectRead, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Collect a bounded response through the streaming implementation. Large
writes and snapshots consume
stream_object directly. This convenience
reader holds at most 32 MiB, regardless of provider metadata.Source§fn detection_leftovers<'life0, 'async_trait>(
&'life0 self,
_store: StoreId,
_run: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<LeftUpload>, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn detection_leftovers<'life0, 'async_trait>(
&'life0 self,
_store: StoreId,
_run: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<LeftUpload>, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
What S3 detection run
run left in store’s .coven-check prefix
(§20.7): its unfinished multipart uploads, then its probes. Only S3
detects, so elsewhere no run left anything.Auto Trait Implementations§
impl Freeze for MemoryProvider
impl !RefUnwindSafe for MemoryProvider
impl Send for MemoryProvider
impl Sync for MemoryProvider
impl Unpin for MemoryProvider
impl UnsafeUnpin for MemoryProvider
impl !UnwindSafe for MemoryProvider
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
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 moreCreates a shared type from an unshared type.