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>,
    ) -> Result<Box<dyn ReadOnlyResumableRecorderMedium>, Error>;
    fn open_for_append(
        &self,
        source_key: &SourceKey<Self::HashAlgorithm>,
    ) -> Result<Box<dyn AppendOnlyResumableRecorderMedium>, Error>;
    fn open_for_create_new(
        &self,
        source_key: &SourceKey<Self::HashAlgorithm>,
    ) -> Result<Box<dyn AppendOnlyResumableRecorderMedium>, Error>;
    fn delete(
        &self,
        source_key: &SourceKey<Self::HashAlgorithm>,
    ) -> Result<(), Error>;
    fn open_for_async_read<'a>(
        &'a self,
        source_key: &'a SourceKey<Self::HashAlgorithm>,
    ) -> Pin<Box<dyn Future<Output = Result<Box<dyn ReadOnlyAsyncResumableRecorderMedium>, Error>> + Send + 'a>>;
    fn open_for_async_append<'a>(
        &'a self,
        source_key: &'a SourceKey<Self::HashAlgorithm>,
    ) -> Pin<Box<dyn Future<Output = Result<Box<dyn AppendOnlyAsyncResumableRecorderMedium>, Error>> + Send + 'a>>;
    fn open_for_async_create_new<'a>(
        &'a self,
        source_key: &'a SourceKey<Self::HashAlgorithm>,
    ) -> Pin<Box<dyn Future<Output = Result<Box<dyn AppendOnlyAsyncResumableRecorderMedium>, Error>> + Send + 'a>>;
    fn async_delete<'a>(
        &'a self,
        source_key: &'a SourceKey<Self::HashAlgorithm>,
    ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>;
}
Expand description

断点恢复记录器

Required Associated Types§

Source

type HashAlgorithm: Digest

数据源 KEY 的哈希算法

Required Methods§

Source

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

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

Source

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

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

Source

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

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

Source

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

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

Source

fn open_for_async_read<'a>( &'a self, source_key: &'a SourceKey<Self::HashAlgorithm>, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn ReadOnlyAsyncResumableRecorderMedium>, Error>> + Send + 'a>>

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

Source

fn open_for_async_append<'a>( &'a self, source_key: &'a SourceKey<Self::HashAlgorithm>, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn AppendOnlyAsyncResumableRecorderMedium>, Error>> + Send + 'a>>

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

Source

fn open_for_async_create_new<'a>( &'a self, source_key: &'a SourceKey<Self::HashAlgorithm>, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn AppendOnlyAsyncResumableRecorderMedium>, Error>> + Send + 'a>>

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

Source

fn async_delete<'a>( &'a self, source_key: &'a SourceKey<Self::HashAlgorithm>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>

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

Implementations on Foreign Types§

Source§

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

Source§

type HashAlgorithm = <T as ResumableRecorder>::HashAlgorithm

Source§

fn open_for_read( &self, source_key: &SourceKey<<&'b T as ResumableRecorder>::HashAlgorithm>, ) -> Result<Box<dyn ReadOnlyResumableRecorderMedium>, Error>

Source§

fn open_for_append( &self, source_key: &SourceKey<<&'b T as ResumableRecorder>::HashAlgorithm>, ) -> Result<Box<dyn AppendOnlyResumableRecorderMedium>, Error>

Source§

fn open_for_create_new( &self, source_key: &SourceKey<<&'b T as ResumableRecorder>::HashAlgorithm>, ) -> Result<Box<dyn AppendOnlyResumableRecorderMedium>, Error>

Source§

fn delete( &self, source_key: &SourceKey<<&'b T as ResumableRecorder>::HashAlgorithm>, ) -> Result<(), Error>

Source§

fn open_for_async_read<'a>( &'a self, source_key: &'a SourceKey<<&'b T as ResumableRecorder>::HashAlgorithm>, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn ReadOnlyAsyncResumableRecorderMedium>, Error>> + Send + 'a>>

Source§

fn open_for_async_append<'a>( &'a self, source_key: &'a SourceKey<<&'b T as ResumableRecorder>::HashAlgorithm>, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn AppendOnlyAsyncResumableRecorderMedium>, Error>> + Send + 'a>>

Source§

fn open_for_async_create_new<'a>( &'a self, source_key: &'a SourceKey<<&'b T as ResumableRecorder>::HashAlgorithm>, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn AppendOnlyAsyncResumableRecorderMedium>, Error>> + Send + 'a>>

Source§

fn async_delete<'a>( &'a self, source_key: &'a SourceKey<<&'b T as ResumableRecorder>::HashAlgorithm>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>

Source§

impl<'b, T> ResumableRecorder for &'b mut T

Source§

type HashAlgorithm = <T as ResumableRecorder>::HashAlgorithm

Source§

fn open_for_read( &self, source_key: &SourceKey<<&'b mut T as ResumableRecorder>::HashAlgorithm>, ) -> Result<Box<dyn ReadOnlyResumableRecorderMedium>, Error>

Source§

fn open_for_append( &self, source_key: &SourceKey<<&'b mut T as ResumableRecorder>::HashAlgorithm>, ) -> Result<Box<dyn AppendOnlyResumableRecorderMedium>, Error>

Source§

fn open_for_create_new( &self, source_key: &SourceKey<<&'b mut T as ResumableRecorder>::HashAlgorithm>, ) -> Result<Box<dyn AppendOnlyResumableRecorderMedium>, Error>

Source§

fn delete( &self, source_key: &SourceKey<<&'b mut T as ResumableRecorder>::HashAlgorithm>, ) -> Result<(), Error>

Source§

fn open_for_async_read<'a>( &'a self, source_key: &'a SourceKey<<&'b mut T as ResumableRecorder>::HashAlgorithm>, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn ReadOnlyAsyncResumableRecorderMedium>, Error>> + Send + 'a>>

Source§

fn open_for_async_append<'a>( &'a self, source_key: &'a SourceKey<<&'b mut T as ResumableRecorder>::HashAlgorithm>, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn AppendOnlyAsyncResumableRecorderMedium>, Error>> + Send + 'a>>

Source§

fn open_for_async_create_new<'a>( &'a self, source_key: &'a SourceKey<<&'b mut T as ResumableRecorder>::HashAlgorithm>, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn AppendOnlyAsyncResumableRecorderMedium>, Error>> + Send + 'a>>

Source§

fn async_delete<'a>( &'a self, source_key: &'a SourceKey<<&'b mut T as ResumableRecorder>::HashAlgorithm>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>

Source§

impl<T> ResumableRecorder for Box<T>

Source§

type HashAlgorithm = <T as ResumableRecorder>::HashAlgorithm

Source§

fn open_for_read( &self, source_key: &SourceKey<<Box<T> as ResumableRecorder>::HashAlgorithm>, ) -> Result<Box<dyn ReadOnlyResumableRecorderMedium>, Error>

Source§

fn open_for_append( &self, source_key: &SourceKey<<Box<T> as ResumableRecorder>::HashAlgorithm>, ) -> Result<Box<dyn AppendOnlyResumableRecorderMedium>, Error>

Source§

fn open_for_create_new( &self, source_key: &SourceKey<<Box<T> as ResumableRecorder>::HashAlgorithm>, ) -> Result<Box<dyn AppendOnlyResumableRecorderMedium>, Error>

Source§

fn delete( &self, source_key: &SourceKey<<Box<T> as ResumableRecorder>::HashAlgorithm>, ) -> Result<(), Error>

Source§

fn open_for_async_read<'a>( &'a self, source_key: &'a SourceKey<<Box<T> as ResumableRecorder>::HashAlgorithm>, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn ReadOnlyAsyncResumableRecorderMedium>, Error>> + Send + 'a>>

Source§

fn open_for_async_append<'a>( &'a self, source_key: &'a SourceKey<<Box<T> as ResumableRecorder>::HashAlgorithm>, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn AppendOnlyAsyncResumableRecorderMedium>, Error>> + Send + 'a>>

Source§

fn open_for_async_create_new<'a>( &'a self, source_key: &'a SourceKey<<Box<T> as ResumableRecorder>::HashAlgorithm>, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn AppendOnlyAsyncResumableRecorderMedium>, Error>> + Send + 'a>>

Source§

fn async_delete<'a>( &'a self, source_key: &'a SourceKey<<Box<T> as ResumableRecorder>::HashAlgorithm>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>

Source§

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

Source§

type HashAlgorithm = <T as ResumableRecorder>::HashAlgorithm

Source§

fn open_for_read( &self, source_key: &SourceKey<<Rc<T> as ResumableRecorder>::HashAlgorithm>, ) -> Result<Box<dyn ReadOnlyResumableRecorderMedium>, Error>

Source§

fn open_for_append( &self, source_key: &SourceKey<<Rc<T> as ResumableRecorder>::HashAlgorithm>, ) -> Result<Box<dyn AppendOnlyResumableRecorderMedium>, Error>

Source§

fn open_for_create_new( &self, source_key: &SourceKey<<Rc<T> as ResumableRecorder>::HashAlgorithm>, ) -> Result<Box<dyn AppendOnlyResumableRecorderMedium>, Error>

Source§

fn delete( &self, source_key: &SourceKey<<Rc<T> as ResumableRecorder>::HashAlgorithm>, ) -> Result<(), Error>

Source§

fn open_for_async_read<'a>( &'a self, source_key: &'a SourceKey<<Rc<T> as ResumableRecorder>::HashAlgorithm>, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn ReadOnlyAsyncResumableRecorderMedium>, Error>> + Send + 'a>>

Source§

fn open_for_async_append<'a>( &'a self, source_key: &'a SourceKey<<Rc<T> as ResumableRecorder>::HashAlgorithm>, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn AppendOnlyAsyncResumableRecorderMedium>, Error>> + Send + 'a>>

Source§

fn open_for_async_create_new<'a>( &'a self, source_key: &'a SourceKey<<Rc<T> as ResumableRecorder>::HashAlgorithm>, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn AppendOnlyAsyncResumableRecorderMedium>, Error>> + Send + 'a>>

Source§

fn async_delete<'a>( &'a self, source_key: &'a SourceKey<<Rc<T> as ResumableRecorder>::HashAlgorithm>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>

Source§

impl<T> ResumableRecorder for Arc<T>

Source§

type HashAlgorithm = <T as ResumableRecorder>::HashAlgorithm

Source§

fn open_for_read( &self, source_key: &SourceKey<<Arc<T> as ResumableRecorder>::HashAlgorithm>, ) -> Result<Box<dyn ReadOnlyResumableRecorderMedium>, Error>

Source§

fn open_for_append( &self, source_key: &SourceKey<<Arc<T> as ResumableRecorder>::HashAlgorithm>, ) -> Result<Box<dyn AppendOnlyResumableRecorderMedium>, Error>

Source§

fn open_for_create_new( &self, source_key: &SourceKey<<Arc<T> as ResumableRecorder>::HashAlgorithm>, ) -> Result<Box<dyn AppendOnlyResumableRecorderMedium>, Error>

Source§

fn delete( &self, source_key: &SourceKey<<Arc<T> as ResumableRecorder>::HashAlgorithm>, ) -> Result<(), Error>

Source§

fn open_for_async_read<'a>( &'a self, source_key: &'a SourceKey<<Arc<T> as ResumableRecorder>::HashAlgorithm>, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn ReadOnlyAsyncResumableRecorderMedium>, Error>> + Send + 'a>>

Source§

fn open_for_async_append<'a>( &'a self, source_key: &'a SourceKey<<Arc<T> as ResumableRecorder>::HashAlgorithm>, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn AppendOnlyAsyncResumableRecorderMedium>, Error>> + Send + 'a>>

Source§

fn open_for_async_create_new<'a>( &'a self, source_key: &'a SourceKey<<Arc<T> as ResumableRecorder>::HashAlgorithm>, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn AppendOnlyAsyncResumableRecorderMedium>, Error>> + Send + 'a>>

Source§

fn async_delete<'a>( &'a self, source_key: &'a SourceKey<<Arc<T> as ResumableRecorder>::HashAlgorithm>, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'a>>

Implementors§