pub trait EffectExecutor: Send + Sync {
// Required methods
fn checkpoint<'life0, 'life1, 'async_trait>(
&'life0 self,
scope: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<CandidateCheckpoint>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn apply<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
call: &'life1 ProviderToolCall,
entry: &'life2 ToolEntry,
) -> Pin<Box<dyn Future<Output = Result<EffectOutcome>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn restore<'life0, 'life1, 'async_trait>(
&'life0 self,
checkpoint: &'life1 CandidateCheckpoint,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn state_witness<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<CandidateStateWitness>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
// Provided method
fn export_accepted<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<SeedFile>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
}Expand description
Applies admitted calls to the candidate overlay (the existing sandboxed executors are the first driver).
Required Methods§
Sourcefn checkpoint<'life0, 'life1, 'async_trait>(
&'life0 self,
scope: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<CandidateCheckpoint>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn checkpoint<'life0, 'life1, 'async_trait>(
&'life0 self,
scope: &'life1 [String],
) -> Pin<Box<dyn Future<Output = Result<CandidateCheckpoint>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Snapshot the reversible candidate overlay.
fn apply<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
call: &'life1 ProviderToolCall,
entry: &'life2 ToolEntry,
) -> Pin<Box<dyn Future<Output = Result<EffectOutcome>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Sourcefn restore<'life0, 'life1, 'async_trait>(
&'life0 self,
checkpoint: &'life1 CandidateCheckpoint,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn restore<'life0, 'life1, 'async_trait>(
&'life0 self,
checkpoint: &'life1 CandidateCheckpoint,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Restore an earlier candidate snapshot exactly.
Sourcefn state_witness<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<CandidateStateWitness>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn state_witness<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<CandidateStateWitness>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Re-read the materialized candidate after an effect.
Provided Methods§
Sourcefn export_accepted<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<SeedFile>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn export_accepted<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<SeedFile>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
The accepted candidate’s mutated paths with their current contents
(None = deleted), for durable mid-loop checkpoints. The default is
empty: fixtures without a filesystem have nothing durable to export.