Take count_map for IncrementableProgress::get_inner

This commit is contained in:
RumovZ 2022-04-29 20:56:23 +02:00
parent 400fc3b0f6
commit e6225210fc
3 changed files with 9 additions and 12 deletions

View file

@ -77,13 +77,11 @@ impl<P> IncrementableProgress<P> {
}
/// Stopgap for returning a progress fn compliant with the media code.
pub(crate) fn get_inner(&mut self) -> Result<impl FnMut(usize) -> bool + '_> {
let count_map = self
.count_map
.as_mut()
.ok_or_else(|| AnkiError::invalid_input("count_map not set"))?;
let progress_fn = &mut self.progress_fn;
Ok(move |count| progress_fn(count_map(count), true))
pub(crate) fn media_db_fn(
&mut self,
count_map: impl 'static + Fn(usize) -> P,
) -> Result<impl FnMut(usize) -> bool + '_> {
Ok(move |count| (self.progress_fn)(count_map(count), true))
}
}

View file

@ -34,10 +34,8 @@ pub(super) struct MediaUseMap {
impl Context<'_> {
pub(super) fn prepare_media(&mut self) -> Result<MediaUseMap> {
self.progress.set_count_map(ImportProgress::MediaCheck);
let existing_sha1s = self
.target_col
.all_existing_sha1s(self.progress.get_inner()?)?;
let db_progress_fn = self.progress.media_db_fn(ImportProgress::MediaCheck)?;
let existing_sha1s = self.target_col.all_existing_sha1s(db_progress_fn)?;
prepare_media(
&self.meta,
&mut self.archive,

View file

@ -166,7 +166,8 @@ impl<'a> MediaComparer<'a> {
Ok(Self(if meta.media_list_is_hashmap() {
None
} else {
media_manager.register_changes(&mut progress.get_inner()?, log)?;
let mut db_progress_fn = progress.media_db_fn(ImportProgress::MediaCheck)?;
media_manager.register_changes(&mut db_progress_fn, log)?;
Some(Box::new(media_manager.checksum_getter()))
}))
}