pub trait AsyncDataSource<A: Digest>: DynClone + Debug + Sync + Send {
    // Required methods
    fn slice(
        &self,
        size: PartSize
    ) -> BoxFuture<'_, IoResult<Option<AsyncDataSourceReader>>>;
    fn reset(&self) -> BoxFuture<'_, IoResult<()>>;
    fn source_key(&self) -> BoxFuture<'_, IoResult<Option<SourceKey<A>>>>;
    fn total_size(&self) -> BoxFuture<'_, IoResult<Option<u64>>>;
}
Available on crate feature async only.
Expand description

异步数据源接口

提供上传所用的数据源

Required Methods§

source

fn slice( &self, size: PartSize ) -> BoxFuture<'_, IoResult<Option<AsyncDataSourceReader>>>

异步数据源切片

source

fn reset(&self) -> BoxFuture<'_, IoResult<()>>

异步重置数据源

source

fn source_key(&self) -> BoxFuture<'_, IoResult<Option<SourceKey<A>>>>

异步获取数据源 KEY

用于区分不同的数据源

source

fn total_size(&self) -> BoxFuture<'_, IoResult<Option<u64>>>

异步获取数据源大小

Trait Implementations§

source§

impl<'clone, A: Digest> Clone for Box<dyn AsyncDataSource<A> + 'clone>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'clone, A: Digest> Clone for Box<dyn AsyncDataSource<A> + Send + 'clone>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'clone, A: Digest> Clone for Box<dyn AsyncDataSource<A> + Send + Sync + 'clone>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'clone, A: Digest> Clone for Box<dyn AsyncDataSource<A> + Sync + 'clone>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Implementations on Foreign Types§

source§

impl<A: Digest, T: AsyncDataSource<A> + ?Sized> AsyncDataSource<A> for Arc<T>where Arc<T>: DynClone + Debug + Sync + Send,

source§

fn slice( &self, size: PartSize ) -> BoxFuture<'_, IoResult<Option<AsyncDataSourceReader>>>

Available on crate feature async only.
source§

fn reset(&self) -> BoxFuture<'_, IoResult<()>>

Available on crate feature async only.
source§

fn source_key(&self) -> BoxFuture<'_, IoResult<Option<SourceKey<A>>>>

Available on crate feature async only.
source§

fn total_size(&self) -> BoxFuture<'_, IoResult<Option<u64>>>

Available on crate feature async only.
source§

impl<'a, A: Digest, T: 'a + AsyncDataSource<A> + ?Sized> AsyncDataSource<A> for &'a Twhere &'a T: DynClone + Debug + Sync + Send,

source§

fn slice( &self, size: PartSize ) -> BoxFuture<'_, IoResult<Option<AsyncDataSourceReader>>>

Available on crate feature async only.
source§

fn reset(&self) -> BoxFuture<'_, IoResult<()>>

Available on crate feature async only.
source§

fn source_key(&self) -> BoxFuture<'_, IoResult<Option<SourceKey<A>>>>

Available on crate feature async only.
source§

fn total_size(&self) -> BoxFuture<'_, IoResult<Option<u64>>>

Available on crate feature async only.
source§

impl<A: Digest, T: AsyncDataSource<A> + ?Sized> AsyncDataSource<A> for Rc<T>where Rc<T>: DynClone + Debug + Sync + Send,

source§

fn slice( &self, size: PartSize ) -> BoxFuture<'_, IoResult<Option<AsyncDataSourceReader>>>

Available on crate feature async only.
source§

fn reset(&self) -> BoxFuture<'_, IoResult<()>>

Available on crate feature async only.
source§

fn source_key(&self) -> BoxFuture<'_, IoResult<Option<SourceKey<A>>>>

Available on crate feature async only.
source§

fn total_size(&self) -> BoxFuture<'_, IoResult<Option<u64>>>

Available on crate feature async only.
source§

impl<A: Digest, T: AsyncDataSource<A> + ?Sized> AsyncDataSource<A> for Box<T>where Box<T>: DynClone + Debug + Sync + Send,

source§

fn slice( &self, size: PartSize ) -> BoxFuture<'_, IoResult<Option<AsyncDataSourceReader>>>

Available on crate feature async only.
source§

fn reset(&self) -> BoxFuture<'_, IoResult<()>>

Available on crate feature async only.
source§

fn source_key(&self) -> BoxFuture<'_, IoResult<Option<SourceKey<A>>>>

Available on crate feature async only.
source§

fn total_size(&self) -> BoxFuture<'_, IoResult<Option<u64>>>

Available on crate feature async only.
source§

impl<'a, A: Digest, T: 'a + AsyncDataSource<A> + ?Sized> AsyncDataSource<A> for &'a mut Twhere &'a mut T: DynClone + Debug + Sync + Send,

source§

fn slice( &self, size: PartSize ) -> BoxFuture<'_, IoResult<Option<AsyncDataSourceReader>>>

Available on crate feature async only.
source§

fn reset(&self) -> BoxFuture<'_, IoResult<()>>

Available on crate feature async only.
source§

fn source_key(&self) -> BoxFuture<'_, IoResult<Option<SourceKey<A>>>>

Available on crate feature async only.
source§

fn total_size(&self) -> BoxFuture<'_, IoResult<Option<u64>>>

Available on crate feature async only.

Implementors§

source§

impl<A: Digest + Send> AsyncDataSource<A> for AsyncFileDataSource<A>

source§

impl<R: AsyncRead + Debug + Unpin + Send + Sync + 'static, A: Digest> AsyncDataSource<A> for AsyncUnseekableDataSource<R, A>