dope_runtime/process/watch.rs
1use o3::base::time::Positive;
2
3/// Main-process notification performed after every required worker is ready.
4pub trait Notify {
5 type Error;
6 type Heartbeat: Heartbeat<Self::Error>;
7
8 fn ready(self) -> Result<Self::Heartbeat, Self::Error>;
9}
10
11/// Explicit steady-state watch owned by the process manager.
12pub trait Heartbeat<E> {
13 fn period(&self) -> Positive;
14 fn pulse(&self) -> Result<(), E>;
15
16 fn draining(&self) -> Result<(), E>;
17}