pub trait ProgressReporter: Send + Sync {
// Required methods
fn pipeline_started<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
task_count: usize,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn task_started<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
task_id: &'life1 str,
task_name: &'life2 str,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn task_completed<'life0, 'life1, 'async_trait>(
&'life0 self,
progress: &'life1 LiveTaskProgress,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn task_cached<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
task_id: &'life1 str,
task_name: &'life2 str,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn task_progress<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
task_id: &'life1 str,
message: &'life2 str,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn pipeline_completed<'life0, 'life1, 'async_trait>(
&'life0 self,
report: &'life1 PipelineReport,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
}Expand description
Trait for reporting pipeline execution progress in real-time.
Implementations can target different output backends:
- Terminal (progress bars, spinners)
- GitHub Check Runs (live status updates)
- JSON output (for CI integration)
Required Methods§
Sourcefn pipeline_started<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
task_count: usize,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn pipeline_started<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
task_count: usize,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called when a pipeline starts execution.
Sourcefn task_started<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
task_id: &'life1 str,
task_name: &'life2 str,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn task_started<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
task_id: &'life1 str,
task_name: &'life2 str,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Called when a task starts executing.
Sourcefn task_completed<'life0, 'life1, 'async_trait>(
&'life0 self,
progress: &'life1 LiveTaskProgress,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn task_completed<'life0, 'life1, 'async_trait>(
&'life0 self,
progress: &'life1 LiveTaskProgress,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called when a task completes (success or failure).
Sourcefn task_cached<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
task_id: &'life1 str,
task_name: &'life2 str,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn task_cached<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
task_id: &'life1 str,
task_name: &'life2 str,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Called when a task is restored from cache.
Sourcefn task_progress<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
task_id: &'life1 str,
message: &'life2 str,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn task_progress<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
task_id: &'life1 str,
message: &'life2 str,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Called periodically for long-running tasks.
Sourcefn pipeline_completed<'life0, 'life1, 'async_trait>(
&'life0 self,
report: &'life1 PipelineReport,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn pipeline_completed<'life0, 'life1, 'async_trait>(
&'life0 self,
report: &'life1 PipelineReport,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called when the pipeline completes.