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§
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,
Sourcefn 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,
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".