mm1_core/context/
quit.rs

1use mm1_common::types::{Never, StdError};
2
3pub trait Quit: Send {
4    fn quit<E>(&mut self, result: Result<(), E>) -> impl Future<Output = Never> + Send
5    where
6        E: StdError + Send + Sync + 'static,
7    {
8        async move {
9            match result {
10                Ok(()) => self.quit_ok().await,
11                Err(reason) => self.quit_err(reason).await,
12            }
13        }
14    }
15
16    fn quit_ok(&mut self) -> impl Future<Output = Never> + Send;
17
18    fn quit_err<E>(&mut self, reason: E) -> impl Future<Output = Never> + Send
19    where
20        E: StdError + Send + Sync + 'static;
21}