[][src]Trait asuran::manifest::driver::RestoreDriver

pub trait RestoreDriver<T: Write + Send + 'static>: RestoreTarget<T> {
#[must_use]
    fn raw_retrieve_object<'life0, 'life1, 'life2, 'async_trait, B: BackendClone>(
        &'life0 self,
        repo: &'life1 mut Repository<B>,
        archive: &'life2 ActiveArchive,
        node: Node,
        objects: HashMap<String, RestoreObject<T>>
    ) -> Pin<Box<dyn Future<Output = Result<(), DriverError>> + Send + 'async_trait>>
    where
        B: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: Sync + 'async_trait
, { ... }
#[must_use] fn retrieve_object<'life0, 'life1, 'life2, 'async_trait, B: BackendClone>(
        &'life0 self,
        repo: &'life1 mut Repository<B>,
        archive: &'life2 ActiveArchive,
        node: Node
    ) -> Pin<Box<dyn Future<Output = Result<(), DriverError>> + Send + 'async_trait>>
    where
        B: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: Sync + 'async_trait
, { ... } }

Defines a type that can, semi-automatically, drive the retrieval of objects from a repository into an associated RestoreTarget.

As this is effectively an extension trait for a RestoreTarget, and the behavior will usually be more or less the same, reasonable default implementations have been provided.

Provided methods

#[must_use] fn raw_retrieve_object<'life0, 'life1, 'life2, 'async_trait, B: BackendClone>(
    &'life0 self,
    repo: &'life1 mut Repository<B>,
    archive: &'life2 ActiveArchive,
    node: Node,
    objects: HashMap<String, RestoreObject<T>>
) -> Pin<Box<dyn Future<Output = Result<(), DriverError>> + Send + 'async_trait>> where
    B: 'async_trait,
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    Self: Sync + 'async_trait, 

Retrives an object from the repository using the output from RestoreTarget::restore_object

This method should really only be used directly when you want to change the data in route, otherwise use retrive_object.

Retrives objects from the stub-namespaces of the namespace of the object provided

#[must_use] fn retrieve_object<'life0, 'life1, 'life2, 'async_trait, B: BackendClone>(
    &'life0 self,
    repo: &'life1 mut Repository<B>,
    archive: &'life2 ActiveArchive,
    node: Node
) -> Pin<Box<dyn Future<Output = Result<(), DriverError>> + Send + 'async_trait>> where
    B: 'async_trait,
    'life0: 'async_trait,
    'life1: 'async_trait,
    'life2: 'async_trait,
    Self: Sync + 'async_trait, 

Retrieves an object, performing the call to BackupTarget::restore_object and raw_retrive_object for you.

Loading content...

Implementors

impl RestoreDriver<File> for FileSystemTarget[src]

Loading content...