pub trait ResumableRecorder:
DynClone
+ Debug
+ Sync
+ Send {
type HashAlgorithm: Digest;
// Required methods
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>>>
Available on crate feature async
only.
fn open_for_async_read<'a>( &'a self, source_key: &'a SourceKey<Self::HashAlgorithm>, ) -> BoxFuture<'a, IoResult<Box<dyn ReadOnlyAsyncResumableRecorderMedium>>>
async
only.根据数据源 KEY 打开异步只读记录介质
Sourcefn 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.
fn open_for_async_append<'a>( &'a self, source_key: &'a SourceKey<Self::HashAlgorithm>, ) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
async
only.根据数据源 KEY 打开异步追加记录介质
Sourcefn 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.
fn open_for_async_create_new<'a>( &'a self, source_key: &'a SourceKey<Self::HashAlgorithm>, ) -> BoxFuture<'a, IoResult<Box<dyn AppendOnlyAsyncResumableRecorderMedium>>>
async
only.根据数据源 KEY 创建异步追加记录介质
Sourcefn async_delete<'a>(
&'a self,
source_key: &'a SourceKey<Self::HashAlgorithm>,
) -> BoxFuture<'a, IoResult<()>>
Available on crate feature async
only.
fn async_delete<'a>( &'a self, source_key: &'a SourceKey<Self::HashAlgorithm>, ) -> BoxFuture<'a, IoResult<()>>
async
only.根据数据源 KEY 异步删除记录介质
Implementations on Foreign Types§
Source§impl<'b, T: 'b + ResumableRecorder + ?Sized> ResumableRecorder for &'b T
impl<'b, T: 'b + ResumableRecorder + ?Sized> ResumableRecorder for &'b T
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<()>
Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§impl<'b, T: 'b + ResumableRecorder + ?Sized> ResumableRecorder for &'b mut T
impl<'b, T: 'b + ResumableRecorder + ?Sized> ResumableRecorder for &'b mut T
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<()>
Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§impl<T: ResumableRecorder + ?Sized> ResumableRecorder for Box<T>
impl<T: ResumableRecorder + ?Sized> ResumableRecorder for Box<T>
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<()>
Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§impl<T: ResumableRecorder + ?Sized> ResumableRecorder for Rc<T>
impl<T: ResumableRecorder + ?Sized> ResumableRecorder for Rc<T>
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<()>
Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§impl<T: ResumableRecorder + ?Sized> ResumableRecorder for Arc<T>
impl<T: ResumableRecorder + ?Sized> ResumableRecorder for Arc<T>
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<()>
Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.