pub trait HarnessStore: Send + Sync {
// Required method
fn get_harness<'life0, 'async_trait>(
&'life0 self,
harness_id: HarnessId,
) -> Pin<Box<dyn Future<Output = Result<Option<HarnessDefinition>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
// Provided method
fn get_harness_blocker<'life0, 'async_trait>(
&'life0 self,
harness_id: HarnessId,
) -> Pin<Box<dyn Future<Output = Result<Option<DependencyBlocker>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
}Expand description
Narrow harness-loading seam for turn execution (EVE-872, EVE-881).
Implementations project their stored harness records into the portable
HarnessDefinition — the effective execution environment configuration.
Parent-chain inheritance is resolved behind this seam (root-to-leaf, via
the same overlay merge semantics the runtime uses), so callers receive one
effective layer. Stored Harness persistence records live in
everruns-platform and never cross this boundary.
Contract: records that exist but cannot execute (archived or deleted) must
yield an error from HarnessStore::get_harness, so lifecycle validation
is enforced at the loading seam before host execution begins.
Required Methods§
Sourcefn get_harness<'life0, 'async_trait>(
&'life0 self,
harness_id: HarnessId,
) -> Pin<Box<dyn Future<Output = Result<Option<HarnessDefinition>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_harness<'life0, 'async_trait>(
&'life0 self,
harness_id: HarnessId,
) -> Pin<Box<dyn Future<Output = Result<Option<HarnessDefinition>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get the effective (inheritance-resolved) execution definition for a
harness by id. Returns Ok(None) if the harness does not exist.
Provided Methods§
Sourcefn get_harness_blocker<'life0, 'async_trait>(
&'life0 self,
harness_id: HarnessId,
) -> Pin<Box<dyn Future<Output = Result<Option<DependencyBlocker>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_harness_blocker<'life0, 'async_trait>(
&'life0 self,
harness_id: HarnessId,
) -> Pin<Box<dyn Future<Output = Result<Option<DependencyBlocker>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Execution-availability probe for dependency-blocker detection.
Returns None when the harness exists and can execute. Hosted stores
override this to report DependencyBlocker::HarnessArchived /
DependencyBlocker::HarnessDeleted from the stored lifecycle status;
the default treats a missing record as deleted.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".