pub trait RunStore: Send + Sync {
// Required methods
fn insert_run_with_steps<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
new_run: NewRun,
steps: &'life1 [NewStep],
edges: &'life2 [(Uuid, Uuid)],
) -> Pin<Box<dyn Future<Output = Result<Uuid>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn fetch_run<'life0, 'async_trait>(
&'life0 self,
run_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<Run>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn fetch_steps_for_run<'life0, 'async_trait>(
&'life0 self,
run_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<Step>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
}Expand description
Minimal contract for benches and fast unit tests that need storage semantics without a live database.