pub trait IndexBuildProgress:
Debug
+ Sync
+ Send {
// Required methods
fn stage_start<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
stage: &'life1 str,
total: Option<u64>,
unit: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn stage_progress<'life0, 'life1, 'async_trait>(
&'life0 self,
stage: &'life1 str,
completed: u64,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn stage_complete<'life0, 'life1, 'async_trait>(
&'life0 self,
stage: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
}Expand description
Progress callback for index building and distributed index finalization.
Called at stage boundaries during index construction. For a single logical stream, stages are
sequential: stage_complete is always called before the next stage_start, so only one stage
is active at a time. Callers that orchestrate independent sub-builds in parallel may prefix
stage names (for example segment_plan[0]/merge_partitions) to represent separate logical
streams. Stage names are index-type-specific (e.g. “train_ivf”, “shuffle”, “merge_partitions”
for vector indices; “load_data”, “build_pages” for scalar indices; merge/finalization stages
for distributed index construction).
Methods take &self to allow concurrent calls from within a single stage. Implementations
must be thread-safe.
Required Methods§
Sourcefn stage_start<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
stage: &'life1 str,
total: Option<u64>,
unit: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn stage_start<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
stage: &'life1 str,
total: Option<u64>,
unit: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
A named stage has started.
total is the number of work units if known, and unit describes
what is being counted (e.g. “partitions”, “batches”, “rows”).
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".