pub trait Resolver {
    type Error: Error + Send + Sync + 'static;

    fn resolve<'life0, 'life1, 'async_trait, T: TypedValue>(
        &'life0 self,
        id: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Record<T>, Self::Error>> + Send + 'async_trait>>
    where
        T: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; fn resolve_all<'life0, 'life1, 'life2, 'async_trait, T: TypedValue + Send>(
        &'life0 self,
        ids: &'life1 [&'life2 str]
    ) -> Pin<Box<dyn Future<Output = Vec<Result<Record<T>, Self::Error>>> + Send + 'async_trait>>
    where
        T: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: Sync + 'async_trait
, { ... } fn resolve_all_refs<'life0, 'life1, 'async_trait, T: Resolvable + Send>(
        &'life0 self,
        records: &'life1 mut [Record<T>]
    ) -> Pin<Box<dyn Future<Output = Result<(), MissingRefsError>> + Send + 'async_trait>>
    where
        Self: Sized + Send,
        T: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: Sync + 'async_trait
, { ... } fn resolve_refs<'life0, 'life1, 'async_trait, T: TypedValue + Send>(
        &'life0 self,
        references: &'life1 mut [Reference<T>]
    ) -> Pin<Box<dyn Future<Output = Result<(), MissingRefsError>> + Send + 'async_trait>>
    where
        T: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: Sync + 'async_trait
, { ... } }
Expand description

A trait to be implemented on data stores that can resolve records by their type and id strings.

Required Associated Types

Required Methods

Resolve (load) a single record by its id.

Provided Methods

Resolve (load) all records with their ids.

The method is generic over the record type, thus only supports loading records of a single type.

Resolve a list of references.

Implementors