Skip to main content

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}