pub trait ResumableRecorder: DynClone + Debug + Sync + Send {
type HashAlgorithm: Digest;
fn open_for_read(
&self,
source_key: &SourceKey<Self::HashAlgorithm>
) -> IoResult<Box<dyn ReadOnlyResumableRecorderMedium>>;
fn open_for_append(
&self,
source_key: &SourceKey<Self::HashAlgorithm>
) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>;
fn open_for_create_new(
&self,
source_key: &SourceKey<Self::HashAlgorithm>
) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>;
fn delete(&self, source_key: &SourceKey<Self::HashAlgorithm>) -> IoResult<()>;
fn open_for_async_read<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn ReadOnlyAsyncResumableRecorderMedium>>>;
fn open_for_async_append<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>;
fn open_for_async_create_new<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>;
fn async_delete<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<()>>;
}Expand description
断点恢复记录器
Required Associated Types
sourcetype HashAlgorithm: Digest
type HashAlgorithm: Digest
数据源 KEY 的哈希算法
Required Methods
sourcefn open_for_read(
&self,
source_key: &SourceKey<Self::HashAlgorithm>
) -> IoResult<Box<dyn ReadOnlyResumableRecorderMedium>>
fn open_for_read(
&self,
source_key: &SourceKey<Self::HashAlgorithm>
) -> IoResult<Box<dyn ReadOnlyResumableRecorderMedium>>
根据数据源 KEY 打开只读记录介质
sourcefn open_for_append(
&self,
source_key: &SourceKey<Self::HashAlgorithm>
) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>
fn open_for_append(
&self,
source_key: &SourceKey<Self::HashAlgorithm>
) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>
根据数据源 KEY 打开追加记录介质
sourcefn open_for_create_new(
&self,
source_key: &SourceKey<Self::HashAlgorithm>
) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>
fn open_for_create_new(
&self,
source_key: &SourceKey<Self::HashAlgorithm>
) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>
根据数据源 KEY 创建追加记录介质
sourcefn open_for_async_read<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn ReadOnlyAsyncResumableRecorderMedium>>>
fn open_for_async_read<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn ReadOnlyAsyncResumableRecorderMedium>>>
Available on crate feature
async only.根据数据源 KEY 打开异步只读记录介质
sourcefn open_for_async_append<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
fn open_for_async_append<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
Available on crate feature
async only.根据数据源 KEY 打开异步追加记录介质
sourcefn open_for_async_create_new<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
fn open_for_async_create_new<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
Available on crate feature
async only.根据数据源 KEY 创建异步追加记录介质
sourcefn async_delete<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<()>>
fn async_delete<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<()>>
Available on crate feature
async only.根据数据源 KEY 异步删除记录介质
Trait Implementations
sourceimpl<'clone, H> Clone for Box<dyn ResumableRecorder<HashAlgorithm = H> + 'clone>where
H: Digest,
impl<'clone, H> Clone for Box<dyn ResumableRecorder<HashAlgorithm = H> + 'clone>where
H: Digest,
sourceimpl<'clone, H> Clone for Box<dyn ResumableRecorder<HashAlgorithm = H> + Send + 'clone>where
H: Digest,
impl<'clone, H> Clone for Box<dyn ResumableRecorder<HashAlgorithm = H> + Send + 'clone>where
H: Digest,
Implementations on Foreign Types
sourceimpl<'b, T: 'b + ResumableRecorder + ?Sized> ResumableRecorder for &'b Twhere
&'b T: DynClone + Debug + Sync + Send,
impl<'b, T: 'b + ResumableRecorder + ?Sized> ResumableRecorder for &'b Twhere
&'b T: DynClone + Debug + Sync + Send,
type HashAlgorithm = <T as ResumableRecorder>::HashAlgorithm
fn open_for_read(
&self,
source_key: &SourceKey<Self::HashAlgorithm>
) -> IoResult<Box<dyn ReadOnlyResumableRecorderMedium>>
fn open_for_append(
&self,
source_key: &SourceKey<Self::HashAlgorithm>
) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>
fn open_for_create_new(
&self,
source_key: &SourceKey<Self::HashAlgorithm>
) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>
fn delete(&self, source_key: &SourceKey<Self::HashAlgorithm>) -> IoResult<()>
sourcefn open_for_async_read<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn ReadOnlyAsyncResumableRecorderMedium>>>
fn open_for_async_read<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn ReadOnlyAsyncResumableRecorderMedium>>>
Available on crate feature
async only.sourcefn open_for_async_append<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
fn open_for_async_append<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
Available on crate feature
async only.sourcefn open_for_async_create_new<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
fn open_for_async_create_new<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
Available on crate feature
async only.sourcefn async_delete<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<()>>
fn async_delete<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<()>>
Available on crate feature
async only.sourceimpl<'b, T: 'b + ResumableRecorder + ?Sized> ResumableRecorder for &'b mut Twhere
&'b mut T: DynClone + Debug + Sync + Send,
impl<'b, T: 'b + ResumableRecorder + ?Sized> ResumableRecorder for &'b mut Twhere
&'b mut T: DynClone + Debug + Sync + Send,
type HashAlgorithm = <T as ResumableRecorder>::HashAlgorithm
fn open_for_read(
&self,
source_key: &SourceKey<Self::HashAlgorithm>
) -> IoResult<Box<dyn ReadOnlyResumableRecorderMedium>>
fn open_for_append(
&self,
source_key: &SourceKey<Self::HashAlgorithm>
) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>
fn open_for_create_new(
&self,
source_key: &SourceKey<Self::HashAlgorithm>
) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>
fn delete(&self, source_key: &SourceKey<Self::HashAlgorithm>) -> IoResult<()>
sourcefn open_for_async_read<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn ReadOnlyAsyncResumableRecorderMedium>>>
fn open_for_async_read<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn ReadOnlyAsyncResumableRecorderMedium>>>
Available on crate feature
async only.sourcefn open_for_async_append<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
fn open_for_async_append<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
Available on crate feature
async only.sourcefn open_for_async_create_new<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
fn open_for_async_create_new<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
Available on crate feature
async only.sourcefn async_delete<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<()>>
fn async_delete<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<()>>
Available on crate feature
async only.sourceimpl<T: ResumableRecorder + ?Sized> ResumableRecorder for Box<T>where
Box<T>: DynClone + Debug + Sync + Send,
impl<T: ResumableRecorder + ?Sized> ResumableRecorder for Box<T>where
Box<T>: DynClone + Debug + Sync + Send,
type HashAlgorithm = <T as ResumableRecorder>::HashAlgorithm
fn open_for_read(
&self,
source_key: &SourceKey<Self::HashAlgorithm>
) -> IoResult<Box<dyn ReadOnlyResumableRecorderMedium>>
fn open_for_append(
&self,
source_key: &SourceKey<Self::HashAlgorithm>
) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>
fn open_for_create_new(
&self,
source_key: &SourceKey<Self::HashAlgorithm>
) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>
fn delete(&self, source_key: &SourceKey<Self::HashAlgorithm>) -> IoResult<()>
sourcefn open_for_async_read<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn ReadOnlyAsyncResumableRecorderMedium>>>
fn open_for_async_read<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn ReadOnlyAsyncResumableRecorderMedium>>>
Available on crate feature
async only.sourcefn open_for_async_append<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
fn open_for_async_append<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
Available on crate feature
async only.sourcefn open_for_async_create_new<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
fn open_for_async_create_new<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
Available on crate feature
async only.sourcefn async_delete<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<()>>
fn async_delete<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<()>>
Available on crate feature
async only.sourceimpl<T: ResumableRecorder + ?Sized> ResumableRecorder for Rc<T>where
Rc<T>: DynClone + Debug + Sync + Send,
impl<T: ResumableRecorder + ?Sized> ResumableRecorder for Rc<T>where
Rc<T>: DynClone + Debug + Sync + Send,
type HashAlgorithm = <T as ResumableRecorder>::HashAlgorithm
fn open_for_read(
&self,
source_key: &SourceKey<Self::HashAlgorithm>
) -> IoResult<Box<dyn ReadOnlyResumableRecorderMedium>>
fn open_for_append(
&self,
source_key: &SourceKey<Self::HashAlgorithm>
) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>
fn open_for_create_new(
&self,
source_key: &SourceKey<Self::HashAlgorithm>
) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>
fn delete(&self, source_key: &SourceKey<Self::HashAlgorithm>) -> IoResult<()>
sourcefn open_for_async_read<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn ReadOnlyAsyncResumableRecorderMedium>>>
fn open_for_async_read<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn ReadOnlyAsyncResumableRecorderMedium>>>
Available on crate feature
async only.sourcefn open_for_async_append<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
fn open_for_async_append<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
Available on crate feature
async only.sourcefn open_for_async_create_new<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
fn open_for_async_create_new<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
Available on crate feature
async only.sourcefn async_delete<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<()>>
fn async_delete<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<()>>
Available on crate feature
async only.sourceimpl<T: ResumableRecorder + ?Sized> ResumableRecorder for Arc<T>where
Arc<T>: DynClone + Debug + Sync + Send,
impl<T: ResumableRecorder + ?Sized> ResumableRecorder for Arc<T>where
Arc<T>: DynClone + Debug + Sync + Send,
type HashAlgorithm = <T as ResumableRecorder>::HashAlgorithm
fn open_for_read(
&self,
source_key: &SourceKey<Self::HashAlgorithm>
) -> IoResult<Box<dyn ReadOnlyResumableRecorderMedium>>
fn open_for_append(
&self,
source_key: &SourceKey<Self::HashAlgorithm>
) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>
fn open_for_create_new(
&self,
source_key: &SourceKey<Self::HashAlgorithm>
) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>
fn delete(&self, source_key: &SourceKey<Self::HashAlgorithm>) -> IoResult<()>
sourcefn open_for_async_read<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn ReadOnlyAsyncResumableRecorderMedium>>>
fn open_for_async_read<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn ReadOnlyAsyncResumableRecorderMedium>>>
Available on crate feature
async only.sourcefn open_for_async_append<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
fn open_for_async_append<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
Available on crate feature
async only.sourcefn open_for_async_create_new<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
fn open_for_async_create_new<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
Available on crate feature
async only.sourcefn async_delete<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<()>>
fn async_delete<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>
) -> BoxFuture<'a, IoResult<()>>
Available on crate feature
async only.