pub trait RegistryStorage: Send + Sync {
    // Required methods
    fn reset<'life0, 'async_trait>(
        &'life0 self,
        all_registries: bool
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn load_checkpoint<'life0, 'life1, 'async_trait>(
        &'life0 self,
        namespace_registry: &'life1 Option<RegistryDomain>
    ) -> Pin<Box<dyn Future<Output = Result<Option<SerdeEnvelope<TimestampedCheckpoint>>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn store_checkpoint<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        namespace_registry: &'life1 Option<RegistryDomain>,
        ts_checkpoint: &'life2 SerdeEnvelope<TimestampedCheckpoint>
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn load_operator<'life0, 'life1, 'async_trait>(
        &'life0 self,
        namespace_registry: &'life1 Option<RegistryDomain>
    ) -> Pin<Box<dyn Future<Output = Result<Option<OperatorInfo>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn store_operator<'life0, 'life1, 'async_trait>(
        &'life0 self,
        namespace_registry: &'life1 Option<RegistryDomain>,
        operator: OperatorInfo
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn load_packages<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Vec<PackageInfo>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn load_all_packages<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<IndexMap<String, Vec<PackageInfo>>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn load_package<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        namespace_registry: &'life1 Option<RegistryDomain>,
        package: &'life2 PackageName
    ) -> Pin<Box<dyn Future<Output = Result<Option<PackageInfo>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn store_package<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        namespace_registry: &'life1 Option<RegistryDomain>,
        info: &'life2 PackageInfo
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn load_publish<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Option<PublishInfo>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn store_publish<'life0, 'life1, 'async_trait>(
        &'life0 self,
        info: Option<&'life1 PublishInfo>
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
}
Expand description

Trait for registry storage implementations.

Stores information such as package/operator logs and checkpoints on a per-registry basis.

Registry storage data must be synchronized if shared between multiple threads and processes.

Required Methods§

source

fn reset<'life0, 'async_trait>( &'life0 self, all_registries: bool ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Reset registry local data

source

fn load_checkpoint<'life0, 'life1, 'async_trait>( &'life0 self, namespace_registry: &'life1 Option<RegistryDomain> ) -> Pin<Box<dyn Future<Output = Result<Option<SerdeEnvelope<TimestampedCheckpoint>>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Loads most recent checkpoint

source

fn store_checkpoint<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, namespace_registry: &'life1 Option<RegistryDomain>, ts_checkpoint: &'life2 SerdeEnvelope<TimestampedCheckpoint> ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Stores most recent checkpoint

source

fn load_operator<'life0, 'life1, 'async_trait>( &'life0 self, namespace_registry: &'life1 Option<RegistryDomain> ) -> Pin<Box<dyn Future<Output = Result<Option<OperatorInfo>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Loads the operator information from the storage.

Returns Ok(None) if the information is not present.

source

fn store_operator<'life0, 'life1, 'async_trait>( &'life0 self, namespace_registry: &'life1 Option<RegistryDomain>, operator: OperatorInfo ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Stores the operator information in the storage.

source

fn load_packages<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Result<Vec<PackageInfo>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Loads the package information for all packages in the home registry storage .

source

fn load_all_packages<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Result<IndexMap<String, Vec<PackageInfo>>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Loads the package information for all packages in all registry storages.

source

fn load_package<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, namespace_registry: &'life1 Option<RegistryDomain>, package: &'life2 PackageName ) -> Pin<Box<dyn Future<Output = Result<Option<PackageInfo>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Loads the package information from the storage.

Returns Ok(None) if the information is not present.

source

fn store_package<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, namespace_registry: &'life1 Option<RegistryDomain>, info: &'life2 PackageInfo ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Stores the package information in the storage.

source

fn load_publish<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Result<Option<PublishInfo>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Loads information about a pending publish operation.

Returns Ok(None) if the information is not present.

source

fn store_publish<'life0, 'life1, 'async_trait>( &'life0 self, info: Option<&'life1 PublishInfo> ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Stores information about a pending publish operation.

If the info is None, the any existing publish information is deleted.

Implementors§