pub trait ExecStatusManager: Send + Sync {
// Required methods
fn is_completed<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
data_id: &'life1 str,
pipeline_name: &'life2 str,
dataset_id: Option<Uuid>,
) -> Pin<Box<dyn Future<Output = Result<bool, Box<dyn Error + Sync + Send>>> + Send + 'async_trait>>
where 'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait;
fn mark_completed<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
data_id: &'life1 str,
pipeline_name: &'life2 str,
dataset_id: Option<Uuid>,
) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Sync + Send>>> + Send + 'async_trait>>
where 'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait;
fn mark_failed<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
data_id: &'life1 str,
pipeline_name: &'life2 str,
dataset_id: Option<Uuid>,
error: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Sync + Send>>> + Send + 'async_trait>>
where 'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Self: 'async_trait;
fn stamp_provenance<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
data_id: &'life1 str,
pipeline_name: &'life2 str,
task_name: &'life3 str,
user_id: Option<Uuid>,
node_set: Option<&'life4 str>,
) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Sync + Send>>> + Send + 'async_trait>>
where 'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Self: 'async_trait;
}Expand description
Per-data-item status tracking for incremental pipeline execution.
The executor queries is_completed before
processing each item and calls mark_completed
/ mark_failed afterwards. This enables
safe resume after partial failures and prevents re-processing on re-runs.
Separate from PipelineWatcher by design:
the watcher is a write-only observer, while this trait is bidirectional (the
executor reads is_completed to decide whether to skip).
Required Methods§
Sourcefn is_completed<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
data_id: &'life1 str,
pipeline_name: &'life2 str,
dataset_id: Option<Uuid>,
) -> Pin<Box<dyn Future<Output = Result<bool, Box<dyn Error + Sync + Send>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn is_completed<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
data_id: &'life1 str,
pipeline_name: &'life2 str,
dataset_id: Option<Uuid>,
) -> Pin<Box<dyn Future<Output = Result<bool, Box<dyn Error + Sync + Send>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Returns true if this item was already successfully processed
for the given (pipeline_name, dataset_id) combination.
Sourcefn mark_completed<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
data_id: &'life1 str,
pipeline_name: &'life2 str,
dataset_id: Option<Uuid>,
) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Sync + Send>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn mark_completed<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
data_id: &'life1 str,
pipeline_name: &'life2 str,
dataset_id: Option<Uuid>,
) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Sync + Send>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Mark the item as successfully completed.
Sourcefn mark_failed<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
data_id: &'life1 str,
pipeline_name: &'life2 str,
dataset_id: Option<Uuid>,
error: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Sync + Send>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Self: 'async_trait,
fn mark_failed<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
data_id: &'life1 str,
pipeline_name: &'life2 str,
dataset_id: Option<Uuid>,
error: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Sync + Send>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Self: 'async_trait,
Mark the item as failed (used for diagnostics / resume).
Sourcefn stamp_provenance<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
data_id: &'life1 str,
pipeline_name: &'life2 str,
task_name: &'life3 str,
user_id: Option<Uuid>,
node_set: Option<&'life4 str>,
) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Sync + Send>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Self: 'async_trait,
fn stamp_provenance<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
data_id: &'life1 str,
pipeline_name: &'life2 str,
task_name: &'life3 str,
user_id: Option<Uuid>,
node_set: Option<&'life4 str>,
) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Sync + Send>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Self: 'async_trait,
Record provenance metadata for a processed data point.
Called by the executor after each task succeeds (point 9 — provenance
stamping). node_set is an opaque label identifying the set of graph
nodes produced by the task.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".