pub trait SendDataStore: Send {
type UploadType: SendUpload;
// Required methods
fn create_upload(
&self,
info: UploadInfo,
) -> impl Future<Output = Result<Self::UploadType, TusError>> + Send;
fn get_upload(
&self,
id: &UploadId,
) -> impl Future<Output = Result<Self::UploadType, TusError>> + Send;
}Expand description
Core storage abstraction.
Implement this trait to plug in any persistence backend (filesystem, S3, etc.).
The associated UploadType must implement all upload operations; return
TusError::ExtensionNotEnabled from extension methods your store doesn’t support.
Required Associated Types§
type UploadType: SendUpload
Required Methods§
Sourcefn create_upload(
&self,
info: UploadInfo,
) -> impl Future<Output = Result<Self::UploadType, TusError>> + Send
fn create_upload( &self, info: UploadInfo, ) -> impl Future<Output = Result<Self::UploadType, TusError>> + Send
Create a new upload slot and return a handle to it.
Sourcefn get_upload(
&self,
id: &UploadId,
) -> impl Future<Output = Result<Self::UploadType, TusError>> + Send
fn get_upload( &self, id: &UploadId, ) -> impl Future<Output = Result<Self::UploadType, TusError>> + Send
Retrieve an existing upload by ID.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.