diff --git a/crates/milli/src/update/new/steps.rs b/crates/milli/src/update/new/steps.rs index e026b4d0d..da71819c6 100644 --- a/crates/milli/src/update/new/steps.rs +++ b/crates/milli/src/update/new/steps.rs @@ -1,58 +1,22 @@ -use std::borrow::Cow; +use crate::make_enum_progress; -use enum_iterator::Sequence; - -use crate::progress::Step; - -#[derive(Debug, Clone, Copy, PartialEq, Eq, Sequence)] -#[repr(u8)] -pub enum IndexingStep { - PreparingPayloads, - ExtractingDocuments, - ExtractingFacets, - ExtractingWords, - ExtractingWordProximity, - ExtractingEmbeddings, - MergingFacetCaches, - MergingWordCaches, - MergingWordProximity, - WritingGeoPoints, - WaitingForDatabaseWrites, - WaitingForExtractors, - WritingEmbeddingsToDatabase, - PostProcessingFacets, - PostProcessingWords, - Finalizing, -} - -impl Step for IndexingStep { - fn name(&self) -> Cow<'static, str> { - match self { - IndexingStep::PreparingPayloads => "preparing update file", - IndexingStep::ExtractingDocuments => "extracting documents", - IndexingStep::ExtractingFacets => "extracting facets", - IndexingStep::ExtractingWords => "extracting words", - IndexingStep::ExtractingWordProximity => "extracting word proximity", - IndexingStep::ExtractingEmbeddings => "extracting embeddings", - IndexingStep::MergingFacetCaches => "merging facet caches", - IndexingStep::MergingWordCaches => "merging word caches", - IndexingStep::MergingWordProximity => "merging word proximity", - IndexingStep::WritingGeoPoints => "writing geo points", - IndexingStep::WaitingForDatabaseWrites => "waiting for database writes", - IndexingStep::WaitingForExtractors => "waiting for extractors", - IndexingStep::WritingEmbeddingsToDatabase => "writing embeddings to database", - IndexingStep::PostProcessingFacets => "post-processing facets", - IndexingStep::PostProcessingWords => "post-processing words", - IndexingStep::Finalizing => "finalizing", - } - .into() - } - - fn current(&self) -> u32 { - *self as u32 - } - - fn total(&self) -> u32 { - Self::CARDINALITY as u32 +make_enum_progress! { + pub enum IndexingStep { + PreparingPayloads, + ExtractingDocuments, + ExtractingFacets, + ExtractingWords, + ExtractingWordProximity, + ExtractingEmbeddings, + MergingFacetCaches, + MergingWordCaches, + MergingWordProximity, + WritingGeoPoints, + WaitingForDatabaseWrites, + WaitingForExtractors, + WritingEmbeddingsToDatabase, + PostProcessingFacets, + PostProcessingWords, + Finalizing, } }