Files
signed/crates/signed_state/src/refresh.rs
T
reya c76e909f7f
Rust / build (macos-latest, stable) (push) Canceled after 0s
Rust / build (ubuntu-latest, stable) (push) Canceled after 0s
Rust / build (windows-latest, stable) (push) Canceled after 0s
chore: refactor backend around domain types (#26)
Reviewed-on: #26
2026-10-03 10:35:48 +00:00

41 lines
792 B
Rust

#[derive(Debug, Default)]
pub struct RefreshGate {
running: bool,
dirty: bool,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum RefreshRequest {
Schedule,
Fold,
}
impl RefreshGate {
pub fn running(&self) -> bool {
self.running
}
pub fn request(&mut self) -> RefreshRequest {
if self.running {
self.dirty = true;
RefreshRequest::Fold
} else {
RefreshRequest::Schedule
}
}
pub fn begin(&mut self) {
self.running = true;
}
pub fn finish(&mut self) -> bool {
self.running = false;
std::mem::take(&mut self.dirty)
}
// Pending follow-up requests survive an abandoned run.
pub fn abort(&mut self) {
self.running = false;
}
}