pub trait DataSource<A>:
DynClone
+ Debug
+ Sync
+ Sendwhere
A: Digest,{
// Required methods
fn slice(&self, size: PartSize) -> Result<Option<DataSourceReader>, Error>;
fn reset(&self) -> Result<(), Error>;
fn total_size(&self) -> Result<Option<u64>, Error>;
// Provided method
fn source_key(&self) -> Result<Option<SourceKey<A>>, Error> { ... }
}