Skip to main content

dope_runtime/executor/drain/
mod.rs

1use crate::shutdown;
2
3mod run;
4
5pub(crate) use run::Run;
6
7#[derive(Clone, Copy, Eq, PartialEq)]
8pub enum Outcome {
9    Quiesced,
10    Forced,
11}
12
13#[must_use]
14pub struct Report<Q> {
15    request: shutdown::Requested<Q>,
16    outcome: Outcome,
17}
18
19impl<Q> Report<Q> {
20    pub(crate) const fn new(request: shutdown::Requested<Q>, outcome: Outcome) -> Self {
21        Self { request, outcome }
22    }
23
24    pub const fn outcome(&self) -> Outcome {
25        self.outcome
26    }
27
28    pub fn into_parts(self) -> (shutdown::Requested<Q>, Outcome) {
29        (self.request, self.outcome)
30    }
31}