diff options
Diffstat (limited to 'src/embedders.rs')
-rw-r--r-- | src/embedders.rs | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/embedders.rs b/src/embedders.rs index 7257a27..97cc5ac 100644 --- a/src/embedders.rs +++ b/src/embedders.rs @@ -1,7 +1,8 @@ use anyhow::Result; +use indicatif::{ParallelProgressIterator, ProgressStyle}; use rayon::prelude::*; -use std::path::{Path, PathBuf}; use serde::{Deserialize, Serialize}; +use std::path::{Path, PathBuf}; pub trait MetricElem: Send + Sync + 'static + Serialize + for<'a> Deserialize<'a> { fn dist(&self, _: &Self) -> f64; @@ -32,11 +33,14 @@ impl<T: EmbedderT> BatchEmbedder for T { const NAME: &'static str = T::NAME; fn embeds(&mut self, paths: &[PathBuf]) -> Result<Vec<Self::Embedding>> { + let st = ProgressStyle:: + with_template("{bar:20.cyan/blue} {pos}/{len} Embedding images...")?; paths.par_iter() - .map(|p| self.embed(p)) - .collect::<Vec<_>>() - .into_iter() - .try_collect() + .progress_with_style(st) + .map(|p| self.embed(p)) + .collect::<Vec<_>>() + .into_iter() + .try_collect() } } |