Skip to main content

ProjectContextSource

Trait ProjectContextSource 

Source
pub trait ProjectContextSource: Send + Sync {
    // Required method
    fn find_project<'life0, 'life1, 'async_trait>(
        &'life0 self,
        project_id: &'life1 ProjectId,
    ) -> Pin<Box<dyn Future<Output = Result<Option<ProjectDescriptor>, ProjectContextError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;

    // Provided methods
    fn list_projects<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<ProjectDescriptor>, ProjectContextError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait { ... }
    fn find_workspace_owner<'life0, 'life1, 'async_trait>(
        &'life0 self,
        _workspace: &'life1 Path,
    ) -> Pin<Box<dyn Future<Output = Result<Option<ProjectId>, ProjectContextError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait { ... }
}
Expand description

Adapter implemented by the authoritative Project registry.

The engine deliberately depends on this redacted descriptor rather than on registry persistence details. Secret settings and credential values must never be added to this interface.

Required Methods§

Source

fn find_project<'life0, 'life1, 'async_trait>( &'life0 self, project_id: &'life1 ProjectId, ) -> Pin<Box<dyn Future<Output = Result<Option<ProjectDescriptor>, ProjectContextError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Provided Methods§

Source

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

Source

fn find_workspace_owner<'life0, 'life1, 'async_trait>( &'life0 self, _workspace: &'life1 Path, ) -> Pin<Box<dyn Future<Output = Result<Option<ProjectId>, ProjectContextError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Resolve the global Project owner for an exact workspace. Sources that cannot provide a registry-wide answer remain backward compatible.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§