Trait DataSource

Source
pub trait DataSource<A: Digest>:
    DynClone
    + Debug
    + Sync
    + Send {
    // Required methods
    fn slice(&self, size: PartSize) -> IoResult<Option<DataSourceReader>>;
    fn reset(&self) -> IoResult<()>;
    fn total_size(&self) -> IoResult<Option<u64>>;

    // Provided method
    fn source_key(&self) -> IoResult<Option<SourceKey<A>>> { ... }
}
Expand description

数据源接口

提供上传所用的数据源

该 Trait 的异步版本为 AsyncDataSource

Required Methods§

Source

fn slice(&self, size: PartSize) -> IoResult<Option<DataSourceReader>>

数据源切片

Source

fn reset(&self) -> IoResult<()>

重置数据源

Source

fn total_size(&self) -> IoResult<Option<u64>>

获取数据源大小

Provided Methods§

Source

fn source_key(&self) -> IoResult<Option<SourceKey<A>>>

获取数据源 KEY

用于区分不同的数据源

Implementations on Foreign Types§

Source§

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

Source§

impl<'a, A: Digest, T: 'a + DataSource<A> + ?Sized> DataSource<A> for &'a mut T

Source§

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

Source§

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

Source§

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

Implementors§

Source§

impl<D: Digest + Send> DataSource<D> for FileDataSource<D>

Source§

impl<R: Read + Debug + Send + Sync + 'static, A: Digest> DataSource<A> for UnseekableDataSource<R, A>