Trait ResumablePolicyProvider

Source
pub trait ResumablePolicyProvider:
    DynClone
    + Debug
    + Sync
    + Send {
    // Required methods
    fn get_policy_from_size(
        &self,
        source_size: u64,
        opts: GetPolicyOptions,
    ) -> ResumablePolicy;
    fn get_policy_from_reader<'a>(
        &self,
        reader: Box<dyn DynRead + 'a>,
        opts: GetPolicyOptions,
    ) -> Result<(ResumablePolicy, Box<dyn DynRead + 'a>), Error>;
    fn get_policy_from_async_reader<'a>(
        &self,
        reader: Box<dyn DynAsyncRead + 'a>,
        opts: GetPolicyOptions,
    ) -> Pin<Box<dyn Future<Output = Result<(ResumablePolicy, Box<dyn DynAsyncRead + 'a>), Error>> + Send + 'a>>;
}
Expand description

可恢复策略获取接口

Required Methods§

Source

fn get_policy_from_size( &self, source_size: u64, opts: GetPolicyOptions, ) -> ResumablePolicy

通过数据源大小获取可恢复策略

Source

fn get_policy_from_reader<'a>( &self, reader: Box<dyn DynRead + 'a>, opts: GetPolicyOptions, ) -> Result<(ResumablePolicy, Box<dyn DynRead + 'a>), Error>

通过输入流获取可恢复策略

返回选择的可恢复策略,以及经过更新的输入流

该方法的异步版本为 Self::get_policy_from_async_reader

Source

fn get_policy_from_async_reader<'a>( &self, reader: Box<dyn DynAsyncRead + 'a>, opts: GetPolicyOptions, ) -> Pin<Box<dyn Future<Output = Result<(ResumablePolicy, Box<dyn DynAsyncRead + 'a>), Error>> + Send + 'a>>

通过异步输入流获取可恢复策略

返回选择的可恢复策略,以及经过更新的异步输入流

Implementations on Foreign Types§

Source§

impl<'b, T> ResumablePolicyProvider for &'b T

Source§

fn get_policy_from_size( &self, source_size: u64, opts: GetPolicyOptions, ) -> ResumablePolicy

Source§

fn get_policy_from_reader<'a>( &self, reader: Box<dyn DynRead + 'a>, opts: GetPolicyOptions, ) -> Result<(ResumablePolicy, Box<dyn DynRead + 'a>), Error>

Source§

fn get_policy_from_async_reader<'a>( &self, reader: Box<dyn DynAsyncRead + 'a>, opts: GetPolicyOptions, ) -> Pin<Box<dyn Future<Output = Result<(ResumablePolicy, Box<dyn DynAsyncRead + 'a>), Error>> + Send + 'a>>

Source§

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

Source§

fn get_policy_from_size( &self, source_size: u64, opts: GetPolicyOptions, ) -> ResumablePolicy

Source§

fn get_policy_from_reader<'a>( &self, reader: Box<dyn DynRead + 'a>, opts: GetPolicyOptions, ) -> Result<(ResumablePolicy, Box<dyn DynRead + 'a>), Error>

Source§

fn get_policy_from_async_reader<'a>( &self, reader: Box<dyn DynAsyncRead + 'a>, opts: GetPolicyOptions, ) -> Pin<Box<dyn Future<Output = Result<(ResumablePolicy, Box<dyn DynAsyncRead + 'a>), Error>> + Send + 'a>>

Source§

impl<T> ResumablePolicyProvider for Box<T>

Source§

fn get_policy_from_size( &self, source_size: u64, opts: GetPolicyOptions, ) -> ResumablePolicy

Source§

fn get_policy_from_reader<'a>( &self, reader: Box<dyn DynRead + 'a>, opts: GetPolicyOptions, ) -> Result<(ResumablePolicy, Box<dyn DynRead + 'a>), Error>

Source§

fn get_policy_from_async_reader<'a>( &self, reader: Box<dyn DynAsyncRead + 'a>, opts: GetPolicyOptions, ) -> Pin<Box<dyn Future<Output = Result<(ResumablePolicy, Box<dyn DynAsyncRead + 'a>), Error>> + Send + 'a>>

Source§

impl<T> ResumablePolicyProvider for Rc<T>

Source§

fn get_policy_from_size( &self, source_size: u64, opts: GetPolicyOptions, ) -> ResumablePolicy

Source§

fn get_policy_from_reader<'a>( &self, reader: Box<dyn DynRead + 'a>, opts: GetPolicyOptions, ) -> Result<(ResumablePolicy, Box<dyn DynRead + 'a>), Error>

Source§

fn get_policy_from_async_reader<'a>( &self, reader: Box<dyn DynAsyncRead + 'a>, opts: GetPolicyOptions, ) -> Pin<Box<dyn Future<Output = Result<(ResumablePolicy, Box<dyn DynAsyncRead + 'a>), Error>> + Send + 'a>>

Source§

impl<T> ResumablePolicyProvider for Arc<T>

Source§

fn get_policy_from_size( &self, source_size: u64, opts: GetPolicyOptions, ) -> ResumablePolicy

Source§

fn get_policy_from_reader<'a>( &self, reader: Box<dyn DynRead + 'a>, opts: GetPolicyOptions, ) -> Result<(ResumablePolicy, Box<dyn DynRead + 'a>), Error>

Source§

fn get_policy_from_async_reader<'a>( &self, reader: Box<dyn DynAsyncRead + 'a>, opts: GetPolicyOptions, ) -> Pin<Box<dyn Future<Output = Result<(ResumablePolicy, Box<dyn DynAsyncRead + 'a>), Error>> + Send + 'a>>

Implementors§