pub trait ObjectTransferHttpUseCases:
Send
+ Sync
+ Debug {
// Required methods
fn initiate_upload<'life0, 'async_trait>(
&'life0 self,
context: ObjectTransferRequestContext,
request: InitiateTransferUpload,
) -> Pin<Box<dyn Future<Output = Result<TransferUploadResponse, ObjectTransferApiError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn issue_part<'life0, 'async_trait>(
&'life0 self,
context: ObjectTransferRequestContext,
upload_id: Uuid,
part_number: u32,
request: IssueTransferPart,
) -> Pin<Box<dyn Future<Output = Result<MultipartPartGrant, ObjectTransferApiError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn complete_upload<'life0, 'async_trait>(
&'life0 self,
context: ObjectTransferRequestContext,
upload_id: Uuid,
request: CompleteTransferUpload,
) -> Pin<Box<dyn Future<Output = Result<CompletedTransferUpload, ObjectTransferApiError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn abort_upload<'life0, 'async_trait>(
&'life0 self,
context: ObjectTransferRequestContext,
upload_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<(), ObjectTransferApiError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn issue_download<'life0, 'async_trait>(
&'life0 self,
context: ObjectTransferRequestContext,
request: IssueTransferDownload,
) -> Pin<Box<dyn Future<Output = Result<ObjectDownloadGrant, ObjectTransferApiError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn get_metadata<'life0, 'async_trait>(
&'life0 self,
context: ObjectTransferRequestContext,
object_id: String,
) -> Pin<Box<dyn Future<Output = Result<ObjectTransferMetadata, ObjectTransferApiError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
}Expand description
Application-owned authorization and durable transfer-session boundary. Each HTTP handler invokes exactly one method on this port.
Required Methods§
fn initiate_upload<'life0, 'async_trait>(
&'life0 self,
context: ObjectTransferRequestContext,
request: InitiateTransferUpload,
) -> Pin<Box<dyn Future<Output = Result<TransferUploadResponse, ObjectTransferApiError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn issue_part<'life0, 'async_trait>(
&'life0 self,
context: ObjectTransferRequestContext,
upload_id: Uuid,
part_number: u32,
request: IssueTransferPart,
) -> Pin<Box<dyn Future<Output = Result<MultipartPartGrant, ObjectTransferApiError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn complete_upload<'life0, 'async_trait>(
&'life0 self,
context: ObjectTransferRequestContext,
upload_id: Uuid,
request: CompleteTransferUpload,
) -> Pin<Box<dyn Future<Output = Result<CompletedTransferUpload, ObjectTransferApiError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn abort_upload<'life0, 'async_trait>(
&'life0 self,
context: ObjectTransferRequestContext,
upload_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<(), ObjectTransferApiError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn issue_download<'life0, 'async_trait>(
&'life0 self,
context: ObjectTransferRequestContext,
request: IssueTransferDownload,
) -> Pin<Box<dyn Future<Output = Result<ObjectDownloadGrant, ObjectTransferApiError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_metadata<'life0, 'async_trait>(
&'life0 self,
context: ObjectTransferRequestContext,
object_id: String,
) -> Pin<Box<dyn Future<Output = Result<ObjectTransferMetadata, ObjectTransferApiError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".