pagers_core/events.rs
1//! Events emitted during file processing for UI consumption.
2
3use std::sync::Arc;
4
5use crate::mincore::DefaultPageMap;
6
7#[derive(Debug, Clone, PartialEq)]
8#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
9pub enum Event<PM = DefaultPageMap> {
10 /// A file has started processing. Includes initial residency snapshot.
11 FileStart {
12 id: usize,
13 path: Arc<str>,
14 total_pages: usize,
15 residency: PM,
16 },
17 /// Residency update during touch/lock polling.
18 FileProgress {
19 id: usize,
20 page_offset: usize,
21 pages_walked: usize,
22 resident: bool,
23 },
24 /// File processing complete.
25 FileDone {
26 id: usize,
27 },
28 AllDone,
29}