Trait asuran::repository::backend::Manifest[][src]

pub trait Manifest: Send + Sync + Debug + 'static {
    type Iterator: Iterator<Item = StoredArchive> + 'static;
    fn last_modification<'life0, 'async_trait>(
        &'life0 mut self
    ) -> Pin<Box<dyn Future<Output = Result<DateTime<FixedOffset>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn chunk_settings<'life0, 'async_trait>(
        &'life0 mut self
    ) -> Pin<Box<dyn Future<Output = ChunkSettings> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn archive_iterator<'life0, 'async_trait>(
        &'life0 mut self
    ) -> Pin<Box<dyn Future<Output = Self::Iterator> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn write_chunk_settings<'life0, 'async_trait>(
        &'life0 mut self,
        settings: ChunkSettings
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn write_archive<'life0, 'async_trait>(
        &'life0 mut self,
        archive: StoredArchive
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn touch<'life0, 'async_trait>(
        &'life0 mut self
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn seen_versions<'life0, 'async_trait>(
        &'life0 mut self
    ) -> Pin<Box<dyn Future<Output = HashSet<(Version, Uuid)>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }
Expand description

Manifest trait

Keeps track of which archives are in the repository.

All writing methods should commit to hard storage prior to returning

Associated Types

Required methods

Timestamp of the last modification

Returns the default settings for new chunks in this repository

Returns an iterator over the list of archives in this repository, in reverse chronological order (newest first).

Sets the chunk settings in the repository

Adds an archive to the manifest

Updates the timestamp without performing any other operations

Provides a list of versions of asuran that have committed to this manifest, in (SemVer, ImplementationUUID)

Implementors