Skip to main content

ResourceStoreReader

Trait ResourceStoreReader 

Source
pub trait ResourceStoreReader:
    Send
    + Sync
    + 'static {
    // Required methods
    fn get<'life0, 'life1, 'async_trait>(
        &'life0 self,
        id: &'life1 ResourceIdent,
    ) -> Pin<Box<dyn Future<Output = Result<(Resource, ResourceRef), Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             'life1: 'async_trait,
             Self: 'async_trait;
    fn list<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        label: &'life1 ObjectLabel,
        namespace: Option<&'life2 ResourceName>,
        max_results: Option<usize>,
        page_token: Option<String>,
    ) -> Pin<Box<dyn Future<Output = Result<(Vec<Resource>, Option<String>), Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait,
             Self: 'async_trait;

    // Provided methods
    fn get_many<'life0, 'life1, 'async_trait>(
        &'life0 self,
        ids: &'life1 [ResourceIdent],
    ) -> Pin<Box<dyn Future<Output = Result<Vec<(Resource, ResourceRef)>, Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             'life1: 'async_trait,
             Self: 'async_trait { ... }
    fn get_with_secrets<'life0, 'life1, 'async_trait>(
        &'life0 self,
        id: &'life1 ResourceIdent,
    ) -> Pin<Box<dyn Future<Output = Result<(Resource, ResourceRef), Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             'life1: 'async_trait,
             Self: 'async_trait { ... }
    fn get_versioned<'life0, 'life1, 'async_trait>(
        &'life0 self,
        id: &'life1 ResourceIdent,
    ) -> Pin<Box<dyn Future<Output = Result<(Resource, ResourceRef, u64), Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             'life1: 'async_trait,
             Self: 'async_trait { ... }
}

Required Methods§

Source

fn get<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 ResourceIdent, ) -> Pin<Box<dyn Future<Output = Result<(Resource, ResourceRef), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

Get a resource by its identifier.

§Arguments
  • id: The identifier of the resource to get.
§Returns

The resource with the given identifier.

Source

fn list<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, label: &'life1 ObjectLabel, namespace: Option<&'life2 ResourceName>, max_results: Option<usize>, page_token: Option<String>, ) -> Pin<Box<dyn Future<Output = Result<(Vec<Resource>, Option<String>), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Self: 'async_trait,

List resources.

List resources in the store that are children of the given resource. If the Reference inside the ResourceIdent is Undefined, the root of the store is used and resources of the specified type are listed.

§Arguments
  • root: The root resource to list children of.
  • max_results: The maximum number of results to return.
  • page_token: The token to use to get the next page of results.

Provided Methods§

Source

fn get_many<'life0, 'life1, 'async_trait>( &'life0 self, ids: &'life1 [ResourceIdent], ) -> Pin<Box<dyn Future<Output = Result<Vec<(Resource, ResourceRef)>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

Get multiple resources by their identifiers.

§Arguments
  • ids: The identifiers of the resources to get.
§Returns

The resources with the given identifiers.

Source

fn get_with_secrets<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 ResourceIdent, ) -> Pin<Box<dyn Future<Output = Result<(Resource, ResourceRef), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

Get a resource with its sensitive fields decrypted and merged into the typed model.

Ordinary get redacts a resource’s Sensitive fields; this returns the unsealed view for the narrow internal callers that need the secret material (e.g. credential vending). The default is the redacted get; a store backed by olai_store::ManagedObjectStore overrides it to merge the sealed fields back in.

Source

fn get_versioned<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 ResourceIdent, ) -> Pin<Box<dyn Future<Output = Result<(Resource, ResourceRef, u64), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

Get a resource together with its current version (etag).

The u64 is the store’s monotonic per-object version, bumped on every mutation. Pass it back as a Precondition::Version on a later update_checked or rename to perform a compare-and-swap.

The default returns version 0 for stores that don’t track versions; ObjectStoreAdapter overrides it to surface the real version.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<T> ResourceStoreReader for Arc<T>

Source§

fn get<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 ResourceIdent, ) -> Pin<Box<dyn Future<Output = Result<(Resource, ResourceRef), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Arc<T>: 'async_trait,

Source§

fn get_many<'life0, 'life1, 'async_trait>( &'life0 self, ids: &'life1 [ResourceIdent], ) -> Pin<Box<dyn Future<Output = Result<Vec<(Resource, ResourceRef)>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Arc<T>: 'async_trait,

Source§

fn get_with_secrets<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 ResourceIdent, ) -> Pin<Box<dyn Future<Output = Result<(Resource, ResourceRef), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Arc<T>: 'async_trait,

Source§

fn get_versioned<'life0, 'life1, 'async_trait>( &'life0 self, id: &'life1 ResourceIdent, ) -> Pin<Box<dyn Future<Output = Result<(Resource, ResourceRef, u64), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Arc<T>: 'async_trait,

Source§

fn list<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, label: &'life1 ObjectLabel, namespace: Option<&'life2 ResourceName>, max_results: Option<usize>, page_token: Option<String>, ) -> Pin<Box<dyn Future<Output = Result<(Vec<Resource>, Option<String>), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, Arc<T>: 'async_trait,

Implementors§