Skip to main content

Registry

Trait Registry 

Source
pub trait Registry: Send + Sync {
    // Required methods
    fn get<'life0, 'life1, 'async_trait>(
        &'life0 self,
        name: &'life1 str,
    ) -> Pin<Box<dyn Future<Output = Result<RegistryBundle, RegistryError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn url_for_id(
        &self,
        name: &str,
        effective: Option<&DateTimeValue>,
    ) -> Option<String>;
}
Expand description

Trait for resolving external repository references.

Implementations must be Send + Sync so they can be shared across threads. Resolution is async so that WASM can use fetch() and native can use async HTTP.

get returns a bundle containing ALL temporal versions for the requested identifier. The engine handles temporal resolution locally using effective_from on the parsed specs. Registry-qualified uses references and uses-backed type parents from specs share this resolution path.

name is the full repository name as it appears in source (e.g. "@org/project").

Required Methods§

Source

fn get<'life0, 'life1, 'async_trait>( &'life0 self, name: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<RegistryBundle, RegistryError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Fetch all temporal versions for a repository identifier.

name is the full repository name (e.g. "@org/project"). Returns a bundle whose lemma_source contains all temporal versions.

Source

fn url_for_id( &self, name: &str, effective: Option<&DateTimeValue>, ) -> Option<String>

Map a repository identifier to a human-facing address for navigation.

name is the full repository name (e.g. "@org/project"). effective is an optional datetime for linking directly to a specific temporal version in the registry UI.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§