use super::phase_map::phase_to_u64;
use crate::commands::reindex_ui::ReindexPhase;
use std::sync::atomic::AtomicU64;
use std::sync::Arc;
use std::time::Instant;
#[derive(Clone)]
pub(super) struct SharedProgress {
pub started: Instant,
pub indexed_now: Arc<AtomicU64>,
pub chunks_now: Arc<AtomicU64>,
pub chunks_embed_preview: Arc<AtomicU64>,
pub skipped_now: Arc<AtomicU64>,
pub cps_now: Arc<AtomicU64>,
pub total_files_now: Arc<AtomicU64>,
pub phase_disc: Arc<AtomicU64>,
}
impl SharedProgress {
pub(super) fn new(started: Instant) -> Self {
Self {
started,
indexed_now: Arc::new(AtomicU64::new(0)),
chunks_now: Arc::new(AtomicU64::new(0)),
chunks_embed_preview: Arc::new(AtomicU64::new(0)),
skipped_now: Arc::new(AtomicU64::new(0)),
cps_now: Arc::new(AtomicU64::new(0)),
total_files_now: Arc::new(AtomicU64::new(0)),
phase_disc: Arc::new(AtomicU64::new(phase_to_u64(ReindexPhase::Connecting))),
}
}
}