Trait ResumableRecorder

Source
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§

Source

type HashAlgorithm: Digest

数据源 KEY 的哈希算法

Required Methods§

Source

fn open_for_read( &self, source_key: &SourceKey<Self::HashAlgorithm>, ) -> IoResult<Box<dyn ReadOnlyResumableRecorderMedium>>

根据数据源 KEY 打开只读记录介质

Source

fn open_for_append( &self, source_key: &SourceKey<Self::HashAlgorithm>, ) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>

根据数据源 KEY 打开追加记录介质

Source

fn open_for_create_new( &self, source_key: &SourceKey<Self::HashAlgorithm>, ) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>

根据数据源 KEY 创建追加记录介质

Source

fn delete(&self, source_key: &SourceKey<Self::HashAlgorithm>) -> IoResult<()>

根据数据源 KEY 删除记录介质

Source

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 打开异步只读记录介质

Source

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 打开异步追加记录介质

Source

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 创建异步追加记录介质

Source

fn async_delete<'a>( &'a self, source_key: &'a SourceKey<Self::HashAlgorithm>, ) -> BoxFuture<'a, IoResult<()>>

Available on crate feature async only.

根据数据源 KEY 异步删除记录介质

Implementations on Foreign Types§

Source§

impl<'b, T: 'b + ResumableRecorder + ?Sized> ResumableRecorder for &'b T
where &'b T: DynClone + Debug + Sync + Send,

Source§

type HashAlgorithm = <T as ResumableRecorder>::HashAlgorithm

Source§

fn open_for_read( &self, source_key: &SourceKey<Self::HashAlgorithm>, ) -> IoResult<Box<dyn ReadOnlyResumableRecorderMedium>>

Source§

fn open_for_append( &self, source_key: &SourceKey<Self::HashAlgorithm>, ) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>

Source§

fn open_for_create_new( &self, source_key: &SourceKey<Self::HashAlgorithm>, ) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>

Source§

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>>>

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>>>

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>>>

Available on crate feature async only.
Source§

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

Source§

type HashAlgorithm = <T as ResumableRecorder>::HashAlgorithm

Source§

fn open_for_read( &self, source_key: &SourceKey<Self::HashAlgorithm>, ) -> IoResult<Box<dyn ReadOnlyResumableRecorderMedium>>

Source§

fn open_for_append( &self, source_key: &SourceKey<Self::HashAlgorithm>, ) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>

Source§

fn open_for_create_new( &self, source_key: &SourceKey<Self::HashAlgorithm>, ) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>

Source§

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>>>

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>>>

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>>>

Available on crate feature async only.
Source§

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>
where Box<T>: DynClone + Debug + Sync + Send,

Source§

type HashAlgorithm = <T as ResumableRecorder>::HashAlgorithm

Source§

fn open_for_read( &self, source_key: &SourceKey<Self::HashAlgorithm>, ) -> IoResult<Box<dyn ReadOnlyResumableRecorderMedium>>

Source§

fn open_for_append( &self, source_key: &SourceKey<Self::HashAlgorithm>, ) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>

Source§

fn open_for_create_new( &self, source_key: &SourceKey<Self::HashAlgorithm>, ) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>

Source§

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>>>

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>>>

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>>>

Available on crate feature async only.
Source§

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>
where Rc<T>: DynClone + Debug + Sync + Send,

Source§

type HashAlgorithm = <T as ResumableRecorder>::HashAlgorithm

Source§

fn open_for_read( &self, source_key: &SourceKey<Self::HashAlgorithm>, ) -> IoResult<Box<dyn ReadOnlyResumableRecorderMedium>>

Source§

fn open_for_append( &self, source_key: &SourceKey<Self::HashAlgorithm>, ) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>

Source§

fn open_for_create_new( &self, source_key: &SourceKey<Self::HashAlgorithm>, ) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>

Source§

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>>>

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>>>

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>>>

Available on crate feature async only.
Source§

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>
where Arc<T>: DynClone + Debug + Sync + Send,

Source§

type HashAlgorithm = <T as ResumableRecorder>::HashAlgorithm

Source§

fn open_for_read( &self, source_key: &SourceKey<Self::HashAlgorithm>, ) -> IoResult<Box<dyn ReadOnlyResumableRecorderMedium>>

Source§

fn open_for_append( &self, source_key: &SourceKey<Self::HashAlgorithm>, ) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>

Source§

fn open_for_create_new( &self, source_key: &SourceKey<Self::HashAlgorithm>, ) -> IoResult<Box<dyn AppendOnlyResumableRecorderMedium>>

Source§

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>>>

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>>>

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>>>

Available on crate feature async only.
Source§

fn async_delete<'a>( &'a self, source_key: &'a SourceKey<Self::HashAlgorithm>, ) -> BoxFuture<'a, IoResult<()>>

Available on crate feature async only.

Implementors§